pax_global_header00006660000000000000000000000064151474147770014533gustar00rootroot0000000000000052 comment=e44f32d2d90b5aaa52b0e7b798cce1e13af61fbc pngtools-1.2/000077500000000000000000000000001514741477700132425ustar00rootroot00000000000000pngtools-1.2/.clang-format000066400000000000000000000002631514741477700156160ustar00rootroot00000000000000BasedOnStyle: GNU IndentWidth: 2 TabWidth: 8 UseTab: Never ColumnLimit: 100 SortIncludes: false SpaceBeforeParens: ControlStatements PointerAlignment: Right ReflowComments: false pngtools-1.2/.github/000077500000000000000000000000001514741477700146025ustar00rootroot00000000000000pngtools-1.2/.github/workflows/000077500000000000000000000000001514741477700166375ustar00rootroot00000000000000pngtools-1.2/.github/workflows/c.yml000066400000000000000000000030371514741477700176070ustar00rootroot00000000000000name: CI on: push: branches: [master] pull_request: branches: [master] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: install dependencies run: | sudo apt-get update sudo apt-get install -y libpng-dev docbook-utils clang-format cppcheck shellcheck - name: actionlint run: | bash <(curl -s https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) ./actionlint -color - name: shellcheck run: shellcheck scripts/*.sh - name: clang-format check run: scripts/check-format.sh - name: cppcheck run: | cppcheck --error-exitcode=1 --enable=warning,style --suppress=missingIncludeSystem \ --suppress=normalCheckLevelMaxBranches ./*.c - name: aclocal run: aclocal - name: autoconf run: autoconf - name: automake --add-missing run: automake --add-missing - name: autoreconf run: autoreconf - name: configure run: ./configure - name: make run: make - name: make install run: make install DESTDIR="$PWD/install" - name: set up test venv run: | python3 -m venv tests/.venv tests/.venv/bin/pip install -r test-requirements.txt - name: generate test images run: tests/.venv/bin/python tests/generate_test_images.py - name: run tests run: tests/.venv/bin/stestr run pngtools-1.2/.github/workflows/codeql.yml000066400000000000000000000016241514741477700206340ustar00rootroot00000000000000name: CodeQL on: push: branches: [master] pull_request: branches: [master] schedule: - cron: '30 13 * * 4' permissions: contents: read security-events: write jobs: analyze: name: Analyze runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v4 with: languages: c-cpp build-mode: manual queries: security-and-quality - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y libpng-dev docbook-utils - name: Build run: | aclocal autoconf automake --add-missing autoreconf ./configure make - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 with: category: /language:c-cpp pngtools-1.2/.github/workflows/release.yml000066400000000000000000000053231514741477700210050ustar00rootroot00000000000000name: Release on: workflow_dispatch: inputs: version: description: 'Version to release (must match configure.ac)' required: true type: string permissions: contents: write id-token: write attestations: write jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Verify version matches configure.ac run: | ac_version=$(sed -n 's/^AC_INIT(pngtools, \[\(.*\)\])/\1/p' configure.ac) if [ "$ac_version" != "${{ inputs.version }}" ]; then echo "::error::Version mismatch: configure.ac has '$ac_version' but release requested '${{ inputs.version }}'" exit 1 fi - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y libpng-dev docbook-utils - name: Build run: | aclocal autoconf automake --add-missing autoreconf ./configure make - name: Test run: | python3 -m venv tests/.venv tests/.venv/bin/pip install -r test-requirements.txt tests/.venv/bin/python tests/generate_test_images.py tests/.venv/bin/stestr run - name: Create distribution tarball run: make dist - name: Generate changelog run: | prev_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "") if [ -z "$prev_tag" ]; then { echo "## Changelog" echo "" echo "Initial release." echo "" echo '```' git log --oneline --no-merges echo '```' } > changelog.md else { echo "## Changelog (since $prev_tag)" echo "" echo '```' git log --oneline --no-merges "$prev_tag"..HEAD echo '```' } > changelog.md fi - name: Set up gitsign uses: chainguard-dev/actions/setup-gitsign@main - name: Create signed tag run: | git tag -s -m "Release v${{ inputs.version }}" "v${{ inputs.version }}" git push origin "v${{ inputs.version }}" - name: Create GitHub Release run: | gh release create "v${{ inputs.version }}" \ --title "pngtools ${{ inputs.version }}" \ --notes-file changelog.md \ "pngtools-${{ inputs.version }}.tar.gz" env: GH_TOKEN: ${{ github.token }} - name: Attest tarball provenance uses: actions/attest-build-provenance@v2 with: subject-path: "pngtools-${{ inputs.version }}.tar.gz" pngtools-1.2/.gitignore000066400000000000000000000010501514741477700152260ustar00rootroot00000000000000# Compiled binaries and objects pnginfo pngcp pngchunks pngchunkdesc *.o # Autotools generated files Makefile Makefile.in aclocal.m4 autom4te.cache/ config.h config.h.in config.log config.status configure configure~ stamp-h1 .deps/ config/compile config/config.guess config/config.sub config/depcomp config/install-sh config/ltmain.sh config/missing config/mkinstalldirs # Test infrastructure tests/.venv/ tests/__pycache__/ __pycache__/ .stestr/ testdata/ # Generated man pages man/Makefile man/Makefile.in man/*.sgml man/*.1 man/*.8 man/manpage.* pngtools-1.2/.pre-commit-config.yaml000066400000000000000000000024551514741477700175310ustar00rootroot00000000000000repos: - repo: local hooks: # Note: actionlint and shellcheck run in separate pre-commit # environments (golang vs python), so actionlint cannot use # shellcheck to lint inline 'run:' scripts in workflows here. # CI catches those issues because both are system-installed. - id: actionlint name: actionlint entry: actionlint language: golang additional_dependencies: - github.com/rhysd/actionlint/cmd/actionlint@v1.7.10 files: ^\.github/workflows/ types: [yaml] - id: shellcheck name: shellcheck entry: shellcheck language: python additional_dependencies: - shellcheck-py==0.10.0.1 files: ^scripts/ - id: clang-format name: clang-format entry: scripts/check-format.sh language: system always_run: true pass_filenames: false - id: cppcheck name: cppcheck entry: cppcheck --error-exitcode=1 --enable=warning,style --suppress=missingIncludeSystem --suppress=normalCheckLevelMaxBranches language: system types: [c] - id: build-and-test name: build and test entry: scripts/build-and-test.sh language: system always_run: true pass_filenames: false pngtools-1.2/.stestr.conf000066400000000000000000000000471514741477700155140ustar00rootroot00000000000000[DEFAULT] test_path=./tests top_dir=./ pngtools-1.2/ABOUT000066400000000000000000000000531514741477700140350ustar00rootroot00000000000000A series of tools for the PNG image format pngtools-1.2/AGENTS.md000066400000000000000000000102361514741477700145470ustar00rootroot00000000000000# AGENTS.md -- Guidelines for AI Agents Working on pngtools ## Project Summary pngtools is a small C project (~1,100 lines across 7 source files) providing four command-line PNG utilities: pnginfo, pngchunks, pngchunkdesc, and pngcp. It uses libpng for PNG I/O and GNU Autotools for building. See ARCHITECTURE.md for detailed structure and known bugs. ## Build Instructions ```bash aclocal && autoconf && automake --add-missing && autoreconf ./configure make ``` Dependencies: libpng-dev, libm, docbook-utils (for man pages). ## Testing 55 automated tests using Python testtools + stestr: ```bash # One-time setup python3 -m venv tests/.venv tests/.venv/bin/pip install -r test-requirements.txt tests/.venv/bin/python tests/generate_test_images.py # Run all tests (requires binaries to be built first) tests/.venv/bin/stestr run # Run a specific test module tests/.venv/bin/stestr run test_pnginfo ``` Tests run the compiled binaries via subprocess and check exit codes and stdout/stderr content. They use sample PNGs from the repo root plus generated images in `testdata/`. When making changes, run the full test suite. If adding new features or fixing bugs, add corresponding tests. Pre-commit hooks run actionlint, shellcheck, clang-format, cppcheck, and the full build-and-test cycle automatically. Set them up with: ```bash pip install pre-commit pre-commit install ``` Or run individual checks manually: - `scripts/check-format.sh` -- verify formatting - `scripts/check-format.sh fix` -- auto-format - `scripts/build-and-test.sh` -- build and test ## Code Style - C with GNU Autotools conventions - All source files are formatted with **clang-format** (GNU base style). Run `scripts/check-format.sh fix` to auto-format. The config is in `.clang-format`. - **cppcheck** is used for static analysis. New code must pass `cppcheck --enable=warning,style` without findings. - Functions use `snake_case` with tool-name prefixes (e.g. `pnginfo_displayfile`) - Comments are C99 `//` style for inline, `/* */` for block headers - The build uses `-Wall -Wextra -Werror`: all warnings are errors. New code must compile warning-free. ## Key Files | File | Purpose | |-------------------|----------------------------------------------| | pnginfo.c | PNG metadata display tool (main tool) | | pngchunks.c | Raw PNG chunk structure lister | | pngchunkdesc.c | Chunk name case-bit decoder | | pngcp.c | PNG copy tool entry point | | pngread.c | PNG reading helper (readimage) | | pngwrite.c | PNG writing helper (writeimage) | | inflateraster.c | Raster bitdepth/channel transformation | | pngcp.h | Header for pngcp helper functions | | chunk_meanings.h | Shared chunk name case-bit meanings table | | configure.ac | Autoconf configuration | | Makefile.am | Automake build rules | | man/*.sgml.in | DocBook SGML man page templates | ## Things to Be Careful About - **This is packaged by Linux distributions.** Changes to command-line interfaces, output formats, or exit codes may break downstream users and packaging scripts. Preserve existing behaviour unless intentionally fixing a bug. - **Run the test suite before committing.** The pre-commit hook does this automatically. If tests fail, fix them before pushing. - **pngchunks does manual binary parsing.** It does not use libpng and instead memory-maps the file and walks chunk headers directly. Be especially careful with endianness (uses `ntohl`) and struct packing assumptions when modifying this code. - **DocBook man pages live in man/*.sgml.in.** These are templates processed by `configure` to substitute `@PACKAGE_VERSION@`. If you change a tool's command-line interface or behaviour, update the corresponding `.sgml.in` man page template as well. - **CI runs the full test suite.** The GitHub Actions CI workflow builds the project and runs all 55 tests. A separate CodeQL workflow performs security and quality analysis. PRs must pass both CI checks. pngtools-1.2/ARCHITECTURE.md000066400000000000000000000177221514741477700154570ustar00rootroot00000000000000# pngtools Architecture ## Overview pngtools is a suite of four command-line utilities for inspecting and manipulating PNG image files. It was modelled on libtiff's tifftools suite and is written in C against the libpng library. The project dates from 2001 and uses GNU Autotools for its build system. ## Tools ### pnginfo (pnginfo.c, ~440 lines) The primary tool. Reads PNG files via libpng and displays metadata: image dimensions, bit depth, colour type, interlacing, compression, resolution, and embedded text chunks. Has three modes: - Default: display PNG metadata with descriptive labels - `-t`: use tiffinfo-compatible label names - `-d`: dump the image bitmap as hex pixel triples - `-D`: verify bitmap extraction without displaying it The bitmap dump includes run-length compression for zero-valued pixels, printing them once and then showing a repeat count. ### pngchunks (pngchunks.c, ~190 lines) Lists the raw chunk structure of a PNG file. Unlike pnginfo, this tool does **not** use libpng -- it memory-maps the file with `mmap()` and manually walks the PNG chunk linked list by parsing the 8-byte chunk headers (4-byte length + 4-byte type). For IHDR chunks it also parses and displays the IHDR payload fields. Each chunk's four-character name is decoded to show its case-encoded properties (critical/ancillary, public/private, etc.). All pointer advances are bounds-checked against the mmap'd region to prevent segfaults on malformed input. ### pngchunkdesc (pngchunkdesc.c, ~48 lines) A stdin/stdout filter that reads four-character PNG chunk names and decodes the case information embedded in each letter. Uses the shared `chunk_meanings` lookup table from `chunk_meanings.h`. ### pngcp (pngcp.c + pngread.c + pngwrite.c + inflateraster.c, ~350 lines total) Copies a PNG file while optionally changing bit depth (`-d`) and/or the number of samples per pixel (`-s`). The pipeline is: ``` readimage() -> inflateraster() -> writeimage() ``` - **pngread.c / readimage()**: Opens the input PNG via libpng, expands palettes and sub-byte samples, returns the raw raster buffer along with width, height, bitdepth, and channel count. - **inflateraster.c / inflateraster()**: Transforms the raster to the target bit depth and/or channel count. Processes all pixels in a single pass, handling both bitdepth scaling and channel mapping together. Supports multi-byte samples (e.g. 16-bit) using big-endian byte order. Channel mapping supports gray-to-RGB expansion, alpha addition/removal, and direct channel copying. - **pngwrite.c / writeimage()**: Writes the output PNG via libpng. Derives the PNG colour type from the channel count (1=gray, 2=gray+alpha, 3=RGB, 4=RGBA). ## Header Files - **pngcp.h**: Declares the three pngcp helper functions (`readimage`, `writeimage`, `inflateraster`). Uses `png_uint_32` for width/height to match the libpng API. ## Build System GNU Autotools (autoconf + automake): - **configure.ac**: Checks for a C compiler, libpng (`png_read_image` symbol), libm (`atan` symbol), and `png.h`. - **Makefile.am**: Builds four binaries. pnginfo and pngchunks are standalone; pngcp links pngread.c, pngwrite.c, and inflateraster.c. pngcp additionally links libm. `EXTRA_DIST` includes the test suite, test images, stestr config, and test requirements so that `make dist` tarballs contain everything needed to run tests. - **man/**: DocBook SGML man page sources (`man/*.sgml.in`), built to man pages via `docbook2man`. The `.sgml.in` templates use `@PACKAGE_VERSION@` which `configure` substitutes from `AC_INIT` to generate the `.sgml` files. Each file contains `` elements in `` that set the man page footer (source, version, manual section). Build steps: `aclocal && autoconf && automake --add-missing && autoreconf && ./configure && make` ## Code Quality - **clang-format**: Enforces consistent formatting using the GNU base style. Configuration in `.clang-format`. Run `scripts/check-format.sh fix` to auto-format, or `scripts/check-format.sh` to check without modifying. - **cppcheck**: Static analysis for warnings and style issues. Runs with `--enable=warning,style` in both CI and pre-commit. - **shellcheck**: Lints shell scripts in `scripts/`. - **actionlint**: Validates GitHub Actions workflow YAML files. - **CodeQL**: GitHub's semantic code analysis for security vulnerabilities and code quality. Runs as a separate CI workflow (`.github/workflows/codeql.yml`) with the `security-and-quality` query suite. Also runs weekly on a schedule to catch newly discovered vulnerability patterns. ## CI Three GitHub Actions workflows: **CI** (`.github/workflows/c.yml`): runs actionlint, shellcheck, clang-format, and cppcheck checks first, then builds on Ubuntu with libpng-dev and docbook-utils. Runs the full autotools chain, configure, make, and make install to a staging directory. Then sets up a Python venv, installs test dependencies, generates test images, and runs the full test suite via stestr. **CodeQL** (`.github/workflows/codeql.yml`): runs on push, PR, and weekly schedule. Performs deep semantic security and quality analysis of the C source code. **Release** (`.github/workflows/release.yml`): manually triggered via `workflow_dispatch`. Takes a version input (must match `configure.ac`), builds and tests the project, creates a `make dist` tarball, creates a Sigstore-signed git tag via gitsign, publishes a GitHub Release with the tarball attached, and attests the tarball provenance with `actions/attest-build-provenance`. Five pre-commit hooks run automatically before each commit: 1. **actionlint** -- validates workflow YAML 2. **shellcheck** -- lints shell scripts 3. **clang-format** -- checks source formatting 4. **cppcheck** -- static analysis 5. **build-and-test** -- full build and test cycle ## Test Data Five sample PNG files covering different configurations: | File | Dimensions | Bit Depth | Colour Type | |---------------------------|------------|-----------|-------------| | sample.png | 640x480 | 8 | RGB | | input.png | 256x256 | 8 | RGB | | foursamplesperpixel.png | 32x32 | 8 | RGBA | | multibytesample.png | 32x32 | 16 | Grayscale | | grayscale.png | 32x32 | 4 | Grayscale | Additional generated test images in `testdata/` (created by `tests/generate_test_images.py`): | File | Dimensions | Bit Depth | Colour Type | |------------------------|------------|-----------|--------------------| | paletted.png | 32x32 | 8 | Paletted | | interlaced.png | 32x32 | 8 | RGB (Adam7) | | with_text.png | 32x32 | 8 | RGB + tEXt chunks | | with_transparency.png | 32x32 | 8 | Paletted + tRNS | ## Test Suite 55 automated tests using Python testtools + stestr, organised into four test modules matching the four tools: - `tests/test_pnginfo.py` -- metadata, tiff mode, bitmap dump, errors - `tests/test_pngchunks.py` -- chunk listing, IHDR parsing, errors - `tests/test_pngchunkdesc.py` -- case-bit decoding - `tests/test_pngcp.py` -- copy, bitdepth/channel changes, errors Tests run the compiled binaries via subprocess and assert on exit codes and stdout/stderr content. See README.md for how to run them. ## Known Bugs and Issues - **Issue #3**: No release tags exist on the GitHub repository. Downstream packagers have requested at least a `0.4` and `1.0` tag. This is a release management task, not a code bug. ## Dependencies - **libpng** (required): PNG reading/writing for pnginfo, pngcp - **libm** (required): math functions for pngcp (pow in inflateraster) - **docbook-utils** (optional): man page generation from SGML sources - **clang-format** (development): code formatting enforcement - **cppcheck** (development): static analysis - **shellcheck** (development): shell script linting - **actionlint** (development): GitHub Actions workflow validation pngtools-1.2/AUTHORS000066400000000000000000000004401514741477700143100ustar00rootroot00000000000000Pngtools are written by Michael Still (mikal@stillhq.com) and are copyright 2001 Michael Still. If you would like to contribute, then please contact me on the address above. A list of contributions that people have already made may be found in the CONTRIBUTORS file in this distribution. pngtools-1.2/COPYING000066400000000000000000000436531514741477700143100ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. 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 Program or any portion of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, 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 Program, 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 Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) 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; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, 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 executable. However, as a special exception, the source code 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. If distribution of executable or 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 counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program 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. 5. 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 Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program 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 to this License. 7. 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 Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program 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 Program. 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. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program 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. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies 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 Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, 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 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. 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 PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. pngtools-1.2/ChangeLog000066400000000000000000000003511514741477700150130ustar00rootroot0000000000000020120106 Michael Still mikal@stillhq.com Include patches from gentoo project, thanks! 20081127 Michael Still mikal@stillhq.com Release 0.4, including 64 fixes 20020714 Michael Still mikal@stillhq.com Added the chunkdesc code pngtools-1.2/INSTALL000066400000000000000000000005251514741477700142750ustar00rootroot00000000000000Welcome to pngtools 0.1 This code is covered by the GNU Public License. Please respect the conditions of this license, which is included in this distribution. All of this code is (c) Michael Still, 2001. DEPENDENCIES libpng INSTALLATION ./configure make make install Michael Still (mikal@stillhq.com) 11 April 2001 pngtools-1.2/Makefile.am000066400000000000000000000012451514741477700153000ustar00rootroot00000000000000SUBDIRS = man AM_CFLAGS = -Wall -Wextra -Werror bin_PROGRAMS = pnginfo pngcp pngchunkdesc pngchunks pnginfo_SOURCES = pnginfo.c pngcp_SOURCES = pngcp.c pngread.c pngwrite.c inflateraster.c pngchunkdesc_SOURCES = pngchunkdesc.c pngchunks_SOURCES = pngchunks.c noinst_HEADERS = pngcp.h chunk_meanings.h pnginfo_LDADD = -lpng pngcp_LDADD = -lpng -lm EXTRA_DIST = \ .stestr.conf \ test-requirements.txt \ sample.png \ input.png \ foursamplesperpixel.png \ grayscale.png \ multibytesample.png \ tests/__init__.py \ tests/base.py \ tests/generate_test_images.py \ tests/test_pngchunkdesc.py \ tests/test_pngchunks.py \ tests/test_pngcp.py \ tests/test_pnginfo.py pngtools-1.2/NEWS000066400000000000000000000000341514741477700137360ustar00rootroot00000000000000See the file named ChangeLogpngtools-1.2/README.md000066400000000000000000000064611514741477700145300ustar00rootroot00000000000000# pngtools A suite of command-line utilities for inspecting and manipulating PNG image files, modelled on libtiff's tifftools. pngtools is packaged by several Linux distributions. ## Tools - **pnginfo**: Display detailed metadata about PNG files (dimensions, bit depth, colour type, interlacing, compression, text chunks, etc). Supports tiffinfo-compatible output labels (`-t`) and bitmap dumping (`-d`, `-D`). - **pngchunks**: List the raw chunk structure of a PNG file by directly parsing chunk headers. Shows chunk type, length, CRC, IHDR fields, and the case-encoded properties of each chunk name. - **pngchunkdesc**: Read PNG chunk names from stdin and decode the meaning of each letter's case (critical/ancillary, public/private, PNG 1.2 compliant, safe to copy). - **pngcp**: Copy a PNG file while optionally changing the bit depth (`-d`) and number of samples per pixel (`-s`). ## Building Requires libpng-dev and optionally docbook-utils (for man pages): ```bash aclocal && autoconf && automake --add-missing && autoreconf ./configure make make install ``` ## Usage Examples ```bash # Show PNG metadata pnginfo image.png # Show metadata with tiffinfo-compatible labels pnginfo -t image.png # Dump image bitmap as hex pnginfo -d image.png # List raw chunk structure pngchunks image.png # Decode chunk name properties echo "tEXt" | pngchunkdesc # Copy with changed bit depth pngcp -d 16 input.png output.png ``` ## Testing The test suite uses Python testtools + stestr: ```bash # One-time setup python3 -m venv tests/.venv tests/.venv/bin/pip install -r test-requirements.txt # Generate additional test images tests/.venv/bin/python tests/generate_test_images.py # Run all tests tests/.venv/bin/stestr run # Run a specific test module tests/.venv/bin/stestr run test_pnginfo ``` Or use the all-in-one script that handles building and testing (including first-time setup): ```bash scripts/build-and-test.sh ``` ### Pre-commit Hooks Pre-commit hooks enforce formatting (clang-format), static analysis (cppcheck), and run the full build-and-test cycle: ```bash pip install pre-commit pre-commit install ``` You can also run the format checker directly: ```bash scripts/check-format.sh # check only scripts/check-format.sh fix # auto-format in place ``` ## Releasing 1. Update the version in `configure.ac` (`AC_INIT(pngtools, [X.Y])`) 2. Commit and push to `master` 3. Go to **Actions > Release > Run workflow** 4. Enter the version string (must match `configure.ac`) The workflow will: - Verify the version matches `configure.ac` - Build and run the full test suite - Create a `make dist` tarball (includes test suite and test images) - Create a Sigstore-signed git tag (`vX.Y`) - Publish a GitHub Release with the tarball and changelog - Attest the tarball provenance via Sigstore Release artifacts can be verified with: ```bash gh attestation verify pngtools-X.Y.tar.gz --owner mikalstill ``` ## Documentation - [ARCHITECTURE.md](ARCHITECTURE.md) -- code structure, data flow, and known bugs - [AGENTS.md](AGENTS.md) -- guidelines for AI agents working on this codebase - Man pages are built from DocBook SGML sources in the `man/` directory ## License GNU General Public License v2. See COPYING for details. ## Author Michael Still (mikal@stillhq.com) https://www.madebymikal.com/category/pngtools/ pngtools-1.2/bindep.txt000066400000000000000000000010061514741477700152410ustar00rootroot00000000000000# This is a cross-platform list tracking distribution packages needed to build # pngtools; see https://docs.opendev.org/opendev/bindep/ for additional # information. build-essential [platform:dpkg] gcc [platform:rpm] make [platform:rpm] autoconf automake libpng-dev [platform:dpkg] libpng-devel [platform:rpm] docbook [platform:dpkg] docbook-style-dsssl [platform:rpm] docbook-utils [platform:dpkg] docbook-utils [platform:rpm] clang-format [platform:dpkg] clang-tools-extra [platform:rpm] cppcheck shellcheck pngtools-1.2/chunk_meanings.h000066400000000000000000000010361514741477700164040ustar00rootroot00000000000000#ifndef CHUNK_MEANINGS_H #define CHUNK_MEANINGS_H // PNG chunk name case-bit meanings. // Each letter in a four-character chunk name encodes one property // via its case (upper = first value, lower = second value). const char *const chunk_meanings[4][2] = { { "Critical", "Ancillary" }, { "public", "private" }, { "PNG 1.2 compliant", "in reserved chunk space" }, { "unsafe to copy", "safe to copy" } }; #endif pngtools-1.2/chunks.txt000066400000000000000000000001321514741477700152720ustar00rootroot00000000000000IHDR PLTE IDAT IEND tRNS gAMA cHRM sRGB iCCP iTXt tEXt zTXt bKGD pHYs sBIT sPLT hIST tIME pngtools-1.2/config.h.in000066400000000000000000000012331514741477700152640ustar00rootroot00000000000000/* config.h.in. Generated automatically from configure.in by autoheader. */ /* Define if you don't have vprintf but do have _doprnt. */ #undef HAVE_DOPRNT /* Define if you have the vprintf function. */ #undef HAVE_VPRINTF /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define if you have the header file. */ #undef HAVE_PNG_H /* Define if you have the header file. */ #undef HAVE_STDIO_H /* Define if you have the m library (-lm). */ #undef HAVE_LIBM /* Define if you have the png library (-lpng). */ #undef HAVE_LIBPNG /* Name of package */ #undef PACKAGE /* Version number of package */ #undef VERSION pngtools-1.2/config/000077500000000000000000000000001514741477700145075ustar00rootroot00000000000000pngtools-1.2/config/depcomp000077500000000000000000000303351514741477700160700ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000 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 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. if test -z "$depfile"; then base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` dir=`echo "$object" | sed 's,/.*$,/,'` if test "$dir" = "$object"; then dir= fi # FIXME: should be _deps on DOS. depfile="$dir.deps/$base" fi tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. This file always lives in the current directory. # Also, the AIX compiler puts `$object:' at the start of each line; # $object doesn't have directory information. stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" outname="$stripped.o" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. base=`echo "$object" | sed -e 's/\.o$//' -e 's/\.lo$//'` tmpdepfile1="$base.o.d" tmpdepfile2="$base.d" if test "$libtool" = yes; then "$@" -Wc,-MD else "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a space and a tab in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. test -z "$dashmflag" && dashmflag=-M ( IFS=" " case " $* " in *" --mode=compile "*) # this is libtool, let us make it quiet for arg do # cycle over the arguments case "$arg" in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) # X makedepend ( shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift;; -*) ;; *) set fnord "$@" "$arg"; shift;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 pngtools-1.2/config/install-sh000077500000000000000000000127361514741477700165240ustar00rootroot00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 pngtools-1.2/config/missing000077500000000000000000000142131514741477700161070ustar00rootroot00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 pngtools-1.2/config/mkinstalldirs000077500000000000000000000013271514741477700173200ustar00rootroot00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.1.1.1 2001-04-11 11:31:14 mikal Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here pngtools-1.2/configure.ac000066400000000000000000000017111514741477700155300ustar00rootroot00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT(pngtools, [1.0]) AC_CONFIG_SRCDIR([pnginfo.c]) AC_CONFIG_AUX_DIR(config) AC_REVISION AM_INIT_AUTOMAKE AM_MAINTAINER_MODE dnl Checks for programs. AC_PROG_CC AC_PROG_INSTALL dnl Checks for libraries. dnl The syntax is library name, function, action if found, action if not found dnl We just use the default if found action which adds -l to the LIBS var dnl and #defined HAVE_LIB dnl -lm: AC_CHECK_LIB(m, atan) dnl -lpng: AC_SEARCH_LIBS(png_read_image, png, [], [AC_MSG_ERROR([libpng not found])]) dnl Headers for libraries AC_CHECK_HEADERS(png.h) dnl Checks for typedefs, structures, and compiler characteristics. dnl Checks for library functions. AC_FUNC_VPRINTF dnl AC_FUNC_SNPRINTF AC_CONFIG_FILES([Makefile man/Makefile man/pngchunkdesc.sgml man/pngchunks.sgml man/pngcp.sgml man/pnginfo.sgml]) AC_OUTPUT pngtools-1.2/foursamplesperpixel.png000066400000000000000000000002701514741477700200600ustar00rootroot00000000000000PNG  IHDR szzgAMA1_oIDATx1 0 F'dhO?U!ExRP(M(ي0^{~3uG XN5"}\TB\.y 6{@<P6@R LIENDB`pngtools-1.2/grayscale.png000066400000000000000000000002211514741477700157150ustar00rootroot00000000000000PNG  IHDR )gAMA1_HIDATxc``TR26vq MK+/g CA*wLrPV#ݽT3r%GAIENDB`pngtools-1.2/inflateraster.c000066400000000000000000000072541514741477700162610ustar00rootroot00000000000000#include #include #include #include // Read a sample value from a byte buffer (big-endian for 16-bit PNG samples) static unsigned int read_sample(const png_byte *data, int bytedepth) { if (bytedepth == 2) return (data[0] << 8) | data[1]; return data[0]; } // Write a sample value to a byte buffer (big-endian for 16-bit PNG samples) static void write_sample(png_byte *data, int bytedepth, unsigned int value) { if (bytedepth == 2) { data[0] = (value >> 8) & 0xFF; data[1] = value & 0xFF; } else { data[0] = value & 0xFF; } } // Map an output channel index to the corresponding input channel index. // Returns -1 if the output channel has no input source and should be // filled with the maximum sample value (e.g. opaque alpha). // // PNG channel layouts: 1=Gray, 2=Gray+Alpha, 3=RGB, 4=RGBA static int map_channel(int out_ch, int channels, int targetchannels) { int out_is_alpha = (targetchannels == 2 || targetchannels == 4) && (out_ch == targetchannels - 1); if (out_is_alpha) { // Map to input alpha channel if available if (channels == 2) return 1; if (channels == 4) return 3; return -1; } // Gray -> RGB expansion: replicate gray to R, G, B if (channels <= 2 && targetchannels >= 3 && out_ch < 3) return 0; // Direct mapping when input has the channel if (out_ch < channels) return out_ch; return -1; } // Inflate a raster to a given pixel sample size png_byte * inflateraster(png_byte *input, png_uint_32 width, png_uint_32 height, int bitdepth, int targetbitdepth, int channels, int targetchannels) { png_byte *output; int bytedepth, targetbytedepth; png_uint_32 pixel, npixels; double scalefactor; unsigned int maxval; // Nothing to do if ((channels == targetchannels) && (bitdepth == targetbitdepth)) return input; // Calculate byte depths bytedepth = (bitdepth + 7) / 8; targetbytedepth = (targetbitdepth + 7) / 8; // Build the output raster if ((output = malloc((size_t)width * height * targetchannels * targetbytedepth)) == NULL) { fprintf(stderr, "Failed to allocate enough memory for output raster\n"); return NULL; } // Compute scaling factor for bitdepth changes, mapping the full // input range [0, 2^src-1] to the full output range [0, 2^dst-1] if (bitdepth != targetbitdepth) { scalefactor = (pow(2.0, (double)targetbitdepth) - 1.0) / (pow(2.0, (double)bitdepth) - 1.0); printf("Scaling factor is %f\n", scalefactor); } else { scalefactor = 1.0; } maxval = ((unsigned int)1 << targetbitdepth) - 1; if (channels != targetchannels) printf("Expanding from %d channels to %d channels\n", channels, targetchannels); // Process each pixel in a single pass, handling both bitdepth // and channel changes together npixels = width * height; for (pixel = 0; pixel < npixels; pixel++) { const png_byte *in_pixel = input + pixel * channels * bytedepth; png_byte *out_pixel = output + pixel * targetchannels * targetbytedepth; int ch; for (ch = 0; ch < targetchannels; ch++) { unsigned int value; int src_ch = map_channel(ch, channels, targetchannels); if (src_ch >= 0) { value = read_sample(in_pixel + src_ch * bytedepth, bytedepth); value = (unsigned int)(value * scalefactor + 0.5); } else { value = maxval; } if (value > maxval) value = maxval; write_sample(out_pixel + ch * targetbytedepth, targetbytedepth, value); } } return output; } pngtools-1.2/input.png000066400000000000000000000016621514741477700151140ustar00rootroot00000000000000PNG  IHDR?1bKGD*E! Q pHYs  ~tIME ,?IDATxU0@ `$D09gNUǚ^_Y1k퇏Ofk6:֚gF_Gvks_=?aG?FϞW=tϚϓۯoKuWt={חO\\,t\y?'@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi M 4&@Hi McSIENDB`pngtools-1.2/makerelease000066400000000000000000000011011514741477700154340ustar00rootroot00000000000000#!/bin/bash -e # This script makes the world nice-looking for the world. cd man rm *sgml || true cd .. for item in *.c do /data/src/stillhq_public/trunk/autodocbook/autodocbook "$item" done autoreconf -if ./configure make -C man make clean # Get rid of core files find . -name "*core*" -exec rm -rf {} ";" # Get rid of unwanted files for filename in Makefile autom4te.cache config.cache config.log config.status logfile math config.h output.pdf .deps do find . -name "$filename" -exec rm -rf {} ";" done rm -ri "#*#" *~ || true # How much space do we use? du -sk pngtools-1.2/man/000077500000000000000000000000001514741477700140155ustar00rootroot00000000000000pngtools-1.2/man/Makefile.am000066400000000000000000000002551514741477700160530ustar00rootroot00000000000000.sgml.1: docbook2man $< EXTRA_DIST = docbook pngchunkdesc.sgml.in pngchunks.sgml.in pngcp.sgml.in pnginfo.sgml.in man_MANS = pngchunkdesc.1 pngchunks.1 pngcp.1 pnginfo.1 pngtools-1.2/man/docbook/000077500000000000000000000000001514741477700154355ustar00rootroot00000000000000pngtools-1.2/man/docbook/foot.sgml000066400000000000000000000005661514741477700172770ustar00rootroot00000000000000 AUTHOR pngtools was written by Michael Still and is released under the GNU GPL. The project is hosted at https://github.com/mikalstill/pngtools. BUGS Please report bugs at https://github.com/mikalstill/pngtools/issues. pngtools-1.2/man/docbook/head.sgml000066400000000000000000000011511514741477700172200ustar00rootroot00000000000000 pngtools-1.2/man/pngchunkdesc.sgml.in000066400000000000000000000040731514741477700177660ustar00rootroot00000000000000 pngchunkdesc 1 pngtools @PACKAGE_VERSION@ User Commands pngchunkdesc decode information embedded into a PNG chunk name pngchunkdesc DESCRIPTION PNGfiles are based around a series of chunks, which embody the information stored in the image file. These chunks have four character ASCII names, where the case of each letter stores additional information. This program decodes the case information in the chunk names, and displays it. The program reads chunk names from stdin, and write chunk descriptions to stdout. SEE ALSO tiffinfo(1) pnginfo(1) VERSION This documentation is for pngtools @PACKAGE_VERSION@. AUTHOR pngtools was written by Michael Still and is released under the GNU GPL. The project is hosted at https://github.com/mikalstill/pngtools. BUGS Please report bugs at https://github.com/mikalstill/pngtools/issues. pngtools-1.2/man/pngchunks.sgml.in000066400000000000000000000064471514741477700173210ustar00rootroot00000000000000 pngchunks 1 pngtools @PACKAGE_VERSION@ User Commands pngchunks print information embedded into a PNG file pngchunks DESCRIPTION pngchunks is a program that displays informations from files created according to the Portable Network Graphics file format. EXAMPLE pngchunks input.png Chunk: Data Length 13 (max 2147483647), Type 1380206665 [IHDR] Critical, public, PNG 1.2 compliant, unsafe to copy IHDR Width: 256 IHDR Height: 256 IHDR Bitdepth: 8 IHDR Colortype: 2 IHDR Compression: 0 IHDR Filter: 0 IHDR Interlace: 0 IHDR Compression algorithm is Deflate IHDR Filter method is type zero (None, Sub, Up, Average, Paeth) IHDR Interlacing is disabled Chunk CRC: -753909967 Chunk: Data Length 6 (max 2147483647), Type 1145523042 [bKGD] Ancillary, public, PNG 1.2 compliant, unsafe to copy ... Unknown chunk type Chunk CRC: 554438993 Chunk: Data Length 9 (max 2147483647), Type 1935231088 [pHYs] Ancillary, public, PNG 1.2 compliant, safe to copy ... Unknown chunk type Chunk CRC: -757235972 Chunk: Data Length 7 (max 2147483647), Type 1162692980 [tIME] Ancillary, public, PNG 1.2 compliant, unsafe to copy ... Unknown chunk type Chunk CRC: 429243611 Chunk: Data Length 831 (max 2147483647), Type 1413563465 [IDAT] Critical, public, PNG 1.2 compliant, unsafe to copy IDAT contains image data Chunk CRC: 1406256926 Chunk: Data Length 0 (max 2147483647), Type 1145980233 [IEND] Critical, public, PNG 1.2 compliant, unsafe to copy IEND contains no data Chunk CRC: -1371381630 SEE ALSO pngchunkdesc(1), pngcp(1), pnginfo(1). VERSION This documentation is for pngtools @PACKAGE_VERSION@. AUTHOR pngtools was written by Michael Still and is released under the GNU GPL. The project is hosted at https://github.com/mikalstill/pngtools. BUGS Please report bugs at https://github.com/mikalstill/pngtools/issues. pngtools-1.2/man/pngcp.sgml.in000066400000000000000000000045671514741477700164310ustar00rootroot00000000000000 pngcp 1 pngtools @PACKAGE_VERSION@ User Commands pngcp create a new PNG file, having changed some attributes pngcp [-d <depth>] [-s <samples per pixel>] <input filename> <output filename> DESCRIPTION The pngcp create a new PNG file using the image data from the input file. The output file will have the bitdepth and number of samples per pixel as specified on the command line. There are limits on what is a valid combination imposed by the PNG specification -- pngcp will inform you of invalid combinations. Samples with more than eight bits are not correctly handled at the moment. RETURNS Nothing EXAMPLE pngcp toucan.png new.png SEE ALSO tiffcp(1) pngchunkdesc(1) pnginfo(1) VERSION This documentation is for pngtools @PACKAGE_VERSION@. AUTHOR pngtools was written by Michael Still and is released under the GNU GPL. The project is hosted at https://github.com/mikalstill/pngtools. BUGS Please report bugs at https://github.com/mikalstill/pngtools/issues. pngtools-1.2/man/pnginfo.sgml.in000066400000000000000000000102721514741477700167500ustar00rootroot00000000000000 pnginfo 1 pngtools @PACKAGE_VERSION@ User Commands pnginfo display information on the PNG files named pnginfo [-t] [-d] [-D] <filenames> DESCRIPTION This command dumps information about the PNG files named on the command line. This command's output is based on the output of the tiffinfo command, which is part of the libtiff distribution. Each line output by the command represents a value that has been set within the PNG file. The -t command line option forces pnginfo to use libtiff tiffinfo style labels, instead of the more relevant png names. The -d command line option dumps the bitmap contained by the image to standard out, whilst the -D command merely checks that the image bitmap could be extracted from the file. If nothing is reported by -D, then there was no error. The format for the output bitmaps is hexadecimal, with each pixel presented as a triple -- for instance [red green blue]. This means that paletted images et cetera will have their bitmaps expanded before display. RETURNS 0 success 1 error EXAMPLE pnginfo -t toucan.png basn3p02.png basn6a16.png toucan.png... Image Width: 162 Image Length: 150 Bits/Sample: 8 Samples/Pixel: 1 Pixel Depth: 8 Colour Type (Photometric Interpretation): PALETTED COLOUR with alpha (256 colours, 256 transparent) Image filter: Single row per byte filter Interlacing: Adam7 interlacing Compression Scheme: Deflate method 8, 32k window Resolution: (not specified) FillOrder: msb-to-lsb Byte Order: Network (Big Endian) Number of text strings: 0 of 0 basn3p02.png... Image Width: 32 Image Length: 32 Bits/Sample: 2 Samples/Pixel: 1 Pixel Depth: 2 Colour Type (Photometric Interpretation): PALETTED COLOUR (4 colours, 0 transparent) Image filter: Single row per byte filter Interlacing: No interlacing Compression Scheme: Deflate method 8, 32k window Resolution: (not specified) FillOrder: msb-to-lsb Byte Order: Network (Big Endian) Number of text strings: 0 of 0 basn6a16.png... Image Width: 32 Image Length: 32 Bits/Sample: 16 Samples/Pixel: 4 Pixel Depth: 64 Colour Type (Photometric Interpretation): RGB with alpha channel Image filter: Single row per byte filter Interlacing: No interlacing Compression Scheme: Deflate method 8, 32k window Resolution: (not specified) FillOrder: msb-to-lsb Byte Order: Network (Big Endian) Number of text strings: 0 of 0 SEE ALSO tiffinfo(1) pngchunkdesc(1) pngcp(1) VERSION This documentation is for pngtools @PACKAGE_VERSION@. AUTHOR pngtools was written by Michael Still and is released under the GNU GPL. The project is hosted at https://github.com/mikalstill/pngtools. BUGS Please report bugs at https://github.com/mikalstill/pngtools/issues. pngtools-1.2/multibytesample.png000077500000000000000000000002471514741477700171760ustar00rootroot00000000000000PNG  IHDR kgAMA1_^IDATx1 0 CQ9[ܠ({2*ُ?8Wc:`݂@B&@=2 -hL`?oO8K_+IENDB`pngtools-1.2/pngchunkdesc.c000066400000000000000000000012071514741477700160620ustar00rootroot00000000000000#include #include #include #include "chunk_meanings.h" int main(int argc, char *argv[]) { (void)argc; (void)argv; char s[200]; while (fgets(s, sizeof(s), stdin) != NULL) { size_t len = strlen(s); if (len > 0 && s[len - 1] == '\n') s[len - 1] = '\0'; printf("%s: %s, %s, %s, %s\n", s, isupper(s[0]) ? chunk_meanings[0][0] : chunk_meanings[0][1], isupper(s[1]) ? chunk_meanings[1][0] : chunk_meanings[1][1], isupper(s[2]) ? chunk_meanings[2][0] : chunk_meanings[2][1], isupper(s[3]) ? chunk_meanings[3][0] : chunk_meanings[3][1]); } } pngtools-1.2/pngchunks.c000066400000000000000000000120421514741477700154050ustar00rootroot00000000000000// List the chunks which appear in a given PNG image #include #include #include #include #include #include #include #include #include #include #include #include "chunk_meanings.h" static void usage(void); const char magic[] = { 137, 'P', 'N', 'G', '\r', '\n', 26, '\n' }; typedef struct pngchunks_internal_header { int32_t len; union { int32_t i; char c[4]; } type; } pngchunks_header; typedef struct pngchunks_internal_IHDR { int32_t width; int32_t height; unsigned char bitdepth; unsigned char colortype; unsigned char compression; unsigned char filter; unsigned char interlace; } pngchunks_IHDR; int main(int argc, char *argv[]) { char *data, *offset; const char *data_end; int fd, lastchunk; struct stat stat; if (argc != 2) usage(); if ((fd = open(argv[1], O_RDONLY)) < 0) { fprintf(stderr, "Could not open the input PNG file\n"); exit(1); } if (fstat(fd, &stat) < 0) { fprintf(stderr, "Could not determine file size\n"); close(fd); exit(1); } if ((data = mmap(NULL, stat.st_size, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) { fprintf(stderr, "Could not mmap data file\n"); exit(1); } offset = data; data_end = data + stat.st_size; // Check that the file is a PNG file if (stat.st_size < 8 || memcmp(magic, offset, 8) != 0) { fprintf(stderr, "This is not a PNG file...\n"); exit(1); } offset += 8; // Go into a loop reading chunks from memory until we hit the end chunk lastchunk = 0; while (!lastchunk) { if (offset + sizeof(pngchunks_header) > data_end) { fprintf(stderr, "Truncated chunk header\n"); exit(1); } pngchunks_header *head = (pngchunks_header *)offset; uint32_t chunk_len = ntohl(head->len); printf("Chunk: Data Length %u (max %u), Type %d [%c%c%c%c]\n", chunk_len, (unsigned int)pow(2, 31) - 1, head->type.i, head->type.c[0], head->type.c[1], head->type.c[2], head->type.c[3]); offset += sizeof(pngchunks_header); printf(" %s, %s, %s, %s\n", isupper(head->type.c[0]) ? chunk_meanings[0][0] : chunk_meanings[0][1], isupper(head->type.c[1]) ? chunk_meanings[1][0] : chunk_meanings[1][1], isupper(head->type.c[2]) ? chunk_meanings[2][0] : chunk_meanings[2][1], isupper(head->type.c[3]) ? chunk_meanings[3][0] : chunk_meanings[3][1]); if (strncmp(head->type.c, "IHDR", 4) == 0) { if (offset + sizeof(pngchunks_IHDR) > data_end) { fprintf(stderr, "Truncated IHDR chunk\n"); exit(1); } printf(" IHDR Width: %d\n IHDR Height: %d\n IHDR Bitdepth: %d\n IHDR Colortype: %d\n " " IHDR Compression: %d\n IHDR Filter: %d\n IHDR Interlace: %d\n", ntohl(((pngchunks_IHDR *)offset)->width), ntohl(((pngchunks_IHDR *)offset)->height), ((pngchunks_IHDR *)offset)->bitdepth, ((pngchunks_IHDR *)offset)->colortype, ((pngchunks_IHDR *)offset)->compression, ((pngchunks_IHDR *)offset)->filter, ((pngchunks_IHDR *)offset)->interlace); if (((pngchunks_IHDR *)offset)->compression == 0) { printf(" IHDR Compression algorithm is Deflate\n"); } else { printf(" IHDR Compression algorithm is unknown\n"); } if (((pngchunks_IHDR *)offset)->filter == 0) { printf(" IHDR Filter method is type zero (None, Sub, Up, Average, Paeth)\n"); } else { printf(" IHDR Filter method is unknown\n"); } switch (((pngchunks_IHDR *)offset)->interlace) { case 0: printf(" IHDR Interlacing is disabled\n"); break; case 7: printf(" IHDR Interlacing is Adam7\n"); break; default: printf(" IHDR Interlacing method is unknown\n"); break; } } else if (strncmp(head->type.c, "IDAT", 4) == 0) { printf(" IDAT contains image data\n"); } else if (strncmp(head->type.c, "IEND", 4) == 0) { printf(" IEND contains no data\n"); lastchunk = 1; } else { printf(" ... Unknown chunk type\n"); } if (offset + chunk_len + 4 > data_end) { fprintf(stderr, "Chunk data extends beyond end of file\n"); exit(1); } offset += chunk_len; printf(" Chunk CRC: %u\n", ntohl(*((uint32_t *)offset))); offset += 4; } // Unmap the file if (munmap(data, stat.st_size) < 0) { fprintf(stderr, "Error unmapping memory\n"); exit(1); } } static void usage(void) { fprintf(stderr, "Usage: pngchunks \n"); exit(1); } pngtools-1.2/pngcp.c000066400000000000000000000034201514741477700145140ustar00rootroot00000000000000#include #include #include #include #include "pngcp.h" static void usage(void); int main(int argc, char *argv[]) { png_uint_32 width, height; int channels, targetchannels = -1, bitdepth, targetbitdepth = -1, optchar, i; png_byte *input, *output; i = 1; while ((optchar = getopt(argc, argv, "d:s:")) != -1) { switch (optchar) { case 'd': targetbitdepth = atoi(optarg); i += 2; break; case 's': targetchannels = atoi(optarg); i += 2; break; case '?': default: usage(); break; } } // Determine if we were given a filename on the command line if (argc < 2) usage(); // Colour depth is the number of bits per sample // Bit depth is the number of samples per pixel if ((input = readimage(argv[i], &width, &height, &bitdepth, &channels)) == NULL) { fprintf(stderr, "Failed to read the input raster\n"); exit(42); } if (targetbitdepth == -1) targetbitdepth = bitdepth; if (targetchannels == -1) targetchannels = channels; if ((output = inflateraster(input, width, height, bitdepth, targetbitdepth, channels, targetchannels)) == NULL) { fprintf(stderr, "Failed to inflate the raster to the requested size\n"); exit(42); } // Now push the raster into the output file if (writeimage(argv[i + 1], width, height, targetbitdepth, targetchannels, output) < 0) { fprintf(stderr, "Error writing the output file\n"); exit(42); } } static void usage(void) { fprintf(stderr, "Usage: pngcp [-d ] [-s ] \n"); exit(1); } pngtools-1.2/pngcp.h000066400000000000000000000007711514741477700145270ustar00rootroot00000000000000#ifndef PNGCP_H #define PNGCP_H #include png_byte *readimage(const char *filename, png_uint_32 *width, png_uint_32 *height, int *bitdepth, int *channels); int writeimage(const char *filename, png_uint_32 width, png_uint_32 height, int bitdepth, int channels, png_byte *raster); png_byte *inflateraster(png_byte *input, png_uint_32 width, png_uint_32 height, int bitdepth, int targetbitdepth, int channels, int targetchannels); #endif pngtools-1.2/pnginfo.c000066400000000000000000000272261514741477700150570ustar00rootroot00000000000000#include #include #include #include #include static void pnginfo_displayfile(const char *, int, int, int); static void usage(void); #define pnginfo_true 1 #define pnginfo_false 0 int main(int argc, char *argv[]) { int i, optchar, extractBitmap = pnginfo_false, displayBitmap = pnginfo_false, tiffnames = pnginfo_false; // Initialise the argument that filenames start at i = 1; // Use getopt to determine what we have been asked to do while ((optchar = getopt(argc, argv, "tDd")) != -1) { switch (optchar) { case 't': tiffnames = pnginfo_true; i++; break; case 'd': displayBitmap = pnginfo_true; extractBitmap = pnginfo_true; i++; break; case 'D': extractBitmap = pnginfo_true; i++; break; case '?': default: usage(); break; } } // Determine if we were given a filename on the command line if (argc < 2) usage(); // For each filename that we have: for (; i < argc; i++) pnginfo_displayfile(argv[i], extractBitmap, displayBitmap, tiffnames); return 0; } static void pnginfo_displayfile(const char *filename, int extractBitmap, int displayBitmap, int tiffnames) { FILE *volatile image = NULL; png_uint_32 width, height; unsigned long runlen; int bitdepth, colourtype; png_uint_32 i, j, rowbytes; png_structp png = NULL; png_infop info = NULL; unsigned char sig[8]; png_bytepp volatile row_pointers = NULL; png_byte *volatile bitmap = NULL; printf("%s%s...\n", filename, tiffnames == pnginfo_true ? " (tiffinfo compatible labels)" : ""); // Open the file if ((image = fopen(filename, "rb")) == NULL) { fprintf(stderr, "Could not open the specified PNG file.\n"); goto error; } // Check that it really is a PNG file if (fread(sig, 1, 8, image) != 8 || png_sig_cmp(sig, 0, 8) != 0) { fprintf(stderr, "This file is not a valid PNG file.\n"); goto error; } // Start decompressing if ((png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL)) == NULL) { fprintf(stderr, "Could not create a PNG read structure (out of memory?)\n"); goto error; } if ((info = png_create_info_struct(png)) == NULL) { fprintf(stderr, "Could not create PNG info structure (out of memory?)\n"); goto error; } if (setjmp(png_jmpbuf(png))) { fprintf(stderr, "Could not set PNG jump value\n"); goto error; } // Get ready for IO and tell the API we have already read the image signature png_init_io(png, image); png_set_sig_bytes(png, 8); png_read_info(png, info); png_get_IHDR(png, info, &width, &height, &bitdepth, &colourtype, NULL, NULL, NULL); /////////////////////////////////////////////////////////////////////////// // Start displaying information /////////////////////////////////////////////////////////////////////////// printf(" Image Width: %d Image Length: %d\n", width, height); int pixel_depth; pixel_depth = bitdepth * png_get_channels(png, info); if (tiffnames == pnginfo_true) { printf(" Bits/Sample: %d\n", bitdepth); printf(" Samples/Pixel: %d\n", png_get_channels(png, info)); printf(" Pixel Depth: %d\n", pixel_depth); // Does this add value? } else { printf(" Bitdepth (Bits/Sample): %d\n", bitdepth); printf(" Channels (Samples/Pixel): %d\n", png_get_channels(png, info)); printf(" Pixel depth (Pixel Depth): %d\n", pixel_depth); // Does this add value? } // Photometric interp packs a lot of information printf(" Colour Type (Photometric Interpretation): "); int num_palette = 0; int num_trans = 0; png_colorp palette; switch (colourtype) { case PNG_COLOR_TYPE_GRAY: printf("GRAYSCALE "); break; case PNG_COLOR_TYPE_PALETTE: printf("PALETTED COLOUR "); if (PNG_INFO_PLTE == png_get_PLTE(png, info, &palette, &num_palette)) { png_bytep trans; png_color_16p trans_values; if (PNG_INFO_tRNS == png_get_tRNS(png, info, &trans, &num_trans, &trans_values)) { if (num_trans > 0) printf("with alpha "); } printf("(%d colours, %d transparent) ", num_palette, num_trans); } break; case PNG_COLOR_TYPE_RGB: printf("RGB "); break; case PNG_COLOR_TYPE_RGB_ALPHA: printf("RGB with alpha channel "); break; case PNG_COLOR_TYPE_GRAY_ALPHA: printf("GRAYSCALE with alpha channel "); break; default: printf("Unknown photometric interpretation!"); break; } printf("\n"); printf(" Image filter: "); switch (png_get_filter_type(png, info)) { case PNG_FILTER_TYPE_BASE: printf("Single row per byte filter "); break; case PNG_INTRAPIXEL_DIFFERENCING: printf("Intrapixel differencing (MNG only) "); break; default: printf("Unknown filter! "); break; } printf("\n"); printf(" Interlacing: "); switch (png_get_interlace_type(png, info)) { case PNG_INTERLACE_NONE: printf("No interlacing "); break; case PNG_INTERLACE_ADAM7: printf("Adam7 interlacing "); break; default: printf("Unknown interlacing "); break; } printf("\n"); printf(" Compression Scheme: "); switch (png_get_compression_type(png, info)) { case PNG_COMPRESSION_TYPE_BASE: printf("Deflate method 8, 32k window"); break; default: printf("Unknown compression scheme!"); break; } printf("\n"); png_uint_32 x_pixels_per_unit = 0, y_pixels_per_unit = 0; int phys_unit_type = PNG_RESOLUTION_UNKNOWN; if (png_get_pHYs(png, info, &x_pixels_per_unit, &y_pixels_per_unit, &phys_unit_type)) { printf(" Resolution: %d, %d ", x_pixels_per_unit, y_pixels_per_unit); switch (phys_unit_type) { case PNG_RESOLUTION_UNKNOWN: printf("(unit unknown)"); break; case PNG_RESOLUTION_METER: printf("(pixels per meter)"); break; default: printf("(Unknown value for unit stored)"); break; } printf("\n"); } else { printf(" Resolution: (not specified)\n"); } // FillOrder is always msb-to-lsb, big endian printf(" FillOrder: msb-to-lsb\n Byte Order: Network (Big Endian)\n"); png_textp text; int num_text, ti; num_text = png_get_text(png, info, &text, NULL); // Text comments printf(" Number of text strings: %d\n", num_text); for (ti = 0; ti < num_text; ti++) { printf(" %s ", text[ti].key); switch (text[ti].compression) { case -1: printf("(tEXt uncompressed)"); break; case 0: printf("(xTXt deflate compressed)"); break; case 1: printf("(iTXt uncompressed)"); break; case 2: printf("(iTXt deflate compressed)"); break; default: printf("(unknown compression)"); break; } printf(": "); j = 0; while (text[ti].text[j] != '\0') { if (text[ti].text[j] == '\n') printf("\\n"); else fputc(text[ti].text[j], stdout); j++; } printf("\n"); } // Print a blank line printf("\n"); // Do we want to extract the image data? We are meant to tell the user if // there are errors, but we don't currently trap any errors here -- I need // to look into this if (extractBitmap == pnginfo_true) { // This will force the samples to be packed to the byte boundary if (bitdepth < 8) png_set_packing(png); if (colourtype == PNG_COLOR_TYPE_PALETTE) png_set_expand(png); // png_set_strip_alpha (png); png_read_update_info(png, info); rowbytes = png_get_rowbytes(png, info); if ((bitmap = malloc((rowbytes * height) + 1)) == NULL) { fprintf(stderr, "Could not allocate memory for bitmap\n"); goto error; } if ((row_pointers = malloc(height * sizeof(png_bytep))) == NULL) { fprintf(stderr, "Could not allocate memory for row pointers\n"); goto error; } // Get the image bitmap for (i = 0; i < height; ++i) row_pointers[i] = bitmap + (i * rowbytes); png_read_image(png, row_pointers); png_read_end(png, NULL); // Do we want to display this bitmap? if (displayBitmap == pnginfo_true) { int bytespersample; bytespersample = bitdepth / 8; if (bitdepth % 8 != 0) bytespersample++; printf("Dumping the bitmap for this image:\n"); printf("(Expanded samples result in %d bytes per pixel, %d channels with %d bytes per " "channel)\n\n", png_get_channels(png, info) * bytespersample, png_get_channels(png, info), bytespersample); // runlen is used to stop us displaying repeated byte patterns over and over -- // I display them once, and then tell you how many times it occured in the file. // This currently only applies to runs on zeros -- I should one day add an // option to extend this to runs of other values as well runlen = 0; for (i = 0; i < rowbytes * height; i += png_get_channels(png, info) * bytespersample) { int scount, bcount, pixel; // Determine if this is a pixel whose entire value is zero pixel = 0; for (scount = 0; scount < png_get_channels(png, info); scount++) for (bcount = 0; bcount < bytespersample; bcount++) pixel += bitmap[i + scount * bytespersample + bcount]; if ((runlen != 0) && (pixel == 0)) runlen++; else if (runlen != 0) { if (runlen > 1) printf("* %lu ", runlen); runlen = 0; } if ((runlen == 0) && !pixel) { printf("["); for (scount = 0; scount < png_get_channels(png, info); scount++) { for (bcount = 0; bcount < bytespersample; bcount++) printf("00"); if (scount != png_get_channels(png, info) - 1) printf(" "); } printf("] "); runlen++; } if (runlen == 0) { printf("["); for (scount = 0; scount < png_get_channels(png, info); scount++) { for (bcount = 0; bcount < bytespersample; bcount++) printf("%02x", (unsigned char)bitmap[i + scount * bytespersample + bcount]); if (scount != png_get_channels(png, info) - 1) printf(" "); } printf("] "); } // Perhaps one day a new row should imply a line break here? } printf("\n"); } } // Normal cleanup path free(row_pointers); free(bitmap); fclose(image); png_destroy_read_struct(&png, &info, NULL); return; error: free(row_pointers); free(bitmap); if (image != NULL) fclose(image); if (png != NULL) png_destroy_read_struct(&png, &info, NULL); exit(1); } static void usage(void) { fprintf(stderr, "Usage: pnginfo [-t] [-d] [-D] \n"); exit(1); } pngtools-1.2/pngread.c000066400000000000000000000056011514741477700150300ustar00rootroot00000000000000#include #include #include #include #include png_byte *readimage(const char *filename, png_uint_32 *width, png_uint_32 *height, int *bitdepth, int *channels); png_byte * readimage(const char *filename, png_uint_32 *width, png_uint_32 *height, int *bitdepth, int *channels) { FILE *image; png_uint_32 i, rowbytes; png_structp png = NULL; png_infop info; png_bytepp volatile row_pointers = NULL; unsigned char sig[8]; png_byte *volatile raster = NULL; int colourtype; // Open the file if ((image = fopen(filename, "rb")) == NULL) { fprintf(stderr, "Could not open the specified PNG file."); goto error; } // Check that it really is a PNG file if (fread(sig, 1, 8, image) != 8 || png_sig_cmp(sig, 0, 8) != 0) { fprintf(stderr, "This file is not a valid PNG file\n"); goto error; } // Start decompressing if ((png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL)) == NULL) { fprintf(stderr, "Could not create a PNG read structure (out of memory?)"); goto error; } if ((info = png_create_info_struct(png)) == NULL) { fprintf(stderr, "Could not create PNG info structure (out of memory?)"); png_destroy_read_struct(&png, &info, NULL); goto error; } // If pnginfo_error did not exit, we would have to call // png_destroy_read_struct if (setjmp(png_jmpbuf(png))) { fprintf(stderr, "Could not set PNG jump value"); goto error; } // Get ready for IO and tell the API we have already read the image signature png_init_io(png, image); png_set_sig_bytes(png, 8); png_read_info(png, info); png_get_IHDR(png, info, width, height, bitdepth, &colourtype, NULL, NULL, NULL); if (*bitdepth < 8) png_set_packing(png); if (colourtype == PNG_COLOR_TYPE_PALETTE) png_set_expand(png); // The channels bit has to be after here, so that the number of channels within the // palette is correctly reported... //png_set_strip_alpha (png); png_read_update_info(png, info); *bitdepth = png_get_bit_depth(png, info); *channels = png_get_channels(png, info); rowbytes = png_get_rowbytes(png, info); if ((row_pointers = malloc(*height * sizeof(png_bytep))) == NULL) { fprintf(stderr, "Could not allocate memory\n"); goto error; } // Space for the bitmap if ((raster = malloc((rowbytes * *height) + 1)) == NULL) { fprintf(stderr, "Could not allocate memory\n"); goto error; } // Get the image bitmap for (i = 0; i < *height; ++i) row_pointers[i] = raster + (i * rowbytes); png_read_image(png, row_pointers); goto cleanup; error: free(raster); raster = NULL; cleanup: free(row_pointers); png_read_end(png, NULL); fclose(image); png_destroy_read_struct(&png, &info, NULL); // And return the raster return raster; } pngtools-1.2/pngwrite.c000066400000000000000000000057111514741477700152510ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "pngcp.h" int writeimage(const char *filename, png_uint_32 width, png_uint_32 height, int bitdepth, int channels, png_byte *raster) { FILE *volatile image = NULL; png_structp png = NULL; png_infop info = NULL; png_bytepp volatile row_pointers = NULL; png_uint_32 i; int rowbytes; volatile int ret = -1; int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); if (fd < 0) { fprintf(stderr, "Could not open the output image\n"); goto cleanup; } if ((image = fdopen(fd, "wb")) == NULL) { fprintf(stderr, "Could not open the output image\n"); close(fd); goto cleanup; } // Determine how many bytes each row will consume rowbytes = bitdepth / 8; if (bitdepth % 8 != 0) rowbytes++; rowbytes *= channels; rowbytes *= width; // Convert the raster into a series of row pointers if ((row_pointers = malloc(height * sizeof(png_bytep))) == NULL) { fprintf(stderr, "Could not allocate memory\n"); goto cleanup; } for (i = 0; i < height; ++i) row_pointers[i] = raster + (i * rowbytes); // Get ready for writing if ((png = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL)) == NULL) { fprintf(stderr, "Could not create write structure for PNG (out of memory?)\n"); goto cleanup; } // The pixels are expanded to the nearest byte png_set_expand(png); // Get ready to specify important stuff about the image if ((info = png_create_info_struct(png)) == NULL) { fprintf(stderr, "Could not create PNG info structure for writing (out of memory?)\n"); goto cleanup; } if (setjmp(png_jmpbuf(png))) { fprintf(stderr, "Could not set the PNG jump value for writing\n"); goto cleanup; } // This is needed before IO will work (unless you define callbacks) png_init_io(png, image); // Derive the PNG color type from the number of channels int colourtype; switch (channels) { case 1: colourtype = PNG_COLOR_TYPE_GRAY; break; case 2: colourtype = PNG_COLOR_TYPE_GRAY_ALPHA; break; case 3: colourtype = PNG_COLOR_TYPE_RGB; break; case 4: colourtype = PNG_COLOR_TYPE_RGB_ALPHA; break; default: fprintf(stderr, "Unsupported channel count: %d\n", channels); goto cleanup; } // Define important stuff about the image png_set_IHDR(png, info, width, height, bitdepth, colourtype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); png_write_info(png, info); // Write the image out png_write_image(png, row_pointers); // Success png_write_end(png, info); ret = 0; cleanup: if (png != NULL) png_destroy_write_struct(&png, &info); free(row_pointers); if (image != NULL) fclose(image); return ret; } pngtools-1.2/sample.png000066400000000000000000021272201514741477700152370ustar00rootroot00000000000000PNG  IHDRK IDATxڌYm[}c9Zӟm̪jj*22`0~ p /~ x;lTdUTYYw9aNfIqZs~c|ߠ_~GUsfNݓ1=g#%؀|pYlkm>|d5hyflVѭÓfˍV9 W>LVIŭ8=)eyͻݦngvms1A9K"ĈKi7~Oz[> \:*Wrksfzo\jj{ϱW۫'ݟ3t?Lu/?<ɓȌ_[Ly~0p$T?}ѹ[o_jۄo?_2uV*-Y]*bH>}jZSAl8Qٯ$Ps0xwwrL׬fwDC ̀'kb# DuumfӚR"L#2̄uS%8h<!afV9[-D@XBpH@%`l!D9*Fc1ɥF }+X(`& DS#dӔRvcfff3S"nff;%k\3*63D8Ʋ]$ԡb vUs)U#"0DApc,笪nDD$48}S~VU/yy9veDD ڣ@7w7.ܝoq׎ǽ}vsP;{B{~i 3*RJ=ܳzt""^pӵp ʾ[JqwrwCSUDd7Sj6EɌ]ejmWaX'8nptpPuj=lIiLg5z) a;{f+PA$^ rbZ?z Z[F}ܰx a3s؟m28sB``GL pMՇ]j\7Y bbf&.9.몪L&I<0!0Uz~W1;wnÐRߪuvyo;PC`a2!v ,L 3+w#9999Df 躎,UHYn=___(p \చ6j]hp ?0߿{WfqN_^=[>?g͢y?ICa5nU$7ԑi'U5E+l;כƶM$N瓪Ի{nfEs<ǧv`)*D7iӵk..7Kov}oƲ\Rrq:+!30sWŸڝwۚ?}AD$`LdF_J^G,pL @rpZp"\MLءpRefpeeAB@0 @]I#JnK_l~ΟKd Z[Rrud?A4b'vqUC] (C\F(wMB\Ci@E`:˷Y/ik_ AٌN:MC)Ȝ%Fl ANRaf'K) n(fKB&v77/;'fei29féd}ȝ؅Xꞽv9pm/U7B'.+lM5go~۫հMcDF\2M` S0W0@cH8?㯽v2QMB>M68^21 @AwrN`&oM;"9C-1SԬN@9I*H̓sF&& } flC;.GUͬ6o4@ +Lfx;¿/]]qU m,?O?}8 ] wor21[,C榪HAHL͌ʶ.1ʎN5b #0{6SsUAجμ v 'DD%kf:,wLbWI+05Ms2C˻PZ˟|7owWf-,ۍRݻw6y>Ҵ}ޏ~k֜uo;rf7"0eQ]Ecٵg<;uW"m…gB2v$;Y`|D1?ă|ܴeKmS45K9'3yG&/;R{3BL o"āquwV x$ F"qwU̚t>'74M&}@M=黟>{ '[<=,A kcN{XRpKvyXjQ=eSu ~!|;t{8;)*Q(Lvf.t9S%$w7+\A! I|]"k9w99\tLHpGUUjL-0fݹc@F(KK ԈFmdL 3#Wȝr&fAp2@1y:_/vNsvn׹A4 ][l (d] iupD%{-\8n^-93r܅0^BfS0  JlHU|i 3(2GH"l;7\`J G]FpH$ƙݬ"2M꺦$]!p\_|s[4M4X gPĺnoܾgy񓧏7'}] ߾3f22!P#qUK*,CI,kT'a1CD+ #dχJDž( alj:uFCܡ?xhq|v2~Ϡ48}[ui>yubzKK?/UN~hQۆ.61'B y:m7.VOכ4]]]M&s^:u5Pji==l0nֺr~~G?7^3Y۬am6Nګ$IM|xy14|&Q%`#2xøo,,4BER9G`DԪ jfӷIT̏D"A?:{v~~uA0l:1yN'R2;^ i%\_2z!~b '\cre:[e `_~B/mWM>|m4G7`aY! R->"c7GHXN`PsJ N`qm-@#b5-` e]XGGGwo g)~Y/wnܽw+g)w7OtuAg$KW.NOޫ7.{MtWNWߘNZu ,f6X={KR|*Nf6zꪙ8P>hoidbJwn,G7>9zzٗjg[*}|xfk,u,>q ;x2lm'uJ Ų)bp̮;j! 'vbQJWB3QR,y=3ủJN`nfo"[%  C N@ 62 &ʱl$ݝ0]Tka4)8G``;ط2u*?. xtM7_Ϸ}8"g3ݾD5*/,軯_B`uS܏+@!n bff>~b^琯ߌFtQKx(dF $!o^.fUSM|u=a!1hMCK3'MLo 6R ZJ b2Fa A8]/Ϗ\c]_~&5A|^.vp9V#Iv9Wy<ɓ/<~?۟Y^<:zLƲmnStROJē,Vզ[wNW : jTMg)[cɕ/gjMSMC~[mM7QSfm7!}Mk&k#Pg ! Q H"Q'GgmfT3hL?^4H׋>ʮ%b+]b^HBt$w+DU CA# A@E&5VygD΄ήd`r&("c &P"Ʉ)Usj 1s@=3k;F5Kb櫍{!5H }v.ζo}Cwko J|FzZ8Ql8S0õe^.o?O. 6C]M񤻑t, \gy9қ6o5fr-Q4ԍ巎VQ n)ER0಻\fڋymTy}EZb&[K Fn>r%pd j){P8S6'1bVsh D '.6ƼJELՉywnuMn Qķd CyunR3E 9w%榠:Bn$x30ynA@$C=Ii#"bf`fr {1 j pfE8TU!z0HA`8[ JL!Ì|!'O=B a%WCY "QXU4XlH_/Lo!K5[~\m=s RzR$La̦P^m$CJe=]"NgSk)VZ"QrR#GP`;(DCa9ԛ{f"b᧏?spqZ^L,tJfv]Ig>.Ͽÿ~O>8XRS'덤p8$cM9bq#]mfeyz0;KCOܙrdӶn|֫vv0OvbKfȂWy|zC=?nnHŰ1G?|;D̦FsY*j9O+#x{!,2ʻ`8È%Ft^@N'uҡ* Q^vı#`3I%w /HcHR sʽ0㸐SVsZּS:K%SXnmHQU5GE2O?ix>;dն` 0T- #4ZC<$G{a&GAJan|F~O䂾@)t+)3]n\V\L +bqsvbyaVOu3ր}̩ߣ}HhW}9bǸj6~z_J^LEB0ًzFDŽ2a"x߿J 7# 3Rc"w3L*ލT#_j.n2P*@Ōo8İz˃B $6]LYX.m(uC5-ՙl,&%>|q&0쐪DfpV 9#Q`F;- :SbnC5[4qlk!\))o4yL@ΞDn WDVWXahmL'ZO?s[wܹ{ν=$0Ƿo_חXWyO&43qnvqqaX5kr2RKnc:B9vLX ՜ec.0q0ųU~1XdV lX&w޼<>3kQ[XN]RA+k?엿Amz{T sMc;xla{7>|C^_e ǷnTSU͋I==M+9-0=п{Y],7ڗRٰ @-8ܸqBݵgYΖsvbUM@9WRdJ1 G{1so RԢB,UgAi@N+jPU)%-93rÙd ر/13 b4&"sBv2YrҲ!v@qrle+4:t}^_EB`BzWܾ7~z+GO[񮌹 cDXKh'/ XY ɮ ."v}~0~gj=cU<kIf)kN7j)GOv3 5v\y*`NvB'$ IDAT`J0 fV~s`_9aЬݴJ=3 M @4ODfYaJKC=`F"R`pr/xr/zуG+E+&[᠖^D޴Uռʂgt1{i7dUdL΀) LVh(.t[EApBl4O)nbLU$,WI$!0Sxr YuBVz}g添DzĊ]/*MU_q8<%!O,!Ę,` "Uۭ`y~>g9YhUH!6L0 v E@7$gdoy[l8?~HЮEsW~=m7`vO|I] le/>8Gxxxs6;nWJUv{'5O>Tͤy~>xy'ĮIB(L/2kb!U{BdTBAYIPO*4 "X F j&CJ0D#ept*i<Ҝs"`7U&&$;mD%'!)n*:lo7yV,"41UJ:3T?)c=;W]I(ق7ҒkJ+c]"DUY.S[KRmSbc."pCE "D:.Y|!c&xd;"$gY5C(q wMUE/<ܾ@~Isǐe\&N nQ&;6w(\ :JoZ|o;FpvYK1\E3D auR`9ujjxmI9nD58φaH1"OjAmJ9ez- nJ`"sb!p&݅E|X륬lbs˳mV73W@Z/'=)K;SQaP!Ѩ5ٳ![P-Dvf$MkLJDB]pDB]$gbu 4,T1dڮ(˿u5Qf8^Γ7ov˫e=;\t7%Dd7Cn'dVW'IYZ0{ێ#}얗%CNf*T 1kf١z[WM"i5͑lZ_tpxrqor{ل݇݇17G2aj!ՑΌ+Z)xzpQ/t0Tnc3f*>yݟvxC'ڪ5z88L/}-"v>LL<@QǘoX i8mNf'trr|*jJBxʫi\; X$ EДs* kT!BG̜Dr.jв$Y B@=;2$"HUtA{8j jt{^9yCuR"KuU"fXK%4Ix}kd&T)"1)kHϰ^[IrvkWIcnlpDk0!8JKCܱτ59&B6WF ٭Yrr9{(l% Y@2n[xv]\<[$@ 8b>_PʺVgf0R"'S.3K9* ` Kv c\5/` +=ݨ'- r2ϗr:P>|`n3 L= E07rwWu5d3HyCCC.TLpdp1*< 8:>^]窪B:j2(%.4XӦ.46LV4u})o׫tbVrmӐr߷bZ^]vvɍm6 ubrpta9Ykڃ _^[֪泃^+`WG7Ã99q铏 )޹~xv89=!f6:::8@刀mπ=#+CRx6c368Ot`EySp.R]n$tvYς>3@+KkyE(^#,O٣?1^Ԭ %RN^gYMAZrI P23A@Y+$c b1p gWnWf8&NOfS%jjjQ啝FȅB*p*#Ք `ID}64aƬB #v`HrΚ+ %pF $! A8?<]>,"K mߪTfJ!;X#9IF&62VU=_]7^_׾Knk sU ~߹wύrR432zsZM\ C~zWлDi&!m[U~x ǧvdui>q8y~~RvU-kOj׎W?xzAL5w0f%&bEk3nY}RrY l!0fw-wyâ@XVQEcxVAod*<:rS4A +`bpAg1)]ެnkt[b%Lm7COnΩG\"0%ύZ>Duf!"y1s5s( / /LcuS0`!2!wY~n/K"v(C;/nd';Z*uU E3b 7.oj}%g'፯|Vn4o^}{ν٣^)Yܝ?yt{1?{P%>Z+_o3ֽN摣l.u 6(wbrLb%>8=M6AB܈fH!4鶮1I|w[Z@ f82\:܋C\ %kF@PPb6UUO('RBNpkLb|J\M&86 (6>son^plK40p bf "xsw N;.^'HrGbɛxuJI} dT&پ`_Rt;{"/NA_O{f~޹' p C~H}e I~N1P`0t^Mo>.}^{nh/ JlJP<^IRZA2ɺAmu $z_4gLbMS̮nkXt$Qv~t 2mJx1q!$T );VYb]hRW<  U˫\φElPl{qEb`ΦTUCkًxkԛNf^0L@dZm(04sDUF9!#kABc"bpq߀cp'7o3UmHC?*CDĜf.?y2͎OO̴KC2M9$ՔRbGFq` qDu]֫_/Nj//>ztrr~:w1y./p$.Ӷ}֗t1__^JEvP0?6\YLp0 oWM/o)C0T:9VJjg?LSggv? V<,WbV5iΫyQRrPqeIlz=sO? _G$p}~j6' ".f+_'2X 懋0tIdȘimwtt@Du U 7BAK)׵^Җ}V<"*i/@,ϒTSPS ;)A &G.gѹ|x)b" 1J,RfZv T1¨ObG|1O|z}P5c7c+'yr04=0" Mݥ#sg3H?K>x f:P6s˾wk/]uχ:.hX໭B%LBI*pwb쮅;5B`'~))qUz 1fsfc x-i+^?#KtAi0 l!4]Dghd!puj}VI 3jJeBp!$,Iw0ˮE9ZuH"62))FnlR9fIl2SPHݖtp!鬮gCo׫bQfhzݶbvHt\\]&MW''ͺѩO_]N R[puprR1h۶N9ju~8#RTpXUICt` 5"mHvC>9=<7>G|?xoݞ7ìZR}_ܿ?zsjR?{7f]j>L*OWg.oWVWˋUƯv) _-/W4A ko<}7!EX5!'r7{)5lj!Xw ~˾n5VPDwSU" !?z0›Pv;< Ž=1te*1?l$/j d[::--RkCF 0"S` mmԨ4(Unb|]F!w(` 8R,2˅c*:J5eVu!{>±TX+DPU cG߈ *2QENU !Jvp@*#i)媽Oiiw|ayqEI%'S2c(."`l :(%2@Zk%ێ6+ j$͑x闛vsvAk 1ԑY r0x(epd:]hö֫ULO=-mjM(L'Eo#&)GY[ztCwyzx8zpT1~m~tnݻfgW룓pK[^OIj1?`瓃t}HPbLXWD c4 'W1v]ŀャO?ƍӭ~WƓ'W퍓['? ugIՀ\D,j9LE4l6m:}~͝{oM'W;~7~,WWmiq%'Y|ݻѽ[}t 4μ̒>v\M;Qb)6}@}ڶ;wnmۗX^afĈVTSF|99D'1o+Ab4LpcPi& @0E5W^sߣhY- ؓ5qWŰZ[ۢ#*KpEM3Mic)maH!z6@ :a2?;uv}jՙtR0O`Hˍ6q3KpDA uVI|^]ѴݔpGA>WcFq\⣲ёtVz5w3ຍNڊ]}>Yޅ >3)jAhND1OQJX#|bwO3bEMp$Avn  1b*K`SDD3zZ$ؓ% L61e$gCJfoV@!l,Z%0-}XynY`P"9ܿZa2,2[vW#\QW88 D^7ڙC?0 IDATΒcL2ȳ%; Sq#Wb sׁ|C ׌YUB1r ȃO&s"",PUGfX*ԥWCuJ:8PGc )c4R"˰}wŃ۫̈́0;@v[@$d b};&K@BDlx6^-W`)7o-J*}=~0{Oly7֮;^k7M}h&V\m9w{`!IUӏ~7O.Ϟ-|\g~m+tPW2gv^,ݻ鲻G훯jFW@gϞ :( 8EuW[vuq_g/<^+zw8Gû|g˳hvCw7yeu~tu쨕K i7(cJ lɏo̓G< A `Bz) !TnafAUޫI-X2`?ƭ"CcBYݕ$H$Qe"L0px@* 1@Py|۾w'8э)H #6sd.0-uœ\{-:E ZP1"~yp`s52a=B @T&2HF/-ܠSp2\k-)84 ;3 nW8B(@?䀛j1KdxC?.9z>pTUf읥@D#]\^M|/7wG+m#璐Ezg?9|{!օH6d*}>N)Y)pcyr ,H+'MKn[Nnƃ ҏGi*5b2gۤ0r,*,nNH j&@NVxRD)׶~(BŮ\YI)yp"Pp ujL)nPZtF\*7%1#\@H$T"<$! !Dȝ!**(y5" X:MoDB%iqW@h)(5Ue&dDTϵ4vӾ&rsuuqvZ^M㇏zryѽ;0<8/n;:\ԕ\^m 7woߪ !Цd8Lb*Whѯqa+Q&vSv9OF=5շzkHrl9S7;WOiauutx|{|uc:k};wOjX>fߺko}w~6|7 =-߹w74_oɉ#>gCggs7$KI݈TJ,PNf0WUpZ5@9wMYٳ;_+[on18 xN컻C 3/)QviPi1P+PbTK=QNR]3k2޲Z!" (HNىtWC/iX\LUXQ8H#lѸDtօC \@, +rv"AS1uBÐUtoQd)%)O+6yYylvH{j2$ɍ 6Ne L^Ob"mtq .>yW_׿KՃ7iӫqSɴ4w s4&Vt> TAX.*8"gdY)UPOqK峳n/..Ο Mw{~ _~Gg_xs?|R!M~W<|^كw[o5 —Wz@NЄXc\C[6'fj'j *oZՐgˮݜ=gw~`4d7bs֟ݼy{=~'z y?gV3|r}/헣ԟ_KG|QEfKu;yh\)ήyX&I)($Cr"0CߡkɮO`^gfMˡkT3xޠiB 0NHǸݶZr,% )%D3O $L69,FP2"ϧ%igwIQ%K9{Rd{}DFCjkd)6| ̙0.hOjLRXJwC}_+lj5eSў}A-RҪ&{qQt wS*BR߈“!21LqD"vnʄݼ!e Mϥ[DN \%3R*\J~Ǻ2rV #/L6%K%3+wk"xްvHƣU^4J܍(:6d9_'h""Diss<iF5{VEH(3U=@l,  v,,݄S8!; X s2v>)22JCcVkH=SAV Kb1A FP3U;99 P ".$e `ygLu`<N3y;JA$ncS<$qroP!tu:h lNmvپ_Wry<9gVUUD\5-WCC&ۭkpD$ċGOW)3>}ڛ檚/?G[?GV'M7䤙%8Փjl޷=Ϟ^}j+q]5UwޛRv'tmHYӦ>VŢǯwi]W~k z|; 'G7η鋿-W?A??ޛa |>PPY& P=ᔅn6< bbB  ݲ:.l{x}̓+UҎPE)9Q5ƆQ@T5h6v@NFkb00t2p8]VU3 ki2)t)w23).nja]]]acar LNJd B 7ߑbS[TcNۊPv@B*ԡ+U:VXwesQeaa?ޓfƻv?/õ^Ǡ//dW#P:9YH+a$q#RZj&65w@ͭCl9$~LxK04 a6b6w.]94YSk ,Z O'}®6BffȥHJH!I !(?Ie82ηg|#g-sQBj6cHۄc(# p%"ϩ rt d2d-r}9oooAƒG8>G?22XOg(N&O߿ ks!"֥>pYFfL~H痛O`ι IVͻ;.UUñLyw6hN)ԋW FVzDma Lkg U5qdJf(HF0knwyݹ{|zfW땛C9{ @nn!XA N$4D\oO4tnU5HuCRm)n v&"r/x` 39p+L.ƖDL;߂yP]T0/tB 1lD\ Ő*0KTia!'%*{ }>#Eҟ\\=[hov"HT&4޶d|c3~}-8`DH1K1t038}7 i08y(3;&+i;QF *vytw([|Jy{I35^|G (6>lZ"n"(e&fBB$p)0x͔S iG[iBs;-]UXXW>sd<\_׊?}"8!z, "msQty <6PEju"|NU<* 'a!g%f3Ӭy<0u6Nrv]bL"*F,9f=4r~2\'8ĕP3iRvQDrRTbmo|W~qVGT1m|w~ɣ$8<^n`8|vp|xPIh޾s޽{~l6k&UUEPih'tp&V ngùi*_o~rZ&B8 .mew8NOtsNG˫3w}KȓI3;.Ʀ'ˉ(os^mkL1TMUQ56}Y됺jbߴRMtXj!MZ/ѷo޽>l'px!ql^jezח^8i_/߻u|d[Lz5dz쓏>{jN]Y{7Rsz9g Glc#AaSm$h!)Ǫ24xJ}kd* k[<~4\`뺡ZL)at0.X$0\w[9"FToh/7Wlg4Ī&,*6wXFӬטc r*ìA$+ 1 %RP؟\{;#ޟ*> %81FUMsOcDZilܸnyhe}?yЮ79w'1]Twqxה;,cG2>=V_8^e¸F31UkM{)E}gc#w#կm\ {i(C m::rH%Ndw9SV.wmʩ9'dzPf%1nXeIBs2"ఽgzmT9NdfABh"2Yv\:!NܙTZ`>˙.U:R aC<hB@֔ԑh0! BSWfT@A 0fDw5-Rȷb1'Zr<&91 Ä:WCV'dΈwXYt|. )篢,+lu@FD%d汅(Zz0L\Єȣ86YHV/a;Юyh(j-ylz\F{)`2p/2cݫlȹϽ(@ Tԉ=HE6'I> Af\"FL#VNJAcv W[<$ X,146&۵c. 9g8F@OZgbz,DJ Ħ 9ɝ0t)g!f16vբ#b:NffpM!܋gHoc뷋a`W JU*D:ܡ4%b 0$~ᗾ|U'q2Lh0흶C߶r'?㧗Gu|ͷͳz~4i&_Cy*>:>|.D3}jyg拉 e`ڰapoP]DƜ+;7o|Fqsq9oUzrz΃ǟG՝[6o2iVϥ>r>z]?O{O}Yxcyk)SLw^___}ɔ/otn-gVS~W>~N=yh>ǏnW~q֫E(R쨪f0껡h0  s4* 7r(0t03>eWcP:ps=fP&dC~ݾ?{Iz7gB\aAx ' lB=> Dd$5$ΦfCm\ gͶKJG7^yOJD$ 40cde03L.0&àBwYMDfn?Fqt}{0LھLa;}?6q_π~q|$O j_r]|[N IDAT~~ HdG=\`NWW'p@&ɈѪkiU a^´){(쫒Bs5n6 A(ĎX9 6¶kSuKɡ 3Q(j];H0ެFFY}Rߥ4MnH1y`~&DLLpf&>8fºʸbQb.m՚2 BńsQ 3M$w:Db R>v 6:29]^;tdS"2m0#MU۶ $LH9Vf: Bݩ+A`=+'?U@ s̡+^`6o׫tV*J,Nɡ,]JC:rI6Swڳ6kg7Wܺ3$122B 9v[oo^]]=zɧ~zyy:;??sWכ`:l n=~;}H zoumia"oҏ[Y/v՟~k㫫?߼WgWOۇoO=xvYF*}>]"w"Io޾p7?sמ?=tix<;^mr~'?g/o_;wn$16i`x㵻8myƭIwOnI\?>,[0]`qwY 4j<99裏:֗luuail@ sZwqde;;Z7qCof@,TuH>x*ݘ5wMUʮ.÷;7UmL@U#gHD(& YtbPԈ 4pB1,gudBI <4/6nLB3뺾JXY68|>&fp1&>;3AZS !@":() ); UI% &M`(*ƊbLUiUMn6CR3/?E!kUM=33 LϳREs=Ȟ4y$@D6_"DP3M/.MS ")ء{Z 'nVUD ns8[{{`Yshv%R#jlD MmZ57]I,ݽ|ѯ֟د7gH|us^nΗە'^;- W8@yYF={l+W'g'a=O}S??q]37 c?_羸}m==sof M!$v pΝQqӕ.J/&Ø$)i0Ч+u\,>/~_+!w~-*_yӶ-Xti?R9n tBXtqރOϞ3q3=3vEUKSJ")1À&9j>;; !Cb*k$dXB@F*,-qTǘc>@S 6y>_|b1=;EPUckq iRL IY ă$DM=o+&cܬ慛/FuF4P4,(Ad"bH=5D+>xKfp "`#&TIhLPUдwœEԜ93UPc'Лk?*?- {Z֮z !_)[4COT!WDgxR~KTT$"l^ (bI1E3#CT`?pSǿ>7+ $hEUk ]TaY qĥ `*4YA3Yϯ>_/~Wb0z~]0͈'ݭPg'I{o~&;:f]MBؒ!xycώjWQ:Zm>;~7⋟G7޾:v V<[VLo<_mmU~򌥛)rZD3Xk]h{CʻJq01RGYsYB s,)뎼.e;lO%x!(>`B7D`Q̬(!%1< UѩjV4<攲 y0(D)t@  8d1kq@ӕ@ 4 &d@(@R./r%\  |UʵH9;@HMB y%XL.?71If1∔9D,vmE#PՌȅ&9HCV|<߮2K;`J=y҈ @5˄.dLj䈘j-]`W^|棟ҭ.HHǑ:c/,d_`BFN@Gs_}oOGn2xz;C -ZvUݟ\&_K_{|v}s;vUkK7>a3SxՓgxGi `v-){#Ʒ~ iO AB(޿s<W?/|rv7Gi} Y芟GdY>== _'%\}Wz}ݝ[ͤI]1P2a?z|zں=}v(EUg9X4K92s{O3m{qqvxp&m 1N ejfcj hlqNjf cSW?䵛7n.'0laR;-w^5E-Ped&6n7cڎ lN/|{2<}uc]W&3S3|9A2n 9'EPKnu3ԵL&m?~DDF39/QV[Ph_YR1;߮jh%kH+kO0LC(?S%G\k\ɱwp6MbAjAE62%#IƔ&6R)@;si_/!'J<#!do,{Ӏ@dlfjB)'/1+){Ƙ }@j)vflL\%ZrHY4*(d&@` S^v.Gb:B"X&$5cD#Y@ +`K˹#$k;i'TPK&!HF>MfSM Hm%HYDE5e<^ΦbYn:В7,T.wHGˆ2Xmp& @ٳɤ6O77Z||Sq@؀`wZH6Pe`H"*Lg32"ێD'7? ;GU0oH78n_Uĵ_0 ~[_}W[Ɵ}T'u0[rL|>ͷxo]tc4fppw|GaB=ì=];O#|q)'pU1VU/֫F{Lڷ)ʕō/\SWIL!OGO<8=?w! 1`ݭ'I=2~Ts1Q=PA1i-3jQnׯ/DҦ[)zTcEKX!Em'شYAO?WOnYv215-Oav5|Odt/ 0 &_dROV6}?d;i'G$Eդ Hvo2Pu>3" rDαb2qA2a:f)5WF]H!xOZmBb9x"zBČ9Ng8drb) `GI8J16Cy 9̦0L򘶛vPAU@"+ts0P dȊY6zq:__埿KOu!Qiq?پ{bwD݇3&,GR30ϪBbV3YP`F:?Z(W:CgĊriUO|]Wnn\S!xrdFC>0BJӘE*,s4>a`qਊ&&@* 9*hD4B`D2ł",FwyǎسcTqp 6j( UWH%ڑzb^  ؙ**C eFRDT4J -8\X@)Za.xCNZsFLHFCATd#!f>;?Y?otjM{:t&T9%kivQ!3rGB*K16nf^דPH~f&ͱ../ӧO-gm•l|luڟǛn{_yt⸻8N_r,f_5vf/׫b4^ryu^\$M1WO6>~tl~0]$''}pvTnfM?=&f:lqĀ ,zѴMkЯ7l܄vO@U&v}4=QaRGO>x _5i7nػLE4ۺO|SDh 0]y_mk L94 jyk~nWfdF"EahQLt33PʋlF^MUށ 7)fv~P  sEdLޓ}Yenf;$r.x41g$(jC9Ø{WjDJZaū`dĄ䘼9G;nCc׍: H&paru Mu3!1~Jg(gވgCP//";$F&pPrhzN(nZ̈hiG%PEقh|Ba |"N s_k%#m J3@0 #{Ǟػd.8dЄã7]Z7ϛf.3#͚J*'Eh1RzEw;K7Eӈ*!"%55cD6#P!.4TdR,NzٴL$)1p\M>1AoCĻIM6R+.Ʊ6r{\r.!ѐAOj+"vff 4"66PrnwyuAU2BɴaSbVWMմ(2 $jbbrvf$Bfv.0fö襁;I2!;jP+ZMlI⤪j$k IDAT28%NDXwk//`a1M?Z7}&j狺dC@ $Yi'嗉sVY䘉ؓ#dGN susBPP7iȰ݀HSbZ\;H2HZ?;yp烻٩.8#]gu= =y|Ug 7ӹ }fyC+L8:{b]?b6?D@?z..TGQ,GW\9B4}4,k ]hz4{f::<{zr8_@ix\^$}?QR MsZu;єr$vn/Wդ∈:cdB E$ H1|g'~ƏڦK\IQ1ͦ#+6ɬvۇ:G>sݎh& 98[^Gt纭tmC5Cmg)E;Z+m&Йwm[U`t]U3{QY>#O$/s&{Ud8qݍ 0jB"W>8Wau>l\^/ (B2i'FqeYA!(fL!xH.Č jO9"DA|@ ΂cFD^"t hx!RTn鋆d }[>Qi.à>$HQcaԜ1z*.&ǂ6JeP7̯//fW)b :V-*eQ}]ך:a"b&b CH"%p@R< (̂7"%ENё'$5KfQ+B㼉sqt48H3cb&sL%5r.d`*;FgF Y^zEhlSFnf춱gfLbfaw#IbFL(Y!{!)*fB蠕9 fK9Pq9.x߆Ir!(WUOњ!QV7x {n.IY\@Bp5~7Tp0r6=*yj_9dȆ(lg_W &wr̚S`s ! jRLDЀBtںr@Ӈ)KUl:X/fb|KtqTƏV/}_t~^*O̟_}9LgnĤM;)x/J*6j{xԣ~~[~h]owY=F+,1./N늛:H9%@1KRef|s67*CxwG^?K/?yo{˪3*lBeժԓمzӕ=z//.>j9 }٪nfb>wκ~ypP-7nZG߮Z~|UCtOkcC,d,DWRNJ`(9}89# +Th oή߼.\O; #p@j x5+%5©.ub6c/v 5:;UD*'s/~idQ |H F`bY![ ;EaM̲:c nU_OsVS14`u;>bFhq쇬BLQ(9!obr\' ĕe<}rqqu]S&Ӝ6DE 13}9<,:$b,K3r4J 0dE.k/kOQ3 X,FK ><0[fW;?`Jibh09%)F+CJI*f#a9$ٲYILX@CixāziΡ ZП>[oѨ} W~^—`:zf5aU[D~<.t1CYv |vo՛7%/[_ܷӄ}sGjUE2 !;88?zu+/4o|ͳ3Rk ,ۘz Cg?I|oo1{Nl,.T 0nM~;((LՓcNETTUrc0\(ŴvlIǭst|bg{n( g")TYiG1C1;s:h! c´"4!h>6S&чq0IC˟\ldTӧ5*{}+y LAQ}nAEGCG/|`qUf 9TL 9GI& 1ܜDr5I [PWvZ CfXPhO-K"Ya?Te,yԿedi:!bA5(c@{*t7n_~oorZ5"_y@͚<~U\Vd؀:5Jb)C@jG=gvZ׵P7'&CSN))$Q$eC1Pر drx0cuL2]Iə {q@90& Dl&F$N Fh$aOT| TU+ e%VVf;]8AZ~;3rڅH! ɱs޻*x_W)Vhzm!c ` fYuLλCS@wf.05\Kp33!yrrn _52Ts8]X𾪽6 PeH""Tf,28L,)11]\]tO.obպ+ݓ`cxV׳ٌ ALZB,}t|袠3$l: xܼ~]L'q׺UE %#1dR$)41ŮۦKzgI&g9O=I1kffJ`࠙֓yL/\ 2q<^̠K/CDLjm7/رӔ|X%81 0PC`瓪rDyµwydq،.g秚FL}U!PɱhwKDCU_9:ǜ`$=;9_ C U#d̪@u3mZ3=|M5Y.ɢo@>\zY-e9:::g>ݏClmNCd0KyS'Ϻy￿vwGHJ2ucj<qWA 9]Y bQEqE-"F3)asU%f `޻ɳf`6 b`F:OW+4]v 1v7dY࠮jD&1Q͢\x8Kn&Y)3dͩ bR, cVy)r^T197{#jiK w'mm9C.qvdxP6.U$<"x@_>Oau"|H""&#a2" !8&|yW>U\:;6XR׾]mW"=M*ώ" 1q"aU׳t>Ƌ1kRHPj.#a(&!PBR (`b%4#Y `Fy/ D E U b܍>ЌsLL B? vvR;N29fO|дPOod v0lL{(C1eD옹..#@,phL`烄#68Fdp]䘈aƑs;Uu쇾_=*Rf]PdDlR䡇7Ƅޓ#V9e.P8Ju..6o9V'W]v-UjvbM -!$ug},nYW|JJg_s*#W+r \E ,ƔR)g$ vαsf!d h2ri.N2 Tx/'3%qm}-& ?;()KV%1c B$;xCWxxtжAtPUm3es P@7)HLfR01왉cCz˵h1[hVM1$L\RQA QI HMITLt$ Ogd1l5BUySGe܏R ow"}+FEsz{nG>zy3vG 1źh߁C+`4Ÿ>O<]Sc1F 051Q"sLf2]dd}q-UtAڅ=Wnʙ}p+hk Uq03I;ɦ9 dٝA*0`[O)ۮꢙa}6MÇ5x$&`0PAw) \Q mVU3*~&h@ ;i8(!'캎&M]Fϰn_a,Ci.-&刔U=:$QP'l:1"cLeLn (4fjB*`x82,v.04&JޫE܎v =f> 98IbRi9Ub1]%KٞGS#{rXDdUjs6Y>lכ2m0G+9y v#KRue *M1ݳu=# .. 7_9p`>;_q8OvQ!e~6ϏqU򜘗ˋ>}䠝 NrFeߡ?x\>٦ngn" :h} ͘6}^o:Vo òAJ  buj_=z%:l{t|Ǿ_'yz2I; ӃZ}/qrh̪ ĘONriAr7/0hD9&lf1ƤvMuL~=j&'5yF& Uc{}\㚩WP4$0faWA(:4Bvv~?r0|GScb|&P$1D_cB|:2(g,HnTl8닣 3 **Δ<]"0CD&'%<9jڵ}}2ݷa/!=~+\&.p>WUE~fhw.߼}J W#o}~ ^v|=eMNTrݿhfYDD@mR"$Q f8[thD޹lsȍ./ԥk'xFv"n.F! @KDYTj&U=kt1^D@f;jpPU윖 0M%.wf^Tdm֫q{U&2sDT@BUURLiǜB909H⼑ˡ"l.'̂si ,l#͎m|;'Rۀf }ԍO͚~Es":˫Ϻͳl+@`6miW?q.ԋ@{w^ħG߮)8*>ҜjEL sţDC345͚di,e chZhC5 bִðZ<{VUU]Wp|Bj</mݴM3 C(~oy1XMOxQ(a=`>],a[`{ڍSD8 z?;X$H8lG@"O~3О;p~8ѳUh {}nY{[;j;weGJa#f_ ##Ŗ¸cBQ82-|s_*=>W_{piNIUs9ePECP%ǐdO` jGkGIց<h3&56" G.;ԡ9TYrւGCPyV6T%ҡh" ;F,*"U$i1E& L@6Ɣ9Q9"Z T} +:EuP&1 g0&uwG%dR_PC݀l0MCWY5"dܜl7'~!p/#T[Y4vݸQ?v^s8x|1 W1fRAߠ 0'ԡ2  : L-Frgڊc>TUR3͕c07ŏw>}zxx0=:[7ex8~6߬7c6cnGYRlV0; E;=u 85:[_oIlA̖ IDAT)'d(TDrl,9{xLqTʇBmW=9'?EG&W9X3@F3WϏE}?XUMTcǀ@J`wy჻zzY~~yv8LB] e?y*GO|IL )chjh>N ;sq}]{ `%gATmfzF%I"U,|!Z9"W XC7 aIf/ d@CS{!#]}48>x2I{͸)F&IUS9!+-% {M5`^Lo޾nZ>t*eZ0\vXX[Z$+!..2C"H=VAV)ЩfpJ> _g>Icx9ϖ'm $9)1AH  LP +VjZ_5AWyvnYlbݴ!TjBDUT $+k&ӺnRi6UPe˚]p(&e_T ]:@%KA!$b`(inG-#C1b-M448*&܄J$@F?l2*v +P4\J~:`_v(Kh7(HL8? u+g)[nC) aBmgbO1%+O2~A0b&"@*yUev`"9gI*"09gѹ "qL}ߧĔyL\XqĔCDTX-@.0`XoƮҵ-]9Xx"@s0|]k$0pt&n^mݿ!n [nw֏z9nW&#:Ɗq&Myb9 (8vҶӶ>8`$ DnmNV[jmΖOӘ8PsEBrtIӧ=?nuRr̡jt ک'j9Tbx֋Ϟ,[* /IS?vNQC&{N#f U*E<Aնv: aǏbM޿O<;d3`VF/>t6۶Vu)1'tFĔT-j7/ӓ_WI5c2i>RU_v{m+/p{N@tLQ>pãlJL}?l6ɐƨCA`G~ǥ,UU$05[`8Ǫ]ػJ.`Irz(ِc3DEPb.7eLV#bM`2H rBs]$}HHF+:5% 9 m_ 7n]z0B 4}Xj1T.ݭ]ʦJSX8 f"c_v?YIT ]4GSC[g?_ܧ?]W>͐Mÿ|l{O<7 n̮_zppf8 &jb0 Tj ʀOr_7CuunfQ'jv&QSC1UuSOe%1 X6W331sԜ !yCbO f (x s9m+8Fbo&(ڰ ^uθMTAxKr*en~wvc/G7=Q|"Sb* |2 üjY:B8UU@)순+`HĈ9' rL]@bBc{3!H.eƪ b\ ,UyC>4kv$q0;C#T=Ϧ910Oن!|v݋g"0 r)3r^y%~Рq.֐jEtNL"c9q8./?pv}qϖ'φm;>w~Ad%s&LD}}w np+'3jʡM1䫺Ρjz?>}p8[US$&`^@A3ŪIB[얯j޸PLHf"}wz9? ];ZIJܛ31I"9thhYǔuqt6gqaǓ=|oGO&G1FH1)(0MU鳦 ^ng$IpE+~_"jٳy냃90mM[~#n|?w}v0tp*_qqL9A&Xnieq8eԕ#cv*1 27%5F3vaCQ.kmj]zvRe#*~H{A"Ԛ;tmgL-G 4A(X5QRԜJ$"")KTsd7ӟx'Vu٫v|p h;Xb"0r <#>g7+|VwG;}%i*WU$  ,K̟|u9)m6A&_>b>׫|7_Gww?@Ny"2OBeClK]QY5|2b&r2in@FfJ Znq'-j'DZbAAD62(#drf#8BG@@aa V`L1#"9xLP3+:e!Ua!3Өҥr! ^H*t{B3Eb0244*q`%X ȨEň2FDt@D #P J*`jZg#v Ѱ$xeɩK/QBTbvkCZxhY #!#F"29fH/iq 2"3(@iu0Y!*3BS4$6S MYDvm;y3K/B{說OKH)ZNbMwT1^uƍx>Q-Wɴ}wZ 7Acy? YwԷ~w|ݻﭗ;[ҵk6$g%˓P#vzpt&`D9^17|gqt=?zܟӌi׮xCE~\?g1!iiO~w37<:KQ]73bWF1DTVT%i}Y}kj!rۭz~ o~i?99—pcmWsec0.r<83!faa(7M昼8a{zM}oqCPM8PbrVZ .Mߌ4gϜL- {`N  @  qb] #`#HvMoݻ~+7\5'OͤlVfwR&*5($M}t,ۭEJ Hh)+7oF0ԏ 9 EL qg>~:m?1]7ʯ~~rKύFXUY]>\$yzLJdzLWgçO>/_ist<_/})<|[7ݼy6ghjŮa\R۳=w/YSfZ&;+#9DQB&US7C+fej6S3qc̛($m4-WՖŸΧ:2uJGys?? "s_p(,sspC\u6lWgchot=ͧv~88EME̱ 14FBr)Kw zx1Zl%9O-ߦX96$I$v n—__zUpIݜ?z|a{"i?^:=}zƫ?^]v?9FM jlu'Y!EKuɆ) ME:p0B囪 Up#1228g,9r4rbvP؞NƔ1)s A]6 * bVSrD6U UQ)RktG3CG әCiɻ,TmD^{!>5pg (/kT$cV4`j%Jcfo]9ώ 2"8rJhU!U+;̒!9tŠTD@ B%49aS Y̰<8Vj|p11qc':FHPRDHDayn.IbԜ5Iiёs6WWd1uCUՃ+ L FqaԔ,AlBV~hxN6ͷ~Rz{o4v(ك03%Lɴj8mrp<8?A4D>PLY<;K:n6n(bsry\UW>6L} )muk3OΖ~:=]ރ޻{d>dt}# uڮ'-H2loAۜ]n6#t|ٯ~j9ۜ}` JΪԀHT,xFP2q!VMKBǡs욦NcR_3΢EFf\WX͘&;M=!q+Oاr [_!UtphL#{zλU'{G kc"~ y8s USׯwEhP fM%1# P X=(9pA3{>ocZo|Tn&"YTdZ3#Ln*nכm׏"vQ+y;Gn|G]|nVmя}G]q`vDT ;?Cn,i𭛷qԬ?r%u1j$:ۃjHA٥7'"blZ<98C01ŜF41n6kّgvw{Qa("W7UV U0Tdۧ {&FΔvDLyyRA^#" 3rV nUD)n'0)%^WZ"[#hB@0** :L&AWi;r bT9;dY1!-Rܛ 抙^!n"i8("dAsgxh1}=Rr^}ς9Q#d1puqꖫv11:$4EIdȼgWP mUX 󤝮zU?_,|99VuCqL]!A4Q[ϫ铓~{}g'# S8 L8MǘvC _k1myd>{|a)µյK[#5 Gf0jSeP@f_ %;UwUWM .ֱs!9 3~ZVľhgXn?bYٴ9T }$amLɀDs|Xۊ7a(!W~ܧo߾ͦޝ+f eݬmJ+7Oź:z fُc'>|æ$|=9l a;ʉpΎJHR/ suWU|9RϖL3&$zԈȱwlfM"8FST,W!_wԫGr~t=ƈ - ;@ITEkvmhRg F Ilg$̻n+Czti刈J ^]L=0ܥ8v#+Ka0.<0&(GPBhh` f&j ӺrP}Ҕ< <9D] sk Ywfdfq4_P9rNERJ"bԲ"쒻~` @Tly;aclꁊ cp't Hy\,ߺyڵ׏NcEcF`z1& Ih~yt7np?x7Ҥ rfSS54E0łkGas: ZMM }4=:M`̩Pn H&U䔅1w@\}d>ߎNm[ 38_75dcwvۆ_޿{r[{]3? i IDATU67hgwaL q@,Q͙IFd>bB];~뺳浛n;_~*5L9&HJ0D|EHvv)0Є!rI6 Xv?{lҐHw@0b>]o[ S+tu٬ס F }eq)g+&Cޥܸy-Ʊi;o]{G3BE.<"8Yv9I,o* @tbf.g@"Yb2#h+ 4B /Ca4>ן=[/ <;^c`Eec'Λ.RlB>o ET>WE';aFG|+_r4kܾzރ?7co|8UMNWc:247SasxpM31@NtCU\Δ '˻Pѓ ! C<7| U_D*f MS9ODY5d ŒINyq8c#sUtn}Ҙ8oBrקsqvL :(12AˆD谧X 7U|+|MYбΕ0ڟx*£$&,^ (wifTt 2)@J ‚#0;qIY!gRcSRXF.yM KQd*3]c?33{_rSQf4&$V煝"EgE]JJlq>cd@f u=Ø%'!"45v0D@o&|FZ)W"[,f\{'lRH{xB"$2$sl1_ح5h,.dBYPrC<=9޳{ˉoQ ~ۆ+gQ$;:Q[ᬁIGԀmܤ5r&Hڡiֽ;N {$=~?k<QhY3*pSovo|dPQ {2@@j(mOO>i+f.&|v~m*BBUعv&pFƄ<cZ 9.Tu pvv1?<0ݶzW4 rZmiL7g1npm+ }ڶj+`4)YJ*#r*Dɴ>=}/~CZ4gEOLL`"5,YJhAiSVUAV<U~2IT:$IY|4. QE$k~i4d%Rٚdr.D++ݶq'*5zX_l{S[/,V. ILJ_Kx{yDPOjv?kn9;jsK*:3O&K_7,fݕ+_18vggO-R|7ϗ'o]zB鴽qxmq]PG֛DЕ4xj nyUV@_z`/p9B|nXJYME v1dY8(B.}c8zv~r%~ț73zlg$ }2;͸ǜRJeifN+ ,^q&`" 2!VW-&. #GONOPe']%UrxY@̲ ;".jiԜHPcudBn'$#1#,ZH9d: 19LŒБ'f I '[jLxs5WPBUqf@K&TxJJ(e p8\;< \~ qB#.&׏1Gx8bg>}l1;FqN'7~dbIM3LLm^榩%Բ/0?e읛fl6n6yW1gαރfjh00xU Hqxi4Q繙\ o^^ī7ޣ^GǏR4zeGx^^ j(+ylxj 4Ns >2Bpq'ӷ?x]By\q}2 }#_gO-ͮLl {3s*kP(T ARjJM$Tn!a;p/Bp CvS-(K  ԘY9L߰^k>7+n ndV&2{Z}v{睻G{`2XQ3DTC=$ՠmھo.ΗٜKJC͌ "ֿs筽Ť&0ܼuxx|tzv2dn 8$U%[ s3pk֋/Abv虽!H)VT&2(Ic|$`Y;jpp0!^^l*^IR̤R`YM19P*,*641|Ӹ CPHZC@(;~|Ǘ8"l7WN vZE2ʀt")g 2Oڠ$h1TYikd0dl5Kk+/]?:N>{x9W?oϏm4 m^Wu"^K>*%cxj^]?G:I},Y4Yli{>.\f\tQ1OO\wpG kOi2IER$ 0jfQ-DÆ *F SVQH r\ˮ""W,IrE29`e.6T "x6X(: D>84nЀ1&[0`ap-rfA$j ` !#ǫ(35d^TCy`ʚƔl)|=ޖ R@ܺ AU2 ^ъZIn(6> EчerΌ8ԧiN6Z,N FpXpĖxv;D(y`0$n`p XO/֩`l'C]޳wb*ֆH:Z@(B\TLU%)VvڥNmaG{{|?Kܻbqb,h(NJQ~5ضݘ a8:(ηxZopo 2)RQ8) Ŷ ,07v0Gw6Wy77o@ĐetAPa7)msdOn;q7M&nh1.[&LO/ܹ{y0&$'b[۔}&f>LYơnzIӶ6JѩbJ2m'No^q4^wZ,4`3mm< Ng?kvElNbζ~ķmNEXF)ImΣ$ 0:P[{?Zt6,ӽiQ@d"C- *0""@)IFDh&b!"aFMX'*ZJS.:>VT@wZob`SsQ͊ZAhH<q Z+ <#2 *=8b0"Z*tK}\ QfygDcLMkP= -;ak%isDpYS?xƍݍw~7m:8h-d<!g͵kό]Z^h_{/QUR>dw( tOfj5Ej^ %ʓs 92רJfL&uv J( QU-jdQBL$s)R 0%@5FP]# YoK#2%ـ hZDƔ[ yqRY*5gȮ&Wtv"gwՆ̘PB3ـu؎C'c/ܕ4I[4`3W¥d3sl#9 :9 ΑLZ{˥fw!OIvh)"Ċ^ ){1#nsceuNa<E46q !m2C9'v4"Ai0t=(P(xt8G{9 :$,5+rwx)S#/qBԸb/!rݻ~k&д ׾9{nh{Zcܛ"18I{08Ѱ!1" A'đT(f6M|M9~o?%nE@m׌M[nP3djz9Ys= Mco׏Xx_}s.ίp? ?y]߿.YG߼e(皦y;== !쵭&~:c潃{''t2k[Tl6i>4-]Vy8Z>. VOwM>y~l 5}CnߺmW^s1F(ZrzQέS:<{^+MRq:5GUL@\>MLl"so<jjXcS반TM H1)T ̞ԫ8 fdd !Ւ\ٍ &`J;_~Tm.JX-TRꕪ-ܓpD@]b.J~Z3*:BL+ rYspjB><.֚`oڔ-ȳisq9@ͧI 0"X "iPR_Q,f98X]3 !OC tJpa~xb964DZMlX3v LBSͳSjh_| z#k|fC|kםs%~ӧnȣ ֝l@pECrx}V tfj& @j:55XcI*<9O)yL9gSȠIδw1 DEd*& `G$PP5:j]}.10-2::f{T=Wl%k 9yL@*ETvfM0z w+ \m~iRV^i?]J hLy~=~_zfӽdXLӻw-:qΫcZn'nYLŨ,栤y~4}mV6ztE&10S@E(Z0i{ J5EcۚUSN/ωU l굸o@ KV+հZRr,%#+:1sNUNgH9$NP#f.YaDtDfUP~lbOfP46`(#Q;MfV!ldp+"HIzonq2A@͎]L\T*̓H%^rخvE8Wmĺ,#rVp`f(b d2&1_c Gd6JNڶmCɱ4$++P2IKdYAAͶC Ǥi11F&-}IE.xf.8eokv}nw0X7dxBU *GF.FE.;?(TXԅ>BJJjgrk&/?׿1\l("xUr$ v0ZiӉdl\@.sfHYl$y̚d L ]l&q3  ETk{bIN[?MˇuXlT)6ڍ_~|ko޽89yQ7vgCWOկo?g>_">ky{?\\\|?__W^^\4٬nJ).o6EH`aֱSBE ^^>x{卷8??$# !\;:ޛMm`擳sABETp`n=J. b *D|}7z#)UKԮDpE+7*$frUvuRa-. Ak49SD ;R٭ 9 \<k5}q5.J'&kԲ;vcԞ@hnF4rnjYM~DPxa}f6@{ _w?h}5qrxpCꍷj8Nt2LDn8ɥW{fo>>vCY~sYSdX Pշ~%-Wۭ4b1z`,Dy=|% }FWxן9V.6k$M`?geshr#=@yB}?l֩yc`TI %`A XZ-Um((V*@.T*heL6=ϽrrXHla9xoXN{Oxp->SoSx IDAT/;y|_q~7?}_~7ۛ4yܺكG8;;>w?/Ͽb&3ötkx~=onBpx9i[7R?lҰYn~0!Xu * #ϔb7̤α jTu`A&lE#IuD@H!J vޣ X1y$ "#3F 9WC ">u}`93h\R M]}^]%]qh#TY P{j z"akPɋ٣Kʤ Rp:|xN&3g-47 s`%3llQ-"8nhCd xzr2kZ?fDFh0Ph8Pv,XIk&<Ʃ:X^yu}|xG :Us(x1"EE~ۏe;@. dȩX<q_6CF&))X MU=. E4US7g`d [GxJ^hf/W|?2[|m~w~?;?{6D'Aǒq6/GUiϿZ_HTlLy͛N' &Hh"Dݴͥ ,MOK5YrKp;0"*8NBt\)\;~_ٗ?3鄻#Ewx=awVn2a+{o|N1}b{q//7_?Z/v>w/?)fL6ݷnX&3ߏxڼ8q94~a~xp?YnNR\?~øJɴyfD4eMk}7|eרr)oM!Hiİ "@t51#3,Ll|$QJ^^CR*^KmXTK%i5U켱"T;P9 C4RE eP5O02'QG`'|ֹ~Š4/F`:XHU"`%"|Ͽ |>'ryݯϣGbQwqOJTf46גlzĩpucV{; Y8dDR@ U.(p 듆z5=Q-bj/ B*&B_@]6!2ub@ DD32eVaXoEkзbFJ PAReK켢f)@ Y.U@z<;F"r7 A(\ kBD-:$D2'ToWoϪ"24jݮ URw6h\2#(VJpd:F3+j~m!BnܨB :$ROd6DGcۛ~[KIcNE("0&Zhݻ5qL\t"2ͣSn{#&WJ2PJR(;O+撆RFb9E,eQ9OciK>0h[F7 avXoZ||۪wggy{nzK`<>/|۵};O`jfstzrZ.کyN&!64do9KN2$+.ևQY/H&o;ox \+0B;@7$LTFȻfFb`{^z7Y3Vl⹣ܓK8Eyr7f㐺a(e^^K/1CL$?:|J|ۯ~;C[߼3L~s__߂gZ<2:%ܻL"ECT@ RS(d:t44 ޑ"PXUT"` 4ӦjzSO~5Ѻ3E1M1͊!+QLzn^/lGYԷpEe@#5툒UN jqޭV'0  welO1P,!`JYmZM0 }znŖ7o0;w[?烰#QĆXDb> n^{͕y|[s}C )rc5>Vse03Uq\{F'>911-Yrɥ$90Cߧac*)yCGαM3L{[d1ٟ锚zt  CA0dW]a`e gA@L)9b9 bc\&ƈVI(r R3zĮz^@ʎ*b b8G |3DRQ)J1ts74v5l6Ywz\֏`t ϊ)(LN<(CVpsx|pѣ7z7_{߾!MR$7}<[./o޾uxp *Cl\*6&JهfbtLb 䐘  9 qo0_%tJ |ɼ.2`*LU )1e$#"d  W?_"PCz?_6Hֳ7?8\n]II[/9'"ܽxo#ݻo璻4<>[] 7$9p,L[Cw7.th&\}/ܸ^3_>^q#n|F^uמvKwv_N:^~|Z[ϓƱOcn4#4+IwU`0D 笙G}ޒa{өfqHErVEDw5)@u23"\LDVMTPmH"8.j{E id1&އRJ]/93ebkXa2DXW+2DMD]  K)JV@D%R5шU2vuDժI%$ w=|Ogftؿ\{8={n:g4PG%W$Qt,:wF71 G+_ҷ_`)8C}xݱR3a#rSRq(9J%iqdudw4," l#8.Nez, l@ ahVR*)IKNZ$Ii(͡9T]Dy$UrGRdER)jBb f(6w^u݁9t5 x]HӢHɐgv̈=@r[w%@hB !JjYSDNDPͨ:ߘ,"zbh Z)$ a-)AU?D& `Lm4m`67m>@&f4(Sv'"՘F abSuRR;$ M;aE ) Xshfz35oi\`27fy! ɀ~ޝ.Y _ݘʪߎ)qQic<_kƱɟtS?i>|^?:Ll~\7)Eq|E?ȬؤbM6_Xm.+!F@r0jۅPR5f٘jy2db}1oiVCq CJE,34yL1 T=8\~ ywRBt~uܾo}/q:#+9s +9(ې_{n?7x8_t{q[>};^{-7^8l%]9]֝ԟ@7}ꇿ?x<+ɹ0M)=:G13rm?^Iw}%eihdb1&vmwX~) d.vU&vHJ*z%F sSaU D 4mڶ!ơWղ)3C #c$FrELaAP/iڒGCf1Ɉ(*CTR$xE TdiOx%~ޝ`j!bx 5YnZLύ)kVHRh&?#yofA:dεMCl@X7MnllFN;?cZ`ˋny|_ʿ̚aF(ci&yh9$"X1aDr OJl=m'y٤VD5VGf4bMyX :LQSV]vz}ztt=^n&['-:Hm0fBq~3Y4|}} J,c.mRs180TK%"*jq5#6 @ YG*AaK, jJ\=J dL30AT$t]l!;bHVmU*"B *㪌z6H@LK-DP T6h+c2gѻ. :SRe28f3 8)l]}"u<0cp Cؠ)] B&.aE͆Q]?^i#" fט"8Gs>Xk)Q(T fL}M d1b6ۮ{D%Rӈ쾳~o3,,/.b 1Vn9UK){/E6Cޯoޗ\K 9avc>8>ꆡL6fI"4A/<Nj=Nم@7@ @LXҠ)3uN@ .izO.~usHޔ=e+#ס6T61;?|Ї^,/{N}߫oy1 ê˸^bĀrz@7o&7G/>„|#I/W#-ݲ+ܽC>qoNhRƯshjs,Es*W|Ł_',1H)Jfdjf0MDdgnVy nb9Wnz;|3ڞ:B~#Hɻt<}鶹[c/L8UZ{* JJڪτ#.Dv;ڝWPj SʪC`b&RTW'=F@hY Ԡ:$*Cɝ 1>ȋ7o|~ uwq?e2Nf}4SQ~%e5fR |n:8}7650TrbA`7-:+ϵ2.,Ԉ:Cvc -$ &UAp16ӦNd¾A 2=֧;26OZjش[G[3 3gdž] +(&Mр;HXj(TU H5((j%0 !1 eEvrT1)FvF@F2"+a+Q C!6 ;|"#eLݪ:1HH1iuP^@L kEB6{[.n;֙]/#f'9ޣ<{yeE sɴ!s`^ vR:o# :J`!xWc-#verJ"Z"@ra8r`Zt:QJYTy@Y,nŵ?|'\ZMx 5aW@ta68Φ~,?7̹7/Ӌ1O<qby'mU qoqv~vtkto8G |ƈm}~PJzGmÓC`vo$puewǪ@NG\0eEiͮvdg0bJHY;-9+voy|.ܽww!$8es9|f}|q!u6׿)^?uppoz`=s4;^isZ];]4I?^yϿ~~]&}80o lA} wH0a`6kc)EJfhZ,dl>ƾܸy-8yyW5vR""P1fGuBW NQ:؈&-Aʘ3fppw0ŹvH#x*v%CR!5bX%yV5*BZ ?9df1= HNY^)_6ή~ʌ@npBMjKxX dA%跃d`^{M,'B ~8 Qmo8lICCF!&DM9~MMگ_/<>;@A2/֒s7 d!f߅4pr|ǙGDW˘Kj;;fo&ʹFY]nVg?MZ֩KZl04"9!)s8("NlMlrOIX(b kE FvIe Ds\# Ь Pdq Vrwu4$6)D,d , Tv]P HUT@3Àz>nWeXRgsd9gJ5FJP;.de02 BO R:?Y9F Kû;c3uΡC)QԐ)rhGܗ~{xpr/IniRf<džDL xL :qёel{C@*+ȦqTP)Vzuy|}qryx8ڛ?,)a6 ..8_{k+_oɍ|uyzvaMn6fE҃ᓈw=SlT&J`hJVuD Yl~~q^mI f٭a IDAT@Hѣ'`fL+B0fs<>l&i{3_R:{.Lۊ]}X*qhPLUA I-Ȼ|d;爹bi (E4Jލ+@ @T}]T\3$Auaa27؇tcþ!ν98MP `8*tt C!)@4덜4a2tvumWwy_|$`4p&Sr5x;ӓA`7u]gDsQˮDZ/i Sl(+1zti=11E%tFd&i`kFk󁽢 (RƜ4*j:02KB\Uz2lT9AQ5%-(0:wf b`0˃%%I6BL߆H ZLL AR[췽JX]\B" Bb8jKn} T (9&lx;cG0UicD$:  dN[]V4I- -1ό$eF1J3aF`30 "Z`;B֏`3ۋ%wxud`lǞs%[.dxU0&pC77n6?_u_nF{{W~SrK1@Aǎ۬o=w7?Y?: EY);7j߄\Rt7K7m'ӳg?8 js 9拷{OÐ|ֳ5\Tpؿ{ӿ܂σa3gcRWx5B!t<Е 9 KQM.{_rófy,ZCɰƺ\]qvMJf@=?gV$MY %@v(J*73q1`TK4b0UU"ܯu.]/D\x5jF$"js;=EdD6RZrV4~؂cxYz^|&o7ؕm;%1b'.6&3KS"]Kq|.Eq;mwyqxQ %P ~FG1s`OѮOwDk wfID3hE]J* 3lR OW@5 M $q,]70y\N$I9!8WԮ\X)j@<ȬuT € j U5^U%3h,PlChbذ)JU@&@¶0PvCR<\vbTM*K~kZaFʘCA3S-xrs[sҺ%e"03jx  j71ͨK`TE\__oٜvXv ~rs:]KbY!̿qk~b; @e)#fI]buR_YZ4%X d[3d݄FF[id t֭koqx~9JNNN?ӳW^}7:޻8=1 (Q&,l:Tcm~z>Zz`WtLe0.鍞@tyq1q{.6 yn?<}0b}yq{նQV"0H@ u$bWK:E#P`4X,q<99!dzrVJeIY=VOmdbA)sh$.NWc*0k`6sm;6㬙F4v #@tٱkq7G1BL̬d $Av%첁+̲&Pb RJBp'm̬Zh$+~"쀂Ur%bYO+i 2qr"u^yG?R|hvIvX}tm1*<%SC,ңi)%T2y"pB2"}6ӳD0@.:Pᰁ7.;bE`PD8l& ;;yM&#Uv0xCS&SDx"W(B;l^3!+h,9NHr:o !Uo984;*!h@ Ń40fPM@2\k38-ĩ7Bٔq]LPT1TsZDcQd;Wf\5cD6fGA,QZ@- X=tVv)g抇]v."S(!SB&Ӵh0` 8&<$22aޒ쟎PLH!z &`162tj=#dDqF8&dkÈDelk6R#?^\1t!Cp4,bP h ryvνѵ|(/Wg痿;+RW&h'?~OwvbTvqEKMpl'xJEB)pvɴun*"yߨm&rtb_ )YLE@{3@ҍ:=IŅt[U`am%vg_1tovR !Tk{U՘{I 1#;uFD\'X,x/? v {&%YӮ.sƠ"YWw1( Wn;ֻԊh#{"j !O{ـ΁d`hf*rOy\ Fu^}ܾvmFLydr\m/e 6λ`T+ak uL4\$NLmc{^RJC0GDЏ <; cU֑}K\naNgӛb',L[xT2@Fk1238yg/5QPvښ1%8B$fRJ @l{ɱ0& b#zO  hرl,Ɯ8 !8@y`abbzW=N AlwBAV  )|\˾_ɸѲ:%0(fR0U/VBS50f|`C$%7&4t96C4x{b .6 XszaUh =CRI@B0vqDII<T\𮔜Ǝ8 +J&Bۘgs&Rz\6#9=+Ħ~r9  fLhÎv=>GQ=V>ZՑApݿ_]j׍l2__4Gcc3>qZ ֳן$◿w)q3l[ܘ77j`r:=sXɐv˔R6|:oW#84 6Jv]a~8I G%Kׁ 4` Pd27otoo7Rfi"ܩl2 CP(6iؿ~\ߺf}{rގioOΕAm6{&v jd c}w޾#߀3$1 s7t~^Nۦic;bd/Ysd9"; hu^uyƾn޹8ŹAP^t_GW%tS4qWS<;YMôYa"p` 檓+H*55+FO؆ʥR51Įp!!*! r1nx6řOz;r6bnt (ceW̃1GqpeceZ^&bx'w@Pr]pΌ#ysXLsA@ X-l @hFXLB+*R@@Gxpv[Q˒9WD")j6}>?X_P`|Ɣs3 }/`7ݺ`oH! R\2@StH6}QCSGo㨪|px\GVYq(l#8g-Νof0oa~ &q1 AAVqBK%f'7qh/i GOA"5ff wvۓU?f%* roH_0hv`+NX Uۦ_ ܸ׿gͲ?s֪q0/}ơ@}3?xt cCi`8F &Ms7iBM`#@`Huڸ2(i?<>;aoQp[` b\k8B0@sa77DBb`><>:880K]w1,R_rbeI{k{֛T47hؽ;fZM6!S`<]t㣇g[ 7j䭷UE;᝻kN:@X`4.XhxXD;SMgHl>1?///.WaDJ!*KD0` 51~L?~fzpQ^,Nje.b Q2:SX^' Pb R]m Ġ0 9%pرu}_L&3)Vj2 _JѢαg_J)\fBz{䌐cb#*KDB~dIy[b> 7L- ytgwlosU_i(ѮO)Zl";7q3Ff PTAd'+ _x ._Ќ@[Ad"*9p|>$DD2mޥShTUq(!1:g13"`0^-6J^&`  $mgTX.{My";=캊'F4bt8yAr&M9kwk03Qs"GtlJI,)m4n:Gh4E{S`2mi牥S"9GSXz]>dTTt;T] 7-z.fZ䨈4BwR(՗_lP0bp :@4tp2ba4fQ\XmÄ]c4G PcU@p>'b#$̯?m4:sYø DUv("V#LqZDZAp|}Ͽ]to}̯_<7l.q9>bv|ro|=| _oxqpL!4=<_9&2h;6#Ҏsd &c6q> $II2%F=9[oڏPGGF5iA4^/S.+uuDGLbj* G`މ!q%aIyΰZMX sDTсl QA,۰g嗟ߟ4ml6ƻ9_x|Z?6ۄ@ܜ9 h0%l&9RZ3C'c7ty|u^p" ,$ Uœ+ܡU.pj;).>''^eKk[t ?p ]2w y{jN/g`UMcIЌGzvBE<8FU,H ]`"mM-;+%evAX!XEK Sb#`ufz wHьT! v;UwL'B jnv⍄zS,xd{Rכ , yq1@QrdYGaLNԛyqcRp\R~GG7}z0A*LZHGQ/fd}ˮfF RiBhѷ\ qBęBާ~ߦTyR!r20KVBSb_^?~+_|}a@d`"XKF%..}|I)5&IGrŃ[מڶ1Kӈ2zFP Ju֗锼1GZ6 /x7{|q2\]M26pp!FogsUӤy_РԄ-!5Mܖ jc̘5!Cbx:zahS*'d(\)kn ݦyr\Tߊz 2pӶ0j1(r)`K4ژr E؃jYx p%Uef(C0EލzkSJXqvfDN&8jyR-`ɥ4V9֎\'S%&&)kR%ʫӏ|CvfI۶1`q?&S/b93IjZM6%c,*؇ltztt&GϷ]T"$0lcMZ*WfD jޭO-]U7|thKO>g?g4?_֗dμn7ҼȀq @JM9 |u{y]Ƨ oU]xk'YWh iP&Co1Ds0( J A1|xF! f{v{"^_)쭗').Nٝ7_{DLnfg(˜tׯPJl4 }/zf;| 14;1q<Vm`31cpr2Oa;H~y۳2*̧i0MsI3,r}&l4w޼q\t997㖤!9a\yڽ۟|cy833TƅyiȬB:M"{]І6jӭ2\瘈MjcTbN8SI|y)"y4v ]P9ȞlU% ftj*A})1zǓ4۵}fD]*Q R8F6xOθ:eD% f(YZ7R P_/'~C7n;vľ-E#S/'9E cЄSI&Z$<89F`BRlu|||}$e}sYo0@-H[UҬ>=EEP쎌_Fs2첟g4c*t%~ry+nP068&+*X@JHcd$&а$P+\5%p"7P IP1(mPf;b@SA,ygf]Mc;؜^WHfueͮoPD1$R10а2*me<;5akM? EhhpҪb\^g"hWJ)eD(}lZ3EsF (UxDqH0 zܰ8z~ךr$f~1Ï't/A3ipCӯ?}ko|t}j/a{8m'"hHHqp{WPo]ٕwv*_*= V` CЊ1^k aQztkEKg[3[wΉܝ{'3x۷7߹{xEwyя٘ Ƀ4nd@*rQL؛6r;.`}//cefE 8$ќTY&L fD4vccr;w0 |O}xuڟH(F\Sy p Njyh&Ӌe7As>&KV4}]nqg>߽{29FDCG7nL}?:O!8Xɳ@p>z^Dq_]P>)Tw$ ,h{.jm,I釡znT@E5 Ye[v9W>m}/^I)E(J**aWU2Pcڀaa}%UE$3ٷvZku}+uE "޹7=g5s4 "WcQFD"#c/) dЌDUw"{|c?׼[#8"Xo68GΑAD 3 RJ)&+{GKTi2&t-=Fۙajy׮8>{=ۮi)`އNIղZRќRJ)@XRv7 $V3<FdH1c`dպ\ZXlR/~|Ou?c0(?2ֻ^lP٤1B 'qRMSCCӐkFeʚBrJahkHD+d"JA<#xjJ+H5G%%P \@ȥr&ME㭵$ Đ ̶ ~׳ "{DS-칯fvCKYV1wCJ0prb1&v:,Pg`R*"LW`q>Up_VUZعWNyl[~~pghPw>o.m<b;<Ͼ7CZxa\yT#O9W_MW!^kU3jy  'W`r(QcbNssi<IBÃ+IKn9ٰt.pC*/og3Z?}Ë74nTǒs`qx:_/ǔJ 4j)TS2Tk%CRPr6o\- |6d"Y4-5$J.<;vѵ]iʥ_Ki\v[>}o~93ߤ $ DȚ(sp09X,./G{_|p+V$&&6V'#KӼS^]}_λy٧"/~!+۷ܧ&}b~quy眚 SnZ///7W}@hAR fAra(S'Ft{i|&ӈiD!=H.ra;y8bh:w u0}]R(3kVe"^FiZcXAFFjfb)m:蘑\#*WyN4)k>y6"ēk\0jhlZeA9E 3/e2f@,I`.YclHB)lpiT8eQ<SWbYl Rn< LҊ kRNY-uݬ DX2ǞHs@(2! Bp$@,0oMp*3b2b>PDcTLbj-ϽPBjƌED!Dfg:3"r\3%W#ս3"m"V"֏ԧjk1S)IKfh_L, I=J{97d PCawsc5v$#ȠT:9UZ.6f06b6So-m;u'3;8-N$9g$IMZ{=w2qxP v "efR#^e1/ 1ɑQpJeJcw*({vE}٬A=y{o̎\T9{ἡےv_bΓO?<?=[f5bvf}9,A;lo+DĆ%+E`vS?@mn&3Zִds"z/f\x #$d+vn6kK4_ѭaoi;gq*7bȓHX9^UԶ5mśw;oflWhJQ@!~JbvhB]^/ku?o>{q> kb5?u?w.1{ԧR4Mqa)TJq- D?>*J}6R=DMwMdW5$#W YH bDfs5̔`'Klj#TP0>F!>:J9ɉ!8Y !|QqM\_/i =bGg݂X\#sr?,]8AIӆ&EHMTl![b e"Fyqzyea0Q;bCKQQޚqtm)[7gçs>i*=]MX.vCEm^{k5x}]wQͪw$\Im 3)*@ fLΑ`G;BI˂\Xk.Kb7$#dۻR,ghR)\jJ b9Uwf`jőuf-g 6Yu ZCtA~8r;Q9Xugb͗gg)#68<^^mѴ;8$pGp\-lnWkhbp dє{PL__\w=ry"Utv=,ޱZ.ã o 'xifֶ]f!(TyOOW$F 8t5D66Bl]Xo//Xb*UD0IL5-s.|dY3d亙Z3Mc|r|3݉^ǔ@Dqmǜ4j$|p4En77cAL#GrTD &fHzrdDn<$f r~~{?/fVÇ^pbb\iA,#c&᫰@Vw/nO˹?jFO bg?:KVԐ۞miFYCC>/[>od 2'DnӘȀ j\mƔ|| K./1}? #&ԗ~·pݻQ6`; rUwxgOV;s fTnW0l!C]}?MŤ2'f/..RRs؞<~-fG ],NNWӷ~п(@MdjYJVBL3<5r\zcdQdܨj^~-SEŬّ_1|!/ 9#bfyh=\Rƒ  e>sps1;RDƤ$.!,8=vWևӃ񏟟,q||8;s_ÃUvs:e^&EqZ˖Һǧ0.K} 9 &VtGcdm/Z*α9fY T%IDaA^{ݓ"0`4|pi!wXˆd7J8;KBi VC2+YDԏ/<iVUC=Qw5T!i~^ӜPɭp+ShviqgVYS4Eq}Ol{5F*dQ56@\޺=#9 |U'5c&1.CQ:'&جܻwO٬ ȠqRfRm9R IDAT CF1IeqSLLN^|e!@^{ }w6t|8$ &b9e"h[nMt0u#U'sedҸ+S+Yy?lVkO+?|cGr2Bm%dȞE׎:{~k&&Uvf(g6dT>Edf"V  ֗bv=sVG\o̭Go AqZVݬ{GMe[vwrFAuLyҔKR;v. Ða@Ν'^s\{=G)yhVQdsߕ"6 &kp5*dR\亐ugӠʯNvMYyS&ֵ+&'f^sqC3-@p~ڦC6LISs̤ԁXi%I(55f*%P$\UӤb3N Ih۳?fYMHLsD JbTD\0eL%)QTd;NRAJɚcF3"Y0ob1HR+%\aZjE,yv[4 |˻|ѠLёO'rSٺ@ׄesԋH뜎p_ˋ-J׎uc~ |'{(ݓ `CӤS·'Gċm\]fF0/7yMCA<4R4<.ϱ:n9e9%s,ܹ}9ctP[]T?{k۶+(64mw].cJ_)B\g$}pMebB::|׌gWEz2xbn=pjBڸ|XvNLH$Ma1W>:*JJI9bpݥ<g˗aqb['% P@r1k|M Ħ1MPh3$!*{d-̤ie/ "ԍ G pѣip~~LVK+o=0%kU^S:b2#533Q#'#@5Q:1a>P2 3G9Byb})IDq{b?޼Ud[OJimQu+3|^"8{?syLLm4TʘҘT%)KUZlutxjLZdRyL!-p `䋂~B=pf7 ^)Mo2W!ksO|lFZ{-3_3Tefl5ysI VqI@5fC@3PX.¦A@RƊ` Hv9a42I1 g. 0KP.c3oMJ,t,>+YQS-Z Q%Y)9l{"$EH%L.$EŴX* P(`cuMsޜѧP$)NB5EH@E$keӸBxͽpxzrvpxoK=у^=xj:ζ9SRozj{vzϿg/Ηޅ= TSjWpmS!D>1cD78%@ճO>:9>YLv-jlhh}0UDC/ 8?ztYfԏyȹfΛ|r2}!7lw0u뵋B͒f( ebIcmCqChb0^µ{Pe߼p5y U)64[mK^<U-ure7J*c8&<IKtj"̤),yH-VyB%Ky\Kyb3K)<:9i}_?;w՗NV׾5U0#]P] &YMOC*YȪ*_+)sN6MQTh. 볟kw9[JB22 iZJՆ^HC4aU0Nb"`Lp6VH-`3ccu8Zj! Ŕw:]ýז7N^-r!O4eLqpP"Rrd5̬Bjb؍ee~;/_#GlZy'9W,fjٟh>?3ff%#Rص߫ʥqݟttM q-`Ⱦ,b xgG&Yj4oS-6DGP [7R" Vؘqd$3lDR/]I@A&S+u/s^c\ҖnhLy%;"``6RҵtHєK VJZy,XQ!Dfg1OjMDĤ0V}MZa95T $0kv;bڿ flbZLB@cync_rylgO=W޽-!]s|;Aݴfv(8n>ifbr3;ŷOϾ@Tg4! B`j^+ WM)T= Bc1Q`s9O긝-^we5d|16;i3{2)SUcF!mӦq Wp-qۧEy!62 y>?.c&'+.\hZWx"47\r+I0 s+QCIud~oRn՜Kfwg GO|Ϧ =N44ߐ>82\zG ̋bLcUJڽ;NqD'ڰ7JQ|OFK_-,y<7w&:$fgc;<9.}=WOjUDŽÙ ⳟ:/|A?OW~ɛfg~s1~.޸Xd͓I[]Z%7VLõZUU"՘v8"2a5H 7K;833)gR7i?;`1?HyRjd[43fvbfؔʘT_sfBs9 !4!y,"Ǐw3 DoFv.3u7rX˰ Zd?yO`'~KU ^͉ j^A (l @K6jbYK'*OM9Y'L%@)2,dpl1Q-J|VGĤyJQ k &Z 9Y`<q#2Q~ wd*k rι8 " Ƕm@VRL$+ K)+U EaNؖNJjToZ\KA:bYa(c 2i)& . %^<{Ϣ>t?şNמwrY.?/bp0_ fB Y|}z ]@>ݍP[Rv?Ջ_vo6NHu2)jS5˥xF4AlB8&1yCTz4+Y]n̆D5[.2M}a8R80\>&䐴ϣ];o"ŔU RXl;V$ML&Otp8[o7cN"} 1ZzdQًˮ]ܽGa;f|ENYsxm\: %oCL^C@a-ιyWn%UYN}+Ө!P͓˗aq.~Bg;a9?8>PŢCMLjM)\:T,RrQsWN?w+xv;5AgsC`TOH@TTb))IʚŌ1qDhOoi%$I.9g&zqRP#gM y2p}y"JלW?v&o$}%BLM7NBslY |j cfŌLws1@$Uʹ05x_ &S Sb%JʖЇwj?zd}_KgGy7~ڜ] o2ˋ]v~pհjta|K[fzOÕQmŴ>Z S{۽\KU& ,N5.#w.yI `#l6Ki!32xqfE};Y,1 HQթ Q]aHN !-ߍk̸5~/YB487dU0o0E.'k`g4 Bh\8w[ > "PZ!PC)șBjl] ϔ{~ǷNiw|] ([#œ9`65:m"b rl&M#QM;|38JOIⷿ^ݹ{|rz8s-rd򒭞(ĪR!Lo #xi^chV"Φ~4E C*W|l"9'WY/>DR `h&ƹcc3I1Oe1弝38M4Nq)>50[|853s`v([sy5M? .˫y7'he}5nq`n˪Qۇ[ Vwn>]NeX6 QG üYfMØY)QfMΛאָ.P.Õ)fP/=xϷTb!V (-BRC <2 zg82똛aJ}ֶdu>2swY]QWʦ Sp~(8|? 80mo[tsyRCh"E>M0^}|K12V{8DM@p8z1ܮxrpL}هMTt/'JEm"!E"LBȚʳ7|z|~X>WGX/Ҏ2_jćCs\۴]_DF^3ƫ]\L'fmƱ]f/㣿o[[,E|ڃwΌz__wztxt>{y/ny]8qvtzz>M`r~{bF#셃R0fUهs9S" J.{sahU (;d- . 4.qPEۚJiQO)i 1A dZC!"68KRXrt(wn(.,Oڮ?/o݇|zthlɑMMJIm63iƻؚeĢ;>rGG ZخG}7o_SwC߆,eIJ𡎊f#WRLtoˡ”? Mb!P58=T=r~K1kc,)\GZהkCfFװG+`'*/jB" EX f'*BMEP@`FME]a3zBT!Ǿme;;A` ASቌH:J! 'F(Pg u>{RDtvRr$c)9u 3{b Z2Td 8;}QRqy%&Bf[>HѬ0c~.λ}N>CܹsนÏIcӶ8;Gd)%5&ֵCQhs =-ܧ܇/6m:$lrR!MWr5ПѬ^ɾ{1?#R\ uh IL̅8Mx*b"1p$ʥ$*Ctte 68TJMTrAkD\ۮb,T7 ⃟ 3y.>DVMQ^VG+v~6::'a2k,1&g6633tY9uɀOw?b0;63MH[5-tK% P'8zALP9Kղ LY3v.F/Gxuq`7d}P^9윋ldU@㼱v2vWo)Pȁ<|G ܻz?{gW/N%޺7[>*ClEb,F`MWβ2TsiO׮7:"$rzk))չȼGphIYSE0QR&&gV:iL%4'Ã;i׾~djup'O0M#8\L$lErS&v9OGLUqbg_|*AAvM[Vuzz;wkhw%<͗ AL- Ry*;}o#؋#x6[n@W-ϟ4C.c"9IpXvc$lĶ1*$߆ C3-cӹh j۶(C?]{A>u;<8 M8Hj-[mZ}&2o<:;?i5fm| 9t^ֽ̹?g?srܖvZzg>wۭ>q,!~taBhN(D0x@'])n~&fUG Uُx)R|3~隁E`"GUL :-VR,CcS) rQXΝ&6"J/b( oQ{GW&ߎ;8\ٗJ()BXMm<'\p6h)Yq|Ow6m}ο?Oڷͷ~3G;8>=^]"iȬvrpf+]:=*HJ^;uz_/d)6vdOdu&>їƋmbU<Y DHYwZz)3FKۼ͖@R79NNGZZs5y1lCLY 9 Xd^Ʀs ȊTJFp)Q't0β$ɮ_{tGO#|6*)մڊmdg3fIse~SJak+jYZҤr vP ѯ7e+ Uh˓=Ql2g\_.iuq +oJ4p$-]CdϘWQt,yչ+JK?soƐ5 .ꗾ{|hʡ[ξge}E1xƱVvC$l4IuAojF?=@ao.NjE2OLTw08|bم &vII e p|_{1HI݋?<1,?|x/տy7Z=Qe*PQ@ɹ9JNS/"ZΗ˹c_$qLgvߜh5EH4ᦌhb`"R Zq\"5b#0_.ãn\6N$ q䉘Hz#moY 'z>P̩I)B(A"b"Yv$ "_,9&DWW$:M9rwgY pf qټչy&c ΰ۳L 9"{ިVUSRiop-˔%)SJR0>-2Gk.XJ4O*p},%V+Ϟe$#aHL#"=cܾ}`~72~T^Ɲ[wga$g%ZjsC}? k>a:c"ƼwD&͆oXX @l̻YMpL 2l^LJ˞H1 tt 䚉qMi~g \xcf;o<:Ep\_̚v7]>z o"ˣ܎GUHaR|[|r|vmN uS2eK3c2%0R]L6&l]|o<|5nwgwQz6C3rlH gVvͶϏʴ/]3DY\f5kW2NN٧}޸|0Oin޾wzZNO[8MiG˗?w1 Nc9sl9j+әY~Q}yhlgL L ^%(;dN%fW+!8A |![ݾQ0&Spv7U\*yãj(y3T{"jn\-k3e6{" 0 =;64LױQ4YLS炨&&CuzW,iBֽV X!UVdF%+,b۵k"*b{߫Zt6u7fg;zuq^JNfѢE 1n4MAUUTDJ)*Bs43ɑϗ~#"b#FiQaqH"fpΥ³ٌa$(A<n!_MYϽ?jãg{_ϭn-_l$/CR߃qSH˶YQ\}~g;Ӧ]Вl8LS4eN 4/jFe&)Tz):l۠pYyh6n[Oi'(#]8ݬ%im&!3Glj%euK˚-?^]Z 3"P͕" UdL+T nn|[ޅf) eX$o~7Ŗoa7qɿOCP"`I &e+%OS|uбTD勫 4.:Ylh2y&\Jf 5ǯ?g|o{|Ig".f\fvxfeJƩ:<JJ*f]N.w/{lǷ۷?\TTLfb,"d r>43r!MH^<9{K#xڄ{qwȽ~y6i/yuoO.v_z]XnuuGq//>:^Uc'_CƝ2s1m~R^k~vknJkjJh1ͪH:bֶV5yk&u"3ˆ\4cޠizl`EACGOz(1oǩO)K)Ւ L)USzO,ƨOrfxjZ8\4eoS)T8O:I7UG+o""UQQjyUzJuPS͹*U>+ISry9p 3t/wG , 5U3?߰N6&5YQKyŊuG 6~ͦq9Eǜ-YP Pȑsʀ#+f9# >;μ]ei{HMGu=A1seLnq"9g|6:5JA:_ēۧ D"2l~S,LK nZu}7M/9M,_a3>`=:?;nض?xkederꏎn1\۶nmT"Yub6˓gϟW5o޿RΧdœɔLnARכ}ub".ꮝر%ɣ$aI&+AqܵbDYk|d-qPT[-6 #T {o ]gy\wmx;us-;,nϏC9Z*HaISoفcgBGe=hGnV˳sQۑ6YU:)OCSG'Gm|l<;gNir/|@?k/__K~̬7݀,`v^|/)m3ޣĎcb6=̴({-yn:OΜ'EI٪m%$!"̌Œ*p aӨV\43ܽ^AOYǷo{emfâC`~H).+G {%[tvBg|clv۞tzrMC\~>3D5eEh.Yf5weV*3k [}xf&?TfRg\sYX{9,Hou9UݰZnݱagϮd;vג]uW_\xR<23!dy`+[&&1rw0(W**RfGdFW0ٍ*YQWp̅R!ڶQ5D,SU}FP2;aS.>3?;v˯{o<}?GC \A1\LCC=Ѭ˗O5qL+oߺ5_ãe4L|'%v2+8 IDAT=IntLI{ߚ/gMo~ 0{_ i"`Ѻ4"}lcSH.czCDgJdR<9VW)J.)_zSy0ch;l1tLT8PɚԖ.^m ?Ƴi;9V^5Qh8qn;ضm;/a4ԩ/:*5`o D?UCvm z.Yc_ʁ\?AX3!2rnldyI*&jjEM\L#C5ݸ6:D&:yjqͯݿrD%hbgNMF mfk\@0MhUaX 7S|D%SS9b3-=`-7PkOt ]ͣcql\Ӕ4M%}uM4>xT\3愫 +ujiu (CqeК"41Sbf1sVwlNo歷_kG[/?o}kb!q'݋ۃUPGG?`HʘR?"ٷqytppMn'n->Z?-g?J$)Jޱ.IR5Rަ mdN͠`c#稔qصE/d7}Rh'v. l4 EVW/Mi<28E^lS.ebY: Ij=<9ؤY=L/7k0y-KH؁ b0#e 9h/yB)R&1F@t52nBZ.c` iK@$ =0;@չ"G3#vSǫC m:jξz4Yw/wSM3Ί4Ob`8&YHb7t>䙼?pխZ>W{?@Ӂ\+XMbmBM-/`a0lDYq"YOk{tpg::o~xu;ioc{~+}}|x{y4Ryvmf6|{z ;o<}iLÃƣ:e1YU11`#*ZȵRV+k*\{+)) Z޹tm*ɬ L~v\R"nQ6j|!AwUΪ,Lh:=XsGT?>]r%Ȥk"oBbhi r}?ܾumm2m~gOK`JYrD):,k Bw)M}UR]O{/wQTq_pVݐtNUqk^vFɚR9Ybl-TYQͮdzLV:\Cz]?Y{y)\ 1F,ZQX*%y[oJ9^P0f\Qp6*@WA 4 xo (f->03Tk h6TJ39! >Ɩ}o0MqwŮ]ty7ޓZ1\`wnCwBk`%S-09v^IJsPkT)Ͼdvк9p~8tG{o?qq1pW4jkxmlu<::w-ۡC/֛]9hkofTȄ:uT5~_CU 552cB`+pXtmJ!!eJZS*kpB &1*F^hzQfч"p~Z_bF(NJ sF(e H췻q@\,Iǔ7W~gSQ=h_lᔆh)9e oLv;ffiIi9`I)FX)ĘQ1lG6IځZ"j`\ @umQ۝u7ݙtmw-BYMW>ko=ˁy5j*^&z,iPFqҗ>88ʰޔkc]wy`fƀ"k[,f̢ ^aڦi;i1ώ0v{ܬf؜{"=7ݶO{ݿᅬbPXtuE%!gc }2[:*XM`y̔h٤wTs?ΰgl;f /\"{MJLMx|y{w)_ZN-bҨ|Hi<:<~Wv;|/0*uq̦l.jS{OkOkg~ Itzu6k!)V"Ǵ)+HQwgh&Ӹ-))4:_:^@ *Rv3~7|}ѵ}ZȮׯ9(qls%Uġ͛U?6S0`VX Eq`{|]1)D7`UkIٓmIv~kӝ2oYU*EbP%qd)db_2cK$ T@*+N1qk~s, -]7✈sv>8P:2@$" 9!IDUٹmH M&وX6cpU8h1g|6GU"3{_ݿY-Ho:ogdzfհxoܞ4ۧWUUL(}?6O>}uΦU7CuX ![Vng n?o@1sމ*3$jH$ E"!iLt4Qi(xvF2Od`G.0 aT$6P6&jϮS܎*0RoUҐI s9&c&erfrĔd :|] 9i+78!YT=.֓qN lW^Tw axZ!oWrx`V =7|YEPh2'"vΒ廘ɲ7,Z0o~`ɃM&LrB?¹*t<}[N}UdeGt0~{~OW/8|S//Ͷ-]߿z4s\˔|Ν]Zw~uU y?WOLj)vfK?T*se~&SQsDs|n)t*P%Vb*T׫:FUc6G'-qtM]%]Zv19= oǟƈi\zxӰ:v,U{T}f~>(]!vh:9U5d*F%y K:2UU4apVXҙA 00QP̊PDj > dbYE@jb.SNtF4M\ `iVJ$l[ :#H.$RvS3St`+hhb8y.:X [SK WUUUu]Y9@ybl`d"߶c,ݰYA.1׮h(уŢhۺi,&Ȍ V fOC{-oOݟ:'/m^? UO]ۭѭ__omD:X7Q"9]-V)嶙lжx6.>}?YQv&GES: "lW. "ڨiXb޳+RΒRVSňCק~`fՁwYr"G4fԎISMQeHw1 %-烄vz'alA%ehw< g0 2I/Ķ@ ́!dm3Q+LE~%"BbdRU<`l pq_wLD>}K4Z?9>}䮪0#d;9Gu]7M,]?uZ^]=HvC:kaXjZOGW^Ok\ruaK|i>=xwyמ<:{r{`yzu{?8<>ZJHW }ٙZiUcx.gI3nTPMITj$FFo eof1Т"j#7 Ȼ 9)dUWhG<דiy-o^tA) {\YenȐ! p,wn*L6]PU2WH|)0M&'xYX~:FPWUuHg{9M ?Gop:vz޲^n+l>:u+We4& lўNa&"CN< 1WD]GMSUr)vE7z?C.V*O_4˦g{LEϰog&T4Y&JFΌ$2lPS ͚݀MzB 2\v.Jeٌcf+`*jup(Se5rRQgO) fM831 dJEcA@Ҩ7U3Feڮ/A.tE#UD;SadY][q+Dr/ﬥM]n,ơ_@Fwsm=ٜ/8L-W_p^~e'|coĨSӇ37,Nb jȧrvְ3Ւ0ET r\iHfrƦS V}Bm]Lsj֊Kh`tอƉoL@FD|NMPͰ^.:Mb]D5"!y[ޞߪgM dsrʪ!$ 1ĝLUPfJa!&8MSWUrt .$nWl:øiF)Vk|oSp2̜,٧}7wvUōy]mX0bդI/b"7ݰIbT4wGsO٣͇Zcw_Vծ1ޅ.euPԌ` C WٟR|X^xs_VW+#=z7x}:}|v0W/UI!fjj>`zpvz1DR?՗^óŸ'>x՗g|ο8F;A-BpGc_. dߓ'LJ E.xNI,f#uJMGiKQ[{ܹլQ564WK \jC4ܽ5=\X/2ۭ>>n"QWןޟ+ .Nsޞ]'AP̜X5JRqX[|@qm"vʻfPv7rOŌCy̎ LKmWtFFVnز'XAwh܌',Ծ=9Ƭ9 C}3Zq "5ݹs{XJVU( % 3uo vP7d048 (A Qڃy::'I=Ӷ6*p@=+4eKA A`0.x*R0,FB*B$L2HPZeeSS1fM}$kF0inv^F kimcJ2Y=L:E$/W9{'W*d3|p?_|tǛnEjN[w^|,&h&'GO>L@yV_yso>{E)ofqL]Z^~Ѩ_?|77?yq<9[_E)AY YjPST]])!'Y&P e-%f0QICcY;[wV@/):TUFn6Pg59ۧ. hy53F.q=e˄A)oV"lLs2ɖ ,@L VG$8k8<1u!9{Ps+]oV?~GVwf9MCi5`?|S;q;c=NOӃ?Gܡt(d>Wit:=} hFd_[շSyy~}'ş{-r?zxk\/}mۮk"0Q뻸rŏ4S|&cFc?嗐>y0r^ɚ>O?y8}_Z]aN]ݸ UCw85Zwݟ>8[\,ؼ ՂQ:sNz~]Md6k>}`MST"&~T{DYѭȏRU|w߸eYڱ &cjB( IDATnR$rĺw1<9͇ԌєնWi:fެۼQu-G'fUl. |X QP6NF[դͨծ"S839&ɋcW(D;; NJ Ӹ}46Y r'"E,P662g:QNwi6c42JHNUn,kJn.,%w}j m;wP[w1F=P\:Y*2?wcHFXixՠv*I9f d >!e9z{ni!D ΓYTygJJa!` "A Ֆs̻*=3FM !yB]f\-iRe]>ILoy7O/>z^&0򑑷fa4AUUq8P',ŔSI/z'Wnyp0Ӌw_}KN0dx~Pmכ@jύ!NԡUw}qyrOzա]9fs2l]k*5KǞ aD;-@_WUUףjDƦ, V8QcV媬{&Z׏JzČ2G@0"&uFjxHg[4cQ`T!N%s0"&EX&TCwiT;0(,0$S%Ek]ĴO[j1;iBJ 3%!S#"w՟}OV/h;ēJ&dY6Oo?ևKp>O^?;tUnI|xWMBvgmsy29 %]9uzp /Ɵ~ҽw9_sϿ]h^-ףq\uU}[oՎ?g~r6?9992~L.R4%\^]f~tv|EEG]\ܹ}t;Yw}^~~@ QXHNiO E,AvٌQW U6-'LY(ib.QBh05 So p+53D`r$$@VdAVTAg7D٪M2ikV \L)TPWcv JUE;q\9SڠR]\Wy&ԧ, F4i/WNԐj0NFp^Ճ"*;e} Q&3*z#n֢S9%b{|_ċ/G̳OC]C CZBPX/^FOdHC[p-M+zNݶ"%o9տ7~k0O4brl*Y5fWK.۟Yv2떫;fx ꫯS@$ z]N]e{fM"x%SDM T3Puq^@ SU2$"j8sz%f9m *1q6攲pD,"àf`M0="x (l18BQD P\` ּII[TI;ذYkg-SahDa69tfP:@-xkZ>|_sqruo#&>k.fF 5>K}ٟ|qqjGF?x^,uз1ΦcC䜷|x3`Cq[7dvDKG>vHmO-(FOe}+xݵɤޏM ;\\uDy\f"2! KsFZNeF6⃃aa#:ΕJZsJgMХjńLJj,@❱:G*`1vy)B4)J}p5@yezcC[UQr,'IrF8@ deb@4x&fB w$LPEEL6k.QQȬbe"GQK ghQf _q8v^boWW]'l:[FD=ST*6$jN]Q!ͭ[_M]A)fGW˓;/ݽ]lלeMXz3|wݟT#xѝo-9̧y !Y7@m쮷=r9񮻀z2 ]nT?;.r,*s_.̊Age)R+LFsu_߾{sUf !^Wl31dzԙc˱^3FLT ` RXR#J #JIJ >| V@?R( q3z0 #Hi3@VpJ]Y<&0Ffn. ?y\ߪƇ݌{hꃃ۫-НZo3@[HW?DcO6'ѳg?]U{P$!4Ib]WX ;8K/1Ç ;g_y鷾[899av0,A\Km*brq}px|1;^/'=8?AAT6J{ͮE,X- 93J,LQIgWjB̀ ~2DBǩv̌ 05!f6pdR:mTز/aEL$'d:d4Why!ngO%uN۬b'^ jqP~won,ȍ|"cb^8 oF9M/r<_\ok|6sC`L4tk^}񥗇sHj 2:B+ԣLjVM71s Yӊ,v|*]wiA[rRBTH#JhCPIVx%X/!Yp/M*ffL]y{uZ<ጜFI`нvv5cA&pIP\JӜ "KZ2b"&q1t3i6-uau{p4yT rIouOڷ~3.08LҘ=,yv)iB&혶o|t>9:ÏηW~Wk#w/>xtzNCsF6_=Y]DX,r w WxF44_?ԼWm^}vG_q~o?__}ãlv0|uvHJ)%;w].\Nfԟ>>Ն_;=9Z>X?T ηſ/vY@kO.rh"3=P/e*Y9K'жm7Fأ`Ulo63% y]7 ({"'Y`9 <y7$Ae5 !MUnZTT~vX]Q}pdX`GQQTLPU}Q~R~qӹg1JݸJAw[NK}&F ioܿIh/N$nGy$irQJ9q* 90igt b"3 "ybB~gP9{OpIV)|;?7,Ɍa0UP+S39"S7#U#I`24dv+agfRYcʁ/"'L"tGT(lwJ*(P;g0"VXWiu0w/}nTƜQۆ-aoWiۑlpƣIu9<ԭA? $QfGLD99 :UUwUփ td:4݃{ E{u-ġJM}3GO=pszV>y|ȓ!Ll299$ʹuɗ S5`895}JI,hTj{n.ۄKx);⢕,69uM&:5UԥZ،Yk6>;>p8rtG8bshpz8A̕t=ȶXPff3*LQD򇅝Df9K:GΕ0B@4[RM8't[4S,1:'|_ܴ[>wyWG##W8\ļ[l,^ƋӳO8RKs~iǏ&q;x#M\DjL)oT~?/~M͛۷ę}{p<{GOW}ÿW~^:L&:IZ!}}N4ig8~[ݯj ".i]Ŕ[CžOf`x*#Rl&#Fզ6"g\TL'|2l;P{"p5y#2lҀBLiV)[w`g:Ƚi=}h-A:W<9F2A7]ڷNG&(dzﳕߗc)Ӏaz}\Ӄ(6\nڼ} !HĉbӁM (&pCqgA -r-.݆g&D`bG$3|ZL3%UF"#F&Tq x*Qփ╜zSh)cRDe@f,WB!Dʦ &VbpX{n.Ha #FgWgs >™oE:̤ wnmZyDRѱdgM++j]]WXV!d]Lio'47 ~7 =/9{uzRzR[22yZqKy}7zyybo*7Pfmۆ pC&ľ_-u ކ*bТ$Pp ~V+@>%tiٽpgtsD/nUn'%h7IUEd4n*jdĨ`a:@ԧ5MUU59gHa,X9! $ Hb\BY.A")Q>}tprbTB~e_;XtS4v^oy{zl¾Ín:xy <4fFh"Y2Z i`X50tgsAQCFWԧhm ݶ% ! )m2jMmyUw4qng%~*W19C\3,947lw߿\ⴋiU{%s +غr|~~qkvиqrO\z>jG|{OT0=8:ysvu{B5ܹN[JѼIٻֿ?÷olUjѴy81E^%ɡ m+LAL%#Ww/Vf3E !ږf\#3s{.]W|jV7X Ur$z]^\,zԢo} MX~/-US2Fո*D pψ+oʾ`GLslTR̸z#܍| J 2T&%_H E8w.`iY՜gǗO߸{z}M#o_xFm;Qsu #CcLnF۫ӏ.ήzmy϶W~A؃$kX0y뭷 /?t3@l;EVv /_K?{`\Uᓏ~iuۼګ?||כO ui`l Wz^D5<ԧ.7xvk3y7;y>|!ruoѣ/5cܻj`&L0@^A.`,gF"{pQL]s(vAUew?#2O Sd5i# oÀFӺ-~xA\oJ9*s`& &W}8a7dv^{#hDJ|?!1#vyfVVN 9Mi5#`<:٫zp|@ UE<4uc֘yjSB9aVIDއnFm1n6L;@}\?kʏؑ*2+)LI ՛> 8*` sUM0sHa(A QD(3v Fqk65;+YJ+ҪQqZ3jYߕ IDAT<ԄL UaP<<{W놛qW'WwO{΋e/h>_i$5sB`H]&j4aX}r6"6g?Uբվ\M̾sP_]\gU}-'FdON_{I{x`: {hZn9{p`ap|cavͻ{l5b1ZJ*)ju-y KZt;ilzqi),4>OdoƋ}/k/y=gj6H%f}m_{)粦!xrUe;L͊9 V̂&Fe f 0'Q%[~iP_4AĜv]K\=#q+ٯ17G>^xtz~pmOr9X.2Vzs~zN*>uL۳·/>fQ[3|riv]m%b>n7G3K{d??NƆ|{O<^kF?淗~/bVReAhTrJ@j!˫a6߹uyO2-7<>8~ֽG|MWY6WW>py}NU7]g)d f-.]`%jI*٩}w*,PeH$3#^} d2mtm1e8FVF>A-dt7!uO`4i 15nb((-\ewt6:tVO8hܨ=MH|+l6;FSw" N;o+El&YDovsV+ψ|"d%bne/06ec/oKs흡qzoln-vzZ' )Y&}s{4k]h&\b8 {ljJ,1[6f̏MU5S9)IQ0sޏnbOU nc;A %d7TcWF%X(G16C{c$$H~mx8'xƇIUaiw6Th*U.A6$)GD`=[bcS>K &8qD?ыwݮd<72l%d:!ܐ6tYsucGgWϟ:MNdWw.E5vns:^90$}<ێ렣Ctd{n:OCLzܮqݎU2M<;wwO>i&gOڃ*5;}+3O/d[;~_ߛLRi:_%g;nY#BZ c`r-g-`#s;NLFE Tp|\׶ڨgxbTrVKYĔHukDTK-u0X̉e!5+=5*hCA\2=* o{&)NTS!iu+ޫ30M U v:^Ӻ (`RC3\eLboaT6c!Ilj:&OOALn\R^9HanU<)%{pFP-Q"S$Cz35ZOk\]Pa!@h'u)5jACjfy=9>lqMj8Q2qTrb1K0xhgfD%=fGۗs_{[;?y 9F5|ݺG3?f "'GL9攷Ij\ecvg?<MⓋim[%nnFa޾g[{[}s dj49F}w_yi݉~UA>|Z]}kA f-%B`f}NaLPW-z]풮 Ku)%VBIcf}6 K9t>ޝ⼚m*.01)$0&lI  b*+n2;Y* .T@m,Xb5*F.jr= +%sӈ?q'6w>H?bC^t{_ZFD&*^o.n:YD ]Þ*%#X66sc*av;5  jԌF[u]w]~*A! M>[ad;4j]ȱ™zhBrFB9|CDN}Ul7P"IPYhjtCWvud"<@@ :0J YwR$Ƥ^wEQ0@.qXh\,֏N$,lz7M09VL0n$AaJU;n8SmGZoڽK8_/;NơjWAVb&\px톕u\zRzF4=8Uw 9WnoA]9H1T}Z Um]or$ 1`.$,]DTHȕC0-# "ܴ`FΙz窪|9l6 I6ed8N30=XVDbZԭScs{G݁bg *NA#ryhF f@MvU"QO`X`u׶8LPS'N"`GV5N>%..IYP8k\Am&eXyĺ+Zh@ʻV5dEVk,P EmM Sڜˣ'+V\F.+y %l.#)rvƃ6i*8u vJŹjt3a8=ĤߟMnWm5uaܘP;ŰYE}̳;ww!Y3&qs\]m/t­~C&9 lvmͬY0>kC R8h2yr B}d*YȬr#.+3s.xX`#_o;@\j_dF*j0I֘5 NRFUL0՝LP;Bgj:nOo2aF6lۃ-e-RhڱK0al[ /tp{zq??0'Ft>;J).WmI֜S0cJ?zxK]U?Ln'痗o|['VMڮ'IެWK_׸^èR1BJ{K uj5+Jߞf )%gaԶ\TEe{V>]\7 \f3Cd\"7 EȬf.UK#6ܤf*.g';nsXW͚y䃱>09 Tyb z`V0 m[W{ƥ~ت oKQ톴#KNRFnG0gJ&P{b2.M;h.LD<&x7HZya$-v(pBwסGBrzs%3MZUo{ltKt 1|0![Zy I9%!s\mRusV1e<$KoTQl*T>ڠ*;sl.tv}[tte O9Mq]Alt|Y~ޚKfz@9Zw""T#usHaխ{Z/}]m DbH)5fBu\CnGUp5/Wjej62}TNb @̜+=*w; =]yw_-p`"eŃwU֛$)a#H X5kI `C]Ŗa&sB D-˄#kͮXW"r\rclbN>ywlnA3fm.WK,8qI hڮIsm&88 /0?&'WbӇ]K<6jrlFW)ںAr;,(uY#.ذ]K>/G>(wfNEe+J*+UR1%ӗM3X^_Nǭip}uчggg~w\圢T9ZS"3|@,IUcGU]eէ5]i `5CJP? oT 'B> &SxȗP9H̢D"M0U1dw R?8>&Ld)WL T4T!ֹ'p-cڔ?+E*]?}cN73yU#8ԇd2ZYzӇքA.% 8 J,;Ǿv Lœ D7*ώ C[61_x<=t~y׆22|EbA悟*Mi"B 0F/`W@`y 6DDCb \UpH#9č:J"qbFԸlm2@3-"ɚ&z:iMGa^~޲SMqXNIm;96DLDL1XRN+srLD쫦j7^~1lKXmWi] s>mF 9$iF=ayv1S^FgxorbXjΆv5H 1. Is$F11:~zu9B P݉+cMlq1yb&8s=/m\1 Iv'ao 2/eUhdIPU -όTU a;sJtfܱ93뙑^q(pac ZІ M[d>{p+`6lʱ[@aOZԲMq8iׯd@Oz{A\6l9ZL&IE*8<> $Qsuٗ~NcEDwݲW57 02t$bs|IETUdעc[{m1yEAb;.hfړw2#6۳0>5,cNIJOQSN9D5X R>eTDVUbLY!S*ƅƅ" dq;0H=4*Q{DNQtׄ23>[@=k5KJ9GWw.CSWbg̤Uc$޻6Ɠ$%Cf;82  HzJ$y;inUS>ϩDf:'vĮE v:2$&1O7h3H C&#u]JGHaF `ilR6),@ƪ-;HA&}ŋ@W|0Odz܊/un;?[^/LX8M'"G 3k '$R;RV!Ysަ6idL)+{v-Ayu`:3B!uh=Z?:q)vP ޼\^=۾إ:'[7xA7wF?zĘ?t/lߞHw>~I.\9;xpԃQΦIŊ 3"TD v O@bCBثWtTCBVQcrjXfZ k .bv15u0ǎeq[)b^vQGb]LW!H]̳sk{?LGL̾ޮ:]h6&Qra8D$gd _ßSWoVWQ3M˳ٓ|;d #hswv7 ls>R1Jsbzf."W!r>0"jص' IDATCPP6+ЎݮPRr03T'WBO&Vx|~c0GJ"Ґ-i_;UtYaVPxcj 7z<(Gb+xW#ca+јD&ݕ\E9aeoo`LO#d 9,E[7z&W"p+e_2%Kc_t 2iCzCtȅVsèܨi*?);#_l9li{٭}߫f❯iv\9_` &Ĭ̡ɐ3 "~msX!1YLt\j:u[BaT|/~!%X%8oZ-[^AnMAxn>?=_^V퍢wiCYBŝ[7ɻU%?՟<8:ҫ?_wQ4abфr ,*12a3Iz5|7x|m?ӫ~0 oi*xD 7W7_Y/Gfg1PWOaͱ bCE.@ղK a5HV"W!<Y7tqZnis% z>lӟlgv>:k߲&J'Ȏj^_Y/lfF+߸9dlj=nHJbНXRFz|:7.v p Rs{#N9`#G\)r) RR$gD{.ֳN,dSAJLQԳkl: fr&Șg Lh@ٜw`5X8WWJeZWއ*"QmTH-K)% y<Acn-y3VMYoVM#eFڳĹJ[~>m wo_z^ϽX-{}r}Ͻޥmwu!8%Gܑ8(,Zڨt$Inۡ]ՎGҷvzd~?+ fvI?,7g뿿<)WKL C22IYTŸOY9sFΜ#G%iʰc UMUE]9wlDHq|^s:i;U(8eSR MIAikjh= UcvsX7BU`OEI4(&s7Zۦ++CXw4֝i^v)7Oսu&|Sa$f \e3wo5*P#vL%̞AJHʤnmW~rp8]U%3q˃P rD`α# &O5ĎgqD p{_աf۾7XQ#CYe AZ@9~zLdfvf uȔ$SΜ˝^ihV3}1>S`c6Sٙ3@L\f7;*vKʚkll3C)C/~ ¤r:L$۵r'b"b5"/ g8+L}FH$9|U3ERhnU6FpNGU3.nؤ6ՎWum=;;==>9m3/.1;<:ͦ#(AyRAJCLöC3=QꙒ3  4J9d>AuDC{3!@ Y>JԬ j֎zwИ*pL灁 rއ5;ً|>avݕ12r l%S 4k =%M3Ǜ_|q+p%S%gY:LٛFuq!gY,FhVʩOkDHPew;2?tU1*H1I2;O u5V1 ju@~է^5%297ua4_^}OK/ZooŻw;=?oFuK;e)JUAro^mu웉r 4$'}h]~G ߞ_!ш|Usąf1!_UM݂;;:i@q@ М |7W]69w;cB6Oޔcg `M9Gm %" E̲ㅗGn܆ɸeEtCܡp M$MBhkB4B5"upUՋeXf%ͲSe1؈yFn[ AT0Qwxg>)}E}H>ֻ;>5,YyTԄ=}4S)kgfAd.\bǝwfbR>}][UM,=4 rP#<9Ffstf)@"!8ìb6k8 dMǓy=>1\pl`Ĕ:ܼ.ϐbtq)]`FA͉"rNR 7gx[ӻsNx}0o''O cl2H$RRe`fibVXl uPy]:99yI`, :ڮtНdz3yS'Ju^~`LF1EMCѸfwMY)^ph/?y^=[ٸٱ$dX]dzS]n3H7.׾iG7d~}B*}s}}m8;[m3=&XkjۼY"L ! IcݠȩY-3;gdJxLrer̒sV,3ƜV;?Z*I\ 9n VծCT*Hs܉A{9F]e#粒JdLސ{\0}jg0?"X馅,k"m2:y,uB=2smWnCSS+.+WUJBLjZsEjL4n=rHD~9YL:$5*#+L"{V-21=hi8(7h̒ QHVfβKb'`9el q}T4W%H@UU@STCUA׹!@N'{WqU$Y&gY%/|{9wWUUXU5XN. C1\LFUlvE/!0:rd Ia(/jYD,i.:59]JI6k>::2漼nNyPuIr7;Zk& T"qycE a#O2mQfF)s)EBcH}n9ם٦r<\nFP>!/D|]?{CuBs +jziw멾;Qhpw{Vvsz:^^#l7Mb\^Iw;Ww7AwsZu.yAXagqF9J\pSWԋ4~a3t:DjEBQ4rSⷊũ?QQF %wY)LA$-- fbr9q-JkU_Wz7|'iB lx8V*RƩh9O+NC)sߜ?J)!M ᓝi9G^0eRRkx3n' I??ϵ<_3k^o$U>1$I hQ(HRKLL59TidqF*g(4WޏN_<'gE7w}}_?fJx ?}wK# u]AU?;XV4n)իb/]!2w7cr"Rk~`Z&#t_ubCB>M* _kMt1&\J 0T300:{O/^XK%e97_{RK `mDtu<պaZmwgFR$ !RMai>i=4<ύWjֻl0 jn"g6v&j͖bR@BRJ}O:͖S~i8Ή͍}u !s-hۧ^&g3.Lz̘2ѮKrܿ>z(gq#(އ'"=vj 5T @b CB }`3Z!!jXU{m@ X\at$!t)C"Mv_7˒WO!޽~7Ow?8^_kЇ!CҚ ! ia-QWy+bȢ\ )2#bfC8?^IR>bUNٲm7:`PC~q+twS]]}{}S 嫯$l7piD?˯ﯮSDVy&TEUO|^ubljҰَyR*c9Y-i5^uK}@ e*b@U"kZYʸ[wC0HC^H*\k) ́J^=G+ivF;+"”>Gn~@=blS LD¨V*B~j}loܽ{:p6ay`%92飳ˋj*p$|<\5ˣvtk]ֆ~R織9Ri9G[=i{rXq_1%1 L\A殠BDA*\96uΥ*BêK9J޶7 k(z~ %p7ަ[Od < @3 Dr}.[9Ň.$Wcp0 6 "̾4Mt ;9?8l7x|Ͱts<,M߂-ֶ YY>$dr\c|Zmj57L{Y1z{"u8MHWW(xy}Ǿχqj8!J4lV]Fo%0EI'B9H grB {9k53niB;V1͋|ԓỏkpO[qRCT.̐( fh0Y-U]36T;Qp[f2vɉkTWj=mXٶ)!gzj${ş~?;T:MB,L.prU\K; >9 «G=)\(UŴi`G___ ?|gW?;xtyV>i""<,ld22US.uYU*`4a>?_=?:?_v_~=KG\dU !06)~(e#WK]h7i4W-U)]DB:c"t1 MVy4-nW+bB)C\-iE^.bp.)"Q9ih^RQ pUgu:ja KBZ[*Țp=lVХ!{m&iK`h33d9yĵm*o]d"|!;cyRr۶E?Qzqodu8 liriG,Qoll@T+h_TaB Wd&Iolj\9@^: h]'Dw@NQuRk?@cui~cil{;_x މ$6nKU]^MOja;Z}v=:%}0X Qk%)?qp)e IDAT?ރǛx~\1Gkk!O)X9lPrv21^Tw\YQ=n%ߎ ˻Çc66ʕtQa3ݽjYꢝd9Q0H weËХ:k!Su駗i +“޿|xϿWwc$ܞJ^3Aуr5)s=Yٮ>~w?t0<|H?\}RM+ofrnjx2<26L>MW ",!@pPbbwz;fTl,A8r3ZU2KLy{rc~tst'ffH "0L`n 'i3 RJiELjo9qAu$Fv':]e!e`oJ3McB2.%#o6^){{q#apZ\YųK~rjN"[fgPJ ruo`]ܾGhMl:f7FVĀM?G 濺8o?;Zp3<0^ dyӾl)Xt\f"\7F88?gϟζk?ǿO?~R٣?XoBVgnJ?xf-^̵Oxv҂Rtxz|:+:O3x${_v}{{wq@$R52e3"P &|r"uQ~3ޜau̐tps<,)T/_?ٗwn?/Яw^>|1N8i$Hb)N@S 8\bc&*5O8ΣIHDZnخVz֫a] *>ľ+N%hoԅժc9Ubǎ⤠: +R}\og-SFw8i" 6 RD")KخpyhECӝdb{0j^NHj99% BZaPx sn;PAVU߮zfOZHY5[L,DTۈj{RkuBꒄA~?]owb6O'`_H=x[@]=J"NFT5PfG\gY0K] 5HTYBZGG֎ؐgTxvDPe5XiZ~eܫj V.1sͥٵt>sП ֩}n \ !L(IL )byTY@.W_]{@q9dds< L\ cwئU,<{lň6َِ!*n?|Ч4r ww}U? if'(zщݩ[rjw:0HDb$vVa3(_}zM1Ӕ1+ٛת%%x/2]o|qOdڬ!_v8H>k* yvY+y 7'zj6ƋMD ޗt=%B\ 9 'fɣ,"y|2pgvzjHb hFzϨ}?8f3׾roL<ԭr>% ~:Mg[.j0WuۮW02@  0);; kWٍAAAQWC(&1Wb*CG\[G.ZfW=jdnLE|8p߼W؞?`NT$nˋdI k:jaYU|as@)W_]:t>?fŗb[?wv[,̹J iF`N.TKSнΖPN-؍Tt!),Iܠj  J94ݼ~E٪vKCcY U<3(@]Sw x瑜o|9ŊBJ#s )VZno̝ͤm$qUVQ `.O._|+9Z[bK'1@D\'# ~pc )e8OHZAF she3% "y\]ɕ4Nzz'nG=Ν-fLH-5i{& "#k`S[$BH@ZjmS^FIo^&|~010 ;Yg?dLj8P3ԝ VQa``a.f;uV Y<j8u`Z뗀(Jgn|!rbI݋"+JE +B qzh!Uf5\^\jmaf $Kd3x֗SDxp"Kb",<8pIb,,97w7L"~<fw~wm6,u:1,0Hq5`V}.>pB PΖ+YI_n4e=gӌ9Э}w>Ʊj7 o=;Gk=Ԡ記9J)R`տɷ3^b  " ڗ\9Ziۦ?Hdskk8_f0M[,貿b|s<֖&T$!b5X u7i2,)I%RL9B&~uxr ]{LܼR湴AC K>Or}?Kݐމ`Ѐ` !@1*t.TIuv˷x"IfS.Vq877>9xIg7o/v[;IRYkEPs bi)́%ZRt+e.y5BBHa4r*y;nuV1 }gi:~s=yX֛T$-'$C"&f]xv}Z{bC(h{i u21yqq<`W˯_([ w.Xx%(s}S N7ŋ:(iP`;6BU4ˬm bC[X kx]Z /!jlySBQMl= Q0:;$F8\TUmV0I|rwvAi2D;Rle2\dn,߇YJ viV L07[ j0ժf0et$t1Őn^?zwwܸ뺳nVYuPߍ+s'ŒT|Ϙ{.Z4!Cp$9~%] h@LIQL](bJ@a%>6̅Cd'R<ڬI(kZ$+ AwVxp?w_>yp_p:6Csޜj^a`avUursj46jt31i1eLqy0N|7_?z}sc9eV]ՙ@,AH`"bA7ҽ$AY+W gPurjD&Ŵ=1Nۻ摘 kR⎜14W @̝EP$xs ww/~_kpmkb L >vI15s钷pnjeNj*-U'V׷w0-7ⲠofWmx& D^hI,0X:;VxZ~"cB)$!nn32%^єdL A+Ir zI +p8QRR;f~!UVoJj.! @BnhI!-ibв97CX۫=ʟ PviH LYHXB @Ru? ^J v< #Z;qKZ= "v\yV86Onp<\Bhr'R9yuεT#!)]ZԳ 1pHRbR!jr;EU|~4XFX^qD'^>\J)4jɞ n:9t=#}:hݮ׫f8XIũ4t)瓻NO}jhZM)pu;ncZE'˟a{O~[Ɏ8Oe>0W513eLL" ދrwwf Gg߲L48-j0pObkKO߻ܻp`"Ska@K)/QC A{/Fpw@fN/|e5oҪy,ZBZ;?{WW_ݫ'{&Ai(Xc AHje4-TT;br|swOTtO1kx;&G1vh{e56 fu Fd(ė-gI &"ܬ6 f DfX#$aQR\TA@h izo]E,N2pX`sG/=&A])PtCRJ9v_頯~_ <{0\"`}N nX i)4_Ar|9CBD9j)JoI[[{g@=ɂB~vKy48H88ܘțHH*{%C޻U ,!WV<~paiu6Zr"5ZP:%ۄjm}cۇpUwoHEUҜ-ؙubc8M YqRd^ I+JFժv 2~ Zm~ gr\% ֒~fF@"!GF GUbJnDJ26k!`⡋{޻Vv%ZKЖtzN$ KܫH[ jZ%a4v2G)PYI-3O>DN~{{:n\nw'O9<C9}b?fY_ߜm6iP ثl:D n0́1LMm][GM 3b#2o݇ylgwwg_=6=/Gdn!N` {@,J\mnMRpo^cL"yg_,dL3sx1uRL׫. !cv\AX\ h@.*c˽!OFzjfꍿMD&4C uhzd1gP1k>?مZ8Xv7PfwN6mx<>ב(;{CHD軸ޞi9s=rwn%]b'!(ܙȖA;MA &&a E'@CpA,F'yVsuYDէZ,O oTw& CT:AOZ'*L=ʡ3hZhv@AP,@e1~n4546 -5!ʒ[њ~\4M}!~t}nI.kE~xG}ǿG77~oDO|f{뛻E֚sj! YfRjNsyKt6klHdᥐ DAN^Hv,SwRA>*v/ )qOw{pw<|8&:\yђf/VZksfԊ."(S,{-ll,%K뫗3ob"B,Z+Z,Y"&sdYٔyAP7eT*4B+9+~wd  ДYQg?ůǏߎKO[d:o 1@=wQ!!Hj3 yJїA Mh ܕոB~@tzpy)%0̼ZrqEB2'j֫Rܜ) ] =qYbV;HРcb "-O T0_GGj IfFo_C  VI)@4JmW42)Pc=Elv8] )Pu)͘FA/b\!r6*L1rL TM1s//:XssT J~z+9Ʈ<fi8Cy! H DB.4D]G!˻ׇ;<|q|ݭO/nZuaJܝӧ./Ͼ]l>yd0NǹN*~9']uNĺv:H,V П;wG.>8V d j6y k.< *oҦ+[EkJbC3DĔ!BLLĈR#uV@ /~Ot7m%⥺uksǀu+$qS'+q*c#"i[8uq7HDXw 0(\n|7u5cOCGLxxi_|y'O]]J|ٳO{猋wͻ[1%3X%Z杄^XȼN+4TK=o2RӨ$3R?7W/==C吞|?/|QTB\wö6$RL)aGx:jSJp! T$%ҖkD1$0[PZ*#S _v?FpaR M97$D<挘dgt0n0RϿ'TԵԢbv 6DX$0B!jkjFH*;qt{$Ek;k@@+X*3]ׯ\gW|{}p ''%'iZk+$BEfbTk) ̄жgu6BH񀙫i tnl-7CPj% *Y?M!BLTJRZomjDZbpru32h eQoP) [] f@t8 ސ L‰@g[-*LCu]殏)ZU&-FFKb vˬ-̩]v`iz ^Jiƹp\2ž_ }O Aj-Y|Zԕaq[rljd %W&eB9|no~/ڰʼnmzIz+9s48|R+(H.;I2pZJ)Kx ՕBQ>~nw"悹ɻ9 VHBr1v>ֻj,Zܫ֢q"', k;@[d M/-@$D|;UݍB܊J3cՊ5b R1w gxm⤹ E- !E1Ht hCMLDlL^[I%oGݏvFC0sfL:|ss}:)NfׯvjSR0nlp{"O1t,Q\Y}?B/D@03'Ao?x-ɤ-Sx?X߭Wq}{uuNibxW=+E6VDk%S58xUY Q}#; ;k^"Uꭞ(aDq!uO vzp O%,Wl{η-'HKKZ̘i9HD6@օA =Yo;wT][/u3d_)ТZҋbҢ fXs3Gm;X#R 1 7eumǷu(MC#9F*L+e.V!uy}k9[puYwSZ8;>o'M(_<۬ݡfYayV[7!JIx5h\Cw8NWAA3j:2{u3Rb]Ų]-E Kw؎Fh>,7^RE̬Pu|8JuxO4LH\hH@8NG';vgkW( ogb~(hi3=?Rn~$ "pjXɑ&&rnªb0F*h셣d BR"qps,Ө5e*퉅!~/j_xo 1xBՃ2:$R蒃~_? ZnGʇ{Wx2;7x}3;Ưx v utV PܚB"5[MsCLyPT%m9}=>`}s_IjuP(!e>MqLYbLAqcW!(L՘($!6m}MKQ`u+3 ;3)n u~1P88N9\@u4{)1!uZe?&cjR`yy¢w_reLEXY!xt|l'r k/~pD20#ߚ|UD0#U7EA·e&^pTSJfUU[=vIO'UjlYS8{G%ܣ1VwJԲA[PxLLnD ]P旵݃bZN5?}'RWW>{Y AiPC],( nMMACicXhu6TRw'J)}߫f0 Z{EġHԽS bV}*:-VՅ灝HY؉?ϾRW)_ӔwubՎ{/}|q>S^ Tt*TS"R8UCnJWqFgVv2;BgH;|)x !w7 J,֛ޭj;qk$D.S*SCИ7b文[r"Ldo-<N~LпY/$$nتr !tDwU+HI͕(h$t&^taXw*Tק#:Bܵ3V+_x_|_A)E8vw8 ꋌZ$hʹ%=yqֹ^]{'_}?t%\1Rț{PU$:ˆ#f @p1#c %a{8819T`Dr쭃6vҪ9%ybRSf5OXY1v@< gfr[y f CI".Sͯ :Pd Bdf¢DsnF6:]ˋ}譯9M[ \s[-&[{Zn 3_n=`Eh7jMJ%[uÓG'2aqf;[` xwSLC6ݰ^Jb'!Nmif^+7[ M}y8VPRpi2od /\5 wC` Zsײm,WT rIse+L J0HbcqUZsZTav`N͌FcKq K'8D(2=n:NWfj"€WV+Y@[`x}{xy! [h1ϭT͚ywJ{Gr ύʖ Zb jg 6 ķ.{xjR dsȹj5H ̫Yb6K=5nCh"q/u@8]j4uh]DnVb57?}{'{7O{`ݞ\8N81* yv˪\aIg>e&V˯_oO Y4œvfX02喞ԇ3*;Y 5"zGm("z->"y$bwZ,i繖4T#Z]?̪if^]b"T@aO+~ʵ8TEY5Hb vbVZx˝CmK[\s5T10,7(IX rk1,_z &oK t_zekk6[p!1)1g=G]_zmZqH=XIߝ0N΁E|1p]: 7nݭ6wټM݄;k2./3 jdL,M2"8ߴsDz 27r#,+AA& Y$R cAFtOc)i>x<\*{̈́%,)&)r5hCB;c បKиݡ "(>}tysn4i"[}޻y3 82js,ޤ"4mpsmՑcЃ}|uw:zǘ̬Vm~?MyxJ.Zx~e:J"7dS@Rj2u l IDATO.[\ח_c3jFf!8!#_vDfv;`Ǫ SV ̜VX)Ya(yY=s2 s ߰ <sW8;7%AaU/]^4N{M6/97o*ܘ!` dBdFl$8ؚ<*fy3xopq{MLcۜI" Ju&w;(VGZT5D4P q"Ij|, W/T+>|؅\_}9tB>£Kh2ógzqA-zssggg7wp:ιV8牝SXke>K ּ첎ǩ"0Lͪk)(AݕsQl5\̈\Z&S`p5=÷=ff.𪽽%w2c.mA!^BB!@5rhwа%f0T`%kh/ u.3阯^co8VSJֻ] _qs߂u`~~/x_Wu^4LSfJo2 S"(TQndԒ1)]7ۛ?CwZwüۮ͙XR^\_PTK)9Zҷj[?ܛ.o`rvZ; WJNmgRfEWx3 u /|ֺe*6wBLSVZB@hxMHlMF҆@d I0\wϯrRCJKlzwSqH4cX*1Ŧ$i;Ж\bZ\UJ1*"1F itsȷ|w߼_ǣPŦZI3v^0OZEae%|#ra"2W8b8/19xH%L6`;?)>!~϶ݮ#PɎǖJJ*y6Lm؝WW+EYøyg#i-%TUji 2o!0"tMlݠK*tͬVSZ?%I4eٴ*Rz]sI xELzX}quJh sUi3H(HUw;@y[=ߟr/6+bj ]O!VizZ_wfOc_>|fKwzݥapQ{ԜRXɪXߧDJ-DRO;;n[={g?ԯ1[GZ }u IQ6[U]8.0c!Uw@AbR֢wCXVUպTVY2QV˪j I}A,vNO=<۝߷_e[~WXo?xΎ1Ұ^wu!Dawj'+. fYD1TMyZ?RuVabJ1rir--t[UV%GE\-TiF 8"y%7S<4ޝCʯ滃gҦaPWZLf6%'H\kjV-ppڏM[:e c!B p>^>X?szo^wO=;<&W$Oqwb8Ѧ?ƪ!XY2Xz. 8MH1ܝ!iN]C\«UTբ%7`bv&wYk-f^bu6{saHNs-^0|:1vasLY;ǻW]P:7gxbjAc`5?ǾZ}B'o Ed4r]U3Z;AP6d6M|okwDǵۡ7$ vC`Iir -PD}%q9-տ5%![%3w"!)H ߽__$!v˩LBZAk;[ x_{?W6~\?xXk !vݐRUD$(čHn3 C~?Un5ٛovg =]o٧;w2OzvqYkvc qЁb;47L]5Bz紖nDaHWwmt#<DC E?{ܵ(Ok %V276'w}rv ) 7. sU-E&v ^1 {!ܘEG Ff7!pQr%(/2Z7Ԓ7'p 19vs;jmrv09 󘝖dC6Wg}>ܞ~Ѕ(.ŵ͡A}^mfn6ݰa!t]L)Di8Uroj99>xh8ysReÜZ)Ilx'-5W3`33rP,ѩFO!B+1`V\+|v<77W7ׇWE&PժڮC$bΛflKy;AD%R"")tS6苯[OHF]Cn^] ]xUp8)Z눹A 8HXrP8e{sf}vTZp͙ :Z~g,ВyY%f8۲MsB32@Jrq,CdG(eBM֠0skV3/m hlbF6kզ~b>!x&/ _:d3vb}!E;ypR8q`X ũztNtyeۖޅ}c9Z=ɾ}5W:IU*(%(a!@6ap ÖdB T !YBR꽪>o攒d T"ȗ[`q9b Jbe 8N`QCQ_i)KpxY<94ĴIyj{]r}j/a3+B3nE A{cŒ.P躨 MKAdRldu -fTD]+@sC6X/7{;78j7}82Y0tu$5u IBRƕAW",:3`%]Ɠ675+M1x.M)) Yjj6,{G3 /R!dMYE`J)"mcW(]w*QT:3жHZaTayɔ[ۍŠَ_\'e#c.nxyX:hiFG7qߦ띃'_C+[I6hM* BL\03xr[=!nV2٬ JKjB_V̞f-. eu56֫0c<9gPL_3$9Nf-'L q̎,KJ9%I(TdQE7?}w3?vna?Rb}jF33{3,"IUk&Iq҉ ( @fR( (t2$hT|`$SJYb$N54}!ˠȮbCAp^*E|9nq)Anh 2q1˖ɚs`j9v$R)|ҩF!Zx}9U5#=aP5Rf`j4}oյ\./z7a#deTɭUѨڙ솸3eSO+Օ-iS}iUr"+W98ޚ0#e5R"|`Սsr$"So@v{sLP;df[iD!%+QJȖ*:jy`:^z5k4#8BƳӃQy*N3Ɲhb0`X.?pY(z丹.1jߤ*ruwxmfL!9x5Y1Cf,W+dg3BCqg+ɲ00A`%EʕH8J;[\JI:?ƅџUxW=YVقtֺ"RUz^ZiJٙz+ň.Gps\-zk)␔k3F|k?3/~R:&e*"\183jZ9ajÍB3/.Nnܹ0m~u:}7&SUa4b^<\q6MIiJ=ۓ0UC-kER9FCd&bt3 9 H{|ݐ4f $"YDUy)_YI9L;`%)g1$0jFS.u_?hJHojS/)t ig f 94{j7g.L) e T(JBN *cP$ݐ)503g"䂲3 -=Xy . 1cRȢ\Ls\iU9$J.BUUMӧg<gNMv:ŧ& u(t6JCof,ËgçpoF3[]/RsT\@kw\x_`j6+e[:+`JFL) +m%mEUJK<JEL?.HU>s/۩,t ֨O[i]$ 0\׮'c6 ݖT~GUUj8X1Yl6;qգm[C\d cܧ"|~;7H'UH4ȴEvس+ L%đ`2"r|ܜ-fv|ƭ7_+78ʚN_PUX2$"j6GޱH;sY>."P4.RE~C fI-jxUTf۝H~I$T1 SD>e`#0 ~ .xRLTc ATف&R:d%9XBp\cr-u%INDFTQUeӔPX%<𓯭}|iiAfMi`KN`1JXsNʦWn._m?jKص;aX1 IDAT\L̈́#GXi6e*dv'*+!+"z"6!Γ%5Q\oWCU;0h`b΁|EɹP3rTrعb1ЪQRKY$cr4r^t٦;$ Wub},T4Qsɂ` +ZyȰs[#&{g:P3Au(a"1]4`@L%A8Éthqx8rSj,-KN{#WuD+U툈Fhٹ$Y,nز¶lFUpp+-vxjͤJqi;wF dY2lMyȲBIK4s1fwRL,V ?ۋHz|31ϪDrR"Ǧ\}{_zg'wvvf|WX2v5lO0V5d*S)BL ΐ׮_xR_yͪzDmnCU1&g+N F)RĜ̬ii.BT('PcDD!nb\eRD#B Wے fy.. :P4P.,lmk%\.@BQ tZmȒ` Bjb7[Q3lօV7a<ɔ%*$X9G`5cfmwdוU&{c3('2B7#U"eU(PU.K#eJ O-;M>Zs^O΋?[l2?"bTSҘM\LѾ% +2$": sH;窪 :cLY7}Py"^Kv}\v&viŦ]\._}EB[OB̒f AsD%\`b/ e2BRv1 TJaR U;d\iCb4pURF8?A Gt.1x8!FL+uGqW\${q*lۄrd#1Jhm[bBxFD>PLM*T_W)> I抪C r9ռ/@Ur'EM1Mwd@pO`<Vmߕ>@$TT;ga|خ>\Us}~}vKǡKɏoޞ_|yb2gʐc?HJCYAA9RerCZ@1BW7:qэe2cm? m!]8%61dJZ%-*lg~!l 傉`ąXD 'E&T_*Zʳ j&9١4gM?wzם}f;Ҧok>6l_\,F  e3BS+SJB>F|yvٷ:T9^{_~|^+(my=wꖗ/[``ϖf:\d\qα)b, D[@R=8ʺ\5&6 Xr HEQk'*rNV3Ejۨ.Vz3! m|@#D5$HŔeX E) JN' UE"|$"\fC o*>o}\-t4>=ٙu fJPjyQנ obDN]t1ń$+9 gf&Z:r()f2d!=O&lyӵr=,]aLL%[9')1 m&b9Ih{0a4M=&c@Bj٬{x4`g C0ڛPT'8}"㱼#_f[7p熛wxpۇnwV<=A^ Rќ%iT{:ٓ o<}hG沞8dgjs"+'_÷?SvpuO 8xCbEEUxd"gCΒؙhD3sV9G桮6)eC2r" ~z5m4+k^ lf<3WvM]9DT31weQs*8(]AC_ 1IHrYlUZ9OάE oUW -=⭁)۲}) P VYXMZeOZˆ̅sWp$h2 C(Q]Qss~⫵:6ѝfUUN/p#O17oO&!4s ؓ@4e=>!ǎGk_>|_>|`՟zbw_^{o\ u6 B HNT}seQl &3S>[6ް% I*L硂#;B(K-Hi`^kpz% -FkX.?MS˄`*(b U0+m|8g5U60ekJAC{ZuM}kEUB f `}GOf4,Ӑ2czȊ8 sE9m R.~r ʘ͓Kk58eivq0;pD8k*P(,"1&!T#r3|ѲvY}ί]?ؙ5v,FQVTLA=u; "ϔt-o;wy]]=ʁQ9s-JS3:jSiV^aUQbysG51JQ8!YJHxQF;ƏcϩwevgdiZxyܻW?|?{ ?loܼ^ͦ""F=6U3VjyWM=B qsޜ<>}+޼vzóO| K^FsѹϕM t;ǢF<.(c ^UJ!L~VvDê0S;ۆÏzyD6LwC{ve&E s΂Jv\ W}gI}W)Fղ}?50rv̬:xl QBrfHbOMv/όQ}xcpW~/=D45ݿs,ѱM'Ua#DJ QIШ dم|!"2UeEv!855Fə2i2v+SRlDͥCe2kf|骛@Q\tv͋^*oQZzTЌyH5n*úLIi#5(hI&.]""rBBSUu]!xV'iPbH;'jLV9_[Л2X'6VVBDUZqMlEhxR;Omo#bfT;UkaݮY9Nʹ8lZ5Mj#OUQ$x({& A[f F֛ߞiǴDAɴlƴl՞q-:e|hj$Eik+b8fA`CҬRQ MP޼}^QX`^rH'ޱY\u2 ?wzk8,>yb/Q;B~\//edsh3sU=|0DČ^UԐX4iCѲc/! sPͶS:ǟu0oww>xnXWuF&4 '8_.=f͸zN#i.v3rxK,)$v` 5r #白G!mQlej]I<7t[׍Sm _w= wr솮=yqO]xd O8L&*4j)sz~,<*j8 UrFIՔ2©{ފTc{rDوlBDɱgf]__U?7n8oIs||\uN)U^ IDAT߯Vqo>l>y7nퟷ>tċP&Da(v9G)%Uc/&jR0S٦'3/g%<3ˮb JCt vKd FNT9ELfdp+QV .cװ]+^]qL% Ith=f6qrdH:&>k?RruP3pPG>q 0ӽq5Ӕ%'y\dTDmfd?z? q/.^wo>{.>xÇ7FnYz6ie?܃##f'TaMoVe |KD9!x+j.J"S˪9x+붋aDj`} PA /Oî ^G BobADz\e;b~ ˈ9{y#ATj7~جdl:5Z3*vFA~+GI+RkԬ$}VDV7E#aT`9r8UsxG.Ā!G}Nݬþnh1ݟ{ )'|}qXoMa:UU`` Yv1Tg{^=bMhԬ Be"- aDG&a- Y3`J ``KUeR4eNBu&Y'j$'Hlg\!E$+r$BH w$^u;y~R`p lzwT54Saln:8='y?ffٌlZ-;82ož\&dӓϞ_d no? ¯0ؙ{d>gaEnsudI 捿qw>[,Β0]."+ (t(kݚ$)] TA(T{rB塖B (4zA2@+  7U;΄ɹff7m }Oyh3Y?wՌ]]P1+LM={ M) Rʚ4e!dكŰ8b j#v/cTIP*l-f)Aێ)ePTa8Oɜ 'Ƅ攈^YB9Kj[KJa^V K־K0p\,+m*L:ؐ1qUW޴яTv9Cߺ;`>.^vTez3?p\hH$5bΊĹfEf-Vrry|ᣓO=c~=pgg?x~دukasF>d6*Ƹ\^wW:UD^9B" S UЧsaW&wPUz`f#)t$_2)m'J)I &Y:l]p,RJ?Zha j[{mnd >:|gކ':8WsuJو $b-ӗ+sKG$ uO>yq\j;MDι,y34`7#h Oj( 5cڡ1fSB]o);?t6nxT{W[o\́+e1SMC{ V-,f㒮\ &LPVWX6M$GzIQsu9l׍͛|#4$I39s`F@rDsAiСO%gx{Gӟg:S83ӷ{8]w?pbNQn޼Lhrz|og%Z2QG0ٟ^k/ggIK/~}svyvm*t ?&F 2C5;H)G]h7_;uޫًOvG䬃@l4ܻ}+_ko{}g|I?ɼzUV3imJ%T B=layIհY=aSݹU57U>LSJt͒D*yvfsc65#6jzY_ʃo ~߸˱_!ݾ)m˳s3yz}|gb\G:4D4r;|pUU9Goވye9 4E̥+PUJsh$\bKJ- r(o8T)5BU,=Ŕs޹M.>~mb8 1lU+s. x; jcnFP5jP.T}R26qi*=6ӜlvMR::;wܷݴfhb|]hjF)#&놼\u{snru~~zϞ_}yoO>~4vwwhoS݄t%ZbW*#fiL1V5դUYST9bSR%"<7욦*!f ew ˽D99m121 ĔLEel{ V^c.Oĸs rEk.$U7pLgԑ|2v(OQX U]"4n$pH%hKK/H-<?x77_.P/H2L1)o?iy؊VmPGrjLp#+ >GiBu3VUUܻ9g<ԏ&cWZO/ƴ2jFmVjWQ=a۶VD}+Ti,DAt<KxDVX,dRZE.c\ Q5};Fr .e.x$!(z&T)qJa@ 687_s0QS_C"B3DZh9w~4M&~}?HFlƍR½[};]vgqޙ'??O{5L䚦y=|tgXE[B|%e'8cd)C9#)7_;&~꫟}p{X=_x_Ouaw|>dX]?4 6b"fޢ ΣRA#Tfbrݩ@drljQ fu36]{~vzX bU%znTWxTU~6c4ArJYUi]b NSݣ{?zѻ;_B_{?~w}MfX/9MHs.bѳ$b2!9\FI *4YJj}INbjKM)vCgTh޹`v1%I!:>ؼ9Hl\PEr6 yKޓ 7?8>Vnw]1$fob9CV̆9yLo``VhjxCQPCtJ35M1,NL./rxWo|fQUS;7n/7ڶ<Ұ̺BsI3aSx39}b@Sȓ4e;\M`DjZRT#R-mIR30V-b8*}:wwg:>rZ77i*ҿ'ݝ\.>{ѧ&hl.)Tڳ* ezŐ #d_ûU??uUgzy1|ߎ195F5s4fimFz4j xO!X䃕p΃3f!r^-%qS;ɍk{{XSZ,Y0t}7d8<:?W&!МGMSy&Ƹwe1 L(QMMb}p5ԫ$Ue\ 33;rs=ٱwJ9 E_={y{Q*x= ːI1K/;q3Q˾shE Y|od\j]n9zɝ @bRMp ndjoM[^k|浔3O.okz6"㏞=[T, jV㪪$Ԍ|> kjC|*6`SQ<=ոOG{_g+L&$&Kc˒#LJM몺8ToEl6q?KQd{_ѨNtェZiD. }ޅ`"LR5T%/%/)X4aI9][9Y.+gDxO!Kh˂9_:tk["21kZKmnrC% DCF}zhww*&F/߾umZomE_hq3Ǯgo_?>{zxr҃nw;>T痗YlwNˋb^l7ܘYM1Iq syf3s3Ɔ/[7rԜ)81z~D)KL)9vRbUG!ѤٝFQŅylތ'1ٺoьA)[JtNJFk (Y6M$D0؃I "% UYs0 s+rku4am%E#"gޱ/,w;oiO^޹wk=ƣ0ld6;fv>{|s{\_j,A-欖M#ӳx2YRJQh޻yԯƝ;w|UcQW>\Lb*$N9 ?ݦ&}1K4dBѡ>R5C)V6 )TCe-۵m9HjEԴH%PIJIRDVAE~ULU <ȳE74m(=Qʆtm- zJFBjYY"30"(@QM} P R5AEQbl+s WԠ$mtn)?xpvӋ4"rl~uxvhyqᵺy_1UѸi3qμdqLLDU-&]o޺`|: l"5 T9]uo!棻ן]ܼZ,mS|޵frX8pEUOL)?ٛ~bz踙n~p(ލFEo? G%Zv ^룊Rl&[^k2P IDAT.zš뻜fe۷9Gє0!A5gM0g3|rFd|v;vx$. B Li7D E{QdRL !hxVC}\r<*W0'BMܬ9>oݼꫯ]֌!Kp ulUMb֛˸l?&Sh_׻u?_L?n߿qx'w:cbaӶ__sڙﶫuӵ۷Ϟ] C  f +L*`[]tSUynگv`W_6FGbuSO/.<#knݚf̜s2uʹ of"RJ)e\H̅ "[RnLa z:?} Q'=~|o;boշ^ N=9Oaqg_~rPO޵?ykwo)Wگͦ{FZ$[25vq4Rel?WնmM~O&7ܹu6;8ojvq^VI3{ 1P9D$W\30@*F/!T)%윉Bfg^_eؖXabP>BE4eA 甙q.IV.miǴ;7]Ki[lAkTbLJNtǀhХ&`b.x fY,x?'4U3n~doNWg>kW.6fQ]w?W?쓓Yh&ɿgݝwm+m͋cַk}NGO_~}5T C֘֫.Oغpd-jmߛۇ'5?m$ً>nRs}?,.7uZ,Ηxy~\a9Sy5(YZyk{Oٱfɽ4hiHC5f$CM7jPW+OMYDsD46I-xx0rU˘'ǻoݟwv;AkS撞hTDAe7,sޭ$0Gq\Y׳Jj /[+?Wq띸N{`Bȍk!}5s<ܺWfT)Tן~v .P5: f&G75MI-3;>vЋg鍣~Y1z%gwC/Hwu`%KQq 0 !1ܾ=~x2O_~:|R9CG`&&jDƣdg\7wޑi7zǡibMOclۡIYu][hųg]]7>y|tx Nݹʫ<}O/ܛnsrrՇݦ=a6ǭۻg{lġr%BQBVv&6Xds6"؃ARJ [ RzYYcg gVR4" OΌLMrӓ ,-#njYHX% qHVQ|ـz[`ُ J ŋQ%xfbj޴fjp;2$e6Ƥ{o8|k*gGGE/)ڶ_3{cF-˪j̡b]/^;;.ֿ;_v~_o?B=WqWJEd:gOO='{ƘsCJD]1wk!fQ?wMrR&",%5FC€ f$[^KeOxyWbQ5&҂-ɲ෶(L_1V9zJ9,P|e  EI4g 1w}NPM$of>_ٳshE(U Wݝ>џA>y4;?Gl\ِrxfӓ__'|7/W>6'sqE1j\ 1qݾ=Lu. |>[dݦ:mn{[oz>{bھ/\âAf\M %kq{|7߮姿X? JȔ7[ ZR3FuqIX>,hL%ĨȱE4qVPvnߺ~|}>;߽n|fI I}߷bm:K* Ɋ];0jowf||cg~᝟{޸:@tiPq^7CuM|X\a=^.lVOCfX `oLV buRdCcD55_Ξ{%hgg_ESER" 9oDjjh9&  /6GUAmna86u{LE1uĮZ޼Oi20c(i>з}]fW ~x^ɴwR}<󬊓RWd,8J4d_345wr?x+ޭo ɓ6޻aBNXneh IWkGm7߸qV7&O>=_;{wnntCywvӑ4^$e1fVXМd 9 C'"r1ƜsuUU.ysfFULM_bf2Wz )rVg0] B >9@^yP-eZ[)Ln \ʶmpp]ɈrVVO pLYeށeM*QJ¿~|mvox{&{{߸u{s?fyy>$VgO~͇|O[~t_9oc!^QsyLf*OD_ye~Vn~_\#ԣѨ'F AUϧ[|g#WG?Ij7.N&U=jIJ\CHf1e3qd!C7rTSI\=Y߹ȿ~yNxӳt6LSf;r,(!gAJvgo?<<GgG:>[_/77.a@0o޸{~Hcƹ($8r1eSUL왩&9}CWZhn>I֔%HWΫjQLit-G 15Bfc8g fƣ۬6mvUMqU E{M`SYʖIj` d0͖0iSH" ؘQ3}ӧ1orXj՝>\4SMsGOoxxptѣ6F3|zRngf} ޝ}_{` ??ϟ[>yijrα7A<,/^\<~񝽽Q3qLՅkڡCG|h&|~dNN^͎'7_v:|PVS*gXn#iPD/Mc9f7o􍁒Wx8ݐ;8g#Tu*<șXf|ᆱfUUsYڶmԯ].//.κժbq @F#Ga:Ūbd2`& A@Uih0 DəR,Fm %?U`P:4О{{3aBkjc+%E? +WS<{rA>ti^,\Dũ.dpzܔ6Ofaj駏[Ypf:M&0 7ͺ;;߿`{񏎏#{O?+F`AOzșq7(dˋ˥GGGh\3J]%6Rr/@)y? 4w79gU]]Ս0dSe$E;,ɖ-ɖ",I;ǣLJ%;RXiI!$3@wuk2r=7a-n&'2osZ}7DѤU`UR$%gah(/$$Xɂ!tiL(אXG)I`$/} K\c@FDDRJEV&%P$o8"svP' فFdK;ESbU@(39)T$ɥ3 ;g&fd)HL*׋ QJ߅r.*xUQ/V̮,]s$y"*Ibm,3٬nuμ]'fӵmVhtxrM#W+ .Gȏ"G j䣠e׻VUvd]7T@ɫQ1C(#1qUUWZWd.oﳬ6M ZߧU, V ?MM" fSo~b7}r[x eZc&oC )H @$M5l>7d)l6nY7^?׶w.vvg?|t;ݼZ>9j. SĀGeʼnvjBK/<|r綾o|By1~%h%l,\,*ReÓyfaJ-n)X D 1VrvHx~:9 K.Vo헷W,aq[ɴ+6UNl#hteo'(z<|o~~@A;?$Z,#w%UY WY_5\$b D4Ezt\y4|K0%e@#cF?{W ICJ0 c]i%%eўE4BVacUƦAǗ!=f e@"b~*<3N\*ҕ`ⰰUPe"džd@ F53#:Ǐ7&wŽO7;[jІD=̰sWx緯fGIRZ:H+{Rcnt2乃$Mן>K4nY㳜l6c?şߺu:=SW,K>4 u&?91UM)1 +yfb0)!%X=b@/s7?gMHT$af IDATl-E^daDlpt,4 K1At|op}M/QB"Jd #HZ.VvuvULROa6ǓnS?ݶ\deݴM׮{{f2ҾUa2OmMWn/'wvo}o>Suდ9Sq=*kg 9[v=q1_,KG h=G|z)u֒tjM& qC"@@6eQո_q]l]=y4H!Xfqf  `2!Dv.޶3lfS1Y kr+V<?P #C@ Ibp%stCDߐ*wv\nOg㣇E[;f2D\wggdk4gYtm\*xѧ{w3\ۅ~`g߭ۻ]X{fڵά lM̬** "E hL)slAUB)!*vAxD-B!Ūrd֕u>yc!D0k4OciTSTUd0* )iB!X  1 5PD|&"6?u0ˌ^6JL*:\kvP7 54' ACx0M̰H)$``!Aq;y%;׊'<) Xz1s" k5}e_̚:g{sαཏ>eu>*g~fw]oVjk2GIYS_KAO svT7vU<۷oA~!/I}}Ϟ|Қ`ҁZv,)clW)it=%Uٕ4w8ƥL(6!0oەQc`6{yX 0U !t$@SLFݝko\1f6'Dޕ(!i QkHXvѴǬeafU>21 uO';Z-Mw+_g˝َpfapJ|"ϓ3[g$%11Ʀ7njݼߜ폑 Do6mFviNǪ:>3lO'ͪjdD,ڥp~z$c2cY~~~[y]%<7 2 X+YfE@68gBC,)+0m?9|8;MmlcSAb{T^?>OXm fTo/?vn}<4׾ws|tburI7^mVP`cp>{tcԣa; *]`ȐAE|~IŰbeYb[["/˵rO8=?nk"Pk% }PbXp1j$bVze):AZfǀHɁđhza&b?v2b8hY!^Sw'&3I$ )iE:)06R{{ӭ`OOx(6]wrqֶl'|;ήN'O,{|o0f^x?_ L4\?`& &#]m6=PEU1DRaL%kp>_A,Vb .Q5Jf8Jֈ#9;i:$uNF% .XEZKLe 0l"bP/,R + Q "RF5^k eґ1L2pT.K\ʥbH1BH1GY~1 7N2l*"I\^OnM M>Y pV} =hgtcOw&;U9J1vUU5lb<<~Ν;)%.#{&wzW*G立QQ<9ܿzM޿~?ɿa\wgg4(3GRyȫ{NGD62$:W^~a+ϔ^~gfp7_=Eqv֨8E_%y:lo:] R`k7idLN;cT@ {߻su2ڲlױ1d5#DyHIz>Uc6H oYW=~ts-̹64gyVIbm`eYü5c04!pO=8mk*'c?pY6tWT[bVʲ{+1ƴlLFTM~6Quh8F|+_$$YQB)}jr3 $H2{ҐJm'9IkM9|JơiQ8>~~qQd4fhUz0`9 4>x^=2/ts~.2>wrv{Q{ggYom_yn?:~xn{w3}ޮGK/Y-wv^{os2|J/M&n\ࣽݼ,Vt'߸8[ QPH^s;\&1bg/sj-k$Om: P"]t.VƽVm$5.}WccQp*f`|G6mVzZb<le |DU[(p x̎rO'&GhֈxF$rK (Cz7V 5Ue9Ϗ^}߿zM&M)"狥ss=9=?Z5hGG<<=޴+Z/1 E_޾;{/'3%ag߹%m6s3 !ўuelrڴ6tQ=3-kj`rc}&pŅ5eE >*0 ĝ8㮉e$" {& =ML9UR*eCqd-t^&>2c~ʗ R.|`)F}Γl0/_g;1;.w>?cj]+[Bnxztx|֝W_}䄙,ϲ, 0lqI9zJi U9>>~t:5=~xέ^L1>AbdE$s1l,JYzfLƻrMwQZz}瞻[νlʅ,WW6s~85 `H?~ݥRZ4) I/`Q(t;q}K9=?jT%iL)u*\u1&H} te+o޼=opڶbld!k\0mxSRӥǶC*N%0D7yeYYU]0go/>=MJcif+y1'6,Q8ڵ+E!!"ߌ}n~)L2֥.4'>61_,Əgc6,,c0T]K3,_lZ,!Ȣ}%&lʼP!cxHzbJs8` (ʼdu{)mI Ҭ23X%VDOl7bo;I[wwć/w?zѪ+'+pi7G'W]OAZvWvv7Ε[ObZ{byg5CYm4j]{o|^yK_{5_}/zwWGCi{H"ۻ{6>u-BY9RԦ,Ce X-YflF)fkٲM1i轗 Wg.+V-n6Mlzh XL]g]6૤4%k: Ād\YfŘTU-ɦ7]۫8d$Y`r (j.q< 1FxS)?<:@H:%hBhx,@ 6wYFE^`<^upu [;8/[y^nvsi؞B/Y4@:ߛ2kOqQa 0 x1}BT Rj{STgmk/*Fbe`=s$ )`#eBsO#lgK-?FSm\LS:3/ܩ~a&Cg4M5}{?L~~~ڶ5Ɛ"ƘbԘ.o)B??jܹzŢ,󃃽zѝ湳?V''DH6 2*Ǔf/M&!wHK0$c`bΕ[ӛ[;/[ԓ:ضI>y0iSH C5ٛ%/8 4Yc{j_ND>i #HHˀa>4]jZzGIl;n]mjvwdzt=ʫ-YRD "Dk܄vr }@ CdRJ:^2n} 5; Pֵ~6ۊUU))X$*~, BȀ}gNYVr4˺?,A?.rCɴ5nzK_^x|lRJ`dM1AQwkYfn2d%&$dgɴ5q0MJH#Af<'WRThv \>w\ y,&>v]߷E6r99^%Uz6U53e$6&[|[wyUg͜+ۓ;?wGe$b [?{|Бi{g?_|ߙnMzk_>6q* Deؙxj8k.D&Ą(**b"RSJa8_fck5LY3`|{{!HbY d)r/SgOVwQJ|:ENYWUUE^zRenM]R(L>-t6Mricח{G'ne''vVdo{6)>s΍7UP4 <3 gY.cY9K._Ιi5q_g.6MQ_=>9}I500e"8Ư?Mn=BJA 1'rl,ߙζӓգDA4ǔ&gI)` ;ͺVr)a\317+n7>wYv[Un(]׵uu]XjfW@dϽ^'tg;f>/GI=7}h^mu8I*vyDyɽou1ηY/^\dz'1Ȳ3.G ꂇH ah Y9cx$1HcZkI~7Hn vFm,ǮYnEUNCFqV.Wo% w> XRLI#b13\RoO  [֍?~c{f 89?uH7j5'w{|2H 2]odv)> aNf>lkk_ɇwp;VۚnNu*.;H?ixVo}MQHJ.6!I$b1r Q!U#bl-,,>! 2_ [׾vǏ=>|è$ LTTi,BD1FH! )! 68g;gxLuR!j.ALj["2d ? !"=坞aQw.J,ahOph1l'_+Gַ\N˝Q5 ĸZvvOg[[*/1E͘zܝ;vݭ[ٛoyݝu9<|cfA Q,s"yV,owU 1o[V[4˺%}얼ihP=Ӈ.ϝ5cPkYUW벿o<,8ZBd0$QkQ6/pIL.IݪI Em!")fEX,|F  MlH20z$d5Nɝl*qavJ7Lb߭cko|o}ͪ6;؞w|x;xI._ݪOtk/u4+g>tns{oj}@]g+6bG >xt{uɖ}+{?'U_nx!z"IAc fdcB(ޚUX/gvlc躆HE}޻Ѐ ( kc)"|V'hɤbWM|q tdmMzeúMz4k.?Ĉqw&[~}m}OcyIo?޻>ؚ.뢨n߸^Wɣã'TO")1,΁'6!`\ r.4seF$:%'`ok{;Y5(4Ia1YSQ .`aCTB}Ѱd5-"Iƞ4hy n9wyj# 6{hyYh/@;#^\HػZOHPXSFuli ͺݞl}ɽ{;zqW0̊cٙѤ*'Y^9[-b#[Q9۾Ï: IDATY^l0Xo&i:CLpjfL 11۪$GA&2"u<໌һ,\!݋V'2 C[<c1BfxɝvCyׯdSNEn1  A !B*<>˘aĒC/Z" "cuX-e1 Qa@0&QU;Oς| ܛ9Ͳg*o?wkkֲyx(E?<~l77ٺȧ&beC0Cc#j8c[nݲYvqqQ׵3Z>t!(r\VARQfeU)RBJ+<[II`S%TU"р |j"eeɆ,?ktS)l6eK{*d gUo2rP8Gsc=#g6)b\#j&[6&1!&$a|M+lm&%&+$ "9;;"*)zDeTNaJqaToq:~G~.>wh\FJRdN[gg}yiu $yn,+GD Ҳ :P #1x#/._8/3_K6(Iכ˳="c/V.!+z%Vlf)o?MAƙ ILGT?VY3 elAcZYBEj^.[BY^a,FAJ Eը6E:&#}d Nk;s1̯~+Fh4Ej0O)BHmwra !J )hP>B/?ߔ@P&cqD 42)0J/~;;nnUE-ViUw>ƔCYfAzpy"D*, H^@*Ԙ| ݴ7B/~ ۰dV=K=; MhKKHf:Y.|7o?k?CXtN5M]+~L7ЯaQd2hDgxp0OGI4rh} kֲ6=J ee!rz0ْI SRMQ^.ۻ;}# #*B@bc(Mk-jsx.m`JW#[ֿ/+i?q9_a|w];x?_O*Ϧm&KHDۊsr.t=ټݴ+'w޽rcOђƔ| sc h^1}[uyFٴi.7VLEa8."R$%$@A <q'" #)*P|Cr0#E<  lpT=vsLf͡t|K"MN[̌Sݽ{73d<{Ia+.ris/Od 6l 3@Hͼo6Rِa2*/9#}QQ3c%Ҭ0yQR52\KU 1dka6BJZXD*Ra˒Yuo7ˋČ떳qQ͚<:\=w+JJbgݝVq;-r d\~>Fcߧmƣ5YSx^3??]-\:#ڙ\?۷=>:"~TtoS_uU!&3.+BeYf2}cSM'e=M볕8ݭwzL)C{ DD،7DMGe*")ȠLJ$"8YIH#mUI `\@Xbއ?.oWWoo?xiۮͼ6c4E13֕>#RRbRLkRy[ 6kHD$TT2 y=w9"(0< A7zdsƕN27/=NF[m}|@trw^o?ȟϜe([&c%V$/YB{&@U1ľXenh2@epP!!bQVR Dda"B"))R`DBUHbf)W޽{ >k3bR@s)dǿqwuEuef\)MpFq6!K7d1}""@]o;,W$b !ҔL Ebb% D`&˜snbV%H0.U-̖w?3ݝ[Fr7&D0,cm2synxjttĹmV`uVar=9nzySHkQW{Wa؛U[W1^<:Ǫ‹_ۗHuc 41"/ E387= O%+M e.~4-r1]Q}x4kGD`"iJ1eKF玎` [q[vIH#. \XJK҇7Qٴއ~>`M4iҨE^\7]o؍g!{OL}wÕ1TQ]TICH}.,è`ЃB JHJd Yk 0Ř$PVrJHzȑ6x[wp9{ _s7n(/2gI2ê2tJ( 5HBޣ/y1LUΚB@QXHa*HD&Ȓaz$H.<$Iu, eV_MO'V~*_ IX&ǔ厍]6?_&wy2 E!O n?]>Y^ v6;HDhWacf٬yq`#`D$d4&o.!2~ `Z䙺[cc%%1v'D9q|rZs}e"IԪ|}w%Jz5Ne}׷.˲"K*OY1R(I$@c\Pٜ ͌jcï}kݻ+֓r+';|۷]iã:pfAޒd;ɟvXvv?;/\uƒ'{^|IB 1e2#3Y|\oO0Q4Ij2e(BCdIOHþ P *IT!)E1sY}k{Uup~ uuM%F#ʚcE}IRΙ|6|;&VfSUtkW-Pgp4YkSJM&J ը3U%"ɬ:w1vI"4L1YUgdS96dg?/G.HCy䘈0A;\~y"cФb,Qc lkm u~Z^~2.?~]dYc&VI0Ɯ!BKdm^WӂԈ)!עEm[CǠmU{hsٝN&]+SޜGlSU[ݴ en{e͚U'$=Hgjnoߺ]M^m,¦x4ѲٴX˓MiնQ3S#8"U lyn!ZH[CH()j޵!F RШ*dw۔@2CF*6:qB-Rpv`-OK~Y} |}xw W̢lcTH@glI Nׁ,lK&UPZN\1Vl~ݻ/Vk؇'AW5z~aH1l} *qgy4MӮz*"$+DeZsN?@S (b( $Jͨ*<TPuQc*0fbD_WƓYx\OF㆖{[Ґ\%4<zhrC#F#\nwYwu1>'hTSI=&RB߇pE.j(3Fi֛MƝI.,"0ٞ>>wm`%M\b"GVc6J(Vxed<ْ6M2S+AzM$WfwpT.5DgZ$)9SL*^5O1ۓ3bkOѸ޿ndsg(߇.E>! kL]8%CĀ,e&%*gM(`#%x5!KA1 q!M4c;NBxOGiem}/<>d`3*:wN^5],͚X5)F"@p*#B?^ SSA.Y!T{+e` ٬^.&I3hǾRe^ԋtZi9;ޙܼ'Gx`\h(JLc1W'Ѵ~7 k>2UysC1bgk;l{Mg<t?H]i gUH1 Oޫe$0A#@0H 1<0I C``8eU6]juBJlHRQQ۶1o ̜RDVղKr*IՐc'>m,LfB&=6oǕ^y[}#WLaʪ)GUF=- }@HCa_6E.)-b,Ϻ6}˯tRnJ6G|4XD& &e@5 BD0uU>nɹ|6g[enkMl68X7-IRKa+RI"+,qN2r+R(1e0+OjScL1M !g\)t11eUqz M]Nj=Ӽ[^a,#"po}1(J[{;UUrlyOCd됂e3O 9a9 D]{ dl\zks#3xMƳru) 8Q)<!M &5L uI5f4epُ)"Lk\ӐC2zYIU<]XDD>~TO?~4-?#LLAUc%!u.i*w`yzb<{YAJHUҋFc=xuR!*sl^z9(r#qN%1`6(rԵˌ81 ׀.uH2*1H [U7n_'y9-eHBJe۬^,} kmYeY}ƺb7[[œlr)V%c`UҠ!#ӏ>ޚ.#HJEи:[_5n?f{'*ꬨ_׿ۿZ2yV73K( M[j3ٞLfG-yV}~`Slu5O)@0UfYlyQ%EuͺSU猖XPQk&~h1jJbE.!ի*LAmFKOmbD)un]dlܦдpJ#T.㻻WGGO TҸ4+|Iz}t>_^ѵ0@^Ml.9l%tY^lʂ%r IDAT]B1j?JX!pdkiX2p6<熔a,T@UɒC  շm`e6Mz;l֌ !VbqY]x_^e/rv㭴7ش-;;xvl,Wjs|xhӦ/&FŲRJ˦Ng{4;WU"[ص;׮YvݢpZ=8BrIq&6VQus^}Ggo;qj\ ۮ6IdKΚp)|4f-U*`28RDkm5l g-+J)D|2rι:źag{X,*SS : #R%G1}C\#c) &z>t2s2iHHI4`pL=&#DJzՃ¸7MSe9 F [q|+FrvށeuiƓqYާ,/>wwz]n6娪F:/sf4y9ھyҖ3g\ĨOl&gG'z֯\=9|\Z[dƇeFƼY] ;߯Vv0G; /@|%1hqKW'|LD`rDAe=.AxAa,g1RPHzxO,mFEltZOfV b\@{Ky+i{<9ʓswjP9:9~K_(O_yxl>x\$"dN&I#u)h;ײz֦j{Q(RRe͸o)Lے-̊uJ8M7)Էma9A6.u+X2٪'WEQ'흭ׯCݷߺzeXH^}op+3i6umf=:>Yj[^~18gIզ>9wrrc?tEzk޻OlgiEl]4nBq`qtggGǵk-(ɺ4΁KFN.Οiw[rlkn2?/+e1z?9O,>E |3e >}jt_%$'E JIj`aZ!Q>>E2Tz\,rTO&Mb}UdVtgg@H&X+b0ILH8)D9;dfrEDs>Nxv7'𛇟w?<͋,ΏPg4w`؎箿+ݕn\{&ܪ݄S>-vsFvU#BtlXEc'﫢l/[[{+|C*\5$| ͳݦPeK jaM{ưf3KO e)QlY^MC14BP6p36yѰiчں,H*3kXLjXKGIeeKn-WQx06E='b ,Yb +D)@,+iRx Ɲ[ߥP" n;֋ gEgc6ֱWDd9Kd%Wu of*s}Af;h+ (,x< BJ0N$$.jQ>*cShm mU7O><{|6kZ/=<=)GrIwـvǓst|qt] ih5HdIHD >Iy")` UW*rmaRy4 rƉFU HN״!@I;Y۬ [[(mPdUYKr.+L1ڨ_d?ϟ<9\,i~̱Ql?|qHfL&\H,˵+b(0?zp޻Jӗxc ZTY~qG/bYdɜɌ@C/Q%&\8K"'ŸʢKiœFڀ{|<){I]|x|Yd !(ŨWՏ<[ݹs{o>,/̈DP+XVM(!U$Eq*/2gES ͕ m5aw?w{YoU^/V:*W-`:( AVr%j}^].73|)(O%V V_d XHJ *JQI/gD UV&>)0Ӈt鹑BJlrgćΔx<|ݷI,Ѩbɨ!csJU %ɉИ|L>s+U̢oSl?U @b6V3&jd5$Uqk20[}B !)65QVzdbDYn{}+q:I1KTm*^y[d I|PbkTߘ|m$U*y^T,izYcכ+x,!$HRAՂX R䐐‡}WDtqq1ȺdBEQNu5W)bQӽ8m}[AQcL uACZv!۾Ww*jUl[n|/t?pXm憇a)E ]6.Ӣ[G%  Jg92,9#Q [2M?_-I>dYknV)ϲZlDPr?Wt駇Oײl@])!D%xiI4~~AQ Sh{փ(Wkk22Y/qwZcOϏnE0~u֮WzƍUۭ.(ٮ .滻/~Ž>ݛ7g}썳om{̧(``"ܫWGp~SDY"F5uv5%b2d2an@I dCYTħDDhTRJ?ē:6~̛rDӑ4˲7 oYrz}_W^Y7 %:9:m_qj%":Sվ ;I8=9}9QM)FсB/ot=3 MGC ͐|2TLUM1ֶM3MWc:BR0MLda2iGh(gjMPF]wh;(EkcA@]d=ػR[SRf"#1%0`G9K II"iӦalRz%F1J!LSX6t6U7%؀4Al/ܾv'X?Dy'\N1- {{{lE]~[Vګ6} @|. '. ^Gû-Jח# F+"!z-Đ3(jvz{w2IԥԳ庲&\0 !nm3'"1xk2f̶Ө^B,NOWvw׿rśo~pr+>N #wYVVɧaXȱQ#$EH BuD${zi={3 kB^>:GLJ(kK)ʐ̙vL2^. 0ݭ:b9M'%#6 POv.y~ֵ?0F֗z|t Eu]]W_W~ۋuVv\IM%v`Kf.Jʲev@I|ȭAq6Z٨ʳ,o;l_٬!u:½sg,:ceE!/%R4tl{w#0PJ0h]u@jHfoMMO&u4$BH5cL[{#ПMߙN{ngo'ys5L&wG+'D"<$D9Hp$s 1 BJc~C;D1v !a2^RBN*d8 6`EQiVz<:cwlw<eeYJ{/Pa%eܩMefs0a)*CH6ȅ T8y[Á4iBa{\ ĘRb}L֋4(!/زBlMҖ<+`ؔ9unl Tc[!(-(Z (H1)ؑ)^޽uZ՝~=?]'z˨⽷!XkE)h"vm;G`ezU &3%O !R ̓V03[;eÛ$IJeN]3eoG}∭0m`O|s[ru]Du} Nj_W;,뛮k܁էZnl퉫(Jf8@R'Cp HIRF}nofiV8]ЈAVǜ)cCJ lpZ墉&3ԥWdkקG> )".׍>ޞ\9#>S2PR1FZpb"PؿZBMoDc`<̬#%&.IdHB͢2q0WX}UxNU??C51pOR5% e WXoP1_pG/n@7afr3$!q"ƸQ^~6Oըc]r&!~GOآ`>59,4X e4. p;?,,ְ31̌V &iS8( ꁶlÆlO' D[6 2ɦ쩪3c;k-?|'A q#F9Z?><=\k^>&.tF/sWz~_?<{Ν{Cvye>vU?{a餷47K;C/ȹ We(ҕ+*|poǓt\.?çOw"PY @)'(Su^z3CiU񘖻) 9CΑhRE"B 7!1@ޠ #_TGWWW''&,yϔ].< oEW·z񋛧o^ Mp6:r|ϣ4%d$T1e89LHH7h `F8$C |l0""s~25r}{WU‹jL5J\<{k۫r4ͽ_ӢBYH۵9gdT[>߼^_^.fxQ rhbUH{IM.VG=y;$a9ܼ9><ϒl}VRVp 1 р=&32䨌:nxPlBȐІ}l&"byiI(V7gly}fN yXDGn0^]c0(9Quvg7nRcBuĩ%(ʾ?g}ߏFCҶvP}YծO֯ཏ}m9i H A7/]^^O]@nשf.ڗ2^mjl$sYi )}<$S-"ʏ+٬Ly?A` IUf&5Pr Aٲ[/NK6~& `L dD,]N-@*jy?;tͦiz5[ڮboݹueAsd@$@4 SJD0̜ON˃òn[$"YRg!Ñh 2 %6QkBU6NFE>juq՝_C5z$.!TCس4N9)AMv 0DxέWbtED3% /8v" ,EӶ4v4~{O?y|0>|-~'&u]<2r9䈥yϪYULƓZk`ptPzrPXnWmk?FnSHjW//ɸش yY ڽ~iUy0KTQMa]؛vGΐHzZ]Sh cQv8dM)mG/#я)%*#>G<(3 f3sA&㱤G5 <(hB "@y3EB9߶9fƣf٬>b$UUrg\(G6=P4W?o yw|Uؘs9g,b:*'nw]R|YPPLM*:<~j!(v3WѬ;ruu`){fhUr.`Cl*hj 9kQYVEm7b؇\8ڈ}VY1QǓ7o>yё"> $e ߸95BHJd"C((btؿH2Qء܋DunmD7痗ץ/3_/rݿ]mO}sO~a>wU7O7oތ}֮Wq6=(KW,8`Ǘ4lf,{vzqYlWx6%攒ѤݰFP]ޫ'?wxzC3,KgWBejFwqaW՘sC, XB%xR(r3֨omd =XLi DfL@Q0 }/"we@fQW1}8UDDGDB!IbEU<1(2`m,)!:>رuM03;L҃ _=yB14Cd2ʺovo@f,r]AUx<"4>&!ܺULgutͦOmMM) A0f }LJ +U5sg&b/}/1Ddv8]>y4}wvu SuʢcBqz5*D(D|w38L1e5]Ch9MV|>7fW V[E/%wNnBQ'%U! wogٺ@.sd׍prU)]KrrZwۮ(ǀ*'ݶACƼY/Fw]qY:99Lr\\UrvG:4f=yTyr%fz>;vfwjh`('%G';]]\{&2H@ |blj9%JΑki sJ}GLvQWVTҵȡ ܼu4V*ZU㣣SIpv{nl$ރ/}~pp4Fś](FፃiUBf'e9bWybv>x_:_pTN7/.6k`ψ:\VȂ(Iۋ:96iMlj*j0h2>88Znv0;EӦ3S c3dXEUGSŸ\_wYxsަeݻG!gFmRۧxW[[MxqYQ*a:1u&mۏy;,~ٓf\ܸs۫ղo9uNTi~8?qU (&DuUe ]:P÷z鳗EYI>&BڶvZ!gI'7&q=ٳf3*qʐAԉ 13 䩨|Y;*S%Q )P:A/PcVW92d@ܐȩYu8S־W|0oy'AYCrp0 R,HDPm[rt2>{/{qÿW\]\׿n%5GlLJa$@LaQQ*1H8e`/ m( ԣ${)~ZldjDDS&\Z~ޗH\zAEt!;GD1g !ђbO|V52%TSNCv9@Tլ'73)$$ZM&F@L)澋c߂PTxNIج*kqj=0s_n頏 d/,*{~89Ol=%g l(HQR,@d4@'89p>;:^]^8(H%&ٌ oV˶m7jqUuD@HjQP8q=h+rRWI2l/ " ڼ**(QT  4,ia`05@bTĜ3hSIk)h/W!nc`h ]Eٶ]vmK}"$RΙd '4=(+*.*Kwy̢ޕUL%Q璴&<aHq'梪>~zCp`4! :Ppܸ;6`N#P4͐@YViVbk*+V|޴jRTzQԽڃļMyjⶋos@E<:|250FLwӋ7_>b+g//ˋ|խB>'` woݽ8'^<ΦGU=fGâ(c_rΥ9ЧRRl. ,bL1&Pg>^^^O W:nV WUTRd Nq=7Fӑ+X=Cr8NbHN S@(z1g*p%R =5LHn$[ $LE{&?! DflWT*J= h* WF'/?TYlxF-TV%$bbC j+2A wι33?dCJfL@"8!\+~(Ta|byM՝;wʲFA6*eо0p@L9!"{70˜3`E !A tzfVsDE]8#N$JN]#88z\$Uj1d0B1Ōc(n#@DFb 8 RLĎ!#( {IUTUR`U55do r4S9'={~^ A*ST5">H@E;<1W bzB!QRz{|5JWM^.7m+]Ոi"BȢ{*HfUQQ~6-G#WT4 Aw5q8l6(j&"} vA KjJ!8?- -W pm]CQHJ@={^:W," 0gI1qQ|<(9$@m\ykSZ5m ,| DG^(#dUb؛Ʈ.꺦(Jkɤ؆u#fDٵf6VMl+ *~;GEA@LHFE9~$Jm̡ۧ(*@7}'Ï=^,3L05k, 1jH^T V /QŴZX}5D 0. bjL'eY_\^.28tjcj@h$qDOfW;QOPgI`Kb} Iō{ug;݊ 7|MMH3VObFdѾO/P2}z\\,E!}PPmm?.,Ozdx{_|'u]]]##CQ8$HQjRN>u|=>]jF@ȣthlf$@ :0`\PyW+ޱP/r%:>8Q@t*7q!2r,+=7-,j` Geŷf jT8ԝ:qu0Z]nF(]ʺW{+ @3D TTĜ"}=A ɹ>F$FbB6UP]iyy4(I$'15`:A0rnҶEADsH\ Elb%L1 3(ƨ:n@g1DR>Ų,@t6 -uzTe`*Y\ʲ*)̞˲D"`bϒ9dA0nnWIF6w[KM`modc̛u"}5FbŇ~+˗K-,W٤,Cİ3 |2=lWOfm_k}d6?i޻r h]LG#4횦aI`:'\QYݼq:)UE;6&d4I* E sJ2G(rCQ9HdD(h:O/rs]smMrhd0XLM#$}Z.ΝwT5k:EP!"I;nP]ͳ;{WPb@6}t^b}cd琸(FE1*q`Hǿ}ó>w2|xnܘQvCQUIB@g`FdI|1Yc p Rfg5h"L`4.29gd^^70wQd 8_d nރ].KKv]oN~i2ӷzνO>і8NnOȉ@"vDeU׋f*K7o]./Ϯ{m_p]_+ ܺ}#Jljy;_ayX] _ըnw`g/~߸&`i3:&S1Uz] skjILqxqNC4{õ}AW`(<{dGc8 {r#f!(O&nSɠCSb,9 $|#@fah ơ!DUSy fb&c߀r (10$Uܐ:`DLȄ\]^O>1[) HL)LD0`_" c̒,˪ߪN 3(9Jr&' mY٦fb )AQM+e5 WC#! k89|d(:`xFUA=EMTTN߬Bol/DUMuh{x7ߨ ?O)&P%!_eV.HV&-l)04MliKMXYjf;h[w>v K/dEz~ů_9#%Xo3;/V\<}>Hv(ٕlem$~7EC9Of?pT:WMr1M ^{ɳѶPl}j 9r2ףs D9+ ж*91Gq0 ?i XMj;<:LsեlTR9%s]n64A IDAT;gJ%mLIh{Fpw7nk7mNӛ7 WAߥ#y_V%$~٧?|//`~Xԓ(wu &vMd&NU ɔ4&G>#| ý2 bU@G,Sv GEY>~-l~} G'E4dd5e0K}R*b4CY;IQS 6$0ߴW#>^IGy{<}D.;fG<{"6$CV"B CdHIPmcU}9Xa/RVbW9@QH6S _K>y hC̨L?'Go + .Qo7C$hy}]GCtB@fHC̡^e)#@L}s0e&:A %6D1»sFU0`̤Xs{5fC$f@5#}w=9998?q"pRH$,'U0yWUv( .jbHѲ8']QRi~miۦKM,x CkQ[~]l1 QS.KUIM E(,KAyFd*_>[l 9]߮6]a4w>ܴmLo|5Ckjc"8`Ȟ3C,J6Xu6.`M7o2S=.֛pI*NU{\4j13xOwY>_xPRo eqxrt޽}(SҔ,|~|_~{'[fG5;H]8I͠4Arv#)B=`0gLvPHIPJ<9G|m z`((CT-`!IB _"|o޺;.W/dz`Ћ͋ (ܿsݶ1,s#tѴ~[_2gqs.Ȍo::::?{i_~}vp#|'o}w?`4Sj/ݻ?̝޼]*p` fn>/+v{>:}`8>%vMFuQ 9fv]L뻶osN@H9wnל!=_~U?|c8鳎)0eMINw4@ٔ V'yWrߛ*)C vs@"UK95I X%;U!"ţG~7Ng * rgQZ`2ogfҡߟC+Z @$ڎaM* b&9e"N6(x%3(9ԭ֛ÇV⢨ׁ,$UD2XU6mR20O'4ZsF0h'=J]l6.vbuе[Q-0;$MX[̀4VfFZY4S$/A".͠!`FDCeF<Ls]UYa!~WU-O=\` [O}K&@$_xZĤ)eD޻ !s]6tmkmQHիz}nDř `:δ'ٯ~}SM뤭`%v1 :d@">~ /^泳'>\_"//o۪URUQƾ'&Dعbj L P7r=dm̞PтUB_Nfӓ,ENb5.@sMSYrE룩켒bR.8̹7c"G0\=C$QSd$î ~ y>99APPR4kTm UQz.<9ʚݻ7'J]oCW`֘rʝM{߼qrճgϿ仿puHMצԣ5.l#L&'D3TcUPppZrFL `/x$`O&۔z ј ܽ]գOz `GX*{3K'uʛK;$YݪoߔA ݾ/ė{Gp1<_6`!%EX%w]5C}@FbYrΪq U 'g`{/eQH˜IDT}%3_yM5 441E5I{>.1EjF[Ւo^_{~?VU٬#{"NٚՌ]&2j =:8J)WD:Uc4d}Og}(ˠ@Iɹȹ <7. lH{v3'˳QT:@$nw~[UɽH)E1 xT6WYtԣʤiG`HFf&9(; IM=ߺ}̛mJIxyfRP31wA";'e-wg̣jαQ/>{jBJPzM@%T9s/F93YRnAlށ26~eh6907ASf$gHHf6dpHʩϩ,h2Pl d˾2PWy DupofXmQ(꫗"/!x(R<No̟>}~ŋ7?hh)[w._\;sg\lt9_ѷ?xb~so\\]؈iEryf㋋FiQ(e(+20eB5>y,ʳ/u3/__WkrxӺ2f;>4@PA}w]'Iwt T%!f{`gQHHDe rt3@UxE2~9!QlkYSΨ Pe)zvFAWuQ!ɍ?_mӌv"۶{<:WB$aQkfD`Fp?bFf}OԀ {rx^ .6%~C5S10lEQ 3;EPҵ~n^sP.q'A9p@]Сr%kL&UsNY"/'A\|aq\\S¯~SI2 Xt-dBeFͽs, *ݮ0  ݿ͈^m5`yyf{v.!ZHˢiͦi$:$$)HVɪB+""᠄'n?э)aPdqג TGvI4ľ(˩[_=wkn?yoyt,/qu*$lIw ]s~ơ^_&34^\Ozc*y֋ō'ئW|<`: r%W΍{obBs(ɴOxTL,d68aUଽX1*|:u(CʪLp%q\C/TOGYaknϪqMeL4j`j5Vp&j|A\ H d&4/nv+ F$djӓ @fNЙ PuP8p ]+sI o}w>W?K]( ^4 X*nZ~:)ΞS4$݂<ͯ}9=Vw۫~=tX^uHΞ?LѨnۦEug/7络Jt|ܶp*K_lt>odYc=\nݾ<. G,E*3N%;DdEI_\g4!3 D,ـ'!$UEd]H8f!1쥾!T)*H ڃ``< 04MM3BBl $HB& Q$Q0r}|wVEجVzY Ԕ Oo A[4;sL.dQB*Pd֭} ^t)%Y6P׫ E'sQ fYrL)r,=$3VKS8=ʀvJL1yGL! J"EYer^-Wγ?<8J1>=yF,]f%LF\`$K29λl&ݶwyh27%^s^ \(Q !" xUZ̒ (0jO.5PmطSNXRk*0Ep"$X3`!:i-lO]q1b(Y/J; <* lEt9vC)t}j6q}r䓙wN/]n(fa>ң҇"uB5!Wj+&cƲ6}ɇ>~i}$#  69 G :R(8r6s, ̆pqZLFcCMYc@VBWx.Q0]-_ep4GUjTUE<ɨGe]i: (:*CYwloZ춛;AnĆκfh1[N!M&ҷv֧o޹7Zr9szW-P|V^o.%-X&E`(sR0\F|ص]%5=.7[-y2/q`Vqaj&X2\rB$P!KMUXir J3״Q4 PT ee'BtdovSpJ`خM88(WgPgO,) h"L|'?|s\Tlꀭr w;6.FQܿ3c lWMӴE-!CRv`R/>hwJit2 /_^_\Mv9 IJ!= 1w3%NnVwn!gϟlw;Ì FѸ*Jn48Ĭj**jA@@O!QpDѰW04p@ALL%ea j{a fp(f1+:f=m9"M96֛o1$3ݮ]?}WЇ>KQEPU!#%PDe"n3ˢl6z,HJh8L-Lm! Q }L""C;p#ؘ1 {6! /*Cк%QJ3%gf՘RZC;l !rcɀ!EXW`VEQ0Ǿc٩HĬus$~*}̌#(OJJ̀hE6 ḟ}V",,%sx4C"$3&"&MKNKh<UM>p=*)m2p7)"#A/0DEܧ>jƾ3"zD)wM/)ѐfG]4挡6A)yWGGwN'g0;ԓS!p߽ssy,ĤIbAU6p8&֪F%p.˦ٴ}}0{0͙@JMm6Nf7oÓBGMmo&#賽8_lr8:7?||b,Tml?}t5?_,ʲL)#s8~4WWWgggMjcNs̞6zyxp:7$3#fNyhk;<<\V\YW6GBY#9~( !8)gLP,d8P9ثGWJt+>d1U Q?7PP+P`qQF^XnwEQxUi E ge~jLt2o(}NM`bbD&CUf䘈QI-unuhinڭc~.\ IDAT{nbY芋r>A.X= \AEm}|L#]8ʘ%+}55CdAh M͛7_.UIjkbQ9M}ȵD `JK MZg݈YsU*I$%A0`Bۺ X>3&0;0T&Ѭ0*8PҬI,ztOW~۷98:趫b41FHSg`PZPYնjSLRH> 2jEBX].^h*f6;Wմv50W 4Fi6Cj5E Sa.d8 Ȕs؂$p!C2\B>K v2L`ZS`%Zf% $otELY2!Qn/~7~׻a\/gYF5bh23FU}yyyv=Md\ldj`1n&L>OH (<1U}:D424cq@@rSB~& ]N)FϊIKtߟi45ml-sʩnR̐K+ o6̉"BA@LuEa :8O(%@U@Ȍf䆁菵{؏WW_\]]bL"I! F.ef.jaM mFU*/?~ܥtiu В)ضmf"T}ަ] @ɜ&; Pzdz7 !f|v5=e njy版,)><[bxɴOYR[z%_]v,ڮtBM]s|\v ۔:TǏ>~V:6@/}df'I*GEu;F(FQMʫŢʗۋ+xe=܍FiGUUɳ/Ϟ׋uQ.`BQ3,1D#U3e@2#}d:mݠ)j ~xm߅T{?=JP+.U[LzϪ?'TL۵OBȇD Q3dpHe{~S Pqv0rڝSIq>>:}ɧz`BTv'ai6\/EY`NfDYT=@1IBS ;BGhb䘇?( :G56DG'TM#9# D4`^"ERDD$P=zvU2DPUDeltTh&fs!U! m6l5*B#4fq~~F%f6L^}|]97QnX_+_ea[7gd2i>sQAAX$efb8xIL-hͨdDB= Ͷ,vTNIםEθW@ՠ@#Cb{iÒ%K1*T5q>'p` &WWg}" 40+[]שx<|z$n,F}EQג yj8( sJ9GSjfع}[ynzyun:;rsdv\P * h0@LE;c舦 UAesx/Id&Pݧ eQ!;Iz8ႣhTP <ܞ탩Y &@Eɸ`ޠWDLP Ʌ}M`; `Ħd QkA ܼ{sF#a|U>O#.[U(OϷWRr]5!ÍL|RY4pW"OS Ta!!̟3zc6Л'6"JcYiNelD !7cNLH<فI!dS̈́T$ y+Kf64e- Gci l͚.|y2]o*@~~$r2tYWx\]/6-n}::9}k-t=xv I\O¤Bp~}ƍ*viͭs_r52phڋ)%Of)rm'0C F rKp^Dy4E. z˲>><U7Iu]6[>)[\bsUD~X})3L]_5/^\08Na:xO>˵rmW 1xqbۦWpf,SPf6mJ8>CFfrrl>z휧hR:G읪fՌ= )%tsf !bDECJ*L?o<Ĕ$!ƜwgG%WWnPg#hlf;Ƿf_E0p_rVSap4ؘg!@ 4o?g\UUzFϟ?O?}Y^x/Ok^mxEPه##X G^(x<}aoo0 @{Ue F-gT55Bv fC @( * *dC0"! #BLTŅ0}oM@<#(9lN3d8(=9FFf5)%t2N.p9FhSnbHA4)(=38G8p! } 0ī 4h=@ ~R9%$ ^~YӼJ-h6UhYqhFG`=|֥]SNgU$&J9-F5ʞL6$hyY{f6?;âХH}|ڔZW۶{|}xynJh[ <L0Oׂꀇ=#_b{j|ƽ#ex!"lc6&:<*Hf rUr%>@SISxtUU(" /pДQL;Pz$ !)83 &v+j4o6[LՕ0ƺnq&^\??[3Z==:~εmБPU۬UQ=lVb)`2B3=230HVAD@3B)O%`ٗj4i# &F@D2xFJ]ݸcHYͭL|10΢ַ];f>== HvE$ŀLDq%_]r>s|+朓d\Y-: ѪxL%e{70pQ2.7g }oS_JY5&~|(33QUŔsb!;m27nz|sz'K_}'Qh|kIsUwU&l^kdb;aSV½1 #{.ʢ1H־K}iRts 2.w 9Jrl޹7.XЧϞ^>3V !g1"@! po"c`A`Er6X,jԉc'6h B=vnx nOG*ILj Ҧוw^ӃMm+\Vp|35fmΘ,@UCruE|[_{˶mA)'AYڵq1ɗ/W߹{ƍk><xBɳIQ}㶉5}(f}blͮom~۴/._\..kr}}Z)Z t}^5y+=t-"}Ju m _xy6j_(gUݦ&=;\R1mHVuU۾,IJ9,3|1Mnܼnci2ĜcL |}1)9wCQYMs=y纾o;vΑsjڬbUsUעZe4fUPFhʂhf9ﻦ1 J> n!܂HTSa7$:0Plp*u5 y?"[-BUe[7$d\PC7.Ǩ[mm[o>wn۶Z*`}ՄOݾq[8$Eg] ġ(DW뵪 !^%{fm$ mm׋E(,Wx2AfUEPÐc~p@˺H9;ψSCcǞ@3Ѣp!SG(b4! fQt'.Ŧi;Q}0`>i؛*y*%{<hVI)cQeU:&UI9gE 3ͨv[MQs0?@6<*3AClwfivމs^s2teڻg0h@ "iwnhPh])V% Pt Hp0i_]]sf@);ꪬ{y9{B\мQX|JO%яܨ*1&scL/Nk֫!ٳ;pV]J Iko7矼5͢tީҨ$4H #"Fc|T&99G#Mr[wDďo^`jtY ^+k0u3f eZ.DSa (ԙD)HYiûλCRn!w>ǹezhMm B% ADef?ث+ݛՔ?ncPa@D$cH4Ԯf I9uNWmz '!\wt G [nf 펆ըۺkQo߼Om_ܗcO?wksp R9I yLGH"9hV1\9.nݻ1dmc[4 2  4 *؞nb4ZV aqխ *O7w2k&>wkp΅懧ff `HHYѧ `D"P]ׄ,oY<{\ asBقSG;| (zzw[abz" x1|#Ϋ|-JJi4fc!vR&!* D=t~nn1qUls]=99lGq#ƘzIL:Eԛ] (1ղQJnk,4j#Z`d$2kLLi8Vh6$19瘙ǔR)w%={O}u^<4H3g:e~#pe~Xtu(w!4 ?CǷye c! -! AxVx䕫?JVjuUt e UU5 r0ƴm;I|~*"c:::2e>ϳXr QG^J@!,iMbUJaY. A=_؜B >0&cvPbQ^u Gư20l@4j 8ȑz Y&o%RdN)suUl *I@߆#l )f F0'fШ˼ "#31^r IDAT(k-i9}phRH Vo~Dl($im6@dV.9(wrp5CWBLV(IT֨*H|:؝tܾd'/M5,|CS @FZe; Z\c)Į]^emA$qh1EeU\p@kmntsTtN­[w_8|tMc ܽwc>_̏gjeF<:^: A\:̮ ΅A"\lƂ`s0)@ 18[qۦIT,xͷy;fGǮN Djmag)a¹9EFYzӵi

d0 M"bH>дWcɌ1}eRWUU%bo|\Two<o8(x"͍ηYu]ScJ!HNd)"PolozJGI^< ="G:!" v$$&c,wmb"!zh.O…+WDju]4D#<}vuJDPPe`j޿RYCb&` H|9xnp].۶frPGficTnl[|fYf OkI]:sͯ}իUܺywn6vFӍAUV>;+k0 #8j4PH>$>zuFjԹF$n""Ҷg0Ę5Q@m嘂pFLb9E^EQ#)Ht )yH)@u8)JdzӐ^"d z "!O$Bxd؊ #;,gqBHp=y[7nĕ:,S'KZ5"Kr/lbXj  1޻;{7g6?8kټu>/ tLBfq&eTp hX+@@(g^$}w~>'Q3c3'p:>>ޛ5 JZ+U.fYeyt|;5uF+)!ġm[N\5(`@D-|34"2hMk,y޿$xg3Z Rdb`2@&ҲY"m $ X,GAkɕR"h!h*bCt]jڮYJ5mmi2_:=ykyiM/=vyHD"I6fB!6hZ+k3UtEg6O)Ŕ**].Oe^L67'jUUEĤ,prхu;B"Haz_}|OgxJ[a :㟭:!GH"֌ gOQXBpΥ._?/o]eŰWŀcR(,Wre>X1ycW|޽{7޿߿{o8nolzTVP5iBxޝ;Rem"˺9=:WɬYr!"9~6I)*]3c;7\|m:wJpn\O,ʬm(09EEE%5͊ʾra!9H 1xP1"*H]{{m"iD$-#@i$EϩXE#kX, # Zp<,ReL@ą,S)$OI""$><;>ޛU٠[c4PNkZ4 zd z7z뭜 *XNFlYdCZ,@)D茙͖w\ϊ2|vw?rsӯt8ꇯݸQM 1 -Ŷk* xָV/Bf3Sf1H( >J`I@(wJs¥ViV!DN R)UDMP.u͹ ~wQmM'kc۬@ MN8SIAv3􆴵N]pB@4hD|.^w޿ {ק!$ JAC9(j׸6E6fdۚ|V]+w>x>,fa8nz3L 3[ z(!2a"!vptpsWOx;'ٝ}ϵ ܸWEaGȇI X֭s& 9 KWpt|כ{p/0T l,AKm'>9 stM0eFQΩ51JLZ |S.Eî@.8) !Gf'ժS|8(jQ%H>Ow9< ;Cyt|`Rbf غx0/޽7.=vw^fA7$1ƚA1 m eLoyw $k<ާS -sDT3@s@F aH1;Aq|rBD6V'\Lv$3z#1a?[E* Fg{hg~#XI֊TD$҈"1#H,''{r0ʜ kGj<O]n)%H!jD#H ɱȟ}k׮]xsͪf>^gS`pݭ,ϗeڬ̴ֳ!;.$d^llhƌQCy] e+hrLEa1rW1fccf,ٹժ{߿˼(ѹsjϱvzhsI)A6l>yY*gYw>"@QMD!$cJIP!RT_8QXQ>rRb4y<ⱸVPJ{89Yj4bIPb 5 J &CeTz]3K4ۍh\{_"ʲZRbS,YGh& oM.U_~޻76w޹< &BGdie,&`ϒ\\7?W/|0(G7 fxCpZI1jQ~ZĮ^$=Le !%DzE@iSG8a`L"@o mLg]@i$!N!R)4h4۶^vc"I1)50Ɛ.ԧ]( 1 S>'>з"&D+cj9:9)Bkh.)YRJ}dPh!)V$)f^ O\yW^p31}w?\{/s\ψtԴKCA:K9h 31咹y[郦[¹g_]916mtmfK*z;Z͕!m DuHt\ Ƀ`2sU\"$hf Ҋ@PHBHܵ(LUfW^z4A[!(pI:D^1жu p^سd~7\ٚ~wz(<ޠ.j -}k}j2W$*6Íի<|cj4w_.흽7~@eEf,3D-%R ("]ULw.` cck3ʖBtޱv!A9 BZ]_zCA-kF $ pӳ-#ȣl׊,!T7;@QwlkM*˲~"sMFc 2x约ULeE%h"3kts`LcP8]-F_qhνVʲUREQ0ǺyooNghdrlI֍ûEuz|"Oֺ%1Qf͸iNjs "^ycOۛ bF-JA@YHz $"bQd&K*e{YB))%)쎈ϪD(I$1:I5 g%F)*$L+BZApp|nI>2 ' ZJQA@ꧦg ޹kwH:&Azb. 5kp}7ۀ`˓^m.f3!anXloZ/ND>WrޜLv@RHq}ϟo<U:F`c2lt1n["@k[BEHBfQ_*Ed@փZY@DΟ}iW"eO1arPsAu]VR5 "keBD5 M([P1hJ)qD6ƐV M ߾ஷԫE&i]"L= QĦ[ .7lG>/ir_y)xj|TJ]΍)S@!*L)ȍ€6$^bըRFuW]ׂh@+9ܸqUSx.͎c1bVSY5LqI{@%9o!%>ph@R9%u][b{2E*2Ь83E^*ĝ_6q+"'{*EiDy5ngbuv+N$lk>s),f=p2fZdR.h3OlNI Οų#'hWN!2D:E6HgE cd("R%0F)˴5ι|QPL=+ƘR %d~6U~'반_}wdF\Nuu?^ ,1ROO"RfWS Xyi)2eacYh)h ]4M"g͈(Mb1=7k5;=5EbdbK( ֔Kf|q5|ZEIAPJPYPB48N,kWuj/oXkf3Owv wCR:0ϲ]f^.dkgLtmQ-KzHs%Z3$A駰FmG  3&!ecQ"@@H}0 DMd,P.`]nkN؏9(K%ܸϒwF,X%i3#Bhқu@J% !u׺ONefc|4g޷(bQDFJ,ÏO?ya=V Gmfq:v&yUsRӯ$ϑX6ZaG[o߮;><]޼OfMIfΝ{u̵Rhd euAwfnE,yVE[k{  P/\E /߸60k(I;0Ơ"5ryzn|xH6 6.|b%a!\oz#&$=x%CJ*cw{][!u@RDkiN"&z/rYXa0\ڱ_ѧ.?wOSZ'c/E.M˜re+>4(Jy 1 J'J\s\F*@NlH 0uRj 5\mAֳ dCޣcF Sۇuu(IXvf6DX YkqVZbH)c 9al]͋?|xZӪ GCHEgUfUb3]ò@$gL'#|Uß_1]@2LprRwqRtJYp5p^x^_/6I/|}/-YQ1?7o1FCuEdqAQ&z4B)gQDB$^4F CɲldQ7AQKd: `:@!*u*=pM}Y$ wlgF@5`"{#pO;r0tm'b^.J@q#q"ʩ*VBݷe548VcZk\b .*sdK/?ynX7 "yjvccj=>>^Ylx9_l䃲u3t7:=<,Ʈn"*LA9xƍ666ッݽ;Smb>F).mg1Y>Q5Mn=xjDz}7/Xk[3赶̱׻1mܰ)c"DlsR)q;L T$Xj$vVfUa'1J-Q|NO=0AMd6`dgac zZ,%TP!*Be)=bA- c !:t"&7Ɠ n}J!%$0'<տ>ʹBYZ2L*&mPk"9a *{tp7Ϥ*lBXF@lV,䳟s@`iy_N۹wyxaҷ2U]dx6]my Ea51fQD;PE@"Ҡ|t\?i#ćdf"F|P'B !u0ʯ\jE"^[;1hPYjĒU4[&Nʶ jkz~vܾ#V#4 %9 b0dW'F< >q/|G"dH3Y*:`9(΃7yK+K] `^|rM :ڝ6HT?/TH 2%YF(UkBH=nlnW[&vIk0@ &[]dt"EuLӽ'͑E ˙(KvTR0la1v5%γ`SNIgT*#8vڕ(U F[Χ1 .W,+EC@<[dR)5^P ?cAͭ VEͿwߨ/Ҵ\]3:W.H04~~8>Ehfa803$I`hKS?̈́~=EYp+qoS ^6z 6ӻ;'ݭ/.aI%N.8R$ I)e2$$FR41=(BMJ!K.Q]:/wNfY^JQ1DZ!5LǧH lT`||@# 3+m3Txݷk} #?c;. 6__{gL0>:=޾WdLLkSm۶%mFQUUJcA567D]$P>/޷k6DC5YQ>Iʊй3kʼȌE@fQ! D AdP Hh Mt3  IB) aB(8) jД$L^qKgL.?DKHp6xc4i1ސg۰ /ಸQd(`%E^Cc:6ߖ2M+A;bTTh0q,#Pizm '\OXb1Ub6$߾q$"`isl K%ߴ(`ץABؽPW}/A ,m͇ =ITfO<ӯzOl>[ 'Vto|xg l )B3>Ga낶Cru3NT ## BA(bHP.aĊ0 l͏ o F^@98(!1ɠ^-]tq @ ػKgCWk1kS,>{mnm9S?>tTd1Q(aNEhyh56=yXX;M>ոzݷ~7_{%ݺxk{; 힟-pttr~9e3Cew"XG+~}'v} Q5)ky8 $-vX8!#I?3$kBPB(LQGa@&fӚTG$A-=\kD aUY,A>|g۫,˪um:K*躐|  h!ĵs^yG#&Y>(s.Gfl[ikMYj#"F= קs<}'fTtܵ7ss[voO|׾g'>şS{7ޞO[Pxo}}՗݇|Ӎt{k8f2T'gPDҖb6M/M >=ͦ EJ^2!rBL+f^GHu8#"eP0 Y.jمFd]Rڜ&6ǘΘ 4J /s] |zF#ۙT9t&G7i6X,E@ôlQ2*๧~xGjPVR$Вc/ZyY#vppE[mH,V*+plc#6NK;\+HaYYVXI_u6z6]H*3L0HL3DGuTD"W?"q!iB}2"63ѹ"}3\ BtA 4%:‘ij_1 O=[5VȁAUIrͪn;]r0.-'.޿}Ze߽3.ݚ^tݍк(ZY!A}# ZYT(1 "Kv>_x'{tmBh\r!smt Ak>SdB)e k+GG&uZHGI=OAla37[jUr߷eY "B Ʈa)BdxyrtK@*sVm( _U:iQ)! 2}[hD Q?B [|/L AR(l5Y.)i$ToQ ࠪ/lu]'Lڲ;=+㍍٩L)kZkҜ@ry1Ol!C 1Q -Ч"H_+*҄]7*3ɲyYtݸEX5"a@AAE=HA`l<~ۇ6p3z@PU$D+ H于4 4eeyQe|"zPu `tԋpf}z :/ݍ鶏R7u"M.ǐPX@iH IaDxIsx/.]tިܾyrzJt6 %РO;;U]ߺsgc9>s3`ܹrΜBY9(Հ@R1K)bDO)! ͭI[E{{#cŵ+҆يswA0:Xh4m$F^D E DGZAاs80%} @"@@pH SC58}_}՟ٟV#_7{_3EPB" L}قJDZk$}wxx9H cZf hz9GWOo>{o',{ݭ{ooN'eƷ?R71?x8Yǘ^җuo|=bQ*#sH1F$y^U߼]׵mKB}=M&,z#+1wLV( GIB(1$L D>v16,2s%D@B* &ث45?kƶ0t^sZk飒ee>ܤ^VݹaOG~{jJ#Yn&k@#&xB *TQ2^W&d |"pXgq>*(;Nx(bP2nOe<5>h*&`ctQEkBs @PuL2iB"@I)q3=qnƄ @#EXRRr##! 5˹F4vCH@Pq.}ŗ|4eH-V˝sM@ |l[>K輞G_äIY9S_ٛnLGC2?9ܻ|@RE>չ"3l!S\>.ݫ\D ( Y'l'"e,/ʢS,'W_?t#ӮYngY\d9fϼx'-FDDI"B]ڕw@RDz>a'٧ΚcAD *Z^á5S&U**Mp(/QY77w1,1@Հqҷ >Lolm'UӴM}RL lR׶0 'ZgMYd4)}T RQwޞ;[O?5&mVdV/.TrP 흿{Ç'LJG]ݸy\W>=wSO=t޵,FA5A1Hd !5O1fL jͪUvphl4qҨƷ[[OA c`QAAg3 "c!9JR_zaǾq|pw{_&tx̋b> 5Ep4ͪdy50H8! 3gўKzN&?G{:#~ID=DŽF&eT^OwF҅g~s[.Nr;o>*8ؗt+W/¼9}px}!~ONnݺRz7nwޙ7vwiUƷe~͍Ų]bȩ\d-f9!9@)CkTHT`0jeQdYhmQ8e3h6Fݧ ɋϒD%"bT8I)&N1 GIH>>*H"8EYG~O/?"uh6,>:ҔKy˻\raT t5J!ۡA34eJ2&I "ʼuɴ-CZ.uS32Zy$Anլ6[M +erkoLrwtإ$810mDPQ~p"p/Ĉ )91G$%<nag2Kl BVbʈPJLB.BE)zHQ#Mgֺ!QQVE50&C\B:"/olRl;ZŊGA ˝aXPalabɏ~aTiMWEZ\f׆r@#< mTUV,b@A1t.:gGE7dvƍӣxO}*˕VCK@[{ E/7@iL.BF BcQh2U^m7F!ƮkZQU5ZM,ղA5_"dt>W9V{3!$hm^d16y_aEd5֛%N }V(/aOQF7#+AC`PAJY"W+ $"of0M67lGA,`0lfs<aExoZ GcbfXv*t`,3O?{=cG[2Eh$k]͍ffkB۸>SSf@ _}RAֹ2(Kk3FTJ) <Woo~jQO#Vʬ t҆YGRbIZ5Hb"0 ) M E vQB }Vf* 1 + P6'mDr Goí,h+{,0:ij4v!B][p=t .H` I+&y%>0 (sSO=5;=~w~G;N+|1uҵNk0B6e^vvyڎT`x…s緦mU`jr]Y÷^O?k{xo5 +5(J18um I+7n )RL)c !GH X4%v4Em, 16t A0A$A4Ƥ5*ʰ Iݳ>n& # -^+5Έ #7!Nq9[Zdf?[by]QXQ5UBk>ub<WdP$I"1NIBHJ Rwʥ`2zÇ^ylsco8mL'/Wz-[a+_\::׿qSeEV*_PJvss(5iMsTqLι}k3cL}ƳGPn^ˆ)%+Da !88Hl0,nCT "+eQHy4==DqD)EE3?rϣm{R_{0<%A%P2%(7/ $63#*Q.;R ɘ.ONA5\tyujXԫKu9bҹlzٵ'?iZmM7cpa-^63 HQYci&p¥nnlooߺsΝ{OQd@]cB:D8|daWִkYSLj)"R_P0m֞cѤ!ؓcǦs'ۘeѯj#-`h?}RAi !+@R%EY HI[MiR].ȑQZb2mAY̎O?G?z8-]VM*3tp$0$ Lm \7ȱ QY#{vB8D)[bTxP8_ C>PQ״'GsBb0?]ԫfnh{{uqy wޯW͕',˅mnAE jtM׋ 4"RQZ)5B3V~!wܛE`H A\AA UQVJ6lvqʓ^a*Gc<8hG# ;Eib.֮~ {̜BactyxU3?g_?7?Og>ݯ޼~ɫWѹ(8kLQ 6Ii?}g2 CYGӝ/4RtW1FZ Vpd{77ʁ#7㏝޺us}g<7G?+k|;ߺvx{_/tӟcW.s&۷޿st{3%.ʕ}Gfղ!ݩ YY4meZ#aB9 Q)λ߽s5*͍,ܝ!ʹb5?1 %)KС1)!LVAPp\,OQ`<(x`YP'<{SBEvZDk_#ϬJ('E4 ? ax<uEǮwz[!(cLۼԶ2o^Ʉ \* rh= d G/p"ğ|[r8+ &ޤ!>&Mkm@i|ɴ6 v҅r3,f1*. /#{7p15]4 FzV)%^H{&T3E@'OBbBMԫXD$״hU\tmcL\.77 xAts%UUPqPTm{kgPZS%so-z$DYAt<B ^rvRqHB7d hXEcoTdhR[H\!($gp7?M<|Z}NX=Љ2 |>LZQ{C!jŀ1D Qi bH-AeT6ظ{^rVٓ<TUK;xx[:'|{XvŇ?ÓSt#˲e8?:E1Dc( :u3kmœer,IkV3a\?I׿/|_;8;~g߹7y{3S~moo͓WWoN?Fc*'{s]F7ج,%ο[;[oןK=ΓȜIv>ĩ>R̬11%A i--J]Jdca;mq*7Ʉ 3&,sQBJc$e51t"OI81F<<_/YY^+ nLG; C 'IM`4[ u)yDZE1zڰ2dd/x9&/E &B>J@eo}}gY5Tmxw;{G^zkZ20j2ӝ?~30[yηoZd2̇v.2:ԶĤ 84|Yz \0llp qf&()lӵ*c* 2k冩iwztxt`+O?/]qsoo0YM'ZrVi ɬ6'R 5i$ˆ(2b D*a/A}NjcI ".1N~߻p1]x4e4pؘ0_$m``EDJ":D2Ϯob{#`~ld"B Aϖk.?@HiQc[נ 93hD' kפBԴq"ksL,t{yb^>}\LoP&m($xx`5*V+@dJ#(+ascf%ͽ°\.; B-Yv?8lQ-~p?sM;8y_ =4ddy/c"H^{u,U)˛b 9׵5pi{{o ! Ĵ_צ[;.s/WO?/哦nNW]2q`*[\~7zy|nO; ?ǟy~}h 38>=|/|z-:#5SY@!jR qЙKց##VO}PSJ3Zc%ulOcsJص%/Lt *El$>wjZ.W˺|lfo@tY j^cGxGT `2+E5͚k"J0 ޻\.D- [gy S:U0jDq]~4wBY-W7~#3bڮ팱xscYJz)sY~_"rclnTeH<7s8=pf< +K0ͲaFaa[($DރWY }bprT&!JK 5F2ZV< ׫z0(mf"X䕹g{K]YeKݼBιՅFmI^ EF+C1C"5 H E'aN YfE(m[G@&PD1zTyL!Fo4NxPYS03@*]xŭU8MJ$Kz œt[|B(:'pQFl?:hWȜzIPYD`3%r]q9 %J$"AIB WC3/mo`Įi [YK$Fdڜ*P]-gKۛ[;jZx_OJe(Q`.`X:q/|>A[eہE[ív?~K5]}m.3#JdoA{>sc}?t @lf>v`8tҕ.zׯWU9;wp6;O>E?%T׵M۠pU2/"|I>دOg%a\. [x_k~/?x{]?w`ԁNl!R]HZVU/~E^zEޚvm7XܹsgwwWm{|z3;n*o\ƀ"eL_/I)RzdzQ<{;V?m}(VQz#N:Z?JRRn)E8%N쒏ĵ63quD*VH Q QX-xRؒ͆3[%LufwU藑X.F@NEİ\o;ooN&ՠDBbL,DZ"eh8؜ ]B*jLkrRaTr5M}/&8@fm6Gdj*,Kh4e6*C3r];ܻ4_U_{¹2ā5% !Pzg6͏$8?]"+EO!PV :4ƠJmw?C?k8/*aL)Z"A| 2|1d>vȴ[fVpJ^hFbT,d,J[eh [e0A1̒̈́j# yEqI !i 6f\3#dV+H =RЙ,Fz&jZk0zQ|??hu@"|u1.Kߵ1&CE'Q81I>[/q,\itk[W b2ZsJwqƭ{vlY. /FJ gN`BVxo}?><^Oǃp2nN'͝'KWygz9do];>N!ɠg9ۯ1b!dIތZ7?r]xŭPL 㒂NA !:g0(h5Eo] 5K2GHRZ d`p,GcI@|΃~o칺]̦;{ӠM3HY2ʧ?qeck[[.onY ֧9"Rڒ, I֖ EK1JbHJ<\bW+mbWSao_{M6ړ__^|T`ctc%v[uuK2!|,Ź?_?v $7ͯn<ݿ'?y{8}#^vʵ{;{]WiEg.އ8G~,`gwwS<@J Xj@ݠ2錜6=_RPok B͙nBCP7XHJc$DϯHhY9Q@Z*돂ZMD&#97{ۿ5tҥK#$J+@se:9aT"D$APbIMK!ӕǍ5 *bb8x^zi2lLbC%6 ?_or{3^c<ҟ@j9fM@g:JXv/"z G㣣 "Bg^1y~ޅ|>9ș}`& @L#FV 5`\=_ZC*' _.+V}Qh+F9=?<8s{;J22f ֈXJъ RJg@"b(eaf*`I8v|hHiTH¹âΛK8| <;qwk3Ka{gR$bJ"2(C(,)}upC }Jڊu ySKPeP ѠM"k[9$ BBMQ,ʜTְT Kg=ue*FÑ9{%u[>ODbRк1FRPB$@ɷmS $r< >>=TjJ߹s+Ϟ tcFMԨ jQ !.yH4XU0q XP 05 lr5kB3,o߷A0 LL<+ܕ|ض#(B@@p!!b*49?Q(1I~s6Ms$&aea?f˲LpQ>}{o "Rg%%05C } IDATt344Ӵc1 f(1UE'ȬʬH: WǏ{{3k9g>|txxصo\<wy7ߺ.^W]8iai݄Xa9.Ud]g/8[^ue;nNvjQ^хݽYa|e̶GתYb_`K҅'1BDt||qX-)hb2+CR8Ov9?U ީ1 `oo6q-71DdŦ *C:Vn$L7*)24̇nM fTY0HHT &l@ú -wY,_Y׭MwNM]eŢ9߉Q,#x6]#S:Ny  r@o~U?ztrU7J8#̔S/&19vFow7xQa7-Lz{ZL?3o/1tA`s5tMi}\O[Յa6b6˅3RNrx4iJSf|LBXW._û jn*'_VQ=AdL*FW9J3ށ3@c/@0\p(dN~?߬dQcWP $ljCD1Ǐ?SK8n[D$c8wfFz OaC<ωHEGv Bl!9)nRa;y`!Ibr.,bgYN DA3ۺx bc2h-. (NOOC{oYBhjRg'n4pRѨZVUUuMlHnut>ޛ(hFs@ dݴ} A#EC0 o2gXB^m2O78 ES0 3b3a hTDkΘNU;z\ @㥝G'sAER&"+nk (F D!`cvǣU]Fgb7^~kx2iWkU۶bwp5˲8UԢȖm12XQebEcgDT fY8=/l/TLMY/ɯ؏/dr.fz37]8ݹ0/Iza>rٳǏԍ?[ケx4Ǐw?!;# 񷏮_q Wc- , Z0o̬iҰ SNe֐`$0"Ib (LvLW2l5r֔>s>77։7bHgQ/]>lTh!{w#Cʪ`. zRJs Q  0j9Y`0In}ur5l<34T% A;`A95"NAM- h;tu΁li0f=sb1ZMӝYIzR\‰4;ޱ`x<2EVhDd:)e4'E1{ q_N僛{_WW|8:K(@%k]u獑հ) :E[cd kǏ\8<8 "Mۺڐ MZ~:w`MI>[йxm-71HU)3 (Dƀ1 /PBG hA %4ll9 8@t.ެ }tXC5ˠW.^7M(RU ܽwK/~; (#MX%I%)U'tz苨[p G Zup W^`RAYR5'v?}plӬ'EZ-h1M-)8 =rbFȝ7nqr2M;٭>z3lQ{}EEa*.]״1UOܒNO7'sz,=ݟ{~-0/ #*Y_ofEn.`=NƳlw˦uξ[ef?O~7n]:rrʃO~/}}̿v:wܲmlm3fKBQ% VH~fh֤ J+ (* &IQ̟9'F%Xc(^2M ]i݁n#"6KjW [(I,qvǣiF BDp^"0̺{B B iJ"IX@*CERP*VF _O~l's$PQAr@W 8긟I<\^f.4hL^yR6 qޔ>ܭw΅u:z;ʔNiff- ٺm(XW!g}fPn]#z)7Xc*ͪKϽ4rl<>ȇ;MazTS7_~GUIVnr-sm1*ɳ>)ycNO!,j:?:'H}HM@,$i9a nnrY& Hd97&m64$7jJ1HL1& y9R1d5 6靠eU"d4igw\+ĀP]ajV /Vw.\jYa/2!M%5jD4p!+2ZxN; !) cXQP~D9`M}BSG@B!#HB[1H2 %%բ]/z؝XhMm\y|ӮCWe<'6=~Gr71R",7ggr8p矽ծw`o>x`eTUp,2s4+ʄ{ٟV-dYiz7[)P90P(S0FQUy]LY *"Ixg)0 5bL i6*.&/}㛞ڛ9q;+FGwc?vwC}IU`X`B긩-"3 scUoΤ꽷Z/S `#XàqoB#p~y 믽֋E]D}0J}ҨNJ"_j'~n޺{RZQJI CFTz[ ЇH @@3bO"Is#d1$_9;y7^|ֿw?ڕO|ק$b"KhCy#):crg%a߆w~k:U[.}h(ngg6bt8;gO.?<(9wxԴ/]Rc/_EwxgH*I81'eea)ŘB,,"I000!&RAP(gsךTvUKkCUЧ^ Ġ:i7iS3<flUUBz HQ&`DMU1ƠEҁ%橔K9 ڪVe8FGOɨ*PРu@.X Q6I A ]MIxh뽋*mjGlBh VEQXDM6.gfІܗ' WjMzlwpTeiuDxQX'ADT =%(۟X0/~E'mS WYAEc]w1(s pBCY!dE ,f5!ݪkpV?wt/raNADY65!JG7s\Sr>YF}+bB udID %CL 7eh c oy?ȍr6{E$$,|fm`ڤ ʈd dR@PPQ =JeC @ F} Q"Ȑd ~I0 Clq>PyȬ7# "Vژ(Aj o]%zo"9y0W)}Yu.]r);ChCW'8]=~zVBdV]vs/`PMf}!H]^DYDDwHh ГHʉC>TWK>{w~w^^z+ׯoOY;/|(( 0eXRPզm;y#ͦH&?Y8feв L^Y"Gf(̖6s#=z sQF7 {["9@Bi.yLV,dLogSю t Fx I& HhǕrZntr""[V% &vA(21djlv<+>]|nͨ49r@NA4!Đ8z,I.%t2#K@t`Y/I -u}Ů 3DXtFL2/Ν'f{xxXW^hT^q5nfhoќ@^H:%Y9"ʂ@ 2hVkᾲ%0\̕K{՟'}ݞ?8AsOڧzAfm6]Wo4E)'U1jL9-OMYf$ 08X{<>֭׿l6;8`w4c?ɽNQh4}3_C='Z3/SƤmU=^$7~ٹ+W?| }YY&RjD4zABJyxԋJBC#$j($YX.Vž` 8i`|y S rBAA(θxFYyg#n7QYH30 KKLfgP{_b]QB!tDTBQ|xxX{.qz9BnAmoUbLY:y92e.m<]JH:ϽP a!]0Tѣoh4΄&2DHZx?qFlU2l!ի {2.*Y6ik*$F+8tۖlBj^Y 0z孾 !vH*BSC/ѻOLJ{_j{wwv}QQ^Uc/!tK,;}}6P8"G(3'8E{: UHB}}_{gޙA%G{i1Ui6$sQЀID$olh %$} us\eTg9v*^xxҧ)qh 90@æmVu^7u۵Myf]%@UM"̦YwUASzoSMcV0^s HJlfU9wx(?Q6nӥ>OwhKy|*9TET "9A9gHbdCa[ IDATZL{;;W^|;^ϖ؋mmm,wzDC Oq>g{H ⌵d$DoZHBJ,$ 8O( PL&S0%%1o$DHA ̨Q%G2ů}Ch q-?sA}S_|o)B n2y*Hl~>!$=5-()J['p"9Eӯ Da ZӠr+<^'>*nISmeCx;9z'ݦhlFR`w`;΋fAbn7mӬfHU ))h QU5mC}?,+SOD_޼ysZfSLEY8"_,}4OC%'M-eE^6M^ժ:vwyVpJ1:qhPdCJ@Mwfŋ{8;]}pbe=!ZCޠCւH yw}㓳'޾3%_vx^>zW޴.UZBB<-<ʉ#!kKH0FNo8KHAk!Kd@%q*C셌ls2li/}KdST%'c.YChΒ5! 1&7mbHO3e(F c}&|Z%$ @eNek׮^}:_};G]{싷ͳ맫uRUT !â,Aж͎!PQ%sA%E!V|>~Xx~TF&܍Flm!82X 㖐XPDi/RMrVpi ZlV[/`Iqps(8l byAbm t &]S1SHHl X+d9(s3d2]6M߈BLA UUjjdz( >G~x2YC}Yi|d ]l'gggvӉwȜ5H"*IE=Sdٴ,A ^KLe"gY$8 W$CH*cʳr:v}ѹ<Ϊ[L4K!IEgɩ Yrgmh[4*<]H4?+tm~VҺ#Obܶ] 8 jL89gfij/ܼpϜ8-OzcGYNHL'2g,mWFĪ@b=>8Ȳ &VfQA$cUQ Y4MjM [wzS;׋+g"g'.jdJ }KX0!y P2*chpahC5@( Lwg\@߁3U ~QDhtJ AsCTe! ljSJYQq:o,/_P!tw9==۵֪JYVιܼw M}#]/Ox<B>bY.l!з^qlRҾY{8,b,ڦNU6]<]oVLBӉDNJ Q5!uptnr;}۵z~sݞ\ٓ*\t-|ZӾ2h+ !8,L!kuߜ($BH謡jY' RJD4@ wq5Mv'go?fe[?9}JD uH'A/US (+̏Gg>xon"=Q2OLv6.˶Ca<0Xca$O} S\GްP{S[`Ł8G9c <]E"{hkX/`HmrHc;WUtT*|V8_Y-D.*@)OY9:_}{9Goz΢Wk:!ry\/׋զ$ֺQUM&r4Re2C< :yy)eehrz]5&IiŲ(Y0\ sD:T/ex HgW_ΞWe崚@mݖYbUBBPIi Q13k&92ށ#d}tymHR"n|6-)Q!1!Ʈw)xSL[z:)D}lZ Brecr4R d-<+bdB,8ˋg9f901 ! mhDD:n:M^&Ƌ/hx< dR2֡qyNll/xU$1w(Hb-2:uKeR*TSE}@ۀu JgUVU|Ҭ O )fzϢ J]ICwvgq-֌|3!c^8cK{MsJ&ry{RLuG#9::Z_Wqc1_vm\L&kMY} Ho{hź Vޥ^2_Ty%IUSjnga]ǶQe00F @:\ sHI)ʁu[ocW[o?sן:ʢiO^/g>q{vݙ @:!1$s,A3,j f P UŸ*˪,2@i gfƹ"(AqmeiͫzjWQUy6*2-H mY拼7m3Yg+2,IH@MTt 2AO!EUa!QhH*'g/^>FPMz{w?ɟAhTQpD@ˬ$g^D!|g:b^.ns?~ʭgUU^8=['s-s6fE>pbH)zkʖF : IG0a:V,T1zl7T 1ږSRt6X޻<sau3#CH {Z蚴^}l6C }S R`FhVc"4@S61_kG7g̏ЏZʽCæY6N}xΣVVE12"1̃`]Ywyt^{p.Nκ_We\0uT1 ,#sb"F#kܦٰݷߙrT MwmWEE[#i0Ul"R&k7vv p~zV⹋<1\晃ݽwz^&8u}h~:'1)$} yDYg$U Nj3S_W^j}qߴFYCi\Vo;R*1Z볌@J>f 1q8qQ5ބD"ǘD> `5J[聙zW^}b}գ|qT-!U`}Yv]c,Eᓟ8*$L|"9fAS@057;`8#Q)j?ta~``3͢Oh I<6X2X f&ޕFoLlfr>s A1քGUY17ZJ K?uChӬzu5aFD("eYDs_7^ַQT8W;]DLf>_<>>ZrO `VCb6Mj6lDDY)D,0Ej%.7ݾq7wL~Ә-z0'.>|bJ_%@|{>mEq"EBm )ld~H=1Zu1M;tww6MfuM1h ;Dt8;]}?gLfgƱTwݙV!ި o\"Uu㓓vBߋtI)dmGbKEXmT=a`eMmY.׮^ǣ믽v3߾tso͗jo~>x|rm8/SVI8yRTx?'شxsnhob}k7[tp؃* BCC:y@_ =~AOG~)Lr4}zݴ1Rhf2L`xW7|ކ>fhTM,7Zke{KFTX$kXeNRs) Vyi"d2*+`8d 5,׮O}}R:vq~o|WNVrC' 8gqUV˜+r`p۹K-C;~YMiu^{tҕb(:sYe-Q ]57_xy}c[ZWCZMV,I8Idˋ! �J{qS7j:fj= Ĥ>/ ;fȚșI`e~wW|G|J6{ݱ7"'zKCI1AXfsI'%02;,zkXM 4IXaQg>wMPo YDFAk$Rc{v0@ QKD`B#o.݇QggsZ M XwJ)|`Đs Y-Ag]lZ`mnܼ~|w(,˲> ux:n_j=͐Hu]e^)c Zn٦meȡ*]"g)]5*5@%v]c cF9D~`qYrH*Ա{ﻮ]x|gQ>s:ڣ  p<8i~|K/T5/G]-ryxx4LggpchӁz=nКdc-CfJ@4 Dy|Rᴬ76ڍO??8ެǣq$ #@ ^˲ڦp>Pfp,h1g^|c+oLl<\gM݇WW!<^LqYM'MΩX$kw6wBN)C[\ETDu83Ɵf\JN`bLQ@ aR`H|]f5]@8=zoFhTMd֯%WA"Ch%( Gl6^&> ]K'].#@#XNqVaȕ/,8&vZ"g6![UR tgl&#pp-))XJY׫uZFs BHYk(` e%̊ HcK1D+1 IC&3*KMrUY;AEefpƔYy 1"fR OLnLT1]ۨţs|wbGcD ID!GP[ܧ@ B껎Ds2^ۮ[Vf92``Z4 EBz؟Nj^;:-WήZƐ 7EЬȋQncr&/35_kW^'y;WYQL&O}ݼi@S^V4b~2mQeME8;. }tI0@R`:@^C]"4`1XA?}eY,d`XJUE54p 2$tԪaBG{6-92FXuɘ!d758!@ICJ!Bڶ[JZcB'}D}N-"3!ǃãm'i5*SLdɐku"yZYB)A>VUnB 66ͭ(@J)NP-pPXPY0UQjem<=wFGF$(@=UQB\9gY=^s]>3x˿7^=d۷Feagӝ &,7d'>#qH9:E|B4-|chPU Qe^E!n%8<ҕC;S 0@wΒܚm֫4ڮib4vV~WPƉSP!<,CBuNY`Ą6yPRqWώ*v9ca|RY8 ˳Ѵjf79Mb3TQ%  X 1YMp=9>; ppt׿G玌w1$ƐuE6sV /x k/sH9ƈNgMnzoZQ(#WTY02T899rXy>!2,dpp &$ ulO6|'F;,}f R9߭k EFD@5FIR[zb2"$DHQXD aWx5(M) QL~ _8kVo}+nW^yGOݺկ/?W_{o|_z__ΏASlFDC;;хj<tѦI} &dKL =ZZRF*VK@d2O}HbR:Hka>>>Ȁ(r꬟zKT06 xG֢%cC4ņ5CjP="fNGGmݱ1 "Ei%da93yB,`X{XtGNM݇. osN1ĶiӦCR$UMR-(P &5("B)(` k F-سvȥbd'^zt/~po}-[=7s?iso4*)(m@YcL1Zl9z DAX5aNzf#wZ oaDfh*4m[ƋZB6!Z< }b>{W^ާ>YP_>>/\.l!")!o,2ʂ)(=5}i9ġ'$d8Co<{t;;/_w^u[7owpWyL!ʩ*rTǩ<}j:>;f|/]xZkJ1Ķlց*t_谘޻;.KCf!{o+Ur&O'F"* (s?x3y|fhiE4] )BĠi+N <@ Y dspD3Aibߵe&FRD%-#o˒pyS8BbH‘#jVLܤ@l?3p2כlQV;M+ˑD+/6׾7|sӵ'\dI9*mE8u!qb\WYYU״wƓҗ|9>[=ȋT_Oo?md ~RRߞumbߞq΂1. ܅d}5C`,R:,TzCBαQ`$W6 )16;\EV3 1H!Ԑf6"DKbB V~tږCb G l'k *L5NǣsBRZlM+9:h;}ᥛ_zn0N*bAg1&7#;M"ZC֐7A-%(2S u+V_:}ƍ._6şGn\..)82 1D.4f)[b}J, `g"t9DфDSQCjI;_izm8!oM`U <-p d5 o- Rׇ>ժ{ow}p_W^yeo[ϩ*4iכa)!g}ғncC8#!"$L4LXZy*Svը(<{siQW_J6Ms_|hTl:s;̇~3WWooS;2"uw5rhwµgxLO֋lTUat\XD4́TҔ$Ιm#PdxMQޅEy("l-0`9$ @!t*!(&4k tiB"$Cޘǜ-t}MvѓaV`ڋ|4#&q# SpQL7u!9ykP, TmfP,s>2لPoll0|yK] v]w yÿ|ytwխ7\_vԤGo}嫿_{.SSP]CG]05s~2랜M"ƙbDQ6=t= 6׽NJ2]Y2% hP4KhEUd6-h Lŗ&pd Iԡo ȥs6RKZd5(I"C&#}&u] (*()vb GU~|$( 7^r'?"&lh4ڙ gosM.u^l9_KbswuogiD\5:g"WDH 'Ih #JY,}VoM?sv.|a/}|ʋoPBF@,$5%YImy)ۄ#3# K$"lv}L>Kt~fj,+VNcL1125[;/ܾMEQl9 Zwg\淾u%{PlsNa5ʯ7~O?Xgdӱ!%a1}:TZ;ʳO|ʪ<{'l6೟~ṛ62ˬ'eQ}3CvΏN*c <;hyCqVk&= Ct<$,"p&Bܶ,I}BǮOIDE ;] `9jU 'lRe4 ە^QI5@Ɛ.A }Bi' jPQQ,g;;)fh6ոhamcbOƶQc}H5O5i;Ƿ÷C<#%_7q}#^z1Qຫl6zV.$ƻ6DϚX5 lX,A8u7]fBN4k:B ,5sPm:2 <,85 Eӛ<"qh`vp@pB ޚhʢQDV܃1^&+0!JJsW_yḶzp}*G=펊;kB|<?8QG<>f.7]|$gy⨪d( )qRbC)DC=*"%HQ@ﭗn݋&g˳;~;o|󃯾sߘ]4XSX9\KD@jH ]n()<ޖQP\!9t8FB37YI;fԵmDX!DQ!m>c6M{mu!ON?89O7g~._ܶݗV5Xyt-gQ [) !0P!/ Q*ԛ߹}洪 A8җD)o|>叾7^}W_=gO|5m^U杝2ێ92QU/+/'l7O|7]^vw{fWs'r{.6LJXfl1 BJOVJO܁߆RCDEQ[2Cv oi3QZ U`OYpxZy 4j%*#8?&ˢL)/u VIH 4 Ud[V<" :051 GDKȓKF)?ΫufuVw}1r.y@M{dD-BL`(CNdeQM'ܓ>?:e}vb8Mɨ7Nj_9yBH |5K,M/㲠g̨>*BVx g Q FTD1V;u܆ɅRJ4FX&mUBzw%r >wPNAC2PT&U9?9>rz1>zރEQA0@0*]J(-/|iʗ?k!z<{zuiʡ[ÕC) {wz!ocqk)a:˦ 6]x  $%By(3(sP Q-8 HI!2(e Κ'-ن~[gĀ( Y؁2mX,Eu{mrI.";!Xc5gC~.흇߇%OWS.\Z/gǓ%oiq6/GO_{<Ab "J\f cMݰA 6@A8tjpEP%C`)h">?8s?vssq !4zvyN]?*Jy&t4"% $dX@ "rbEbF D1U" #  Pr[ս~ r:9=y+ xn"^v}~voڇ~wwh8F{GG9_?>cGvtt7?ϿWڶ;888bUUOm9HJ> \6INDyDAT~Ӄ{ލz'ϝ;:xw/G/~|_sEYΜ=[yŶ- ӏ os?ýݝoO|8]o\3ޙ66/o٩'chhB% RA0:`sS49KZUۆۆ i2 eTȼhm8G/F%6I1Mۮ6j#!!0  zA@2lj, !R%2kK \??ǿ觿7n'EKIwX>~v5oe٨mzJ@CtM'c8}<کY7]K0/3==;ypwb6G5RHf^󕓔ch'YsSU| /0_.;}uE5epI ࠖ2I&jE"GnPa" {gm߶ţft8/Gm6Y>=eBu'goFxPVY#4SOf6~T$1Am3}4<*bX_ydw?̪&VuG=qVh㦵JYb!ef7HKgS,pky Hww6m阝km^;&tx"oѕղ$WA;H/<{?; @X]~鲷u]Uk2*}IKJ8oS䶏ܧ8` Y  }10HfMnUjK;o2YuӃAYsZg=CUSYK2PK >ҭՙP"+6uϑle}J}fUd:̫UGVzxpYl&5"Ovѝa츶9H*Ѣ$#"c/Os;w>+aHgefGvDB;VN.)iEG"((YTdap =?c#>LSH׫s218>8秳#I3B!o:Kd@lE Yo嶏],X;#ނ(}!0F3 <4@.dz a#'g_%o6sD,ݴk`|5vgdR=zt9d6m A ƛvWOwʥ7?_巾ŋlGBk߾vn۶[,h;6A%dEa@DXg ! VQR5˓{jbeUV}Bw3̦i޿6Kgg?}7iO/\˷np~s/\?C?~7./N?򹋻;{+WL+߹裟UNv|QcZ#1ѐ|H4DEڡw:iۧ"bATƽ {5[sWb&7"@H"7dCMwQxXmJ eh1f8,h );PRoH"PglUC1}~K'SDō7\@gg8_ߘN/-DM@ VB=[NGɉrNN!62~4e1 &vAzu6XXU~fcj^9Q,rO}&W L֘B1ECIHpF Y9)>>>>;si!vwQل.NFNSڟD tooFƞ-jry0,J, h*"`QF.:,Td}H%ȉDG7pH8aL=Ⱦ-: X̫}b+%3LEYY *:0-MS&T!NA])2uLUv5ƒ} `E6Q"J(ܥd/W}.Cۢ*7u:Sx_.f;c!X J4tVr8i9_tX6mBԠAjzUs";d᚟~f|^쳟ȹvus1uX[ ˶,[kmwι6oʪ,ko^w}!P %!  1$E@%PHa901=nڿ~{e*m>[UQQu{~e89;~{Jjm?ۺ dcӲ $A 8tQ: c Tkh3MVm\7&* M[/סi(@LpP5d (zpv1I6^q9TAtd@I!_9q_}8>}XpS]URV-v>_Dɟ'^}W?rxu%4 P . `7;(%"&NIko DRԉ:1DN)1D4&6?rYV>u[Z郃GezP GڕϽg~?'?={o^ޝ\ڙ',{=\ az{ƣټ|qpJ~AV"TH(1HH9C_7cش$%@$ҤRZ[ʌ誄J+c6~]HpR䶻46cSI)"Ȓ7;ΒxͦaS`Xlyx>D*vt|JkmCYy }7)УPrXk-)!.j}>/Q; h ]Ba h\̢o$Mg V`j4;{[z>6,"%!;w]B C vbahʬ˜UZwd4o Ro3TCk(F4'r UlR5_}jJ?驢_qBlv8dǷ"+eyX\?t8 lknclc#$cY7B (I(kXb4ejbQ8u(H+,EOaTD슡ҙ)â)2YV5dֳOBh?{ِ|Wnw?HmZvVXZM` N2~M UpBh$"w3^,ҵ r[Q@p R@a$mdaL1X3BxǢ:T>vhFrRL I:` C(TʪIi LM,e qA/q( X-Y DPH^VV3ekpEb`溮XRekbβ Ns7pxUW(`)1P"!c bb"J)L,X)JYmQkʕ6ArkO}={ԕݫ9fqbY[`琚ۏ v.?a@ u7ZJ]zeZϹ\zN!e&{E>*r fy1[\,EVZ 6ŀek  . CRyqMoۺ3(Y6$TM*~7w_g^x]M=s=}M){xxgyf\S (4,C yVܠ 4'q,‰Yx3&̘p̖L4)u˪*ON?'~_[_g}#"kmw/޸v#/P "|WGd{m޺Dkmehiv.ek}nZ!wQ,@B%!?"nPqs:/2u~XP(:&ʼny.{ 4 )`I,U1oK4Ɓ6( (͗sP`"K%xSܽa]j|aH&: /-34::]Qmd&dMRbG`?Mmѷ0'GGۙx QNr9;_-Z+2ݟՃ`^7ʞ]Mx>$h6rIH!)#H$u"+bu$q A#2Z;ţE!ONám^.fGz=G-@d@b` v~dqN ֠iBL L uUݖ42@l^Ƹa^{o],M !5a-mI+Me tvlE@An272vv2սQaG8IDiX " l8J"Ъ"*6uݴr( 4)AƊD[7-h ZSrQ'QgƷ`+گV+EM[V#"EDs"߂61q[nXXM1?Hי*m8IQ+III  56"|D%= pPi?s?5oˀ5T \5(g{Bnu=B< JmN) ǔFcLnF ~LLkg!7~zo^͖z]Gഅ(J %i2yaPfZTIT:P͇|O\==:f+xOHb{?~u0ϫ/_?h(4R?$$ J;"^RJ3 HS7Bdm9  "HCsgFP Xjb}ShȝLr[dGlrU-Q acVRdI˲^.Wy޻r3l 5ǐiڔ`:ìjqt||xx eۺ_vJ>;W˖'gg0*t2=}HέbJ‚B)A Qa$ ]@8Vz[? 8|VE#5:2ň)Bj ア erۺt}i"4M[UDE![`%ט+)r955 Ƣ5J)<5U&Sخ Za1Ҩ(`P@[Ӡϧ}{o]zx~z\•k}{wέW'=|\^qO\1.߻骧6R4I<%A P$imijrv7>ᇯvwwv⧶\uZ?u^yu^Q{O=`0~/<<}{\}׎ONfk]I$X9pejߐr@QZàIYgP0" )%"1XF0g֤ i0C u@}%5;z #f6*c/:&yFEX&`⦩Pu> . OZuQ +;7o@L:IؔzY/xrA9ߞ_k!AUzuc%XM͗_{C86+B"$DzLQC$6mhH ZHa^ޛ^Om8D66[i&:AoQ!\nk58 u69#NZW83f3ry6E)sFJ RpbƺIMm| P!6*6EBi 8 Ϊ"Wyւ: i!!#4#DVsnItѝ_Ωt:Mo@='??ׯ73pbs,TG|JݿI$PZ:0 1KbH {? IV_)$+,% kPz" dT8J꒓k@+ZcO>pY(0(IC$>YggD7M\!@1njbem&jWlM!::֫p8tFnXZcc"[ӷC QEZB!\mhY\ڛ4@Di;V trȀO.V)#|@5^>=y[$v ' mh0i v~Qgjr5;;;98=ZWY=@Pjh׋vubS^f]Ub5e.Y%ƨHbd2X-)A?m];;;v:e?ǻ;on]vv[? ׿?^;kO쇺 aqhU}1RIڜP!p0$ҽiAB1cH))B""F˅s3`8ulvW57ߚl^;qq:׾O[=wϠ9W7=8?ֽmo?'>}[yimlL1pACH=)FHݞ[sןVŒ@nD+P R tnX$ЦJiq,RC 5w!)DYXpZMyB@dw& H{AŬ4xrOlm6- 7-VpʵݽSh9Og닕ȝAb/p߹gvFńF㶪?ǿ~d}`k2tJCʚFVtz聕*훃i;;gej:!;[UX]kK,~g\, mT.^8h44@x-Ui;=94QU^>Ž{IBmLF!r ¤v]7_#7?f[Fժʆmea]_lmEoʡuh`=Ǻ UUrn|De2Rnx4[3\.բwU2%ki1_XmhKn=@DnńTOL)FRBRK[GcJR>zt@fA@0V]?G_ f Z@;UV+#\{zA,А웦Z- g^e"۪FX꺩[P,^[PL`$bafWhZ4(Ii{ 4مu;.>gCjJmo3>xSX1 }<̳~]?{"nns{csw^~_*r{io(1ΎO1Z볋պݙlOeDJiQop(n®‚Z) >bCk|R@@1>??SZ_Y[ uS3UzpkK%aã<~t/}3S yNkON6)ѽOEotxƋ?xPxO?\6ܙM}"nt!:Yz}~죟xuzvZ.ںjg{ }^{{hUO`,A{֭|{[9]zV^|?~>.ƛzkנ,z^[ζ.O""F1D`&~xܤQ:oFD!iu'iH)Զ>ŨvSYn5 >n0fD+RJ 0#"AN hΎ[%ABa>A9$.V;8Ӻ tco'??ޏ\6$hVXW, jڦ9ݍB !15ɻ?l`pzzꫯ?u;gShR hj6e(fv1׾I)lB,Stww_z]iQF'bLٯmw,OdY6v{y0 :QijL 1"(!AH$(mT76v^ Y9_rbШCl}=oVPkt( )ֺLiRZΧrib0z8gv 9z3bԄ}s˵"&L[5Զ5alVQ@1n8kT^QoتSbu^/^R^Q庞~o^ !VA gvi nHڣUXn4>|sl" `o{Og|)"8`[^dFO ;V!p29YFI|=yb뾬~7[מ[wzyLzKy_ڝ8k^;r FCg)@:Ѕ4!(Ǵtyogo[k-<&b@b 5]v:=[]'>On.Wp8ϗ"T~^任{>qZi@ڬJFhk4؊ONr6׏ܯ+j}mW !5NEVu_'?]f{o)zҘE];,Fn1kmmoMg_|3V9dk/}'n>^)5BhR@Hz1" (!HXuB1"UB@72CY]Y,bXCɱYR6g!o#k-zUdx,xTfӷ._sl98Zzjkr8 ~]VL\2AY3Fq6 X$ 3b1d Fr|YU6ї>/kWx*}_wBS_;ZP~#Z{4 AF3h"t|5n!@-I[RD$IQ 4 mbQ H1u4$$`=w8,PV|ϒ@Y4pڔ6z" FN/"+{gf,م_}u\ $xQ=)eb6iϳVYYUIUhSa;neYuO`=NF1>=P`BA0n^/Ƞ" % xN<l>F( yKGoc7}s|SK (@E >bt1I ۷`]р>f3N)3i,D*H0?(Vs[Vty=up8_.#/\{ӯْ֥ܾy? \gԟ/3<L|>WFU3ޞEJ!i ,Xrm۶m6E}.よSr!<6(Aw{FRJ,(RhTߑ()AtsJ+ۦ'շ?xӟn盿 w޼txuMкm"kFYܺFYy)((6 O)(%)XY {; i$!@V( 01 j'[=.@2 mC^dƭKaX7?{xp<UM!& ӨW;[ۋe6m[7GhlUlsdBe޴-*v&k^} EcTɟxc|ƍO/}}=6:ַx{*t2[l]͘o]׋uYU;{{Y8kwy4?^ my޳?wltFZ_0bJRN2@d2:4Mh=hRJ)#Hд1UhV~ꪙֳY,pVcy%mk),Z$a9>:.`7ak/.)~:}]`2/e9S[Ti>83eZcC"ܙT1(,9u:FhS b{t|׾/r'U{0Og2\ֽ$`"Gh@s$L1& 1)4R!qkmx]*uuԨR!%f>(Ρ+;k~l<!6V)@IRn7 V"|LM׫Ь wVM^$3Mgj HJ74$uIX6k\4Ts{.˻˗]V]nhZ6==Mj~vq{2X_իWomoWk_+5bU,.Р{o?( Ss z4tb `aӷte_f~Vsa13L7[sH,ȸ㽯%dƍz}" Ap|y=HcDfD7J.>H,!Vwjԍ5 z\䓬EzƺzBx We* L;gbjB%j"ln7Z׆<W.EU.˻_yakm1 8]տ{w̍k{2EMÝe5BM3o0r]` QA0KI>*~sd{XM1Q Eb QI7a$E1uQ)qL)%fL$bh1$>@:mv"p4ns!T ܶ)C[2ai^Qxk7f6Q6( L\al.]msp8Y.N;C}.W~>Ԉc4X֫26Mfr:y9C^I8xMRE)7[::Sd ~_/L LР|ШuS뺖!L 2C` EAeu[p! I P!Zm >n#jE΂"   C߄!2>{nXm#]Q|@0JhH[K_o7j"RJ4tiI:sn^,%2EBRCЅ=9!sB%!iRD K(4!Jr.3V+M!Ʃ61l"C33ScJ+T5mbQ@ (KqP]ohmA&c $%|왏 !d@A 0fgyǾWnf.qhg^5$T[o^ <=t(0Cj(MjVC0^eY͚ӓyj~w- !,W["Rhl?;9ǂhehWMs"`qzۿ\CS>O,(~r/ſxvq> '[OlMzAH"Ym-1Ʋ,c"I{I T.WnlM"'@! C!Ԥ4 tI:RMbJmFk99CLqs᠕E(R z 1þF;޾u^6_=qێ:/o^k:c`ᆻ[y/ޏ( Rj2 Rd;gD@is%ܭPJ+&;)Ch|)./\jz5]/TS ztodI̬! Dh!ȑzw5vƃN|Gy#58[^鍞ڽ4bf Y.GGN&b䜶V-J3VjfuDQHCk`'YqNj󧟽_}@1O0k^SW,JD;[_W_AiOF}MӶ DfT-̗Pq<,Fg>Z3'kH!譶R!2NM)$!%h5Һ/%DDOJȲY**PXLk-\C5e"3ߺ#s>0 %MOE-rr>d5qZej %ֳٔc#dɋx[ K|4ΛW_W7n5/*_F5vq6T=l ao^ZM (u!f(D nk3FEB!M" KAKpZ t3OlU*nECvI"0B\J4RS0XcRFGC($I g''|!>#։ 됉.ncbnz8R Ƹ` \G! [gniIQ-(BffmLx*6M]&Prb٠;GBҔ$(=[`o㗟ocrMh3m"bqu>?z/ y۲ZbQ((\+,)Ii=1plBtv6V@O``h<1A[T%+ZLU 9j|`(5&[uL~_S&ѧ> ĝ1Fm?.^^?Tϗ ,h:ʲ\.\/V^G(f"0 E  IDAT*$Nk(VB1h@kҝT9RL¢T͜ʋGGG;Uy/f`pᣋ[}߫}pjl<̶\u}7aF &[-G26:EJĒPH3QR`-g~flSz^~ttdPLU?p/綠NI7#ANI[@#]9@*3?& $QV{*ߵuOFHa(WX-˔ -89P A~o}%5Syg?RۆusڤE𥯼}c >U??_$ ''nVkYXX19FaQs&ѧ>Q38A:ŭKSJc mJ!R:R6VEH@cB#kYQTsICX&flF]"DnղEk6ȎiDj޲zDOe6p`rzAv}1FoomeB1%A ~)BIUH)$4.I99]dw^7 rf_qbQ^/+zjPנ ~{'nEUR bU2T!DnR1%ҊTvDAJ#""$C$\k@J1rg2kDk QjYNϟ/jI@>j7!8 DuSSSoc,Q:,K@;) 'gb546(>qAJ;eJ1F߄#@ѰN';UU$c>˭O!fM"ڨjbgjU o,syJVQTbixAu#B~={U V<#kATJûP.Kj_ ̴ g $k07dGNA_PIg&jNNO+ Ks¦"ŝ9>n}R| Sda5`P0)fj_~8Z,fDofU܇>Jo֒[w\;|?m@=<>,YH+ZKJgYVEޙ p<mw>>;D) 3W(FUPCWzFE(I0)]zt: z#G6Wb~nF)oG?90lQL\/œv?"_ >X,ɯʯzɷǸ^H3(P7R7 J|(Y:eZ,VYfٿknNvv@(06Nkm1ieֺ mE!aN)$ H#1qޣQSuj]UrN'1ȭѹ2D) t}Z0jx49UB"$[OUԮ|j$S{DW._>Z,lZ/,LfBw'D) ,z}5zfېFi=Ϋ/W,f0P42@^["N>@"domfڶ j}e y6{e )FRJ1Z$7`M*HB Ao`U !ElfUwa&Y|>-7\JG"6k&ˈ 3 Che^Bti#I+Pݡ\nI6VUh-@0򦬨@+#heR }85J,>4Ʈ+BM' cRT׋:!qFn<ނl`D#1P!d1$zC4l>?}'. ~bF cQc}W_/OdVZ#zvUe5!r2䎄  Vgo?x0ښ$BFָ"71q#XDs`5@>EVDYWF̉AZjH$qhog6.]`pTW콻oehF{ݭj~^܎wPo؟Hm*˜S ׳4UZu%A[ozL"[#,XEH]xLCt&βl{{[ ͂$:Hq Tհ B +nB`  Yzr [>t{#OC}ڕ[ՋhT҄{;jUy>hۘB[KDHr˹G@6V.r4ڒe5_N-Ë?\?`.hx?Ww~g-MfA{o~W߿b ІB2NjP"' Q{?_}p]xۇ +ҧ6q4V ~e!Ml(m1!҈ƺeb8Ib^i/W Y:+`Pte=S^4=ݓIeۺ4m f Ƅm_~ZurZ7e=R r1;z9-,gGӳb{nj \{^9f; Cu䄒z[-bEVU+J_GNjYX&Z7"=( fDф!RF:Ŵ\۶d JRXV- ꧞y,˭qݖ>5,A)(`,G/}2qԘZAiN@h%Fi t*DAY} L6$ r sm3H3>yn wv>)Yi}S(lm{%/*&EX-du6UۤlY7h4=sIqg.l( 6=lqXw$%|kh[y~A0XHK/Q~deup~toԷ}l_qq}rKi VZ__nooM}սg<nүzy]W+z-2뎎QZ}_z}kt/EHʶ^7Uh$@fQB%A6M\)AEǐQirkR!&c,F%̸Q_Yڽv?y7ڽz`Hs+A)93WFUb"b"ΝUH=2iEJ 3KHhndDlĎ!@ 9J *cXTJQ srXe7j%P,i-#K4@C8}j)>r y Nk+Peg*- rڳB"kAk4)ЈJ2N[$؆l]g*f)L83mIqܗ7fGwm׻fԗaoXՕMf>:>=?Wۘ@mxI:>0fF i"$DjU G[_K_G>^t0L8?mEч蜉EgSz}gQx<(\ںY,y9_/jk $'DFlww!/w>>f)HJyn i8`&M#y9=_M`%&G!b߂V =8^JS'(DQ"uDDLy;cfj:j$)IIt cݶ~/Je& "E1; "g g 蛺uL% G@XEKJʠED=}HOCKDBNЈ4 5"x~g}VdO< G7a 0mlOOv=|+/TBHڡZ *s?YWʺF7lQR0DƀŢ`ȭSd9mj *(+AtY"Z]Y2<} u=ZzO]Yi־ݻ{JC! oy]-K_<>?=ͳ,˙y6'Ϲ Z)f\_S?' UHset#(1(@ DD(aTmꂽ)qbBʐ`L?gՕo"C|g/HDD`&!P!i3'VcB tCJ"Do߸~hEFMSED֒4ѽ\A:$tY$]A;#G~dFD@+C3 adXNI=Br@kD^!l9=bX5e\4=Khj؃D11 xJ>//H{6h3Go8"Qʦ]i]Q< @ J,l9=_>|8?B+%`ba  t66eFS1Ŏ-j& ^v^1ȫZET'=\ !qJ I+Eu8`}V-tSwHH)% awD"Z _Gzn-CTA3  !{-O,/sJ\ ˋƒYL@Ϛv> (B"2 c1h.yqvrLnȚZ/!h$k5xo૞.@d)Jxx&r a(yZA1(0Pw&.3{ol0HL䇗tql0$6iǯO/vZm/_٪ۊїl4L6R5DrtP?ɳfWZ?ޓoJfOǽ/VooݽƟXZ dcvm%#ޯVaփs,0 $JF^P"ؘL[tQ}z>Ag-. =NfʅXT" % f! CQLfť s~q\U $ ADP)@!fQ'jMQ!&x,Bc@iLx#>* rm9Ķt\7{MG@T$J8oji?jb3ژ 2hęI9ZLAo?Y{:\CΨnBS%^g{[ӥǓ郣g޸Oˎ]ҽ;so֡_߽;爼k2'dA?R_{w.{onJ^ɤgZMeƘ~ﻟ]V!=qpدb>{pAYMX8h8)+D%6 ` YCփ&9 WwڐJ# rʺjں eue(hkb ҎesmfrZ/~! R Y(&$ݓ2̱iZ&<[ABuO+RYqfA(RZufmKt(#DSho!Y)jP$ EIn@}殀$҈ fBE:@p8lElZJJZMYmn 4 Ӽ:ZI3$CL^{?C_aF޺w7έ,gK Y At~-ک'Wujs.BMUVZ*}vxxΝ;xܹS92SJ(`VxXF.!xV:AJ1AY-2R,)i6FfE^5PC[ f3t ˉ.*D"3&J57)[糫7;|=%v!˲|>?[kvmQhumE.E ; [}N_@`dPZ!0岜}LFY/߸{ n rU2L, F0Jtr~vpe8[n([.fM11 wɋ:QcG1n8/ )Bw%iFNC2X{k_'(Ry;7v *}sVH4DH6*OWt>aݮ7F!TY%dP-H#CGJmUCgZctU%^_bw U?OMUѴZ-5hks|hZ}̌O=z/ /޵q[`۲5Lwo^]]s1ID&$ @& $Aˤhm1EH,6  H E@7FwWWw3ic:Ƌ[:w+3iy:͟}d7Y15|0_G9IAͺbfL*b[&t|eU_9tXFλY.F_yV^hYLFOG󳦿s/6]?/[/\l7ׯ;D>EʼJu_pvƎ{?XShf]YIm^Ē!Ծ9ȍAPy[Il6/y׿b'ƃ*-tQ@tꗋOC!0igzHD"c}?^Gg.BDglrcВsF|7ۡ;8 Y1Y,.ɊmZzcA8%$C (+&kBu 8)]M'UG"BhC͓ (QDPd$I6]uH|Bc)nI*eޙNrfYqi92@%Ðe10LJIH`1nm d/ܖ8hZ00 V&0;1E uX?3B1eB&{=XG;b|RUE@lG4~wֳ7wͮԵ_P4wFDw],y؏6M;/|_11'DgƘ"1T9v]G[0'4T$Il(239hQ&&g[m){1&4>)gÏѶmUUmۊȵk{GC&ֆ$P lqyB۶'''x<9((D@ȩT`FG?M7Iyx VW_~Ƶýu=? j$12'>{K{ã+7YxqWUIh8 uޛRڴ Y]%֮cu@s ic*$Ux2H":=|xvrryѤh /Dk!L/B9^~7?^ԛmcbLYT P(@Jpp"p9o&dBbY7]]5&U!۟GwAY9Esqc繳.%,gUUvQ坟\vkaS[4FP7ŗ/;O:CLr(cV~H1uɱjle)qLUuݕ<>/Ľ/\UeC9hw+/ۘ]<_C8q}nƗ~s6وV,S  4qQB<=8l6tnY ?.\2\5*q(:=9m>g{:ޏ^4ml:?/ {{o?$%FAf#! (Zc38ŔDR}GD ̱ {oU"bee2݆@f&ƈ޻îa;l]ihapCH "!GhbUU狫Wv]6HEETEk,ˊTfS׵CѠғ)v?t~,B@{W_^6=CQu` F^{ޔ faÍݫ{7iPd\ NLuuMW$z{kY|կf]NB}cY#+MJrf?zh{ΗgƣZ a~d6yo>{#aEV qw`U"YΊ` tn ҏ9 ^,7B6+ :@RO}ÙˍE׷+2  2@!cd:vכݷy61VS}捃kI5~ϿrJUVN+;Ywvzl=ɼq ]^YT4fvoy5-jAu de[89vj64%%c $Za5d$O*Cy]Q5ݛ֋AIpiTO9vbШ aki(dDE/0"hUfo{MA˶ dCJDD "P ,.ԫKh_8}_Q2xٽ{V.$'OZƃ!2OY'E[R0`3h2`^BHĀd 9{aƌw0e|G`^xxf{ }|rt ZVWyUq..C9~t!Y&sMs{ oO 7K/YQW|R?ٟO}ZoVɴk:e"lŨ1hqc읳y#c hm{pއ\bVk-Ɣs;kLiJIUÂ96MHEYDGVb<Wյk>_rLZ"UfV|RUU_V۝ = U[nVjF}#mw§i"1`"M@pl x&"q/l.ҍ 7_vv*e1jW '׵34,ShrSۛt Q"UI!rLk:$DC Jx(;?=<:3|w~?>]Hxs}s1/dK0-6Mhd ` ۇD&^Ar҆BWf^%N>sEDN]J1.gOH^N`DFmZ@, j QIT>h;?}7ٍqa] d4*)h>~$C c ~ o~v_^.111eAr{(9Ww?" sL$r#nfE;^'/{4F,[W97=k;ݷ߹yz3fX޻{w2o{r(B߹OzE(©%% uu]6ڝ-s$4d@cЎ s2)Ķ[jړ?"3|$2"cEXXHZA-"0dcv~ ~vZWe9gQ5>I7,t6uEQqJd˙YB D, w}G(b2r˽oꀷ@e6ے b؛d\8E߸y .pqW_~qg/~gaoX[Bbr$,FQ0,tYۜlIl߻szw~Ķc̀hXL!b``H]5C&K^_uXƶ}nG-.;NO%\TCRK Ɛ5h-8o( Bd Zg,1^ /O}SyvшIުTTa2p+WTeYd7* '.,+>_ݽW_7sQW*^,)G~' g3@9dJI9Y,]-˪߻`q|?'ܣ5hǏ{vܾyٛ"۷_گ}pn;/7lC@i!9e9IC7ՈjH`-kӰρ$Ds_x߀p]tbf&H 1̵!hJ p$[E^#–tSX?dmLC/7ЬBJkƛo,u˟+u\r?7t;;ܬ媏ЀB-RRUR|@l`Rf:7N-C@Sb@k%gnX?"b)zŔQnTPj -o 3; qq,|Z.u׮\諯}ڝ휜1od?S|>[chvڵk}#C˘BBb:缱XQAq*HHΚA1<OпGOZa}fAB$Z(=#ާyƪ:导 MyR<WLJ:H^~fo_yŔզl<^&j#Ŭgͤ:9;kΌG }CHB꺩7]7;7{g1U/Nݿ߭sܜM >~F_׷޺wqf"0,FX 9))BHt.:qQ5vvfm@bwMA4ˊ<@Y.Vfӌ0  cۄ8@n X SA#PaZOOGЦ9ad<9}|{S T??40M/҃}k՗^(_Oz^y11&󙳎SlU<Qa J(Qo]H\܃! dSfEa# Go}uT YEC [dCb(8"QSNCl VC93n!ic#7_5UΩMCr6]OCi*ĪzXu IDATցj*gN ȒjLUs}W 0ORLd |Jr@DA!Pڮ>2&d-&fuܤ]5~={k @)Ͻ3,X;/)mWuZE^ʒfg1f/o3׿ߺz4Ơ*Ɛ-YETSN}&d0[3dbJdG2[py slJiX?At!kLz*YO)FNh8TC ⤪N'Id^! gm>y_II[oVl{?7&Yզ^+f뿿~Z#Z #@ hgNvlUq:۽qc}?*y_Wt/BQ&&-.obm^;>.ھYի>-rVX.&Dx 9Jh v%'2\)ɉG9~%W=XD$fNHx3shH^X̰GX0h `䋨(xu1?s~6~R{U7\߹BDiB+umQuIYhl ܿY.n^^f\zKGԏK>*;Xegړ[Y4"!8G7vJSbR^D }A7B]uzVw׮^{|r[ )p"GI$D@ $̗ߺxdc6Z ǿ|c-vBk7?~|r$\׏WE+ 7M٬*өv;ּŪ ¬ FH##( 6kC)JR$աIhc& |;^z㝯E;"0́RLth|90he6[S p#ApC]7:ĭWvlYاO-m.* BaunV G , Hf#l" l;>;B3pQtY>'FB4Ģ!0fK&;70vs :SH' = vo]y.Ecf2я /#rbo6ꀔrWqUwڵ=I#CF9U0è@o׆_|λ?>ʇ^y;L|M-C ~___3??6M=VbZMSuR#ynCm! ۮZcPEXc608|s}%ٗfY;xSJ"jE.[i:`[7oկ:ʢĮ﷖'w!DC{a<߽{kGGn>r4;}p(a4Ѻ'*sGC,b:˾3'{vq9=]ٕ`W vhfY1cOXʊ@g5im}Robj:}:aBKֹܻ2Fs/"=(H6a1 sF q;OW &`P!q@b  q#LI *8Dk,:eumM $hWګ/=7?}Tz AAoEB Y>NB#eƀv]^4,s@^ի>6lq>@/Nvy[k uys7%n~9H޺wlrGUQzIQ?xx+[G~Oӿ_ܤ*Z (E0s$Tp8W+%c"B"(!YbR5Hy]~{ڃbΘ6ź+猪vl`{T@uvO~9<FM/>{{o<ݭSzG^K=])ր V E!55a&Im|!Y%P:lmF}h ̑Ad)T^QG_.v&#1a4 O4\Ud9lM#( Of0Lc%m! ;pqٷ[;'Z-DN&ՠ 2B0tl$Ch3mٹht 8EpcvW#Qa^YcFmj?-! ~Cw?WI4a4N9A!ͻ;_|ݓ0E s/m3>==rt?gsg| 4v܇bTu]h4Jzy9/2˲|>[%UMI$!3>*1YkC$\>PyD2UZ lU)d@'C-fk ":I !}nre%K[0s(n߾{Mff>r\|⃢Q51m9kG^?wO-ǿG҇G ,($EFd'ehdR0mswS`28mM܄.ADٖj ʮn=j$a[c-e#M r-A|n(!$Gt|8늴 u^9jB1.0pӇi}BDdF)ŦXA!MV`:BJpL)(d*a<̕%en4.W_B)Z4kQ_os rk2Ԡ$r&Yfl`1z[./H9wߞLF73Ͳh?!>X>Z-;rx3^:`뫿;!֠a4Mf.vϸ&*a96 KYVeX-꓇'Y߻s~;I}Y1){k}y:ǿПѓ̔ DU}JF:F\>&UHH`8884 p$M[7p<eYEZn$I0!PT7nq  cj|Mq]=n? ͇eNn݌SE6l1 䌗=Xw=GeaI,p9k( %(D(L*!S =%!TB9+ګlϳ7a0PE * pgVAf0\bxM{2Xm SȑAc$4@UUeN +[/>_ceP⊤_/륽w^͏Ψ @@ R[" 3}VL " X;?_Cy i^-'ճ_zpPj~3f٤Ĩ;v8Ɔ98hO;޹_-6k@{j]ιgHJ! C!I b!FB *"Z`''ߧҥ'5PꟈO!1d f >XU㓛7o7_^ZI 2V]ֈhZ?6Y⏋޿}mFNoo VED1C4bh1T }QɬoR6$ )l:lQ&X|9*Gte bĘ2e>ϳ 1wU69?ihQU>43503sdnp@PVTwӯ~]g ș}\͢[@ bFRe@fM@׎e@ܨ2( 7> Z4O2DT /` gM^@3K>7 2pAaOZ*U@RqewsGUPM v)$tO!lIO޴mCɹUUaBo܃:,Q١G?}}̜bt֏fz7oݼʼmr2me-X'\Po YDaVECa7 ͐tmJOXXID7hh@57N,Q:8+dPTm';} گʯ|> K`ԃ *"2$>()%RT$)%NHjWE|3eY(Wxr!$k!iXQ 'DP rA1D(vzY&eĕ8(3=^Fl**'pGh#WMn&!#%EH[9 Ȁh]k.\4rڌWqo>wO录{y =^:״E?_qw'14)vu+m5|vMRa2ֻ *SGB]u^bՌȫmc 28PSJzvȒԶ<*GuYƉ`|v{o,'2hlY21yUTӉϳomcO'g&NIlOf;W_ ,W ]Դ3.*Kruuor#==89G_hS٤_'s#ṛ϶nx,jgР[/.za15{o-._f:y6 fy֍wn,9ob6^qYӝû'y_4&% qtGLJ,ҧody1팪*ŐD0T7. BQE"wBH]p&lMfݚ%*֊p1 ݂gWʢ_N7mq\ӗq~fv<;[`0k7ddK&uX/qUeYH)+g]}cQU&n4֩Bb Eո<ˑVIbH-%0D^ST(f&$DKl{1ɗ增 $ʓ8ϋL)) dkhclYh3D"s0RR( ,̆qKj,Ϭ ւČnn_8O`4t3O6n6BET9Bꇍ6k Ѹ F34yR HteF $!G*,YD{.;/?[H\7gze8 y |@@ z5.Q؜:m}*g/<߿j~L6 ?|כk/5&Q!0`TԐ8d$>jyH.n?7 _X_Z}g{GEU!, ( wxۣ6y֧ɔOA)˂h!xkx !D`ff:g$%{G%RUe*H9_`,@(yoL샦7>ٷ}cqVUO'dyHc=M*x~t4mݚ(qJ8h:Ubp8Bv vk\H5fFIT./`g]Ej{ ku'pLdSZti&9 +c 2d K{ڪAd%UAm:<А$wP4 X4g$LYe gæXw{/O<(ϲr9a~q02 IDATٵmxo>)7;;y\Ũ,}xtqvjqkvm,uGc?{x ؏^RZnZaY/N֗U[ !QƫE;fռ]6aFb5Qg[ Ut!WG`HI۵!U$B !\ /ͅ8d>Y鶏TUBNk@6DBJSN`0p"ۦy_-gؕ%qݱr"͠6c Z?8{UϤU\:קv Xߵ8miͽ/}n}v~λ+M9ȉܗJ_>|ssrA:boOl]R "f~E f3{ޞN9g~G~đqdbYaɔEy!jOh+2#` _g_~U }6MXH@ eZ,/lx>I$}*ЭenE+Wܿ4eux:;-2 zU,f}ܛN_xk_y{dL<fZ}t؆~0ABFE/ ^` է|E18( !YEJ, @g[Af'`(Bn懳Ax;Y$rL)!2o2 Y1.mVYIQMwE$BChԁ@VJbtfMH g# ^iגM&l`laykamy΃op#zCEU &˨!'R`l ӝG}POd򢚾Z6,XPYW_7o||Xw598u٪WxZN&s`( DH$/kׯ`U;Ӿf5GD Ѩc믿yu]# ʢ8Pvw$ ^}Y-חz"]HTVuV(jr8ͯ}_|.΋Y!VC]F7z%olQ]ż>8:\MVV},8 'DY9k@E$m5窒bbSD$EkYQU-,##,ca?'L??=+o{xvvOfE{:q2Ɵ׊pvt`^7oZ`u4./5,b+INzw:ٝ&N}<(" 80!$%=agNƒsK!( ^yoo_.2qfe 8K[)hR 1֨(yY2Oԟw%Oo4bupg_ mAG` $9&c ~Q aw deUB`8Ae'HyEI}LQ8QKԓ,jbJ[!I^ׯ%ub+70XzS6@i$Տsrfq!y*p|G7Bni(̿po{?[bnZf`# Ƞ@F,AD bzrrh5wGYUy9" DF JB׿ .6f[GyOq?4S=)"38kDڧI($tEXZHO@E\w*x%AS楰mwvzfNf3\ƹ,7u[PfN1H6h#v?zWvwM w7D$su J`=`86z] Jݸ8s^$10&t]_xg;%u}^y2 " vB2ǘH)üMVLړ̩V\ LhvV`u9.춿>Q`N[C@dT?4'w`\#A "`<̧d`]4 xEE228'G?GğLA֗ܙ6(.45uuS}8DA8{gZ04KהF*;MMig u=GSNeۥiզ Np4Hb u^Cem7K "1%cm@5Tw-˳˩^ge֖>4 B3oһ\\_Gzߵ%I?:[&p'늤jM[ҫ}礃.(K߶F8ځ+E&{o=>߿ro7]Mjo28ܰ6!R3DPA~$.7˾S j@1dS " Og`ضOpW?e`mD9g:%qmZE@**,y S|~Qo6#0@P_({sxTe=0XN5r RJ:P,KJl @bH:PfWtmXϵrX.wh|kRP`w罯-?_ޮ͇o^{0ͪ'TƦ;_95#msQB@Aжk@Fcwy+{m r2+O)qhR\Yk51 t'Bkz͗_P\feYex\Y2CtO h5-`\\ (dӝӓtc|K<\o6*˯^Zo"go޾R"o,{$n"SQ"p g;)w=X'w`A Z34%PaMcy:i^.bkoTMf G ;o!sUIq5ڙLsDVgE0 ̜ҀT Vd<ʍ4?tFP{Jct=a՞5EMYMԹHA5a<s@dZP@+X@# "$jT@(1?9 BRcu'G (Bw!I Y 6$ *]2?w?oeifrscp0jl壂ATb6}{xl:j֫fGӉ٬/6u=:c{^6j]6jV_;v]=8Fnդ)<@,$K1Q(w̭#0RQ$ j%ծݙGȁ(3)Y`Fa`a@3<ύ*6]wxۛpwSur<20GUb>0 cr7Ъ́tv.gj5o%/:PCljCvԱo_ӟhrT/sbsك^x!+F ptuAC7\ =ha0/,n|K/c{o޼'_XB?3h )T8N{`Xc8iI]>.PHQD\52赜~~6N@'0,4$ Ƣ&E;D75y>'&d 9hVo6j3` BZr5z#\n;b|PsB=8g5m56 lJuIT1` &KU`DS$Ѕw+W;^uo96kc =|^~!Ɯ pDUB\Aӭc4>M^M!H /^!&$(2X(lA$@ӓxf;?Uf]W7xJƙG~Y pc) b~<=sXb)% 1Ƙ?~ ӣ0p^dC Lbgo/qO>zppжz&P^|~mu[/, 005Hhpsu]]9ͦN;}:DfEVpF$c|fYCdeΥsEum3ݻƻ46eEA̳QQx؜w&c(#kc"jQ–O}x7Q8yd ~bW52ogp߼}4Z̒bD!-!.5֙!x`pپS* 4(eY9O/8'0f;f4Acu63YOʃ1_6AysBjzh? ?9Xr ,W95hU;vdbŲYRP/VW䥫JG :gĘR T$+ !1>qmÕJȀdzF{mPJ)8lABݎgI[h0~B3X30 2 S5]3/ΎJ7H=A@Qb4qft.9:40`^)+*BV8rgZ[kTobJ78صUpB@K !z88g@ɺa-1JqeUE΢dցlRׇ/|3px`` 8̀Vw уsg^\ ,!n6)v}} yʃ[˜!#[3v3 p>=_[dwꕫ9HJFA$waYEQ}"cSJle0DTv)y{J#2笱vD) O~擯JЇvw !MH1 `1,QR@b 4<23Te{^mXYDiH"4 GFT"L )aL(꺫E# sSN0䎬MhP aYր PlGd )A .fN,<?!߯G0P'ј@F_?<ڷT Y.h st|ZEJ yU*j4WIVJXwͦ^WQbӷhh:1ޜ^XnѨo7*sk7а?\y܂ulf4]ת74yEVg8uW3*edG.jR P 9 (urςI`p BŪ֛vgglUUƸ퍱Hqô99gCN Ueq@J1 `Y(BwI`?F.+"~w|W_4˻?ڛ%06g/n^ZB[Zaw*.OfyqX>|V- C2 (Uv>k}]󺉩xV Jb4@ pB N7wN]0@^C\"u(c@sЀ*IRIlSd*)(GM)b X# t Y M }]=n'|C<c@6G E&q\boۯv\yEvoZ~~ohcM-;#D:UA"Sj >DDO߼8VFD T9/r|Ga h0Ipx[!|GaiZ"Xk *7,,8$B x\,wOν@X+2xzt(/ӝad fxܽvuh4!J10H>qdH۸}9_5Ems`+XCk0% %֏9Aie q5yk5HJ1=figVr.%Dzhe[G,XS`@ I8Ttթ]KSspo(e " &&/&eX6ӽtDmhjo1Su*"ƹ&l_M%Q!pED Utf7R<c@$N&je5 1Dq::qp$޻EZWVEY)jݍi;y{L&d6} ]?c??g£3MB{=j7Ņ'O~xx!qdP:98B(wj}*[fea6/#6+Qf5hP85],"It$;TC*R@^lrvx>W(A)wZ4.VQD%mCP 1- VeրĐYp#vW}f`FH}J!H`"Il]u[ɭ!K'ktL)J>)\fH GQQU%EQRTX yS&Ro@b8=9yn;9~۾ZY% *,,QaVޛoܻA>ysWWozuqɋnީ;_^ܹ`fHpP@Mlp04-vƍbwo'mzd7re)bO&I1$VVB;TLƣ8ڦn6]_dY{ Do\>TD^#Oя"m*,4p`] g""ˋd2@?~WUaؠn77zY$9"'_r͛o|Ǐ퉈!# Rҷ9pO6庇 nq} IDAT_:lԘ2O4H@DK519o )3V[-WM+#_m Je~p`krRBGakMel:so}eVy5*|TFHrY21#' D 0r4ZMܧ)J5ޣ7` |nU6.x>^~uo:`{ ACHHd.l2JY2YT2 Rrrj2ԽË7mnxSYz㌢]Qw4y2w_/_~޻jrRRcpuYքІԋ e DA hsygrܬ7~Õs_޻`ST`_7S<}I֚2+%e9Q^>A4XtηWc/yJ6qYYM V],gk{P@#Hek :gˑvAX",x ^12"lch]u)0܍1CʳEŒYc*>)+9}K {q$fedc|dhYgj0֮sϰ;g`~S{uKWx4=؛+)Acky!E@QHUJ GTLqFP1qbܑ5 (tM@+iX>GU>iaTax3__t(pb"2vi#|2*v`:Ut9Di>bKuXc9{D5* )Ƙyf @: iS&m[_,7W߀beb"7JzʲoR{|yĸHmyygq;o~BvILݓzA=HJ,L  U ë~>ϲw~/|g*IYάȲ}sG@QZ.ǣh/}~lT"`L|νݽgN)>sCTŚ>&Nd>410܏[5,'$yclCӶEQ~#kX BJ"eYK_Ef8gyFֈ*YזL`AFjǏ]Me 'b[9ٝ\ϫIas|[_[sVz-}NRȽaD@M̬ 1#3->m}h5"",rׄwiӅUu<* %HKCpڳPbÂ$F\gD`0J)UFbC}hכNF^|wt] Nvw'jl25+i7m7 IYgu/}\b<G`Z"ڑ"s6q ",CbˀȚAB`Jpk֖Ť a|Ts~yYۮ/V|ݕ϶@21:$Dptz9ıE'4c$}UUH4˲$AYЈpC1Ff&hWka:z_[G$[)wdƨ|,FB #ȁo.NIR'єr1B䜫}J}2Iڄo[Uim0My垄m?1o 2ER4ƐO7ݾIeM,? *!sJbQg>{xsפ&<41_dUZeRnjA{#E, &k Ouw١g]#)FN!J{qlygWv߇s*ح&(Q %J%SM q%ɑ%-I"Œ8R("S#9^C͡IQ& 6hF57߽Y˵ZUkU=޽g{?c[oR"3&28& MDk3VR5Lf%(&*!3NlīupZΎM8аT_[=~o\K9gx| A&5;u#T8tFXpdJsYEs1mm׶UUΣeA-[.D?|37}'϶~#Av~?η4MҾ.L@W9f""9 *"@xZ‹ѭIv="%Dbm`K @"{4At}fY`1c$C&J 0nWt.ΖI],ʰ@nZ9xt8ڿ4NjauRAeHc̽)suuxG'm/?8s_LtO;~G53d͌+Bf`6BĐa< (*"zqJ=eQ0CAsD0rMM>Fk."i#3MD $t {}ۿۿzM$P¢PCբ/\|WͿ6|nݺ5 '4PS12B4&Jf11!2R]O,(5m0 ^yg<4lwQDЈꮥ jJNJ WjOzX_.USS1Ljnk'i'ChWl c%YVH"Iaw7RCAQI2H LlD@b{`f\oSV5 )*Ty {9yd &:EtT*{f~gˣCsNyScjp pM{::|Q~l1^)!_B31-HuPgU8* rq"G?p$61%g"%Q&.8oKH=h(L1KVDbn f E.v tU@Ji]1қWf{p8g5\nVu2z Y!e Q&m\ (J\Ij*(847e7ϠlA{>@K!#f y&̪{OPPp̓}<{a R?ۗ>_.U=2GG/>w޽)o? zڋ=}ߏhY{r T8Zﶻ4e-Ϟ GmhKW۰~x6/`YG ?CjjIGz^𬦪h ]45siy.:\0 hBtC^n}y{lqp6xFwK=ʛoམ!>SQx"Y%c1fi&+n*') OS25_9GW9'UN;C:CLc[G$'H!ŜܟM.'C?#A"@A(׫GXN&w|XuH2ʀ4eC&J M {+`d*2<݇_MX~:*0=>]T>9 ]=DvR1],+hvEQLUYjQU AMPߟ%"g K |>ŦjU a&Γ8BacN^oȅʇN+3G߈?XlO3 b9мY!.Z(RUԧNa|z io,e0cFC0`?.yL m[PO|c[]n,ݰUq66%1h>V wDžc3: ^m)4HFś 4}~N\W>6J PN&eUn-i]Ԙ@ I#.Ta+SYKn//=An.?~Oݸu^ \?2YVDD W:˚re^Ƌ ا{0eBT8։p2;L~3vo󇺼ߝoNe;Ab97 ASP#p }Ew̛iЀ(fٴզ2)v f숉LMRR̀C@1Jݦ۬./wn'v% f$K죆UvS `MY*&4eD"̜hNZeU![b@q=O?:vxtƍf߀7>EEQ #CqLE:LL9&$4"#<(=|* WVP,eSvlS)˪iUՔbt JZ4!%cۃ"Mdն,`o6?3_xK_WwNr^^\ -bT|W~'3?[URlɦM1RSiUEQt~p@n0̠\@ԋi4@%B.tQ%9Ʋ0>oJݔZm.6捻{LJכf ˥6T!m`xA8b IrN>~mN=UЮ.ð}L*#*;ǡդn&uW^ШLfҧ:tC>]v^@(J5Ǭ@ zA& bKw|l4nm"H"NMqŐwsءs9 0Fuǂ,L u:bJw>saܥdIRJ];@Q"K"$}YB*B&B(xD!Ng)ON+ H_>EHXg~mf)ih܀NiD|yTDrޏp+bB&}C2$V-lY;7Lf: e!{$bȬBg!;S9M/Vȕhy)J`rFy&`3xu7 c2 ^եc( I4Um/.P\`!2r20a2],0F5 T")2 d1Ŝe Ar-m&+|X,+R%u%q¶bZ^:v}\ΪmrÓ*G5%OP'olRn6ӓbq8v~ {8c䎵 $ 4֛:KW+!ι=q' TmA" !dGe(\1%S"TYF;ض;,JC֜Ȼ 0XTÓ%>{>яMBSATfv**&A1U2R.1BR5@ & bn?/?tEM)F@DpW80N3jJ%fH!|eh.Jt:&H %go s\ yqܒِTU޴Uv8 治 5dRB(#J4]* gOa@3S"zorU{5{#iɡ_^MPy$#TcHfu(*3!WVO]]^ IDAT$uCTA`؞O=wuwC9;< 绁ѼCPhzP9HfXՁb@ 7z \k`(C}fZ!;:8e,Jgb{dd-ɁCcA!qDHG0d:yz~;j[;ҞA x-@ \CreTsJ,sp5򓟺o]k_++qHqx.˳,ݻwoXdf], Eo{{WBYĜ&rIEqG| XUtׯO6sFD~aT0`f`)3~;w>}zŤN)yUGE7$U 1`3!dcDCޥN(*awUղh*WmY An|Y9˪JR@V1}9!l0ľee1;FԔP CW Ca56C?rҜ$\Fڵ|FYLJU \W%nDybG^$Yiy^ny_lvXqQTM{rrBȢ:yFF=0*Y1* $EvTFFi;D昕\Ccެ&G,% v "g9!b~0|=D34EjVQ z$&E܍. b}m^߭+:}zS?OeUk󳳲oܺyvy|;_x&_GChBvFBFYUjS:ةygD9Y!]D;b2354@~H*ٱs&jfk׮kb:ui!%]{ #Ij&CJ _.__Q@dȢ;L]iߞbʳy]aLCJ0(<Η<뇳$r˥ap !"' f6A0"vE˩qń, +MۊsEQ,l&brs1YC'4jZU]6{%#+jJj7$%C* m*6]EwCmgU_x}m;yrʄeRApfPkUl lq:`Bt] 1rs}e߁ep4kXЈ-4tle #A dM{!!!e13vGׯUR&TTq&.Hܵ-YBEYƒ' N]UMM!dL2!Uk*WWT gȏzu0HĠ.1AYAaRYst0j0L/~RX(f6؛Mt@i"P$|6>bQuYZ05kuYbҘQt"Tji^AQC\є4:G12 ҵ˽kn`$ACie"#,Pz̰Mßx)~:NЄT~:'L(l첃ED q,+c=`(@Tz"^so@|)bkRGe@Z+!C֘GA׮f;7oݺv=hF)4BL8dHXzPOLA30ۃDVJ.˨ %{jSߦAbZxp vXvUSbUYeh` ]c{?~}ge'rLodR@TL(1R^s$?_>wO)=~py57)y^% "^q1k>|ӭk7?Ͽ"M(Zyt SfCL99? WS]9E@`LjHK' ,Y*!x@4TA!K@r`sܼy$Ͳ,ONJQ7X)qlU6 zY^k.a1YW*^x|~[}o_/c[Nvzryzk81E$byD#RQcJ`h8fJiVۛ4f tVX4b^@@j#W#yu¯|KB9 m静SV+B5 E[7 T `EQːTc _6BqӷSǂ){@G[Φ nlA4HPTlV@!U? @myqyq^A$12zh4QQ6(0*&enN|f^?W?G_zᓧA}T/տӓMY pZݹul~wIrU9U-gO%tnYUr9 "&S^s5˪djUH_)mluyrzɮREPY$UQfl޶kٴq?ۻXiL'嬨bfݮ~;? MXnNŵs2 )IL)er7N50s 'E͒Ĕ 8(5ܾy᤮@ЁxT!pBQ{jàtqtf x+6:Ljj*T$? s "QbLI=bS za4d23Ef&@3q&,z }-)CIYԚkf#:q ;ܝO38G7|/~_yREJU`P`(iYU %솘D `fg7ٖEs$Up"73A$f @A"BY0Y)c0.OOO^ jo=}c9:~jOXW֛/~tG>tWʹ<:(dC2bUErD@Y13s`dqFt/!vIʪYc{/=foݰ7nm[ D1+Z0̘¬$򎕜'r &b\zU$saOw>8 9tP` c `#*C)%5h{(۟ zz t 3ɖ3(^iS|6 :"t;t]`3d,$R,eic,7nݾ1֏|-p];/)w MLlC;dܩf&LDc],_FURBryHB0Ȇ>Y `6ݜ?#S1tʞGNOڻo=t ٓfCb d(aʃ~6xb`o/@b(=]CʐD!E@ʀE;m׮YTWem.WY;B?MۇWq%gʮ @`̐{-4 32D0`U8)ee0 V-^v;0l)%`g`: Ʉժ1edrP2Fl&}.˘,_/5%+uu97۾㛇y`~qyan>w^~G~_w0MPl. Hw}w.4͊C339q`gfggg9ƀ|ew>ss3F^쇲,sjXVǏ?O?k>Ym&|AзJeIF* L ۮ6_/Ωɡ(\С2{l95>Nh2!P%Nx綾cY7VrL8i} uQrn~"RW@d `U( DMm$u}eDD$aRY\ b`6BWSE f6Bӫh"Bӕ ,):京qaZU|YƾanuPt\!2˜UMp1m76{{|VrP|lo^-l^{Cҕ,Kb61 !1ZvȌ;%UL?Gr0`DAgYE`"5PM'p5:yn{f} Ű,^^<_Lw?|/߾.'J檰Z1#9B#Cyf&p$$,H1Ş;v8=Ç][LiɡbܝHbl!v./yivy:^i׌s\.a4M $l(QF ᘙ4DީVCN 8sصݭtO;8S 2BqDF1B-+XA6f{]H]SFu9ko/];C]|n· "TGGդ'C\`A9&(۞ Ò]pγ'eRUyDb18Hh<2(œ5gHM %k(KLvp>܁ɨIFDv6пW^vQz b  W/Ln KuM;r׎z!F2DcYU/$%:;.mu y5v{\?/+ 3䔲Am;_ UUEU-/պ.=zlܹ_?se;o?XŎ{W矿{azxx\ԕ%P0 CQIEB!9V+&/#k<_BBO؇7$loElo{{7yd1ZʎKOxӇo.@se]MKZ0#"f:^.;D2``>|?-/ܼ<wUJLc8*m;P*!+&EFy4zF^/hCV,J9$V%4K&$7n#e)g224ES~_H-0P 6 P%+'mP،5s3M*`:Ym_»g'v&53Iy`޹a7 eJCNE21QydX} xU1B+8JdPD 2@F!Ym0Ȱ9]U+}K P,K},@<6'ЈYbΟbW]{{*@؃ n$j0e+,Aڳ$ ~>~xvt%G| 臡1/;FBTG $c]ݚ"N|]cÀ H$YD%YvGf ;(|`j"ȘP5UՔ`Aژ *P,C_n(,m??;oJӡl |ًXypp$b11lDAG/ެ#~p1e eU$aIS> CW75}Sֳic=3&fǙ7xu R4Q=`#\̐8dQȢ"C?6D)"qT!,D{repSKoalv~%MY%t>qضns~wz+9#@ppW^7WU㋀̖lH:@S?$3Y(eeM3vx(K>R}0gT IDATGcd@ U'gsXL] e`lp}ﻸ=-ә{~1#U o}nP,/·~耐#3KJ( 0#pG}GJD8gUYdb'ɳB0HRSBWF2 h`Fܽb6+PryT,\ |j<\Żو*{CDbN㽹 t7 2EK"O l]H68X B Q ,I<|%q53V'gbz qH(r~hGhר0t F#hU1 cyÍ1B1[0% $$nsis؝?v4<)9AK+bzlTG5`H&&j&:;E2OʪʚɓǏ'ж0B\PV8h"Bb*\pݐ87n]{kG|N'vvnbjf=@.{uhf8Y@QqV 0S՜l{X)WM^[?|;_jp><‹7ܾukpb2޽CEeQvI5phM,l$|o+~ν)|Z 99&C|/ݺ\vo|ýS>~wAɁgn7~s?fT}ҍ[?|_I)b#uH y, sˀޙg` ")h@QTEA/zY5y dH|#Gp|`tdK7gerpض{3EBr#&:vopeF˒i>iͬrm  jc uC0dEB*rFISO&,2L&U3)˒Y?Xmv)TiiCf19+QA$C]<ғb$D(2*FGLwn|l+^ĔQ T `@ ]'~=9>(^{9jB飊zF,@jJJuiخ4o!‚= (#1x<4 ed&)<>Y=|TYp\@ sٞ#XY 2@'6 Pl]mb<)5{ϫꠞB5*H "٫QFJFތ痥H}^& 5Pvt<a5gP @G:XAQ ۭ+|U!M;3!#Xj$5z+>~W^ybi:ǧG7}\ﺽ?pݝ.]uC?S? HL(n}]?>s L'F`H8D#b""׮s?wt|4N m"ws<3ȿǿQ xWO>qxYONعrHrvr A4WM?' C%@ fO ~GADLFC( Ã(!^S|2]j yF +BD(FȻSԔ9<2F\fΌ+bC-٫PʦFHB׻g{9\Dt1s!xEB`bBB$@ٱ*@2;MRN]vH]^mjgCn|(;GEwp~]]qȯREV,lb;&FUyDjsWў3@ȇ+Iu3gMQ'OCVx{Gr4N./ka]L!L/.];.W_R5]k??Cg?(5 9U7￝ yJυ U7!$̚sC)lf{qD̦M3ٶ,v+2ŘEK\#Ęb*UCwݝw,ͱC_?Joe춻]QXN~3?o/}x r%λД?`'''} Ȯ(PU^v]61CY< BGcܶ'xk'_;xӷ<}|vڶCc}ݮ-K`* (rt>Rf "JJ9< qbJ9gY(}/F/ 9'* s ,"j69#@SsJ)ah DO#v#1eM%..jv^O7ݐnHz~''u{tYJGp~ T&sb.fbGMyyF  #HR"aeY43UaačҞbڶU g̫O]sggvݐ*IlfM$.XTuCJlU{ދ*}9`B |,Ynڭ*ilϞ7mrk71H$yZϙsEY8*ҋC16L( F\cP NÃONDz$Cp gw5bDŽ[|뜍"EJG q?M3E@3_.ݬ lr(uQĚz~7[Veւ jbYǻT˚5sXfj9Jcxx{0! + )p-PH`d0>s*b#8 _5w%: Fܯz@ͭw=9]o-bo:t2^Û_rqڵ̉)@`F>w;rz(ʲ !UU]~42Ve97Ne!E@aЈs2}/}#w_w׮}UW*ʲ>mڗ|OU5%9Dfv @GvU%P&.x7d gXnwn"]A %+/ PPWVuž,bEɳghTy="{`m˲RJBpbWh"JY0CX-)! 䙜)"FBF$f1DT0v޻{z%\E9ahE$f4S`20we&"$,G9@$@r#d4UntH&]@͑A ^.bp‘?\l6۽l^ڶwvZO:ZnV[>i~=ũZ.eL"fy`|hL%fdh5^ozy—믹\")O3t* cΫGBD&Q) np0~y嗫;޿,`_mol-e^%jn mb۲P T rUzyz~paO_7/Ӝ39G|Oh}*mӋٗ~;4.#'j$5ٓ ( xۮy:"`eVz\)a|:7h HR5QMZ7'ORu`wʢd vrԜxL4C 0coFq3GMHTFfGrΌDTyT6F0^E ,;&BF eIbPvoǫn5Q0XV{[/ay C<|V- R3%V3:UU6ޑɵm7 jէL9;f!7gwcbL]שUE-*DLMu#v GdD'O?~ƍȯk1YwjRI5tz@OV>k~~t2{I?o~/{饇OʊY#!d4tN""!1!rqt~_?>yU$1 ;<ꁍ=p[wY NȩZLC!}&6۟u]SJƙ+ u4@$f#%Y$s% ҷ) (qπYQ2hwZJa8;Ewݺ;3U$>Tu]O&YFc[ O &$BpĎxȚ$!`$b :?ks`h<mw]Q"L'rujn۾`Yf{Ϋe J,o~W9*)x[~S,YNf"V^rL訜Ӕ˯?hS'p@G}ǧ?qyYҐDvA]QPRЗt/ %lYQQܼu=Gy ]κ)d`t{GUI$C]Ԩ%:P,XkkpQC|w~?6U{P}={md0sTBUE(v]N* p 0VɑZ9T 0U=%rS?G!HCCWɩ~nv~ӟZKNӃvRBY툩*+U}뭷&)"_fVewĸ[l$Pb^yvwzq]U([o/+?e-IǏw0×_w9>>ݿ_z˯V&#l&bYhd·ؚ#B"D``L @? |n0) +%\ۇO~ dvxpw| f>] 1!&ɣC&H` z o+}ubd@L (2cq{F|f$A4qFVt2'h1qB y6O^{˫w) 9;*Uc0cnM,3 mj0l:̖UJQ}iRDdB.`y29H֜`DP] \v%¤q~!S5im1* CJѼbI4r 0#4 4Yv )&Pؕh\{"_xKiUMUN<]|C?sGeW>>ʵ"c1& `fF8dSEdDO~/\P0P1 FZ,(O&沁\ʳ |#]1WLh<֡*H$CЋЫvbHU"1h;(J  12f5)Q5O30"D&ҐF,9k${AnhJed]Rס1nVV~5 r\?g5Dן?_җblff '^=Cq9/߽}8+`؛:l7:.fn6G!B D@|7J䪻 ԠoA 81qOfw~_Xs|Ni-0*I|iHϘ p|a;P@Q@QG2hKW8ަhel,cYM[M./Q($ 25%$BT8ίfH (`dՅ1 IDATc! !##*!uܡ:mf9KL240CQ8 #?ezRQlIM Uu//؏w}/OOm;]` *'?YU4Ok콏E9sdf]ۦ!6E<>y{ww!a2+E_Ѽ ȭ_g=$xޛIɀ'ፃvu~zZ47r*;Qap|%,`|52j1@ :T->]IS! |yy\]VG'EIr1gI&5*}]}LE@3@BPD`b:93ܬȐbdR?%$)h D`Qƒ`]ߥ$YLǕ1CB%]9<Z cΝjO,HY%BBv e9 I 22PDRc y32n Kǐ3818ǹR&'pL{H9bH)k *TvFڧ~,ya^6m>:n7"`qZ4ΏcOKv\t|cGGG]d9vΓ 99@2 dI)Uu?IHI r2ˈ Fd+?>XB΃jN=[Ayv眗$uHֲFX,[*"dh8]Dm,evہMLrl3e0Q)OSJ"oХ] fFJ";$1A 5p<kRI4qdz=7~TTXc~si_[w[_y߽?`@1kv>G6}Yy9{ڬ+#/Vw=?nw|ȋO+Hmܭ! ͺ/w>09rQ(F; ͢9H)_\+oM e?l7~ }'e (P; *2{&hT`~$P@Qaǔ*.'8|pMiwRx:{p㶩(c}q^|Y#Nw'm{|`mp*h&~ `F0H QPxt؛Ck`MpOӽ$vڱ=ˢ4"-3vC[`dr6]hWO@$7:rETDAFhQRSP42? h\ T@bD!lH~ؤu;Ƀs)޳ CJQLI3[,ΑjV1%620JɆ YFt߬S:='x"@a: s1ƪvw h| s̨]jEU]u10JR0ԧƒc\o`wo\?:W/僇>e{S u,؛rS4ys}pr\3Y|,=8nBH <&pJ"͛o#41 ҠIN*)0t $oOW<MTtO$ f0 hFBĂ0WD׺ݵ\eo^c5c#aIF3t>M;\NKKվVwus=ᾮhT9b!]Nb"D $P4Fs88Wȍq '^%y8f#v+<&P w ݜQIn 3"1NB=϶뭏)1Ce ”Yz!Oc3lUb|'i9Oo|Sɂ:./|~{i˯Gf9s.7 2F(oY +ͷS5|oM33.؊[lu a5z&T@""% 2DQ aQu{MY, x }v+kx[S߼fYHr gI J}C{IQ "GCPOXlܼ<{̲Mo׷|ޞMIΌ-2M|q|_ Hq1Z.Ck)IQT)%Mmʐ]6/K$T@ւs<Ұ0N ~.TQOvTgO> qEbi̭Φn^}ղFΞz量Zk7mUUyH״DԵ"viڳ3g]۶y1q7vrrA L^;?MQL}[>mdh<֧v+oihOٸry3nݜ~qU@%4yᖛmj)!`Lɇ!fk:4aAf"80s9,hVʥeXk$QDP@޸y_rpƥq$M&(%>c_PLVƝcA~Π 3z;gm]) 8.׾OJ"ݼt{{?W_z7B]ݜG<8YF1%g2D!R(k1Cpf :Xnӥu'|"OR<@l 23ڃʋae u׮^GkVXe9{zzv_7o1?zꩼ( yH ,C$kae^tZo+RJ!{?믪Vlz~㪳ؽ/lXfk7j5={u' $̃*IU@T+WT./\Yf㢪`o7NǣѨN&d<lf qoNJ{voGl4Oɘ)oCm/}zv$W@zNMڳIj"wXP>&X> 1'VlH;$c­^@DR66<i7M $]ӝGf y^yYN )"8*j6k8A"*.~vykd &Ch4}9-BƸr4bf >&mS]xTUqs<[cbkaSwf6.QaY?SI׺jy|..J!vl4EUG}lߺ;;"8MFlFIX̎ůtLDUAtT [c,*c[o$Y$jS"tv "Rcgy6?}?O~chm?'L3rmR2Wy7h<Abޞl"u&bMi<<3ov$BߟN`i֋o8F9%ھ)nluxx_E @).S@TȢEGAP~k'< Rq=Dn2>8:tt_}>`3̂تɚعb|>+/ɽŦ= Ҹܡ(1^v$+ AQgXS"fklf-HL!"[C""("z߇b1i 1Ř,I!%B~s҇?zځol6f`TH~{:{||uܜ6Gg.gǏN|^7\A2.\cHԧ؋HFensFBGžM>hO1(;D@R9* (u|//㯼..CV0Ѕbyq_KNWKH.w23.#cQQ *( cj*FQ ͶDMiT6d<z\@JE,/U&Lh ]ۻa$@(C} l6ԍdmw|'j۸~|huc m^<Ӳ,tJPVltBd;M6Ϧܲ_7ѕw'@5& d |M"YMbpEnd4ݟ %M8.5* # $I@"CQ[30urfk:E 5h U4DȀKLJ5]ߵ)ʐS*.I†1YǸ;1@:!4g.׍51l8s{K=$ꛮOѳT]lѷR8Z f܇O9poKݠ=9,q`P"0Uދ"cEG jT0plFy&wp7KG_= 1\L7o7 \ =2>~|s;[βULJ>Ž(E@ʕq0ۙ]eqBMH e6"BȰF0~lDQH Έ)jsˎE!z%Huz^9kURz4O`?jZ,7nT{$,7˃;Xҁ;IAx}emB=;,oҺ:RK6Uyx߳Wf4[/~IòcX4*GA 6RbY1w#ħ%w0) CBDd*0 Wqmbb妋C~: Ơ1HC8RݥvZUe "`xڛRL x/}>OFGrEQ ϻ6&aDUA@|mקˍjݻ_~bUΌ+]V"bLɧ ͎oA{/K:Q[L}Nu\ދ9ZͶb혲(/ͽ_aӆе[]&O((ABnyЀɭscR7k.|ݷrӇӪj z륭k 9 Rrģի-ru~wm-^m>g1=w-]dƘt/@$$I1iJDEg!PTO~>:xU( @:Oq LPi@]o|YNru]YU*do&cbPOIWsک:C)oܝamQP@4 нZCL\oj\^chRCDGĬd0òCi'#&~Sj*JrnYrf]=H|ُMxrrqѮ3~9E$d@%HFe rWkKfWD- H4dr%ISڬ* ¢ [ॻ^W찼ZW'4szr3Bb}jȒlY2(f@iN>8<:n̯߀a4_{ʻwõ -XIaМ'n^X-Ԓ̓50c-ێ|T HEsy.-ܹ8F%&*6EYXsư!$°T^q\GEE piw?TF틯|{?{=4ɿ?Uͧ~Wb/~f^.7zG/|+o~]^#"}|z7f6{7>B@bu?lW L#(3oTs.IHT* A;Kt4zB@Fc۴}9gƘ".^W]6)\2!lJdմ}kuY؁o X3]l2 1OilBa۽lrX%CI΂Qᠩ#DDdɲ9MO C~`bǮ붫ն>F̜FŅv>j륆[+]X` C\h! G 1Rb!f4E.bU-">sYt3 IDATtH r̅HO=TefrGǣmZl߫Gz6 Yf̬c>E(3PZw1eYnmU8vnrEUlHӳˮȣ WTd2PUe(3rDRAU}SM&]~sdĐ״?w=mVxRUw/FШ5hNǓzHL֧4"22(o1 >i->?OFUbeY)̞ v"kѓg3#Vn:Dd*" ˱B)0)$E,˲6a)go,+YmW[kCzt(& *Q t(0I d-@44e *  8 C{@@aXӽ%I؇0u_?3Ͷ5qceݮe3ϸM$a`B(CMsc߿oX1 Vّ 7elR"&1"DKΫ">m~6^v}g}aYoF3U%4/A4fJDbacj>~9郙 P/^"H߭ڿҿK`^q_A7CWܞCyc#1QǓ|EAL }MB1!qF0ʧӋYݷi=gZUab! *qX4?@UyК *.:X?pWߑYISUTcaMf\._ٗxm,hRoS6//~ăWz|7tߺyb|:9?7^,ն&[Ͼ߾S/G8lr|Hao2߬bHLFCPc  wokW^{gö$A5C^o7UU8g&o"O~lޙnonH:jZ-˦@#< H =}E|u `2J^{]yM׎/_||t78fD0D&%Z #LB80i`lOsF"N4Ԗ(]W }'U"b1F"bP-DUoeUxxkbTTnnijl!sLC^:F*gf߼7Mf}6k9 W8Ly׊.|a:˪8xKH7"o3Oo_o\ bhkIcBDErEig6eƸLU)4J~ߺ`\^`M+1}򿟜^G|,n}^N:+e #Z'!"_0Q})W삲dr'\ΰ0VOﴌށFT1J1JB'YQTB, ;1R0K $Aq0,u38<-?T%1u#dY 5Pxi,Q UUPTqX'a␴`)ͪuwR8#>j>}t2i{(dT*1}Ai"ա6=L`pi\0ӻEqe ,J!(&˹C&pk&Q5|, _\,~_]c3C䲫%ԧaS+2mHZHhMWƹ> "`A|D3]K/_,<\,6ŀm!0%`3$$!"AD.2N]fÀ5E@8CdK3S8{wn^tG{?Oѿ?c.͛˗_y׿?o&>}}N֛?l^_r^m7...ڮӮ_KtuQXsvZMgen,87^B,\A|m$" *O'[Ę/]'f]o& Iy_?$Oݼݟgn=>7h ;"]2") Q$W隤8JOٰ5& ^00f{~jץۏ=z-9&B"$@RdbÆ aL $$a؈H25̌ b݆#%mnVEHާ>a%m"+THJ*C (.A|.6QR]b[!ޮ߾:?__7"Md ]w'M-dd -0]}nn|W#iL^&SstxĞ?\|(AL%L}~ߺ>}t4׋4ӴM\5<<FE@|w/Z=0K$mꍂუbX~Qt|T#YgTeYaaPBAPDC` @EU_:S?_ү ]|kn2v۳Ǘ[gBNO2̰w^&&)k5LHJ% $J괃G ARDIw{Ef4ͶecH fnrz@LJ D IQU 5FbL-JVBsGqw" PU%L:Llېjv]כF=TEmC? U11H,Omk=?=-UT*NΦ{ׯCPʈsc+J⼏dL@*Բbفƀ_^TYV> Y+5MR) Υy/j_G|nnqΧTGH>:dU#k,"+ȘS(y*T$c}֤P 3f Cg 2X@qP $*10AmDfLc@]/ڷlSWdudsg ?~?Y/~_~|(+񣫗}^RJ!rه< p6 0IE5F@%eTPA&3Κ2s6zF!Y&3lFj\T ))Q*Ml hHA EB ;5M;bn![UH)N*(sN`6Ϧ^YfIm$ ^nހu lTmXҲt2)򼒔j,iT OH<~~у7ޤCƳceFSʋd8 ɔTy>T?M!zZK)h~߭?O~_kW ȦNfdJ;2' ]oC&ӓCDO Yδs\#L'OrkoL׵l' X|3y1Ɣ cL* "MI<~( 0*%EV hQhl歧gn`tk^d BUbSCÉDUw E6OvwƉ >q)1Ҁ_DBbMEɫr9)hȤ*cɞAH֚zfT+c}0)ݮ")p积^k,%Αs69ec$&aTGdSIF;GӠ!+]H}.Ll̉ڟ.qJBa$0(Ty3^CqVa@=W^/U9rx<7=7um.L/<|҇~qvGԞ`C߉u 8EcDC} h8д͐P̐g(,YDpYVVEۨ]Ҡ(QV8Xn<45z2䙇3$ %O^w[ŔAFFD](MZ0%A$c 2#@ t0 }Bt>1mCKM\qoupxog^-F+zpaE^PGYYŅ[4h}XWoxůM[~g?/nVK4H(,7=HD1IJIDZ.0SVجw_}ޣjvWd6/,>5?y׻gNq^LJvWLۓՎ2F{ôa_M`8eU $ `0"hP%Rbݓax߮ۺn:H Ffȥ&("8`$I* `X Z'$ERXof܋1M߶<,3ef\4e1zzyq@ ld]Ţ?;*"Όlt6qY^o(Ӭi[=egYk{q>=o\l1$R#IqYY6]26K0 9Aey6+gmw?_uI*Y$%l{s??_?QVTq 0Y\5M}_ON 0~;u`ܿ - BȳQq ;|}Ũ>HBQvJdV(ihR(D!0 I D]_"u2m4I"ܻwo=\ã2P՘RT 5SJ) CbDn॔_BEI5 NEDEՔe]no*/"HSױAR0jA'%&h ͦpY8  e%RRP2h@ &Tb$ q8ijk&,(̕\dGE5oԯ"qj @`}UeLcOaj^'܁vh =OϯYxotU9i |RM\v}c}}xZpnCU#^9kGiqQ՗ZOk12L1fJ(&.uML9*;nmˆe&h"lS4)%Fc(~mrv蠘V~:N$/Id@HyAܙծ;O!$i"rtWzt" t`Of|;>ZUUW^z/n};qf `]! OsgY1=zxۿWރߑ^?ޝzBM.$lb|yv=;oWK= VEnM]ć?a,9ڰʫX?<3ækwAyg5LE;ǂ$A ;x8p̀\'Pa=,*!  KqZ@ 1FF6gǗ6I>Ěp^EЁ} hew&dNd_KH1H=07CIA%EE>X D Q@#>gdYe~Haf`#{%un+v{vQF>q+J- SR%@`&2ƀz9rs~Ffo<}prjd\5v4RJy^.+YaQK*X1$e̳,w۶Ɋ+_rA䰆uhP._{X^l٬V@" N)s9@R֢TZ F$%%H{**)7DX->Yrt9}e,Y >lE:ow}aatwnps 4E!;x(Vd.|㇣VmG{}/_}kx])FA"cLLAbBL>808CnQ݉XA>E!Eج:hk9>%KڭpƕNH0,rbaX-Ag,"* .6QU$J"&LAEذcTcL;Ab,l׾ M3)a?VE:V ;曯zx<.¹̰Q>0$)*uůܳΡ( $u="+Wx4#5⅁dZ.r*Fe9`40EdCCZט)#a&+}3|N 'rD1PKK{l֎;Nmi9h. b7 IDAT4bH|<6p[W/]{ zj^5Myue^MK b!EbQ̐1ެ٣K7n:<)0ۜl?=vl<ئ! CIYA*+Q Tu#&U4= 0q9 lV[lHJw|>:6^WɓrqX  kA$iTێD\QM]7E^ș2u-BB$L\Սf7.o?>/|ۧ M^&&1|w{E9f?](L~ڵ+W~o?(]i~IĿKȐRARL9$F<(,-M#`4)Ξ1R#LLԪb}Q1e%DJ"5;=T3*|2et@4 Hي猙35!{\@Iɨ-ΒQa*Ck cl/LgSJ}u]}TK ,S`<6SS,'bkjTQUq1!`̳ ٨., $1. @֑%ks"k9sfSh?F`uX.Z ̖]YʉY`7) XEt< p?LJ05@Ĥ87 Bʽ0۟-=ԭg&׺+W`6Ŷ>؛m+ @_kXv޷m MqRêGT58ԍ֯ k`I))RJ,˪! % )h 489EA5AFpp498IQ,P`f1 Na>FbÙ7 D42" IꜛYzlieQ]֭$ľigXhY T0>fq%8[?IsrϦKy,Y_g(w竇oY7.t'MWy dixw]28/==#ҘEnn>.Dڹ|TM{&toj\tm[/dt&~ypiOeyzqdJ @5 DRacD;%3VwR)! M1$y?(bBeUEz$lÓ{ׯ\]nz2,sfȘ̰`7L)]\\/ sYTUQ6L."!1f o}1ednU#DghOے50O.A  t'g?C$'cwU\p5~S _}^hLyg]"8 X6I4 )ALɌs! v!y ̈L;HI4R(X M@H{X`yW._,2Zɓ1E&*BRDk=ٮNͦ*Xv]G,cCG)l6KW 2 Ykmu*3Bmb6$'6s$5Z |ey^$9>Aq6,Jz#fYeEJko@$DLT`C?;U6j=tzvjVEe`]dVםHhpTl\vi/TmoO/W޽5*b4Mw hQ=}筻o,EX.f{h(z4K2|76cXADrEWzTe.2_uxV C{cYà _UAƲv7JbtΕeٶb͉APh4]7x7F)EO=}x| f!`ۇ9ISHHq7Jؐ^ql2gf&<9qU];|̶:\9^MgL:Oɋ&g~~>-gylBg?)%|0L,SR3KC슈yCGy>X1!*ήArv FpȀ5?Tn nYzd2dE*=Ƿ>\8)'%X/~qA\{ K gd.!lqnƳ_ӋP߲eϦYV]X\HH ^<^v=iM3L}7}tze>uutܷmӯUkmy7zdY1R2ESD+_Ϧ~qv\/sƣQiRNk@C2ç~@7@@CF!,TFȰc #H#(kvͫkuu\}5s9Ѡ^NEj"{FlA0%$i }cUgH])b*3y{Oc;Y6m`8Wպ.Pr>O~&mvJ{?><ޛ&Rҵ_zm62RYVZ6 "# $P[TR!*Fc9k 5cHj:j^F qCJ)(8m>3ЯVj%m_oj^ v9$OfY؅d<4ɒYl_,&oߛΦ][&9m;%RWjV$1BmǗn޼4(f˹Q.@V@zY}B2lNv} s9xuN|> ޲AKvfw@߁rojWOι,˲,~Rp캮kZVQAhY#1B:hd Ym>t竅@͙mzbc ! άROj@ɧR3'e6҈vvѤ&lL <|q:ƝQSq{$d_GÔ$ŀ;UE#6(Td)Qn]il>?\`LU-(,dh6f jb%|7}ƌ4}3آFBd-dA8[?'"MH @:Qmv\l;hTUeN"1Ar2gضv},Egf4.g~^$uE (@ͮ2\g$@ h듭*хuhRBC.6m=???_.{3GWNt%-" B`8>$$mӢ%5hD5zJ@uYE0iO~[k^|lʋemsٶ ֔eէ?]w8sxby:t&W-֏~cͶ0@:TtE(pC  !j)+HDd ccǾU!yV`Q )t!&M H)EhR  &sO<޻<9iAm4v]]:β %&BP飳n/+3Є(h+uǴməވ`쌆3Ӈ45[;8PD{o!;_^kYf=޿z DZ5u]>4!]5B۶a&095$*l92,u[_{=X ( 캾im) !4IR+<\,nZiQ&LaL^t}JId 0P%19“㤊>5<9=z!@@^EQ8f0)P|'6sdbTȌ8To$Dc3eB@)% 1348"$HV\>} Og.h  !@^ lNUEwbDD$DdE%ADTPQ^17К"xry㕗믾_kNVˠۺՓQ ڮU&Mi'B CD&}ɲԷ"J]&YH F&;dteT$HABbQ7+ qK-m9cWcCպZ:d߷ûzb[,Mf,V{o_ u YJ9&6tM]f&Cd3mfդt]{to>]}ţ A$ p6 1m ޠITċ*ȓ&EN"dAH//گyj[D'̖ 9T $BQE4׎waKu0J1 "3R [>eymo~;(+BD?w~t2???~g2y}ϳٟ-N}_zt_/V#']DdxrXUu%B$]+#$XB|l} Yc !OTRJQ1(@<5Yn)(1( (`2|#,IffX. %\ E}]o>浫W^=<<ʲӋ,6d9eń ze%Y>ƓfF TUc;UNNdLr:&Woܼ|xd ;bȜ!oE1Xqǡ}uu9-HdMA3pe '}0:ASL !(8 xsn m%v)z3.SЁDdd"^"1 $jtW~ſembb"p۶o^ι̲1$RJll^TfCi?o]a?__Բl ־bO*XOmת"d92):bR@@PPYīb6֚>{*iVLk ͺmWr^6][.X"L>ĬFK6*(Y!I 6,{nl>zvqr{:+}oP&eyͯ}޸0gc[h>\̚e9n#v$ 6TheBO̓g^[K_zn>sMR).j դC%&kmWeYN'Mԧ8Y7v>FtZ=Scr\($>hM|@1vbʐHvK$*) vz@Lagv[\.__~ꩧ=&҄Js fY F˕M51;$BDEVCtP۶eCY*l0Ou/]7Ƕ$O}꛿[STѳ}:ۏ.KGMGWW__ 7Ž: ΁`"'$RCEX`Ɖ:n&N\Y y&|!09%Jx*]LW^9Mx Ÿu-V Ie.3 m֫vx\ obqvnlB@IBB1 )%Mx jب˜} )%BU}SL`,;+7ݚN)t&1( e1Fu6Y̹eye98 ܋&MѧN뚶Ie+Jg v;ehBE]iӎr6ϧ{Ѱ̄5uN<s@ rY{Ͽ?=\46$e|(@d{f$cl&QS&SbB]66603m h t:6!Ƞsơ4;<9]lM]Eκ`zg!<φ^"*ICa7;6lOHLDJ'}m{ =' DU@$ÃH(ǀ]ngѤ*M۸,HI45Lan6]EU 0hwǔ@-3h %Qvw7}}ʸXg۾3x V] 2&답xoqx?5Ab1wb15X$ }Z;*b `Sc1 DJB:ABj2k\Ne'T 挙3%M戛l]תx[ =<<|^e IBX:Q^`mcﶤ'r4}XVznhj`e \3-Xwʛ;p"eIѢX"q9}髯.7BMƥ|<0`%OG>6w-֛x|Ãoݻ+mnm^X#K-a qpl?yo;P`BJ d hiRF%B1sQK/mh !1DU:4THHkM5[v(&VbCLibΙ3ݢ?WĠ'$HI1>Y$8,l=-0|bfYe٤6mOuXj]5Y#tB(pͻ//O(Fٴ]c6tM3cs&1FQe,ˈWnEgĊixq6\J$k{Ky6=2hT2sƘT 1j@ [Pt62ϻ5m } DSF=*@XA}-Cs c<1]0 [o8Od1囶5ֱ!T0c IDATZQN $OL4 #Ue6"U`RMo*2D}Pf) CZ[4^0e̊|rt<^6$IBO6CnLg4euseu&iu!!##e$A ! &D!PB"@nڎU"fY.!^ɇU= oT!d2H:dޔyy~>9>6M-$[HɠII ZfŦZ2&IQ1RQhfRg\u@}@hxPQMU "Ic1DbUv.Ί/ )QOqVNt:7vUUe6OE$CQHJС`~OGl\z'M}k/W ӣ꼮'U,ƙѨg=5 k |,b5Ą ;b8XohYnVYwo]߿kZ4ۮ}h߆zͬ$"lIVEl D D#"!T)1>6܎>}4wnpk30l!R !8F0w ܈!^t'{( 4(CDLzm$={/|G9SY}u RHd3 lZU%N1-.V>޻Ύ^⋣|oMuw{|#!ؽWdΣ»n='Mlێ*Q%U`IceI}d8O M^2 UaQU6A`CN=X&hk( 9Cf`\|O1^ߧԷHQgzN}ypg Xn`SC Qh9eNT !0,F>Ћuɫ(1$I}.Q{TP hۤ$*j>Pr[}3;&FY$>X! "`J)Q1!h IhJbߥ_ q :!6 ,mfK,mĬzHll %8IֺW~۩I1j4/FW]E,GՆ)2,CV&Eբ{09۴AYn o[/QIl 6RM?mn'{d:}gp[oOa Ie D6R=`UDEQ:^flԧQ2}DC(*1I}RLS"e6Q4**ES!}B i Y?vafSdHYxh}ŐpQc1DBāIlJel!E Rd4u]ĉP` L^<{*+!5c b1)Pju޻غb"c"Q$HHR f9Edc**)!@E9a$m+"D1 36J9e4l dYG!U'd( )|tkϿg7sK Wu0 a2 >53(xi&s>\^>` Q v=7}s9.sҶfqzVo2n:B)q{ݳ4/OToYm,./N7HWObSiK&`K먭)3B+M_n<<#Ft'z#fF(IIu ۡ|?~仾;IP:nB+G'Q0*$) tyW/?~sW'o=|j\sk$//Έ`HfKM VY lY#6j !^:>\U?wz{Q<qc^3'%"a"&@4 y6 c1qW'eG9p-A*e6޼~W&yY2/A^UYxr>OEֶG1 $vϬh(H;,"*@CcC!$@L" imz[. lTq+ pMqqY&\)@Ѩ8 $_-EzߥBX_4ز,ְ>ÝޘU]=@7I" @i;(:hKrl lRȶ 0%ʤlR84n\Sf;s}_v+"+ŋ=5%=1#(1"HRqwMIXPedM cFܼ]OErL1FM/7OrG~Sgljog:;rۛ4|d )Y;[CR(&Q 4vA43{T,I I15af1iN&] 1n9ܴm8Mќ9򞃩Q51a@~/ ЈXUT09Ȏ(U@.ԘBC@UR5Nt ϵTQǎJ̠9┬d XI4w;z gw?x߽}^,HUtYUcz]TtJCι֙swUT| 9&O|`I/¿eC- ߳K|t|YWGi-I> Vp^Tiiæ Ġ͐{^3R5O"kEZ2y&5GLQM[6ٻ(jϛS=:;yEY] (l "4AZL-;_ Z*5RsO.>||؊dqP;kȫjy oT'`ַKAwg3vtĒ7>yn78s}-qw7l&*OLfsuH lD?;;@hf(&%( HKYrh e*cӧJγY~vzo۴!J6}JqIE YϏ?Ow~{mϟ>sv *salֻg_'oo=-x{^|O޽3;s^S(4MY2,gStH`.La'o{v~q~g;k7VGgͨo|C?oznljq8M?'I[_wJ74{_._}ݷ?wo~;뎝'B:˷ݢaֻzT`C^-ye,3ĸd6d0PAZn/(q?7i?40}Sy饗o=~2iLDD H#UHrW9.e8-b)"po\ jN)Ds<X "+5@) t@1I!`Wm {"2MS:J)C\S#Rr,*0sN ͬH>eE5Cffsq?mf"QK,h b,˓S-0qڽd(Ds=3!4,ھ`vp '9MG89q1BA @@VCp(3G$%$`rwW;?:6Cٷ.owdR*0M "}FK)eɥ#{v)o\"GELXUcX12s`-9g)ιILie@j/Ρ1[-pT-}1WȀsX vk- "J9AT7Ȓ2>XӎX^$%(LB7?x5(-O jO_9 =}@%$sJ Dn!}UJe%ccfTm]缪* 3#2{o|?#mZ!4o}~SnwXn֛l1ɑ?RMcl6q`R 5c%#T5ԊX}.vx̆F&*A3CTj@<(!+\MIDL =E\Mm7b bŊL5 cC&tMӵMG-j90[o7'76U|;?z_[=x&tJRfc|i c_27Q'u2/M=xٹ0]t:r´zK____ܬ/洽zmۯo},miSU!aJ9I&B)_cĦHܟS o>y|ifJ`/ڶ M;{G~g~rz\~053\;a8'ϯ<~EDdhT*-wCZQC)i\ "!"zD$^_ެNVGwS>Zﮆ.K",)1NayzNbԒ1:{we R0"@|Y+Y%"Qm@II$W-ۻ@VTptEoC|V})V]9jb21'al`4.a9Id))!GĦɲ oLhك( JA ;o<"0r,1F4uYh3- <|rv[bG.`Ditɻ L{2`&PT#P\ ) B,# MK$ˌ"~'yyo~lX .$V7EL!\H}h0BBct7fnt9.j f؏nL1,쫒9S}2NcdiiJ`{}v'oZDK,\J* @)lEDff"DBdZ""`Dnؕ)8m@)y|aͲ'={BC\$Up7m XJ1ߤ1s "Y^ҷÁjbLM= K_'?if^_oӶ2NjE`]T{b~=TYcYb.潙UlPUe~b뇉ZëѺ:F Tr4L@K]So, !jcE&4;ZR3BRbոLS g4M$h #PۆЙ 76\?[mm7Go?o=z݇yKlg'DYaG~ksr̀[u9 7 d_Ч?s~zw)Wٝ|׾%"K^:>oQe]i[8/..؇5%.glhɓ*^^tl>{vX`1PGO^|-!90N>֛7ƿX,ff)rK3#Ʋ2$ 8F-to~[CZ?[;ӣne,)K  ӳ{}i>X] `uQ "DA`"*; tTKO1[,B@u.r1)Aw ΁ж MJeaS3p#BX1i"h0ϗZAZ7e<9gAfbX1笊a)g#xDMa$+Zcs,G`6` N1cr Ȭ34nָA8ffki@Db9t020aIf6D(Ha'?~~tyQ5!,(9eh=XI|4~m\׀)HR{`˚r׵(&fE0\P#2)9SB̍Ku71Ʊ d@~?"ʼ%׾X<#V爙Ԓ üd ӒHP U \\9D ߇V9-k 2 !v }'_Ic 4{&hFdL6v ze8媾~|>PDQ/ @FFUP`l4M8N0& }Wzqt]o5Mi3䜛i:::,Yf9+{#25(b`H5yo8PAוoS4%B3\* р $1ՂF gy,rh2cdK1 "U6vY =*\jh!9Qt<~73?~mT$4$v.g&0I.wwn2vvcXPF@gz}4~vt|~~Xj6inMLyX033scL1f)/P K$Si|{8Y-dKg0;Zwۘ%X&bu4;o}d[aR*kWMD򹊔Z1t -}vHF `SNf*9h>1GbC}ӄaR.b .xC6d,-TbwՄb.Rx]n.% 5.śLȩ)U V_@4)iUD:[{g~ܟ2.V)[)Toj*ӇYD=ɓf[O)iw5j"MI2l1ƮDp@JYH0vYϖԐT4yoXŪG܈ Sr))j!v|L캮`¤hRDsLEBՃjTM͊"gt< :CrFQD3ff$F5"/O]oyu~筳{Q? SZ\$N% ð\v> a.Snv>;_Yd*HOfkwvyN+_K'Ͽ_/毾Jg̟Go^m/8du̼Ok>{#}3}D̘IN2c,]bi..gGu쏏E'lq q@(:l֥i|Dg"1:$$%h\CfCYOS^ՙ;FD.VJLH tVԉ1OӠ7 c.ciS?OHHJGECsqQ5sP5Ͽkgm7]n쏎gӳyv=?VKzjE9{Zm[ha6x9w!xl*)\DMۖ#3!t:$JYۖOݸl$`-; TyTv0u>K5 kۦڮmCCC6}T5g*(EK6$0eXw+Xp.ELk#207/ſ_ 7>%]11ܜ`vPg};HڬkWy8~N6D5^Phɥw32ɜs8q1emKݮowt`V:ӘQmfpT9rDt@Tc}eIt @@$4j6EM}a>:'_(@CO QAŬb-ttޝ|݇z9u]MӪh!**)F0a!y90EMȈ Qа EڟKh|DT!b.8M{3"9D }04;GMc }uhIDlj&vT65ަk9DA2@EUk䁰Ȩl q6Wisuw6_.}#/tE39gξuq軮q-U:Jf;VO@Hx"#y$b ᗒMhv?ݻ񓳳:64=7ؘ6MYDEtû}kQQSXUHs&\б{}p>{g'g~;?ҿ2~=/N XoAt~gA4S23+`l4k1vZFݬ8; a?Nc-!+8Uۑ)@M GO &i\^on0zrKC]!|(Hfne@aҔJ. f}hZ{9rTa+"ay2c"9^o.%}o/_oSw^zl)9qiz0|ۛ@n?즔yo`j%< \-*Uo pr)CR)"j1B.HFG2ƒXM 0 0BSlfE0JiJQEa##Tn͐2lFKŢN'e4%% t7zav8NqcrsRާ2<284=xoM-an>yZ6a6f6cvZwi TUhjCӀCv7 z{ߴ ;)IrN1d&ciJ)uCӄRD9g(ErT4gMEr1D:%c΢1ǔrY3pb&`bv-f;窰ӢFHzDyrd [ LQQ <U{<E!UDe_ȻΝ7 A|P DIāqt\Jۄ 4644\<ڗAC.дjJ.*9SҨg4gAd@6L;2ZU VJiJyLZ}_tm|Xd "@3a]96 3$u}c&>3snk|34GDjBn''f/f]]9P hb>mS鐦{ȇ8 uXWmF$f.I&tMn/PLuPΥ\LU$ zhՔja `ȪBHTyGTDꘂg|ڗIMK ƤZH m8|mǁu! )ʰ6yNF%g@ȋu;'nnxugߐo$~/jb%K60es Bh(WW l^k?uYe)J*>4Go}וR(*@%ɢU48lwwϽswXR)*{4WTԻ3eB^J|~qY @Ni1z} Ov ݽ~?O|S@)4q]VbeJ 7n'lYJRJ)RrIS2<&Ƽӎ 9@OLwΓsL\w3my  UH`V!պ/VTrI1'r.dRȌ-&Յ\RʀfG8OYoR,mGb2f*5fOLIb,S,[o<4|h0+FT X:!DADKS|ϫWAm$fgEeݮ1N!?{vqrh}7;60 07V2Ƹx]Wu7|xf+&ZbXNQDjةNOw^]]WƘ<|0y ->I:-?Ͼeψkg ~<s̢ bZTUTA*\QKD3W6(9O12sq%k,uV E~(bd`tc:!+Ϭ8' ,BL=\AL>\^\κ aׄȞA d0Rh$ƒ373M(~IUV$C'F0A0PeыJ\r*SJӘE5傌m SS@DX,eu!mc3I9"9!uqsJ{4v7h)B* R} X+q\L URC&|w05r.ZT tm7YwwmwMICuFR4DuIdT1#f [E9Lem6 s,& L;/ӧ//sfXfNR 8,OrS΀TDrRD] =.//_~vY,Se12!)CrT?EKEġRrRƔ6bunq<[.*z}} S<"&o} <+C<܏WW m4Yӷ{)}D'6 ("ط^I7 9V3&Fz牠b&"jjƕff1N)K%G-"Z K!wJ2 eHc*Q0"aLIASr\NJ=?: 䜁Li!YllE(4 4-xAZբзM5'hAs&"92AKa?~Mx֛٦ RɐS> A~ ~nwqQE49$R5 &4쇴cԘ,noM%X.U3+BV)"1RBbǎ p^8 Ԥup6L({S;2 α>4{w%n%,sSbCMCv̷wZ)EULSbhRWf'wA|ßM%8ﺫ*h*I1B.è-,`uU;g$Ŕiqb*EUDWm!!!! `qQ]ֱ3 @m)i29>{v w"ʁ@jfN^3X3*RG亞 ٬!g%%1\Z[C[ +Irv98q8T-R HKiiw BZ]`)0MeMRR}l{!aqU8{5aesr Q6Ke{2v0 c3o8H)Ŭv,OW 1Y->KSlm62ɣ7/~;/{i5_]]^x9G)i#7XJ˪Z#;ܴ=؅nF9\bN9@EКjH'sTnu^# iTn)"EPk$CQB WJ!ckD5]8>>9=?:9WhjrƊq$6ny~ץ` IDAT.Lc5< y?q@0# Z gMfp) ɔ_l" H*{ d=4 @.%h`n"DԀ6ݦj7h2<:;KQ7 AR@ ^''jh<:׮q`LSvuLfT3՜q$P#% :o+0sTm[H}}q_Yf朓JMxvy89BZUկuLTiTvAB.)& ;Ǣ23(bׇ rjB%KM/V7h` \j>qvٌb`)fC<8JE&3*T!EhLaO_hrdfLo~˧Ϳv>W_z%tx_/~Yrv_?cW;R ("j[O-+%uƪ؀B}9XhBmawk$΃y{kl9Fwy}o.6wl1;wq=澻<-W~s;o廧goGOޙxi?t1X̍G8Zʊ@~7l7\`,D$kJ JHEh(),sZDkmhV<*YP0 >Glu/WEa믿onm/..\Ȕslְ.%1kNV 1P W7pP Di< fu@䪖:mݤ`@$91FtHcpu *u! &M q3xT -mX[e=fmfn_}[wW_כ^yRԲB66Ttִ R&]hq1o_]}Cv+ݶYtKQf4 "1Rzc!}5Wa`xGSɑГsh1I'*TK(1xQZiḧ< B.Z=DQ1hkonϞg3'_}ڷ;?m.h8oQ @)~vA}޳&ywu|eHbC\gInpSfTej^y*!:k J)MUThiK_O}N Gd!u׿z&U (TNB^"3SVKaд)d}۩znPc罆i,DE01jqUIMH61p->n:Qj}}4M,j4X=Zl"20P-HEMӴ]p!Pq"tˇO99?y7_V2 lKbދȔO δW7|ٯG>B:TI7m5c_wM 5]5ZH$NDZǏ1I6ن٢G^l.빻؞p v$*9N)M+ϯfM;65ѣHiJ&M̒kҥ$)#d絹kon_vh󾝆QJbSCЀxP U*KQQ1UPF@jP9gh\:::wo\krn*fl]jTHbs#"`!s$KnmS4N:Ep2xП VDs5vo84*xrAMq|QK Xly:ZVt5;29Gw{L13tރQmD( RHc*OZ#T8xZs`l=ScvE- 36 c"ĤC*9 %LRZ@HAAb*/ЇzzA9Ys2|%l5e_o_E"`ABUblj0]8yf׵鱡{wDn˿/nk)m:J9:dB6-Q1:VfY#@.VTq[0CT*5E$51:z=f(u3_qC\׉զJ.ԃ[_Qc|<#~~/a|ҘKb|G]52O;+?zə2C =qN)҆?\,/kE^IQd1DǾAE\^{i]6Li֬(K2RG`G{Y )SҾi&wr@U2n\; SL ;mNcv$CCw^ykzhl:#WwLCӄ U'>f/ 007m9&4 ˹$KQ4$tiI `8n7ғ$9jI"E I5}@i͓4h|7k劑6'&YhHӴa uMёwŽL2s$ED(8uʮ:EȇrԬcB#14STl]62Ky̤6Y 9t~X6mk9iJi*~,6zzttLAMĤ(5FT~$u䉘ַT͂Lα#O5}B~2i sp2C!8j 9fYƬYA1 B1(`B/٬] 7A\&9b$ )#p/hF:D;Ȑ Qaqх6-?}gӴ5͎j;d])9x Ǝ (5H _~}SIa0S&H(GI#85}? !a`&RJɂ:CP]Iq6b5?tɓX.7f?ĒWz|ssh7 csPD1I%KIhZ(ԅe;>FAp #g3~w퐽  [44.Ɣ۾N7[`8d@ (f`}>럯amƽ%L"Has y+ǧwki"Ӷ;mBsch }Ų^-O7š)P߷+n=KD$04E&Fު1AM= јy gET)c ג`1oۮ%~8ƜKݎC88XRL~;HYu@jĄXLl@PhN,O`t`61Qd?rV].*tZmJ DdI1zl"Z1Xb}>Щ1B {R ų2"9Okڃ{-,GRulKnjap$Γw??r}Tf$ 0hF- η!4DH?J+!zwqm~yfecN9$ETz$2ˊ-1U@k1S5bB@"lvyR)c߅~=|λތ7ӧOs9q66:zܿ~>𑳏 ~W~w3&JRJ1*TurS"TXEG/MT)EUAHmg sL%PSq` NqWQ6<>:[VVq?\'g@bڬm4n IT\@T@Z,D&z[c~+Bo PDƜ80M}F(Uh *P8lu]h#I4S]-{A7&oAѴOeJh.s|VΖ4LPEMOZ@ Ȍ@S۶\o_Iu=<9>svg|/֗,M!b-fb9fαgG&/v뵨kr\CVM l( BQ84NIҤ%V:PAٔ1o|ݸr?i̹l:)b"vvrb"Σ.'?#1Mz|tK-g}$꤀kvY6yS^o%'b|9JJR#K# 3VbkFNuTz{y(vB~W}Π!2ky)p}5ηM6}#R)I Qrf{n/T}Ve4u·8*U۸s8H`H6k:aglSJEI";],DRq?qTUПRJ4F#@HPX0|pU fl\]u{h@I$&h;"@HJe9`<ģUfK1C`7͝s9Q4mھi6Y1+EUjˁ27/U5kF0IƗwo8Ohsq-~_gٱUI%QrmC$vM>|O~榈8 bRDb 4M$$&@Ky%UxI%C#m}9 .ETc1Ŕs ᇨr0_bյCR;a ~@$ob,AfO9ts~~qqn'6.8v}fqs%d~r!}]ͰTTJ)&jjRRIYrʹ&Rr)*YcVCb|Λz73C63SFZS'C O>OwvZ0MɳQ ڮQՈ]Ӷ"ň;؁nm(jf"HeU ak[$qɥ#0`d8Qq3r5031UvhΙLuo$=48i|9[,2sN\Ax_I9G:'nL9tZr> "Vцi)BX]̖˷yWe*ȍo<$7<'>ɜb߶w~-ڮQƃ&J)J0ef cd1I%QjA&Ԉ2鄚r6lo>}o;TS1P(IJʞ MIT8n7&Svs߬w`6N 8\]n幯I-QʺߏXr@FXj(%!h0_N: KA-];9dzeθ B'v%Axf |&taP()Tr.)gUC@Uֹܻ|> MebЃY9CuEMۆ얧q[oǁTdFR֔y] s5=7ܰҪ7 L 'rĎȹ,b Є4zg=;DG @J%EQ&4m@ݲm}pIrιA`6vF E2"J9@jJ"B mˣ_4H4Z. 9+ES*mf~>v37IJ ƽeNNK,)n-qN#0+=ۼɔG#ׇ6vk T @v=#ӈ޹y7c;;$2;;WXjռD8%kdu+?'AIZߟզq.s>HZV]5X (lVsQo"iyPf[C@L`q"fbGT*\̌([ZbIiih@i۬7]7BѤiޏƳa'ᢖ6\$'6qi猞MLa&4C6S2BD2C3ӻ/+_??tsu5_9כqM Mt]QPqL*3@GcS(E%kIDMB֮'{M:wF9Y BC!09!D IDAT1w0H4AfJQBs h.jB\=JL^B$2F*%0Ufp dtT oBeTwL9ǘTrj0\DULJI,Z)Ma?x!#{vGb gL3#!YLϾ7iUI5tF",R$9O%L=y梛}!=}݌yXUFD'r޻1"5C|LcB=[Gx7|!Y*RMcji}Pf*&E{L%f!Ff-}TH">r.V(cT,,.fNOܽ<:*Zq 7TxqKzLPIG` si3{{}_hB^gqvrt::ZVG''''gg{ye m{w\<{Y!&ƻ=R=ey1#2kSN0zآ??c?z>K{woփhbx}(E;c"⪻Zjsj5}dB0P)*5U+(0ViqV;!30W )S4V]Vc6~otqӰ߭449Z!NY>^")x[Tb!@ gh.N[[0S)lh]0:f PA3 fIy@~{__,qWf?S%k43}׷)a`26mt`gӘsLC\w}rmVL$MROv 쫱bM6 h{W͂AN{OU1a!ML)(ꦌSa>4~X,mZOTvUry|zr~/{CsaaFfcGH\fM!8!s%%`9H8I!'s|KϬ@V+9 "h% XM yuDXQ0sꊚvTQs$XMñ1!zG AJJ*u!0U!sa뼰`crdcdJ>!^^]"))Z˙8ƔU\;*d*Es9l*蝙Ak&X> HG]9(Z%jHLEuimO \w~6-qڧa9!QhNl$4WXΘOCݣnfճ'O.nvq}qޮ.qM|9rЄ  z[ՑF0sZ@TQ\og%SwKwhǮk4MP X1eptF xho3Uz "bBI30!aI*;C `v!ux9"48 k[4ۮ7ڶbe$uK8lҸ/ibL'rLQL h2y7ڀ:c8Ny 5qtwu!S`u "P A%2H[(vػӧ>\tutlRfz>n߶s"T\\^_6]!8O5qʻo)2I=V$(@,R' 0(u{{ͨRܟRoiR ..w7#zúj]oӐP@zaof&FzmD:9mnziqg[n8cXԡ5V|Wxai^ۅ;|繍clB0Qɥ6f{suƷ` %X&xj<>{): qȳ_.VmwW-[W&+11*aF]ӓNTb|dS8dԦq#Iǽ # AjEE&б7"rt`k3׫U7;Zw8K7W꜁F&2D`DZ(blˣeQȲGXӔKdY-RP "HI FupnKkzj5}=,ab"d"" $p7Y+"!0Jы$PkVMd/!@Z]qx # HǐGh~lf\UMcL8c2 "!CDī/IƧa͌E@%n "$PbWhMLr:k^zԩ~`T #͈s`hL-*S|"T$l>I G#@SppQ:2STdI9WV`8\__WB׆v}"0A@,zհ$1I#@5Lf2\u]/SJ`Ȥ(kCskC&PQYh:zup:i&F';C'8Wvougk`L23"Do~tKmLAI4RLzs*()cH !Bb^ǐ(w̙ #$/y;48H,-oq9! BwvE3=7&+=m`}`bD %\"V%l>=UuDM HA$Q,"ĨUIw-www76Q$˩ Y0 #|;7KTWu]C1K%S{kw…}@a7YJ&"E"!AUWN<, b+"QUy0$z0t6u8sool^y_{F )5FC 7nMl>9î*jh fl1AiH<ڼh?XpZÆ0bsEPAP@X. wz>A]./]z o~jMb $H @@h ,hq4=߻{p`z4͎f_~t8#(n߹q+/zƝ;q9^6JXKUihx qu0Cq- ur8>u'^},lq8u. ܺqcscQd XGU톣j1؞ 6ŸM(m%RkxmcmۚŢ1cr9$wrX%7(WdH#X EiزH}$pu{ik&&"|R0du:oZ[r֊ ,MpwxN?V^<2CV/c\ocݞLb >D}J+RseGFb&g:,H +X4 q߹u4͛e׶]6!ф8TaH5&T]儉(*jpz&!0Q]`߉5 $AMLhp4{o{{>4Q4 @R-Xl 1>-(kWF#k- }P8sh($uIĕETfc gMe2[cP$[/)B"XF4(%[@90eeQ@XhBUͭpJ}ߪJll{KNщ*.~Hp']?/O>{o:K7ф.)0[Ô&x8?X4.)um6}߮1!s(ƐLL3!Y[!Uz[gU `JNUEYvM'Qj1<ܛ>zcblH/+s0%)EF !ԃr$(c"HȆ ĐV7DVkë@4ɆrhZ> BY9 |1B `ww)H"پ @`H-}3߅K;ZC۶XV+ WW? W.aer0}"&2PZ-V.  R()$5 wo?(EI2Hиmc>e4d^ލ[7oܾY/]zھle0/$#tf>"C 抒$d^[( mPQ4 !%Hr3gDV9<DTT16t]$֚k߹, @ >uM%K 'Ť [۩-igýWo5f;կ\u}Gl1'\x?}~\m 6Om_ؽ}V#׉ 蒙 7('NEf˥&1Z 'xscN:b '9&RXv.]u=w6vmiE9WsGմjE5y5>lmyCgaPMΟ<xsoq{{]V;m GzQxymOohv>4Ge nb7NMO\E }2Vu=GMg͢m A]W@B亴DieLqC 0gl [( bQR\&ps ] wbF`"Sɵ*EUFڸ*+)t~tky ̧r5mRiJZ0" x7 `dJg<VeUe c6D 9%I!662rw<'?;w;.wBD ^l9.Zk׮]r55ڀF!F:3g@Q5.15pA$9J=ݽLJM˺je"ܸ8|"hs4D{k^tG>qk_½WaZ h7/Enޘ:.677T[7PXk{U5 [Rº#X熵:IS}WՕedrP%fAI@Bճ""1A [g\acS 1iJNώnݸyO3=_ ޝmomEQU HU]w eQFtZv!EIjMF{{}?ST@LDl)>Q?r"( RDIsҹ"%96dTlLJokR HNc2DXRSChbXΖɃ!f6O|vOߦ[Wo^93}!|u7GKYԹbf8:}EVbIq8ר 5Z`' ^eufsps6,K0* SzeYu&K=YF%"8Ɣ)t  Tuc!&c9gEQߵ{H@ aF$1VcD0,_6"*@B&A"r'E!(a@)\]VKUHEWbI! y9̌q0@VgHA2F} }Qk)ej԰zCDHf5eo}=_yh2N $T]e߷m|ml]W,u›?W>{{^x믽6;k"I.$̧1?Y#{8_.z4G?U~" }a6(P@2|={^4\ F'6<몮7775!FW}q)4 I$a{b@M,*J *pX(0}AQ(D)q4b ڤ-P2A}̠_֡tCS֨pcs ͢=:~6 amXEa h>5&HASeJCưabЬX3I|uԕeG%$P1T@]sSJII3̝k'**g{V>w]HJ @Jy$*x̥UY3TSfލsz)k/3Hm:BJ_Q26,0Ll޾!( OL7{~\U_y1.&ީʝ7Nn|rjH3!ouEY"21(BDƲP,h6uuBEQUpDk "(2eEUNxh֦Yc) vr!JlZc ) bGiYY9SQrю}9R\px̓sVu [>+\f@z IDATkDVfmIyJKbʻ"jvRei7Fs2( &tyN$1JlT{%d&CZ65))lF@`0Qcb BƷk&)Bgo|9s=6ܘ6'LaLv@&Gy׆\x䁇z@{];[Nlmb wyؤ{OmvF<FhKWXWX&$H-`,.-7wdzo بHa6`-K#$f(Ġ]s R2Cī$PUSOBâ9lH@0'/UT@CkRQw;0LVͯ**"ęeقP{j0ԏG&EHd]fli%-#ᠪwHclv|Jk_{,{?LʢTkr}R:35r2R t41hs|_zrs8wrΝ}y;83 w}p΍ uX{(~W~|Swb`] k1\ Qb6uQ$};ϻE f{ #XBbR!!I* O(pMñ!#1K9kSEf5ʠL%-F \~;KϿtxgj=8&?<7KQN676clY<'P;kÓ9hSH*Y6s ^Hj b% O~fQF±fN^:c7>%aff<8[~vpdPwM{BuƂ3g9 WDr .VG*!Xqex&u}la"D˶}iLjY=uDn^>bϗN7j^2JW7bVihw 3վkYg]A ▉ !aSj`K\vmrD*̠rCUH% *"̹$芒aW0;`V| 1GÁA΍jqu߅_˿UGklq7ekƣqUT$QRUuk{rh<^,UQ"A_:_65K}FvФJYx j7(fGB{=  5_r*rmCH"͢ EA3.P@s-ؚCʇ<@ Olods굺9\0ipP|ƹX;J,l M̲{P&(Xm'mڡ}%TSj8qF=$ҫF"a6MlaRb\oIAw_ƈ長Δea{2 8ȸeh|@+q6,- Đ1H 5)A~#*DS urZ$2Qr4iʄaN!jT)*-(sQVRvUa=fTy3[G>rbc浫vcm|{n߾3A9xߵ}b2#g۷^gx~OX{䡋٭W_^;ҥNo<}Z+ >/c13}#ܸu+<2i}]BS0FMڦZߵ>$B(D IXNB\ }IpCW*[uj.&c1q9Ex-ug?ۛNM]uI]_ek9ofeUv-)9}xu}ud2ƣэkm"` %Ze6 UWSj=~b^($ 'C:\Ϗ|#BJ0|=TȊ\٢Y6g>ُ~wMѝ;}9 v1zF1x_;6mڥ34f1ܪϮ,"z0`Kږ0Kb+e:9"u7Q:on18S|pO-nĂR<@{`"4kr)M 3`3)$ca05.K罟͎| E@Q@AcރdI"QeB3ZV |a6I@bR<CAr5Ԓ RJ* bL)*B\PDє2&2uHUY$\;1.K&KC};~έG^^9q'?ltEuUz6Ν~9_{׮G#ߵISaz4}|[\8_yw_~?tϹ~6sOLϜ=rOGCO=Co|S!8q(m@A$) Q$uw_w0;g?332Xg}#*\ )2Ǡ!SSJǶ$!k ErVU"u0( kY% Er&} >B}xq~𣋽9Gؘlu\~>_5E?Hp0`kbwI+߇pilr6' bQpiDAbQT5K \ϥ7WaQWhĆEa>]h+;?#?}jlje{|rsm۩4꺪Tk[PI*Y{= L|ܘD]ۈR# P ͊@8iΆ+k;bslG;/lD?s ՉIQ޾regb9| N?ꋗұ {x5g`2*SX^}jYAQNl1ne1,Q :Sq՘K(0WWg ]iaGư1HbssM41"H tT`y__/i6>\ }-2Ś(3gb>m3YEO bmjSb61cqXCc(F>xɣFb˦o۔XxFdDEb, PWࠝMk F@k$ )srTeGXBgsgLyȔsw@+xp7\CEM([c,B"ByM  +Ѻp?Á7׮#~~=}s菦GGөg㑳b.إ%<'BH\~xp.?[WۯՊ7IV^z)._~7_]|S~ǛOӃAU޾y^ ISo|#͒k  >"QR1_R+{0Uk:. ʒa]וun(I"IBw]׵M6~!S 0Iww nX%ۻ]KJ,00PpꕃW_C”Q>1ͭ]xtLlC"(6Q`1_Z[2;H-%@^mi(ru]AG7sLW\|oe ­du[64m>[̟'.Sg,7Y+PDZͿS$&0V.bFfDe_m 2\ Q`T~=Xa<9T"ƹ D ESMj|Ґ$&C,A0ߞl<2փi!EkpG}-O \dG7o_>'-y4&N8OnaBQJcPVj =$$` bT}}_܎Yv{LعU\Mh֨)Mdg9i= B !vmhZ=0C$kNH" j`x$EIl|]RHU 7eYek-&Pbxc>jFbfc>0$|P:cL@( DQ3V ZD:eRELu_̃j]sgN|7(d4bd퓟;G~P}׷H7qTkAN!HT&77ES}7߽)ߜ׆oO^~y7NǞ|&S7W\ڭ;/_(d4()(e-(36D-'~Ξ:8ܫR%s:'ꌳuM۶mU!J޷m躾k%"aVԄ%`-Wi2; a5Զ0ǗvԵͿIc ܿ}k><>SOkWFU-Yad<.K(ʈ`;0l%hCC\ dL1K:bXl +!$ValM1,KwNʥ/;YtOw+fuq[#3Cq41jf>%IQ7o޾y}͝_jIU丏1̆C+tU!;Qtf (`գ`Tkyx{,#Ae-!u]ڂ$)2L3pBV]}o{S }fTe0[.g2̉coΌܶ4! 㵑++cJHZX%CJjkbЮnǦ6rn¤6ne[/`\0C溶N*p HU[dB>% Jl4m `P!DhHMFwg$Fcmtzms=5D$)*FFrW@Dkm+HNjLX$KZ2@,BY۲EeSr?1 ]KL $` Ҡ)3MU)ˮ#T.bVۤ{L W]?p;%P[ŒhToQ]1"Il sw՜?n[V[v?w/4 ˳SN\u7{6G!W:C[$I dA5'iOZ6KR"D ,|[k[VSX ŰéPfsc2 ?iNde. +1fѶM! Bm̏Q~v%ץM{雮d]^P"k݃{omnN ia ޓ)Ƙ@5 *U13QvH +$b$MehPD?ڽx lv bu䩇\&Հ WRb9WtkE^{=\8suO|9w4mڃͱy~ ;.J[޾|MCwpVeyV4.M5rhj7XWRugX+ڦ)Ó;'2h3xa&`D!1#L ] ]O&?~_xz44ڷ#kЃ&g)I-\Unkk7\yHtc}=C$yh=C[lnݼvS}1*.C8iWDHuրldlJ| r(z$u9 DM$>Lcm|l_SH1#:peƌl4lY[U`A^ч~ٴIϞ*Gkg\vlQ SdD\O>O3lff_db?^A.O)Ld2 ƮM /x׻+Ж՝|t_{kPr1*$[aE9^yW߾yrw>g9 ,ܠ,ʉA*[7>kwҕ >0}X.@R`”|:/\cDdNr@ccV R/hqt/A"8Mm'b&THj -xzcPc# .rz4e!x/1L5p3On$zxo-قMm5>3U!80MdˢS fɬ77x_Bέoz;Wqc0}cw<9{gx{c#G1|aQiܾKϝk)eFє1(ʮR Tb8*sI/m;wΞ;Cd x2p6;z+/8Ճ `P c(ʵɗ4<&R&eѨ4s~A. YI"2ѕl,}F]\`=GIY ԇ39 )&&6̈Tc΢TlmA&QC4|y u92вS AU۶` 1 Ę#V$)!A4 `/[ =5@A"ّ.uKw}I l&aYvGP$G} Ga1vJ7>U|\gkáu~lyY0myx3Ξ8},x1Mc`0XC5m].@Ȗ7mBMhDH9k0%›*$QMI@U}?g7Y,' mH{U41\UT&jPgpd0![]9 3V=B1F L"*ʀu[7f7onGtOOClhXUYX~Epk+e_._|ߞͦw~z4moo{'px\yW.?# ŗ_4%} }]=lB[cQ1@/x9u6BtQo}%WZ&B$lc2 J $@i%tcj91/Ж+*J[D&F} t{sζ]{0=]?BE&|"D^WFcpss+kYACc| Ό"KWe T`4(_ % de4uDü)IQC=UņSL] Zb*2Ll`Sˢ.͢4>J >)$):ֻ?2IѪ-آd!&CD`6L}elU*.pH0LĘ@jv9CH9pX̔- @I ^9yFpu^=4S%R*q*E)̟\;GC^%8k@E 2$!@UM.BrCoѨJu^Xs}@0l ֱ-.lJ/9 Hпw!5]ވ`@1A2|v6C?n6[VQ9ۛpŵ[Og[տ_}aD-em3$%ub&O*JHa.]Ӥ)DDt+p"0[W!BZ1`Vyl4!&6t8Ek($j]&|9a "4S8ɗ{eg}jb־ڵÃCjk˪^9}bsmm<օ} 7^~v0 1!jwjprSҥko/F櫯]굫hx{O(˺iԹAl dfdQ͊^!%ʦ@8~14.&x_{[޺9[W%|U:V$3("rE4\Ywoڸr Ѭ|rq@f{?Em?_P W_y陯}IX~#k7_;ۧO$ַo8¥wo|͛|#//CpcЃq>= w˗_^ژlNSU[g.h-sh$Bc!T4BcJ bLYi5H*yh+Iߨ}_\Y1>zD$iӶy%gͧkآ`z+gΞҋ6&ޙbmmr̙tH1Woͦ7!%(Kٮ2C"iu" cr5/2*e:ˎ&ڤL ֘Ml I.D()e0+cAI%sPW05ɰLgͻE@ŝǣ'I.̚#0١]v.|h209؊ U,aˆ6HĩE>̖qYQm҇cS<,M~inȡ*5J!zUA>"pϜww!3QIds-8g 3h-/ҭ*0&r/`\I)V+'2 -̣̓:ޙeRlEgC Qqvt`FgKHEߵ UYeeY*'Â{m)76nݾi>[/`J_7|bRm㠀ɐ8=/DȟyE jT=³N_{SOOypvDj Q}'?5o{ jk5_?g 擿woOFfsyV?o嗯\|[0vbʗ˿^K[&5%lVoìVPЇdU4)$̵f# "IPO &(ٮa]JAZ%T0Xٮ{>~'oGtQ޼IY{W^y՗.os/|c=k{{/5[m? _ׯ]ǾAql8IJs+tbfVX|`e6Xb|Qk;gmawOl¢-}ߩ!\UTCY jn_"a`&̜WpB}LfQ[FU 92.H6]{~;7;(̍m>{{{vv^[vSW_×._yG_oO}|`oʕW.^<;t2Fڍ[ɲKzwo}ccs{c,`X_~`.D1AEMB>|*BZ̚'&$CQT4j(ʼn`VzaqG< F ;}'@͗m;Pbc]-mQ9WX` )#̫^9s /9G` u۫ׯ|~~{Uj0a}}t̩r뛔1Xa` `;EB盗@J& Fɍ B@zh$k]=z2C1$D)Őo.İ"SQ!jƐ *-%&^OέMFΉ?zkÍdcgԙkz\òEleƲq+2L$Czߴay ^G 1uQz$RlR4,)A@0CcHC >@" Ǯkݝ"f꥖Vl.5 n]]ayyLyu"F0t>"Iq "u-_ٗ{zũօdsp88yjg4D^ d:[̧-B;(4;ƫAU޸|S!lp/Ԙ?z<$PMP?iar*K鮽Q$=:;?'ŋ~'0IGGdx0?fw֟u*74>G/\M>ۺ=s_K}/?}`8loޙ/.zucsѡB[Q֮ U$(Y,C쉡T0X1x^;VQ `4md ZCK QcB}'BY1̮Ú?qcPumwz4Ɣ Ww(4w-~9}So°~'w+[_gm?:nN('NQe|Cߟ~__~~,*f`EՐT5k"MtqՎ<KYIH"qmmg{'¹mBrX֣>+yC[@/$D+ گ J)G:4{qk} \x۸?~׮]㭫x!]6oܸẕ}U:-c2DA5jJ:;qP6ըf%``5A~Ȥ:2jf BDIU"ן{{Oe]UUu͋/ۿ_%fNB++xknaCZcR) ismoOOw}~GCɃ;(JW' JW:fB5*:%Um\~_B2ȅ14O翗bTHkkWlX9$ 1\?ԏ菞?|~G[0tvۋýOcdmmk}턈x['O=>/ܺ5;'> O|r` \qa7o糘RD cu`6]@*ihb֘* F^RRu9Q(ɕv5$$ fT ֶٝ2EscNu5:{\]U Iڥ4ͮ]ykr9Sێvkc?}bsW_xrxgG魍d&Nvqpx, Μ>u]-[bXg4%NMv8B&bfO H۴>8:8>! }'>nԥ pX-5X.SҊ[*032#]ʼ}3DՔB!BD>HǦöhtg~d pvp˻'NrUu?ē/ꋗ_>}?Rb|=j7ou{_v5Wz7}?W^u Ɲ=pn֩tޔka"m@ ֘s(J*\QB\UTE!V=1la5LʅUHbEoll/ZW5!YWĨmǐ7? +41 IDAT}hoܺzkn}}9{p[ ˨_{YBY!$A7iov{шlo7%#qȻ u23FYǚaZIXc|]ˢ4DQR 0$Ah6jܩ Q!U T:E"4bڄ.bHU3Ow/mo2\tMM>2csBMw]{}/)d9" ŒBsMȤ++lG=Bv`dTRuU ٲk "Ƿ82l 301`-Bv$e$ @L #]PuY%Oax""YrxID*rn :_RJ`PlU銢PI51D"CS?uo[W~S;;/>Wk՗@fGk5kl)3,1Mͫ_} 1-YOpY6ͽz8)SJ*L];sgMv=(Lg8kݿ+/۲/m;|DQ\UF}ݩby=zK47>7n[Y{c`OѴmk]leD@D5Dؐ1 ]B !Pv#JfRIDcn$VqAa'ȼ4x-?m;?> uZ87(h / ʢ]gd؂d8 k7N:}Ų_~s7J|ڳ'^dm=*dz4֗0c?au@l[Ȍ#I@u]7MkM TU0fc3zhBzh,o{dJK9{Vh!V5=kw˗`DR)E$ba"!.۰lO8ܩ h\/e>r_W~~˗odGK7BcymHЍh?'~}5v֖}?xf.n!׽}ܗTn=8C e1X[) !pQD\Yc$X]m(J17ez,x,6AlE4֑}ZrQr Wr(O'㦟;zBK0)=wxQ|3ܵ0΀bXgW˕UU3rRTD㱨k1-0H'!={T]uMP(kc[nyYj 1j߂s 1/Z3*I5Fc'M)5 &(Z:W8G=pxXZ7?g6&a qv8ݿ> }RIHą+JWYW$@gmQ:k,fg.uΔ$Ђ4zERT`pj*%|HYpd0$l75&mVszXIq(MOII$[7aBe Dj,#Q=n1Weh" p^kQ6 efǿx*b}~c {T^|?>jgرEdbJ/<#CݺzOLL%B<=p1 +RU WUΞ]_[G km/_y׻_yf>ƖlY٪rĸ+7vm:}O1mzpwO?qeBh<$Kpmd.(`B. c)q,, Q5Q)c 0 b0YPR*%` W<@4Aj83Nz\Ohl`wgm2ynݼ+SҝkɠBY͵ݽ'Oolm(n9uv{z Er:;y,yF3Nl͠de"A͊04l33%0FSڻq;ӿę!$Xy0_P ^DYZ ?oPAbއU9,{XŊ?8n>۝ly<,[զWoݺEL\kZEQ#ÝS'LϽ?=Ο{/}q}v7_}8_LuY e|΅3ڸ:@N@LlȖ)PX㫷.lmn#,; V吕#1[& 眫sfәE]Wְ *"]|>gZviVt>%ќNV֔4>t\`\u5^~(pBmTk|;cɱ<"*+1"2k4Y_+ECkĴX4˪ټ_.:wÑuՠK&WbU'e +`0b@!#22KυaUgG6x[}5Fml @&k r=熘Zk8R #bߐq $PA&0aFSڢ*h4Gk\W 弊uT9fC2 ʒ,$㷖6 `l7 ְ,D*fBm$`9{ VPav=oxg??q쉇ujU1M򥧟ƗGg_TԐb-BhhoΉ}i1Ʀn>h-oCH'BQf qkmY7^&BJI4(1(" 1)""RDžE7)@8{s]?gnYa9ДM dИwjG$%Qv>]׷m4]*| SL2"v D}T3}eWgd\UMIS'D(J *9t6sMDW2T꺓YI4;WT^ʪy&"XYYAMzpA"17/w6'o~;K@ $PaF60%( #O&Ƶ;[㏞O&7]Y猱wsBЃÃpHCd,q ,eYN^UU\OJSHܓIΗ{Plѩ;oVX,]Ӻ‰h2_^A ' WU1akrX  k!P1};Pb}cV!(*((H\I dm;Q`V0`B9y=Jbwx:O?C$oŒ |ް>gΞ7(l9*1xxx0[W,f1FQey'>_H_YPPA EQE-$P֬q-MKÖnFVSljJi *T|w{1{Ez䊬"͋w~_,LJ;# uu4\ɋ~5_oyFG5??s'F#bʨ(QcV)!bqH'l iun=4J\4V+oX?DիU*(5B|c1z߈ V2"w"~!0". LQpy{evm_jپ3ϾNKKϿ~ʅ98m\DDU:[[`o4YUe" >{w/=?VMǗ\L'+kys˃7^{uw{6ig%[mh(K4"M"hQTd|FMDDcf7 32X'CD!D ,HA|r/9eaAf2\aD:,Ꙩ،V "D,&FDzieFiꬮ"f>N'#B1W_ [ҏ b! Gr>F/^oP Y=o\H+BRQO{n_v <,S 6MRmSvuk;=]R/fVE[[c4*0ep eV uYkF{¶-7 l{ƸvNVchb AR~1z&(1&(P"!F}\S7uԍKDeHb`Q"d ̣oU i`+z0"f.(*591Ѡ4`"ScQ@dc6}C:af$~߅ "b*RZ!aJI Wt+|>0J-QS\V ,) =P׈n#!Vj.W (bDfAJd&MEJEЪjxl:9yǾ{?+|H344 m3-B݃>:-vEPZg(C .D/Y,I (H`d3!E3F@  :c3{So\y{{~v,&vzԓmݺ<[+|=8~!ռ(ۛ+W{+n:}͹p lFb}MAo0p}s[{O>pޣ;kk˫+,zKFme`)*,G|Z1-ݙ' !k5Pٜ WZE"hw!` , *^TxmҚ,Dcz^g3dnQ\}[G_B󞔀JSEd U]hHncpu^5GGeY>Ƚ>ɓ'<7Ƥ}MȒ:a95mxIz. .LCjVMʧөx9 `T%pBa[heD1ۜR6-jlyu{v(˲emGfѤ,Zpq+WO:r[(VΫ`gr>xaA" qA!+aFrP1S AN#3W7uU9$ c6 INLHA rB""cX xK (r,0Sv!PE$e %Eߵ 8M!Ƹc-nJ]7,m/cCI)@QfxݞQ*ƐL5a79+rhLDE1i1M(/lw}7>vJ)Ġ!"8ҴA$h*BDE),wb^'+~(xrislBYEF[볿?>du6fU%H;yp ̈"k hyBk@q=JOn 1xA )^@@"0.DRL@(__ά^şkTעI[rzsWuʥ'f|499&;nG#:WW+׊W{W¼^@7o_i-oVjtpFv.ll8lEqf LQձ&µ"Cڭ~g>6p?c~O?+{E̳B|Acp!6鮰(ŋYk1!_K5@ qyAiҙ6Z |<>{A'GooQȪr"x~8U]ey>XX;y,G$Ōi J18o/fÝ[wn\)H'>&j>w>pʱ |"Zi 1YfNca^w[r__:.Qy t64"0a*DYiRtn0Y5E<\?b00kz7oej"7D8V.ڞ$%!8x0ƴs[wnᰪ몪H@i|VG`ho{?8mn @X2QT@P^+F`j*(2c[E*Hc>E 98%nm4&As'ή 7frTq^fo{ChotaBXbDD͌QE/ѣxH04{W9PeYu#(AsQ.*k%FI0Y6uSx|Rjmt5vBӻZ!㟨cV2 V+Nj\QӮ 6ձ{1H<#Z-,ܑQq1r(l갉400b3uFhTX̻2Z!A.I h4be"cOGf1Br:?ӧ{=qx'L@[Mӄy5[ew90fYf[Kj|x}լiZseTkH%kWh /Wu=X IDAT~G.ܿ4h=3ȇď`i>#c{pX䆣w7 Q)m6 "2k"q1Dx=0ׂ̉ҡBd@d AKPi" #FY%T* hWrxխ67._>4`| nߎ:k/޾~ir-㍛g]tB=w`oo<ڽ%5> [[!x(w9}ٿW/]Bb%;|Cqp1zsͼijm 2H1KD 硩y1OF 1sl)S1f-=P@&P F\@ E+k!;02+!ąD +9%+&m(]BAf&FQQ%osw4}@%+A D@57;g?sgN#P(]\E02d"D|MQeS90r!zu]Zsٳ;w˿+{a7G#c-X&cAM,\1FO=HTs1UUjU;mAPF84BM1!B. ~ ܽq;ϲf8 /[Won]x XƤpi0zMz[cu1xMy6zTey=/#Sl$N"DȞ"8""6( aI@@41T-A?sX7vYOGw⇿lE+2YeKWVS?weڻ7ܹ3G#VOlxhԉۻn81^}ߓAe27oތ>>v#'sT w"߹78狀Mi<2R*e|IV}}{FwFi[ܽO>;W}|{oeeSxB*ՙRD$.k8MC1(Z5Y+  c,N+,ʰ? ڻv~/|ׯ_{g9;1#c(+PB+'?yVAfj0Tn+'V֮uufz䡺c1@eBǬ@uv+s/կ8oƠ"@x8 0x٬7Ұ3p?tu{y}8lҦB`35 !.:'VIEbȠvisvKW.+fd4NH%YQ2E'ܸͥ3:wzgH Z jlQֳP&c Y5fC.1x#. זnleEhkyCݽ3j5vnw[ko^ʵ"kBQ)B(SPHV<sh<Hi-. m3҆E"0Jjfj8)FpSK*B݅2J!!Th+T3E&U{@,\M`&C`PVFp5  HQfA)2c 8"E HREd!02mPU3Vdvwob&v~}P3WM= Mj#(Zdcysee9xaTV"\ؼ/~?'˗ssn6&\VJ+:xF-":WX =A41(5Y !vIPel-#:5>T+ 1 ϫh`o4wvH:VYg֐c!8dZ2TAc Yc2D"@Gn "s9 v%mޕ|#;o^=oߺ7?~jf&h;_gOo7_3]ͣ@H|'7/ [ cX꽋[~|okW3/mƳu/i۝DE/_qsWf&0 O:t TU,Mze //C?8loN.ʢdR\WYׇg.ܻ;w^=F6XPV!zr.V-Cdy^5hRphc]8<8h\1 x~8:%k'Vys<{_Ʒ>]'[|V͠mL,׾ҭjߔQ5j`If66?~_vwFGl/[,붊aZݲ(XΌ5hM T xbEBݩ4+MS_׿@+9@2o\d(J90:lZ:d4Ls*6J|DY)9!IYZ%ՌcXHm<~+U1:O硉$*21j@2Sshw{} G k`3VdI d ܮz=k1kZkan>0֦Ty(bK3j=.k}4vJJ!Pfm9n[{h7O V7G;UD[Y^]Z:9X;#痺'Ul5cp~b4Se bR i B${"v3X QZQh`1*"Y Fb4oAA4 1F D~Q3&CQH]'R 0s\n2'뫣QSˉ֟kKR"Ȭ֒Zl"BkͳVDs$̭LΝ9ŷ.{IC1"(m@P`4: q @QHRD@5Y A$r$NgSਐXx6M&7hƉ E۽|lz= hH"(t\y(M EP K /-!.L0CFbπ JQn[5p=-%hm]zM4#h+%>O=Ɯ*lrDo[n[*/=_y͟XɓFiK\~no0͆ZL޸J>Ⱦ>[V7nlMP֓jۯ'~tK뻻{;nZ;1O&Q]d?LDl|6qme`o7j]]y7o66ʹ1Z|pyjjY LM/\դ- c,+"j,3k 3%|(U.p8px{wg{{emu{og+^WnxG]DNo>ݿT:_ܼG60teBeTӸ<אepT¥?_O;#=(O Z?of|nߧVy֭n> ,kR$0ꦪLN2ںYщVA8!xB >$1s>]>c3J 3o\ _Ѱb~&"Bi|ZX^վ1z6H b YH)IgfA\(`@cXp.8<=՜C%A͜ih-RVJYNDC.8y'/t蝽Ǟzatj9Oƣv^*/='TF{5E ,05sW̓s*G QMUv{嵕k') 1@d,Qe6| T e $]oCIbR4`TsW ˒:9o%-9(R*-pA ~;HNАw(M Ki! X2{<!| RV;n; L.?wE1Z 3##sѻAkkYP Le{TzG *XV=(TZi1GF4  ڹn|$TZ۬s1@+~9i\(`i4Y^,>+W}<<8,VX ʓ8 ?d8< *"-DH)w!ÁH2kLu;^iFA&3P['Gpyb?3\;G#Ĵ  w?5]w\jٺs奕nFs3tYU\X)^(^[Z|{?6_YugV51 BdkY5W?OOgUxggծ>qĽk[B<}T锣oh  s"@Ф:v7_|0Ut]ݤ|%!@5Z<ϲE_{[KKV)|6BwwUG,ZNw##G-hIEt>oXwnw3'Ggyg߼ ;ѭ{h6N'Ht&(8ɻ::6kg.,?gmh?{_8^_rG.W٣DYYλmx7oqbh"颱heyaa]U7Մ D[oa3s ƴ!Z*0H)1^E@fXUSE0^ q:9͎lj?_?KkӪ" QvUrRZ| gϞ>g0FfaE-='wvBl 3P7@lfi=;!K"KH9A@l'0M%1@=2:Dj< yo8z,ZG7ǟzmPqf׮{K6o\s8΂̶,%nLs|X (LA8Dy5(eeKDA' M1A9hq -> XhD>]DJAAT P1b CpxLu.6J@BO1S J 7q6 C"j `ȁ`O&7dF@F*Q+qʙ9_׳ Nm\zֹOΝ8qjc{gmELp-Pw=Nx7d"B@2*Q19fn8˭V+БwQ>(E|dP QQd-m5ijF<&P90W7.EH+06+6ȏح[.<}իހcd €Nr3,@"C!]뻉$,({M0]t q!gr@~֛sq߄7޼#q[ޠL&GRUUUuZW/^;V|._?gzpvغnonM4N/~r矲9AUFlo 6/UӦnnl }l<өXC0"bhRZ+,CH,Ƿ{ooA(3i|<5,f7~'On˂_9H"X{1&Vu]6MuIkMDB r#O~C\ůo߾aTRdNbq]cM #dp襗_sۯu{-͉jwͷ]ש/m|ޏЀ㣫5 &ipt8=X_?1N9Z=BIQ& B) P*!S6N-Q૗яKJ6֭[@%pQ*r, ˀ )O5|ޅ82"dha:LqڄdZF<F\` ğ'~[)>?%pw+{6/8:ϞBQnn\YY=sAj--D1ov=Lo{iƘ/s]׾;\vd [/|sk~eʳr^5׮^c^gۯ|ÌulbP@(LNģOT32cEiZE~o~ånٚZ<˧)DJ+BueUj>MnnJf\{W62Iip橒y ?=>Ob8ub_/o_ܸ[o*k1 B!"w:*U~u:?rw}W_ IDATCڿb{zj6"a A#"Klh6: ]eΝÓ'tdCd@N5jc(0*}WnҹNy'}EVWsKF>>94n?;wϩi6EkmUv/3V<w|6k %c!D=vgԶ2V[WVzG;ˮqM &"奥T3Fk%tg`QJbT֢B4JeFY 8nϒ2J) 7yC:hq|]+Mt|Ef!C@iWA- ]J # J# A b7" 1a1.`0J/J31S\Ә޽9F`iLR?ϭJU۷fW)rP4_{]=(UEf2k ![`UeBQJlGMZnu5޹sgjZ wp)I290{R #Ҥ6>2610#NKV z!H2-X1/2y_?g*+U E^׵f4YQeZ&G`O8 X"sz."K8 qs!DŽg ‰gƪ s3ag}O?;]rG[KU;;[[?lk6j{Wog{\mԕ_[^ް~oNg. ʚq*3ê7?H˖6VuNa2gNb$|QVCey1W7o1nlnRF?^yɣMS5(ˠ;?v]VVKrpV|N) /mXX, (3h鬭/:Rz[ @Y YYY׿v*!񱉡q{>,JOc ij MosI |?ۿz89PM" &(7 έw:Ãw9jhbRNgu[:鸛-$)*`>B3"-"4pAk6M^.OǢ.Z\^]]Tbp,hi*$B+ϬI5&e,R. i\Toؽ|rvO9g?. уÝ||߅sM3CmzyPLiKQ$DRn{UJ)e"(1)*YH|Z)kmyQe {QRCŰ/R(Z d_`p^D4 BQl +A-R0e!PNZ]_CH@t%BT`Nc@W=~?W\8r]ed|{s%>{& }1BJEH"*QDS;ED!FɇbT()"[{$,Q»+E8z5ICRJi"4.ɋqHN[D n$y^% tƍ녿vI'O1@վqVoctu5C")!҈'UD9rd 99S#!DcT("pnszT4no~]}}~{<Μ9pmu7:8ؾ}]gN/Wx5GGoogkPi믾F^k!ĺnO&K+˷nE$8~b3hn֍egPz޺;üѧNz#g(V]7yQx Ŵ헾Qy7JK * Xrq͝͵”dr 3k++%׾ _[^U2xꪮd:LUʲUveV[+|hW!D&kmLI3bH#{k{}wک.>V|8:\Xg`hphD( o@U*\(hmuMJ{ӜOOm]}0ogyz^ou]VqWN݄LbvZ!n׏=EzᙳގɌPՃ7^}mwgޛuFJBJPE<"RRMfVZ֨7ԏЗHFL1E$pQi19+WV䉵V;~mo25E R.n~V0*- K*"}E#oAkȋ\XZLCm;;sĈ! vu#i<O&gVV |ffie}0hf+ׯ[/j[:弞,k2[-e[#4*%y2W 2*2QEY^XkI\dEIkVWrc/9( ~D\BS s[EE%]%qq|I)2Jm(5\ Ԃ+, $9}M u *e0a#G@G4IEςk-,@ٟ秇;S+w'w|=n~ &MYʲWմ-F;GW^x?3] 'O =AZEhM5WJhs{Nn,1Wq~yD1/;/2z'<ٓ'VEy9ƭ[Y32y׿ZܖʹmuZ-lVh޹Ν93gQ^puƉS'Í??F7oޜM{;'N> ۃA횢@B`磑HkkL:, R!OZ !h$-l-//rtڕG|sW_NY'~xME?Sw") ic̑&GnLgO&Pʙ?̏vS'{[|qR徉뛛ag~VU:XkLl묄y&d[Rj>s h2|ŗ?? uyf-e63hmҤ!&1jk,cє8G QD+ʝ?V6wv'&_LFә-rҊd ލ.p+uֶEj$Zfx2 i qB$, AP+҄L L2'Cke)͇Õ,E/I=Sn*E>ƴi22H>" m3"sAD&sxrDNqiC!DTO R:F!֊Hȅh\ii6=*vw=ȏs+¼Sˤm"jemcWB<[DЊ:e kcF+¤VbZ ]SwZ]1%.8D{d>gNڵ_^|i\՝`y([B;o-r2fk;FQb0PW54bD ^!*1G(-4u aI֢ҲKN/yzy&U;vol]#Fsڵ՛Wo}QQtזD¼LF {N[Z?{\;{39}RgϜ\:ʵI`H/O{euީyڹy-'oؼp¼*Wݥ흛/ @^kC" M>=_?q|,?uDj6u{CQM]%Le.\8y̙gΞ/~/O>!!tb>5f}cs:vUUuݮ37GϜ??cydX {=zZu}5m5FA|DI,ḯ;ù ޺q{!BBS)RlVf]j o_˿KoznwzIݴ{ѴP;Y&m`iΝ[jx4ھ3=:ংGIY$yD 0ufMfPBAwA< ƥ$ HiJA D ZXApؘǁa>wu"xΉ~a(! %V@ nۓoW^tNU1*ZӃA xVb߼zV@B݌(Jjy?sM"o۬AwqQF #@dTPE2{VWe |c|\E 6B+1z[-msi:-?ypgՓI3TshCJ ݽ Q%y:'$k?(DFA9FD20ԏ"4^l j 6@?FXCZ$ZInUV2@Ũ*,@4 cL}5 CjӢ>}b&"1 K"L#p ϪC=~`Jۤf}]UUcyU1;16+2(]yU]]A`X B`>33BF4D~؆J{[GW͇߿`oy^>sWU\kUM,kefF+_7xkx;k߸[o7^W◾ko|+_yW,-z>)lBY ^tY8pͷ޺馞M'6WwkkY5BO;Juz8uFA'&`#+Mf6m?×~ӟ"6Ol)T"("m E'̩a`5uUi"R*AȑGIr|Dsݻ˿U0 Z-ijtp8L5)p׾yxow?Fv5juO__ʗo?zյݕ僽4`"GK}c7o>?} _g^{͇~v,kדfm$M;o4ϸFEEe2b`emz<~3MD D*Ե2ؼ؇p%a /|5h}ϟ?o}fJx40` o©S}t4]45Q(TrAF`f|]q(Z&GL)TIj2֑8""PT EKk!0CtٴT)8i@( AT2%̂vtVZRݘи<69w8><ܼuͭɼVw-AWd {/;v4삄;ׯ]'ι|u֝s=٤tj,#crh[!h̦ݽw~r6A)JX(5jBQDb0T<3Q0z:'sxI&ɐ J[ F>pRJ'%.ˆoN@D@0h@X@@!] Z)"|#"I)Xğ}mIV`TܘsB12u' :,+Yҥ)1q KDxwEd.r\X~@`cpF(:AbLIH 3DE`2 ~T;yŨn7o}_Y_ #EMs"˽nR I+ 9YSͣLP0Dv.#(xFDMH6.VƠ~GSo]=Qe;KڝuZeh]|]a^̛qXԹΫkZ]Y=s\dͪl={G8aFvꚽg,A3x(týS6psKׯ\}{h8zr=hy//|:S(bLw;*d2y쑇}=/޹}'Hkȋ:!$>?59zEF2@!1 &>6x@EY\HVwm <vn[+zzy}{Cޝow/ g?xʵ=^'}&2yӊY"u{KK?{E+{n{gg{ǽ|/UեWa7Zb BZ,ES{Dlnmfx$@[m_zGɼ{hgYY!.Sfcg̦*pfDDRB !BE)(E8dyh(Rݲkc`Ley>rRaEd QekMEQCSw; E&b< SIs2B#Ƅ)l,63jeVZi8 !% *fUˌweQӯ&S?_fσ¥|_He*~umeoΈ;{׿rAgWVͯO/  o=t}W+k|xjst+KD2$d䙲Fdt*d>FB"ã4?0Ba1ԒDhceMy8Mf3n%*@@v{Zp (,nƉeR|tpr]pJQc0)R~Y^m2Hd6:ex HAQJGfA4A XU3f~IYNezq3&/^R@%g HHIv/D4*ee>o;8ח\}8uϙU[UdefPIyYTgTYɋ1|>?~;wncg\]]O `㛢UzE,ZӟۣC@6jZ)DCOYOSQ`y>/ 웹TU'z8̒R BpM&= sfygEiEA Jz1$ BuaA0y"5ekF鵫[[~CWz]G{'WO|ϻzΝtxPq1GL%1Ԃ/|3!ElnQQrJ^"#p:ߺu EJc󌵶?pbchE`0F8\ {mWM{ja(ih TG2tD"PŢ>!H)!rSxBMD@dEnZl}V{h<@E0 P"Aj?Y$djEJ H2Df!XjZ} AJdEGu fp   >j vNj <#CB%dhǠ-ZmAϫjIqɚzO%1:HigEBd" 넸!xPć(- (DkЊFFT RB0FqȽh:_yG]22)E(@ 3[dEI+" )tf(^J&cH)Nw9@#Hp ѡ5Y1؛Nս+nC<ǩ&o޺t=4/eeJAғ0;}g[nl}2fMeh6.ĬnMd^̗z>X\nn޵;hU3GEф탛a?sE4ldEǀ\i}J֭k׮9}Bz284 DH6&Nr^m"I)>&*>@RhJ=Zj6?? Vo^xoT_R{N 5N|6l_t`7L=½lws=S'/OJ''|37AT=Uk{kʩ{Unlf5P#sAk 9o~"@YLkÞszA'J)e2:, + B]7BE!F(R{{IoF4knpg{1F @9FR,$1MM|U,/^;Y^eIT]@4 "&m !e4CtQ"ĠSvq[2Fe:%? ia4JDD!Q!p"FztS/|@)!7pp.d @7 Wݴt; ŠLeCUkV=ݶ240j:Дj;[GLfZ[ј" h@)n2*(()0nQk}HْV vۅNZ-( hP`mE5( S{c 1JFiHh1@8pF԰kH;Jf|a *5.@"w¬Y|7MI-"@+u=:{'hTDA $D1  +!#%Dcug.DazAR 0&<['^h B0kM.FtB3"ifլji7B"1e,W * (X;j_Z,l,eQZm3ktxɬ:ȼjFl~a_:y}}fmxsڛf>/UrE׆̊NG<*)T2I4r_d$Z" GH *^1cp1Ɛc@PXH3C?̶,Iʝ;wZ;[J2@_|F׏K FRX Cdb\_89 R*WVWVWVVW1#ykeQ~>k)VsZTVp("S,-'<ϕ"}]u01+J'!$ZQhheR <"4&pZECd7!1-]OfnUD4<ϲeVZVtڽnkoZ&fnKC"/ϝ><F݃zVR1Acho&eHJPSh w{eG <!F]t&)?F|`D&A!p SB4B A8KiZP,HIi041ڙ Z@HYbDHjaI{+^l@a 5å^{㩧> vO%@DaКuP+z~S׳9GA+*p7:83~([Nj6 I\U?}_VYv8f JTh&]3>3յ,W[_ƣ=Rɳ~;^ƣ 5ZmҚ\D}HVZqT`aȉ~l$YPX3"` K"fR0K3m4GΜ}cҗ"~ JEJ:U*JBpBt VRTZ3 '(l BPwTlWxW}nd'T XhљlY0Xa7X4HOGCWrvZe'Z9Y% y2; pkW/wBpCO/h]SEf&m,R~'^|Y5҈@ltW_zng곿}w} T{iXճ[*mڝ^ۚL2KE rT!xmm^mzU902(рFi8\Z0I! ]HzDXyfr =w_;<ް{śot9 @*Q %KTDFcvA寀uw>ky~" ǵo˳u~#Q-ط5'9} 1wnߞ.旮^̯|G|s/ڕC8KϽ96Wb_*7Y=8?<;F4BR,CUMIEDsVU%$t޳!AVDGAFmhb1ˢM Ǥ.3*E< )"wOզn<7 1iV@"5I̡~4@4dYggE;cllE;WXG1j+:Cc9ѣ H:n9 BdwJ;] Crh( I !C,fCrHLXђEc(yԫ8W@0 WX]]ݸ BEB_ 碚4BӜ Ң? \bzrެm}!wT5꩛xoNcӱi$5V=;G(Pݸi8lqs11 iy@㪙 VfsI#TSK*Xʉ]9G25Pd|6nPL|UUUg3M ZUJjtC>q'Ϛ^zqhׁMSL)!, #mGC3>uchQJ!:M;5E U~RhI9ͯSWbM}L]d&v}l,j6iX\9vu`t~xp|kWo\:4[̫|姳`X4)@KNWWY{_{y5/9l mh}8Px2LgDjk?l~d6޼|>_oh*<|`o_$泇Զ[fLdQ!EQdjbjEr3LTR6UJfy41!R֘|x@MgnoΠNgn>RK_|n\rQLO$N{걨ܽw{'@ IDAT>Ŭ]'Mu50]\:^_zmO?ΦM~WzՃLT<+%xql(c.8r7&,'z\j8niY![a e͙A`~ïM.69A!)R2qfU5C_vpti8t!)90_lgR]l̦a ;nDh k3HׁuE 0n=wy7X]Rzpva2\gE$e+2L J6񨙚2jB Jޛ6TޥfuSgm۞_\l-MSc 5iNӤym|bm|' v|ϵ//.}8h?l6DQS4h"@0}xʨ́ySL̙z*NũW!q.yDD#vLG'@"Bw)1Yq<"p|_bdl)d)z熘R@PW6?3 &̦M7Oley[ ͆BSeQ\Rr:rY&{foVOEW7jJ'h`"xv;w4+GOݸybF޹cϸ:Oړ7NY mvFVoLϾ_O#˿;9[TM͎⋗UoƬPwmo:ޅ:dr,gȹ0nLʬy0#f%gbR ;w %yY%?9' Zq>_<;i3{;>e'̕ETWϿ0SODyM8 7>+Lqf_9JbS$!|9HhKgj6c>>\z2Dw { Im}H Sҋu&._/}7p< T_x}w=vtt)J9cۥf,܃6K#șmU|4z+ÃKnj~h%*b9L뺮7"`.b`?xRaav'*g(avA <=xL 4C0oTp;t\3Esף# իW&i[L^soݻ_ {l:Rnf:;?=}׿Cf_WUn2ok-&QNVRa<!x޳T1'ʉs*`NH)b(EHiQ9dIYUXK,3 sL9ٵ! .ZBp̀@h3'&$lLY4MW !i3s'2o~?~oד~Cxx%};_Ђ(i =ιl_#Q!Wk!@ΩuAe2 ;ዊI1]&lHssLL@1eS󾪪 PaBb؋A?>S,7`&jBD6 #wy>xp96IȈ@9aH1h Y(_}t;1`hL gplj☫O|^OW"؊鴞N'rvoܺG6]/W}]9J'M5tC PAA퇾}LY$HIW_l`8,kTԡvcf 3GoA`WAA֧R7AիW?'K_^z9»WvûMwv{W/aŔ2!;r]/4 FPr<1)e!AE\"^ ʽcDŽ"P=!! n6%=;=y'?ͦ3's?,>vX'Ox'n‡?={xڗ>o>[ԋҡߛ%R{%EMƓ49@Wf4JPS[Q0RSu-nceB4:p4c'

R}RF . T,G`v/_՟WRKp[i֙RRVZwDTլJDHPTSzIH$u)v޳A&S͈LpLDUS(&lf9sQ탲һ*"Ř~\හX0ߎP40[h3rx՗>s|ڕbVsa>8v$xRDn_]JsfZŪI|@ZU:a5񉠚7F1pضk_|)wokK bBPy__;4W@K3LfYlusM)zhhu*x\厧$o}+~fSjsW/ 61_ 0.=??O}>sկ# v|xggozx}yMVR(B13JQ(P'{&!J``q}ϯ^3>L+WN߿vxz)h秳xݾ߷g^O|?{o޹{W<`Af9]}k?~Kݿ{,4 ARPM$ 8+="`(9H9`#g$93!Ҙf#ã' Y J/93MOU~o}LJwmk@EcN]I/^N$ v٥9\<}kW.g׫f18f(01"* @̞g4TDX9E4=o0 FohΆ*b1)N❁Lع,Z9v#"h]/ ov0i{nNNs{IŨdqȰ*Isٽ-7gN_z[x⹳Eҋo/uDG~|@j8n{maOPpc.ksvmpmշ\(NT]sI=8<'ܐ_}^J 8D\͠뺚@Ƕm>&EYڃ@Ű<]'zcGM=G$сOŤ3ȱoTfKJ+ sl)E%AޗbEU3 B`#4Jj&v~X7Ui[jd'F$FاfY10 Ck6] EEL J=ˑWt*`7d\KIG@Jb+{Z(яd_'v=:|_$90۾UR1o uTKfAuu~3bROkph;O6fi5`;~wW[6`$r0su0&Xd *vh3)s%{hyR8˧>Oŋ+O_֫IOWWݶwV۽cxWȃ_x{|k/믾+{P6>߿rVv:6R27АH(!rXܟ%22L 1RPjNRW7#ճ{_ y+_|h:_|_LC?ëOᓇ֭7>_qz}v~G<]\pS4`ph5TnD9%I؍gEK 2 .ww(J"|͊U) )\m˳ˇ݇xw~CĊ7M%9/)Ǫ:h:k`oJF8:k׮ D7V2TU<N &ij"7("`$`8bKΐSIRޫj=H>Ȯd?%_.Zg@J稨 (aCpH 2:`OKW|0.7_W.N^>CG>˗/#Il Bsc^ݿ8}ͤލ'^xw5[/iVNj|7g;_z5ǁP2X!1JݺMYR_}`3 [rbML"x!@i TPj致! 2EBTnU2dd!$ma` w|y ãL.wtYż[ < ) DA˂ \: eCDfAh9%Qܒmf卦56[0HS@O"^yIy_yd)EVOcBWF !d"@#tXK_ܟ3ûB$}{C, P.fcQK6h ~M /!~b! C+%N=:lW0g_WCqfpN6};Oa19eF$g@ Ğ\؍Ub4~hnb)]T*d`f$l:o_}_k܄?5R"Wq3/ۃ9?om:L*\#0ľΡe@+1Y&56фEADYq®-X"1|ƕhlW(x C[/W?7 O<{jcBԀ<-0}wi2xqֆj.#{hL4E+C?(:bbX*)_ q(*l-U(f_3qlo @F UQu̸ D# P@ PUbۭϺms_䋓 |=nXvC=Oxiݵg%MClg=y]صfmCߋ$qUw! rIL+d, v].y;G!' X۟?^9;f֫d; d'[/{"2v.0ZhHnaH1jLT` } Wĕb3NFsOP-#U'MSڙea_"GTgExA̒79zҮOg iTfWuT eUQnwHEC깯ֽo\'d C3Cv/k@ {o*_=}lO޼suy:]\~xpƭ7޼wM/~ywݸ*Go,yMܬq , ̆g9LאdG9,w%πx7\`s(n%_M;yOj&"1b M F5+W.nW]q'{^NWo]ju0`:GGAu,~>q&L'3~Ӷk˿W^g^=0հ+O\_UmkY۶_oH !աrڼġP[4e,Tjo? &آ3L&H`ň|.-]zt: .ηbZo۾caG(7M u9Os*lCJ#d:3\9kK쓏5z6]z& :fc%ړ<1XaY0rSJ+",uYz^Iq#y;zNcSk )Tq%\c_Oh~GW"g5~Q$Q۶m\BFu" a$U(.8^,CEW`}aHj|4sl l:kaش냃g~]4("YSͦU`1!Xd 91\Dl'۽fѹtJ,& k A33/~mYE3Ocǫz;~}!@/BI{Ou?\\vT7CxI Yվv \_;?߼%wN1;5Z鶃F*v[KV? IDATa 0գ=~A}c;???::"P,Tc9)T.#HDo,+䜋?{l'vU`5  iM7rs~۞6K՝_ڝ l+똒dP"gWfՆPVڍ~o="NnE<&mnirM=QI6·FR$Ɏ0s 53 ( [=WDf]oH_s= L=A6_ ]n~D@2)s(65ECrʌȘ="šzbYͨp+0X ɛ7nzv%!렆.fJ4;nV8;>WaW#,D`Ϫ-`r,vfYk!v `ۤMpn2i|x#QU9 P x/FྙdJ@ټOn$$PMTma!I\.'/}k/W/m"$um7m]۫d+W͐":z0M;F DW1ǬB!Y e?=я/?g={Ǿ7m!f]OSp_Y>klh<ءsd$ıa.*i.̲{z߹w/?'۟yԺ88#lV8mcιU+/Vk7nW/zto^/]ߣw 2Q(K_bǪ&b2N;4B c"U@3Q3K%eLc0Q}yH*O>m׷L7z:&s59Jϼ"1߿s_Ch+R x0v5Gr9-|L#7j9Cch"crGKI%eUM%  w"Tm_ƷxZyNS_X /~KSo;zi9!8ЬIi&")Ƙ08ޑ!~M]PE]U%ΑwA:""8^*ݣ5- B0de)Mӳ>k&ιl2ܺu/Iy)4<c嘑<39ެD pW5g1Et\]3a%WX9BD3rF&٬ۋ~͍J:E3RP H RL֟7_y]k౧k&{]q\Ֆ4"o3kRC}7l^ i#866e08j;M"g5f"aoyߛM`[c? }߶gggf UC_&9En5L}$CtWgRLYIJMsנwLt-$m>~ljbc$S620C$*-X.K1U]RDlvQh&uCجO;k_"{E*tC$r"m<QH4&̏v_/^vd<IJS)n戀tv Wܷ|C}e>ⷾ/|O=w|仞zr큘hf_CO{*j&9T" Cv]7>ZXdiUV^⧾y۶ vP@GsRQFJ\UNjxY??H\V.,zzzZtu]=h.b?8yOm6_җC/C~DKϾ] $'#iՍ8ebMusj%sp~PІ$0a f=ͣQaZWO!1%M|RapIavOmn\ᓇ3?;=yp4"xTaUD9ǐ灍,993]D2:TwrWF@#!b8ʯuc7k(砙 _Kl?7/?;so}w}??sׅ_)F|zb}t^Vyg43Z\i8(4M8`5Yl|,)%" rhHC',:Y1Chu8?=k ڶl!hCJD$*x @.tm]b')C;E&;GupFP(7@ao[g"@*U dn$YS]Bq8! 3?7W buA5cr}qɣywr DɐM!fOE 1].- D<}~sZVkL)aHqn "ȣ㎐,"L w4JV$q(b*" ]Ũ  M]H53UN;̗~ w};w~'z $O~!TBQV*F!j}C_"%0 _v7H%L(@a[#MYM6[؟lK,ݤi֫.ggO|ժp)TՃ|O~U{X0ж}׻x4kY$qh[7l&Lo'w'NjNOχ6n?[xٚ&&BbECCץ- ^9H|NϿmgwG{@xAwdVu\oU䃧.+)vSϼ ~go;?su~NIU䌦.. VԶil:; Y^I3!t x"nM3Ž˦"&99"h9 9Z "1{lUUQ0v]{2]q+֫_e3;9&v] Nɺ1~ʣsaܡc ȄIXM>1<z0 Y ]1138'r΅dTUjUJ NNNA!T0}SP *އfwƪsN)rR3?RL}Ϊ2%S"GdI2 9F2,kwc2d TI%0 ^tzywB*hD0w9,fΠSg?.i]bي0Ы;}Lh\:Pe[fry_9}sPlCߧ$ 7SD%"d4AU$5CUDSHFZxgrT\K:&Q!ͬARyFO?_w}w~>v[5 `)dP$`TSnHE @*طzjd&ÑrS+q fsD\F`sVpDޤ_g^L&t~qqUEP;6$$"r3[j|k/~3?_t^v $i| C̎D3+b߶aksp8C)pηۼؾvoo$/. |a zyyԓz~5 )PR;{W~;зv*fmlgǓ/}W?O}ͯg9M:_Mf><<&6 P$F GYEsIS륏ð81{TEVL:)+%L$9%C,cKf$̄MXWlS=FpL_ G2AfC4f$1"qj*cX}p\H\4d!ːR@aĸԢA$`\K~ɪf^l7|N}$tqXu1FbTTDUFVjqQ Emb2+ ;ot| _O׿vSڶ]<dќPl=zdP@y~uˏ.ݝE{%eƿ[jGiΘYRjܴ& GP\=-fc\k09ԼJv}oQ79CgaTKQ2bO)#x7o}>OڗlйSQ2ePUDcv20\;Me:޽u<D/>Kel7)d=XP͛O-O2?~Nn=)b3;::{VSUU`)S!cA  <(p@T}UsLIq (:6SCԘG $Kv=9%oLhip @ j"F]t}pUA2Tdl T$'јHADdё:pG $"RE@""y|FB@DӰNn?zó=WO>m*4W2C(FUXRQ,*@>Tdf1s qV!s@sD c>8r؇mIP3jIfttHm(?vONw?<=9?{x~~z<_۶̲ {?[._z39vyb.DC3稪8XI `@ s &3e ʔwLC5ИBAy&rKY 0tUO߼ashӆ}ALfYDD_OtVUW!@y'{@ιѵ|&0^~yq'M LJ,DrD@4H6@4eVM9:f!}/4l:{񥗘Ӫ^mքpVrrbU+ y3CjƔ bUr q|}GWʯ`)!bߵ յ+ySMͨRN UsZޚ#Isr>a~+X>e 8` prU!A25Oi2ً9ŮT7 o6{gIC yc@٪O&/An~4+uymK ɧOha[vmEɛM 콙sL'U+D IDAT5Wv$*%gMCb1'+Ko۟k/6yãلT*ib?OW&Mo;wؿ/7ׯ9!6lFLUT,`F/k3P%&D3&? Q<α1rZb4|m7UU{y:Im[O+x)1j@ ]ܹX쁊4rDȳAqSHRS0@rʢ@cźn\%眇һIfR*Y%E|p~kj׍of.m3;02VajQx jʎɳ*W9CIU#ԯ''NO#wX7|>'5Z-xgFw1˗u@#Z!I(xrޱ#F  *`] 1-%+ImT T}/'xm>͛{ D2h d)U LGf\["/j٬iDs e p-鱢R.]c}HΦ *m7KWq춿?ۭ7Z7(M3l6 !xX@*Dr9㜝s"B?fjd2;L)Ч$ZDz``2lRqːdH @NzGWt䤂o FjҤZOHFfaiEV& m9s7ݟSիղl:if@DB"8 T)Egf`IѴA؝5ED3B5+j?8,ȿ mI Lh3k viov1>͛7ݽs;W~CNjI@h9QIF+UJP@e6PϪcٰffB J u:~j `LQQȻ Q:  nz$Rr lw qU妁0ebkW._R}nӯfتsnHl5ŘEUUՄ{fd2dL#9DԳ> Cdȃn izNIWN7>B5U!tmcir5ჃCӔ )rZA30&bۆ m5(x'hJ9rv]oMxo{QL8lv]1gc!3J99s!DB2S;w!r~%<`9 C{ߢt77i&Ðm늤YϲH9)F9'͒hggf*Ln6[f:::|fݵm ``BP3t]hZ<4M\b:F)00 @+=- KǂVhɀ HsQ*+"`P M@RJ)I1 lqz}4HnL101+)8 `Ir'olzTb.>$_Zpd͌ȱC vv~rs{9ug <,|ZmOmmAU~&tJLwi#x(@rBԗh87xm=ɗwu۶놜ZU;DAD"ch!4NRD ]ʗG21 7_2CWUt&[+& [S><"A!V+/]LDˋ'fP{SCefA,PUL|8ͲX,Vq$ 白r ;hi!IPb;%UӤЭ۶bNSayյ6MDɋ}FFTlfnbHFq]?uUI`Jj,_8.V>kM7-B'''I$Hb-3dl'y7$fS U8̭BVУ@ f ?K?|^Wս;rS2BcgHwmkшp- 1Yy»Xv P13e2F$9S4) ;u=~KW.+ŅObNPB3kB|娂6m2 293eD)(8 x~ڭ0D@#9ffTDhtGsVFjq˷֫mM<&W*E`S(iɌH\UgwGgO+?f2 ݶb>@LYDr@ ,{HVFd%BSi!r<"j%Lx *hw>_cXڇ]7h= !*B@P\f9_p|:5W3GSfhGt.L̲ب)B[D52@l9YoNɝ^zq6aRS0CUcrem{olԺv}fXm C;*2\uF9gUC"#,Q_Gdf)BZzuc>::rho/$kLu`A@3@MϷwЁQyw P5U=?[-7+"ׯ]NuUHPR5l D`*\i ˣgh iUTbNU浫xV'E3O} \IVnLK˫ThLDP"Dh6֑4˗󅈜<<{$'Qs2(G)ss *keD*`!`],T((0D FU\;^DF Q eՂ_)BRB =gb =9vh"6ۡ/_:vzh9 Gh ~h%L 5&/)XTVU%!8@F̢REJKzyOLPW%u?Y_8Wo4UXsTEAJtDa 0_,bJUU qUsU438v+ 0P֜E'߻|!˯rifKWYmMh1̀jxn;{OF/yI>$C2 D.XX1hf<7+0-CF+43X<0sL(8F#RI1Lob'ˋ޽UΥf#QJIsҘU H,&Q !swN6ILͿO? Myr#.!eHMSΒ%e$LCY +X<3ss23!=X嬦XJdv!׏T YqhGrpPT;o__+W C0F@KY@Dtr.hvNT͐م@DYtH H'32zkfÓ;ObnӦb.FN'&Y"MD<ϞM$_.{&Hʔբ&@yQiB9)00;fI L@6۴m71u U}=1b$#wMn QҚ \G@ ^.ggfij8ƸYPlvx7OA}?Q,sʹ9 H>S惰︐h l@UCMkyEP]Jj5žs"OED42є0s3oܸq U}7xvuo.Q!6SQ?RƊs4L.b4rAH Vl+*O&(:{`٤d*0 !X*J;6Mi͈qT%kʢ+"u&s&*m_|wO'^AhTИɪ#B(K͠C^ c4rnQB9W6ι8[jY5hdBBi1CMT ]A{{m7i3Obߕm*"A%EFSL1;rCpLsոDv 5gUճxj۶wl6}GW]zmc! hCz#͊S;&klBDA V&JïICAq-HM dm|=lLҕ9|lIfYaQ0gkOc1L":[^` zWf퐺>e"쳘.X L Pz'S])gP;5 )<64( Aozj۵ͦh2hZ.avX@;ݻW@Ac$ÑmPk@tJDj\nmmOͤL/ͶRރEm`c^D(ѺCb#)BJgWφu[0󴙚QcDvڶ0+"CLlvҥ^)JlT|A2s0'Q *4>@Rш`97Ā,t-D  DЛi`VAƪͰtV`B%y.OCBѓPQ 3W/f/^_1ɀM}R]FHx/>%{!ͺjHPBU9'ɲd jMx anvy7;pL1ep89<<0SD5Z>JFW h*h9GGGFιm۾9iJ@DTߍ(ʕ|{Щ`J) h2]` 2a-G[H {3{S\O_W_{ʱV>̚T'޻{U8\gMDG%060A< Y1# ):PN̉y}L(jmǏзOVcf85So%981[S;3 U0"0C]]IBkS1p.ARE ]pooK/~?n$)KTt986[yl=)c'V&!g9_?o΁4k:ѳkj_u_6>^: )uw-ݬpF˔ 9,^PKKT4=Cnr0 V7ܻ7;s)8&wtN2xs D C2@$CjclRUޅ93"dK&ɳ_sXԀM;87~,mDdy* LtX.f`GAkWݸ~=K_|}ucҌ`EU̴ f$:BXF_!|,&Ƃ脜Mu31nyPq6wlDv%s~*&Dq! ̃1p=я|+Gsb`&iHn:C\03eAĮL?YmMrIpf}+*SL9Gb_N)u="Q|Hf4eibnfr޽Pw4b}~rQ*~B%# (PW)s1;2ثFz2T)IT5"\(목d49'L6ѣzKq,=OHԤ8Ϊ|*(Sa];K_x5a].]?Cשjp{H*9cޮիܻ ")( ӔbL6[.,XnK 3 dl>ǖ":D T<$,Ďɕ%9C#DƛGW@ r6瘐M5e__.!a6 qZ;;{=* P vvރDo6m/}$?3?k8=$ YʮrC]]є'L 1v p2ώjD4cT1H7u=_,B "2Ti?_zy0N/ME#McRWhaw^zj}zJGL{ ~J,o{#nP|Z ""zYMش!U8,A6=3H1#,Y}>ev>b45i7]Ǟmb7Cڄ:E}νv6}ڦ1f=nKߧOia0`ɦB$y#y053BM)?/~|mz|;)i!@feSqTAT(WnݖB]C!TrVE&BN&TjhD"}b+`F3`*{jD{f\SVS]!<<Ԯ#,gf7y* .T׮^o n3vnfcDxBU31HDĮ1%dM]l6ߛƽoo7vc΢(e5 ( wbfDSQ9 ;pa҅ZƧsl>b@dB U,D@m'DfD2D`H`DvȘ-i }t>{^_.ٹj9C]z2FU4T ekEb3 ,L):v!8DYbJ\u,jřy\mL]$o޹v#uCdld1oS+l[̬mMl7f CH*bK"3s`f{hja'IĬ4d䐌d\`X&T$:- "$M[5=y}|q?{kKIIs*R.R@"Qb`hXyψBaxQmhjz/<ݽogS5)>Dc$$Mrdy dHs~ nonݱ/uDBWMVl+eb_~C!8QR%6óu.IGʖF% :( 1 , +QhVUYos֦j[wID&%i YcWmMU8 H.jVDV5UAWl&:f͋7{ڷhCiP6cR+lL3s~ދ)IFB* h)ag@"BA`4g=8dD"0D2P#2fEhHJL@1k6̼.Iee3PKJR ѡ$I*f>9绿[uW5*m01U13OL)P\Ľţ#嵡jL`;l \Q""9^2& /"0]w*̨`'  ( A./ 6.,y8<Г5 Hwp";d+n!w;>'O9W#fDLTI{~e{0ɓι?;z[,=`Ծ|SɎ]$S.$F`[;˩9;]1pX,fMs>~|X^ի;;!sfbvަ$LTAq (.WD$TЄA3܇ ^>A0Ǒlv+ )2*5Kj~J 4)ɲHdʦ쫾9}( ]< ۍk'0%BCpJbz7~:_=q ioZ'K&C!hhMTLK7JV@U@<^Gu<<TǬ+Q igeU7U@@.TL^c9h-~trlz9>xꪪmzIyjI%"|zze9*w0ci0qcs9.8F+43Ь%@qbD)6L8hDŽE= CR;7w1ʖ7c4q.Ls~UKjnLpc\_yׯ_q/|s''Wšqii^R.eG9QMrJujBDߏ&Nt_}rpTPf CN  Ȋ(Ƙ! lZo@{{{˾L!`G\"Z]}\ \+DEӢ]4\9'3#"GGb7]yw:j\⽜W9h[@fR+h[@I6Tє$G2Κv0iQw1wWU3 3,V!v9jS> Ic21Ά?_i 5Ͽ6[Ngn~an "NrsSmwmϪvupuIC?m |SLl 'm狽8C?HJcL)TMՍoZ_U8/;`&3Y)*8rU nݾr;7k!w9j>sbʓ/"b&t:)pqI[&8TcԔMv⨏b_;__y U22<01f5ULcNTp2 Lb14"88&9!Z}ӯf\OΜDΣcvT5B"I~9mzfj3{-|E)gqn}~TW[b9>99 6c*D@1Ud*̘h͹Yc6?s?sȁ/V[p΀ ȦˈL&j" D&̈Rʦ؝#aKif B9Cd6CS4YMsY7SǼX,Ltn/67 SA"O%ܮl^L2a5# f?[o۷{jeÐ؅[_y}׮-כ3-8+@w0Cɗ.ID`KF28'R[zy+M樝 dv } ~˯is9:'Sl׮2YarCn6sRSN` sE Bt|/rݱAfiXҥ H`dJ`Sl[V? 僫*ڹ5uY-sUPf>@Nxgx-Psݮ [ofTbyaBݘ[Tc 붊.Nc{-^Kگ@M=`KPKbMB*9,I 2X,0#3SLU+ f^Zj݇f. {ɣe S]-T1f)@O&C"* eL'bFx|{ء\U{Gdy$V"K9wy܌j֒cujqqSybo`0a4p1J. c90L J@# pفƭn\[,r6qWv-6 0瘉-睓D17U5Iz*ZP# jm$~d$Xo|;o8FQsNJ+PS横J";iy -JgipMhӓ'{fS/)Kh!f)Go<1ms0duޛjm p@>O]q5-Ș 1\pg)ow@!pDraD;d٤*KqI K/uZcUHwQCTC$RYJ!b1wΟ<99<:yƛoλΫ^=zɻ5q3ȘܼF釸|Wqb[b9}!,SR!8"OMqjI R,X*bR_& fS.:|릪}|VUuVGsGK؛ wn}˯ƣyQUw1O>\oMSuC78CbQb)Ô|YlhU!M=|qxbI",(W IDATI)Kb`*fvg4E U=7kwᵽku3߬;"|~׭Mk7TQdrK(09ȢD.F@)ޒ5Yi\-0w/|bo~xx9$qLC4U5;6@G,!N@V\׮$)4ƜsɽҦ!Cy/)g&bї8hSΎ]UW0l'i;py!HD86MQM, ?`Ȗgub~("ウr bj&FTdimS6IJCq>+ⳟ}[o\rz??6H;Nvqv؏=^\<;??OӬi1CeSL+Y%[4g32NdAd͈l98Z bd M )E"XFdʚA )$eǮJ>_R_ i^$Zh2Q '1qJ8y︀I)g_\x֭6 WBI7q]8l<ܻ~L,P5?? /]͗X w۷o_g?]qJHfWz٨~0{}!dPds.719HhH8}EPHD=SĬ͢Hl '8?=7k׮wcs oegcYS!$d >4 S&HђhVS2'Z$X$ݮcFC4M7)'b^o+O.Q] W{֭[,C02 ARPw 9IJfJH9f"ɠ i Ɉ̳cQ()%,9!]zb{_w}:no} _'}-f8X>ڻ,b1[DsNP04DI$qGL$TA`˜ x BJdSN- i6"t`ȓ!hS&2"%F7μ#б!dՈ0aހg:9ycwxxptZzUb$"X嬝VYA,Jٯ&ƍ}2b/kқoU1&g3~cGO..6"lU;ki9jLjkB3E3I )ֳۛ..}p.+fn6ۘZB:nQ}*91eQ/*:fOD.qkKO/YG6ӌ-'I% }.^20c(<*$FSJYP:)vwM]/8h)ss U{Օk՗_u޵[ݬ:@RUg*Ձs9n<@;C@Œ]9ʛ##H@(Sfɢ)e1SPE4ݴhբ"J.q3Bm| d0LQn1Y$',LBF Cs,M^;*QI;c;N IDh*Ro{׫݀G*|hb^o7lH@%ژ!L>k׏_3W3S3dI.&%" CS!JǨRDrR\@ue<pbQH$ۮ?}nO*x7tU=?:&ѕ+WAm૾+y'S>x||<;:b H/~>G岪2~)/wلPԌ'1°-mpu?v;{p_|49 k8 o=:?1uP*P}͚%31 !7zS" 5Jms]{W_;<g4cbv2c_)Jubkؑ !׃fyGmܗߑhT #"aM~tͬ>Xϐ')7y9 " :3dt6J>AQ3C83syo#3/*5QWE[XUF4V\ 0?:rl*j632(1IJ*f&2b,*FľsJM嫪ǭ>u =)_7|@XrH)%BD R\sB) fL6$13s 1F=OͿo]? =::U]?yryz*rf$òOi(%!+ڄ`;=}.1f;nc7Q} sx3"@qV(uhr/lכwпp~pH{7[~K_|ܭOt|EFCUUC" $[΂FdfLdE\' SP3@/l2smg|[.8Ci2$c?fPU]:?~-7*.&K-'M1!b*\r1,fD[p Ydd"R~6hY=crL10ز16DuC7c30i~k$%vQlԒ!NCMh&IcQ@8HDTU*u5+r vGXJiYk9㕼bEY!XU1bV%%¿9' 3>z~[텻/>zs'O^;VUFPׯPs˼]CP@ιɧ8:GżFT5{x?d=(WL& ӳ֞6ĈRB͔=:!6MMUӟ>}?7fJMgğf1?>poU?/ٜ;lϏ8Q=cVEU^{WnlW_;w_{ ؘS&YQ_jTOIsjq$$g)^*yryuhm]܃7g)ĔƘlLb$5KjXWsw!p@d.8MY"Zh`,9k갤\qRBpIhe& Z%C >RqP]S_ &1fcSEbEP&EDͦ @!2Cc4~׾ph v]o|>ǒ{zD| |!$6\<.S!mb|Ey[W) !@PU=wmggã3 $TbSe`z+fA&O6NM*#'8X,]~׮߸vRqywFf[}^yS|VKvX<>5b,"DzG~}Ǵkw~t{1߫_ͿcۛK@lqѭ.6kD\cunh֜?>{w|^46 ݰ A$e  "q7,"gC3Κv!M?({nX>xMB*CAJTSL)圝+%I9RIݦ:q9 TMqeCHcaaNz88gg*Dާ+bpyߴLU/λټ^zq}Z6}#%PS8𿪜, nB-l]Uר|*lM]NL "0P1=[N SHw | 3UqH. CXƜO"Hg0ƀPQ-k (5rzW~};??gf{}Y&!X@AkNX2qMLWM=wtp;e&}߸ƿ?1A4$n&k'uٌ<:r} nz(؃o8[Ͽ{?%-b) )IYy#}Us=$@chY%guJaje)C|/ںQU\s,mJ)([hsWܶm!'] MA%DX88,a̅@$bzfӤR6"Q3k _ںvHS0:fHi`do%.ʎ$a53h0ٞzy+_1Fr#9-˨p^ukݸv#im(O/"TU% fvzXBŸ[~<&125x 6Cg1aff>i33H.V|W_͟~y?]w~ݿ??۟+>ýë{۾ou[UlV۶u{phj{W?zUNI&Z&tMMI@RFti_G9uBl\n߽yvXY"R@p 'Pdy$h騚5aIA.bUrTG%ؑ1@jHYmιau0vY]UE"ٞ.Hm};ϼV4CH/ܶ;^vEY2Xng0l..j_3 YSL;<:sko HTJ1x\u%:^V)JRd`PA]"' ~U'ƻg=͌EUvvPFY rm!-Uۦ0wsւP,(A`"(hi-IЄbC"dV_PD01f?>?uO\xr^,as}wd]maNR |g3X.il}4'1\-g`F;'"mW듓0Qf3hkͻQ>30CUq4Dȣ/}i>?8U_U'>O}׮}kWQ׏ON7M^ƻou3M$+HVR͚ ,KQ:Af-ўv/8ty]a`V8>bY|o3_+9R#5 OPE-dݶ/ωEhPMNc""(0J(j'DSFx:E/ߝYq4DSM1Wb R)S1ƋnݹS׵j>??߬օ4*\Um ;xzuw.*m=ewͪ%[q~w|Ey$.Bʔ=s"켽#21EX{j|A?bV(ᝏ+J徤.l948EƋQ7֥S1f3*Q!*sL -izwUͭ{L>ƼXmm[׾9!H[jqF3r L )A+ A{|Fw)u@J "1QDL}4]!#:go AL3)""r$Y;Y9Ei{W`52$ F/inK T@syf?΃#?ԍW`7O~OW?r|?ޟ.vX,e4 Hoѯ2nj#&3CB}6oibOU4i?p9y.>@dq[Dlg㰾X̚+?ӯ{_W rK ɲ W_'[K/?G|1ڙ[wn~+_E1o!jzX#Y^;}ر|QT>֤ks6սfY\S95̱ UHI$c)n+n4Q52"CBh"rQa|"8d|:A7 o}G u(?$J$A$ Y}/o5Udv7۴a¼w}ۯz痍_l6ۭ~oom?*hivr.P1Q͊@1"IQl(|>{~3lf}!M]i8TW;DɒsVјsYrYL ɇnyBS7yo3i 7F,ŜbCdD1d9tM35qf0"(B'$Wј#yd@%h,&YS8ö_oztebI!%QS5b1U(CC6b"GarI8ľnBS+Pd5t})ih}y&u;oٌ] $hI( n?w훣(B4 i9Sl&zG1J7U;Ft堆HL%4: iRyh;o7*0N,tFc=/ $" UJZ$hpU # 03L-ƻ iSg^{oſogW8xC0c"DŽF'ckZlifb(9U XTטj>D@31l,u`$A^!Ky"LkD @D,s9]KTDZ^,dSU4ёVU)TsZ9WDޱW|WN?½x]O?~Oe_mͷ]Lb#+n~?y5fW΅U?r?\5uLi-Ǩ x7}:'K%A2(d/GԾSܣf iLt֭f6IdD!FQ烚b)%l`Dz~35fv{Y;{El)FU3Ǭ|HSDbe+c&cL3{yfΫjNO'&K9Ky"3艝#ٶ1EqޮCZ޹̈|TyH~|w^Ѯz[-ݼw9i|5fDY7Scā<{r@;@YPWι>4VE, rR:0#5TU`GLXUfJ"$zPpT2QEFG=t+@;ݼ>>tff3 lhvf)D wΕL K|عHj9}$ EgoHl6_]>9Y/BśULf2!;wXIb* `E2q`9bVU) $'3ET4#2HBMxʹ A2NFͨI$fl*`(d`GĎ&] F+9zM259^Fo\ IQy\Ld˾ (e3u2z Y nܺqpHȒ&A6$4K*+jEQu۶iHNdh"iМhł:|X6TowNںnTbc"׵oF$uN]/i8M<.⒓ `Uڦ0nXDofw޽ |g_g7ێ?L*Gf7(KMaDlݷ~>_*EԬ0&o!isٙf.ZDT:6M)_L3 Ƅ&RfXV|#Ws.g2DLP5ruH‰N=M9$!T53i$rc$PW||Ň^ofC{/?o^o{oo6mvz?t:u5 ,a6oByƘ in1FL<3#%B9ȼOuys`<#XN#!zpsCL%&HU!p#rj 8PyҘ%CD\Üرs\I K,lXΒRfBZKxq=xrVL% rVQU} ̶$%&܅O(^r*syAN;*37_ >zWM}ڕ^Inu_{nE΅Y3Ɋ U(jIAʵP@kh*`6=0;b+84x9urjXz#"if-y:۬S]V"J7# Lgj/ߺys]"ftOѕc&l1"9C.n9M<}m=3JIA(iؓ][5Tb{q3p."bV%sJ"HdZ9 Ƣ23B#F,* ɂCD+r b0!H& j pqa %iw0)J"h '>| D{ L0|:#,#C ;o$\NdL;N$tKVΪ9C-X%JhHy)&U-ΨR؁2B1+X88kJiLiTI&rrn"2 )'_nbZUK+۬W].f咝cw:{qom6bz}+ruw?Od1,!WFys]V0\^uO&k0>lI1|X&kGosY=:ۋ(b\BExr*0}/-3 !!Uct%tK*e] MHػAlBW^J|k>|Ϗöjq]9Ϫ*)"'r c^lӳfV~U8_P[_g_ٟ{t~:j>]6{ <Ĕ`'n^{S穮ۈ80$H r̜w?zƒt9Ff&DWI-ܪK 7%.dl+WE{竪s`T"@,%4䠨2U{}ޛB,.T9#cLCJȸv[931z9g#GΣK2LvkVUB.`i6TvZVvY1Vt+y 9-ڋ4~7}|wTCGi6}~7nRJEnsg59pn G5!ġ"D xyK+" *0 #q8:<*F6 #2uY^>~t[7!'BWr@λVESNjt}Vtg;wj~s,D΁Oœ#=/..CIj$Q0%S2m7f[x8z&9WUvon;wIs!\;;[ݟ;,i*CN5W1"nUɓQ{/֫mL4F>P1 ZuIJ+h}(Dٴr9}o!⬪ee=v<>TuP^rUX/IS|@SS p{8@|]293Ղ*xM]{E,S&@fTb\̀C\N)|Ta;e>|@%V o_D|;V1ѕ+rggglșk_k1wYy\k{ǎ@eW&:NAq:{d4 \uj;H޴.2l(cJd' (: 37[V =UCLA \{}fS"jkn|t1=L :{R4QRo`|}/u9睪AIԜ-5c.yq*rդtDDr2TP,&lMVTs@BTue( dP>R倧򮃜 )H6^(cP2@PX4R;)@iaVPhNT5FD]VQKp/BA@cBP4tGQR`DTSUFwn^vȞM2*LqT]&DT!Db fD©,%d"HGh]7,_w^X}x1_| /+?99y''> 3?m\![.Jը*P7@cL)z_LwЭEʫH`Hm3& AFy2_}|ugm?諐Us@=G5Xo 78ܾu#! b\ &/sfBdBҮ0ɉ]}#KH;VA2u V+8l6[WL2CR iE$>}_ ˽ mƵXu}ro~ IDATwMh+)K69s_yYfmt:SCpr@̌ (PUdݩ&"f5@v9 Cj<$kIx'΅rhgn>wΩ!cL# RJ!;+K=db|U׭ Ta֍C]S&l ؛raRAV5D\Cy ZD@)܅;v_%ٴ  }Z8T ܾs{2>zt#\ܥbW[z fUU;/~>fSD` 2DiDĀΛZ4Ql)gIhlAUQm".]b"! dlC< ol`G735qka9W?`1˖QW?{1,{Qd\9:];!qU,zI凢5v fgݶm7N ggQY@ |]4"& u mLyk2lfK8͊ 0h*201gCf_2"H1P | d: D ) N`:nuWʥ{OGq7Y@5}UyTDTJ2B1u)C*H ;j\ԍq속 d<q$jFv^wI ;EI<4 f@ԦU.i kWϾ6 8]7?Y=~o_~L>oblqj%oN o,A~ f1}uꎧs1PDۦk40c4ڗ_S}cuBpsyuSdCd,E\](꤬<&m+AAnt 9g61& N$g_>K/8977u{@-tYN8b7X0v׮w !o؏[ݛ'ppE ?YBӮ_>*r]rد,Z6ݮLJISA \s-M>×$;L931B rJSŲ;wzxx|$`ݣ)nofִ$ bJ~@]Z:tD4[.=j2dS2{j=wi9F.- FferayFU$\Nf|s(d&Ul(zhvr|}\v;b}Ν=

dٷ䝈vPR7+2;5ag.@@_Kn& YL!VmKwm6o<\+,%ˁŴ cIS\MU3@_M,]j H5h ?bD$oXi:I(@s`Ueܲq Uƙ{26*lAVhIH9}VzÜsqu>Z;co#D+19ǘ%3#>xj :쬚JvVQ.ֈ4)RJv2Vxwjuk4)>o[''\-f1-Nώ!7d#F<`ǶmY|ێ#b}C݈(_`␂gBRbSjfmQ;Zx:Q~`{sU@g>]7'k1siqv$j>33󫫫e,3{bU""J1պ۱$EX,]7, + rwM9;7]rt-@5yTc֘1s@_xY[7yyBUU$AIFf;D oVUZUe7}|ypy:""ӽH[("Z:fGU4M+CECǴDDXxie.eXiV=6--~HݕJq 8kT>uv}Zw>Qi 0Sz֖p)wE2 tr0>FX*`fMNRR=VUh`Z7~{mqf&~31Uɢ"7!wg"ʦ"6 SE)딇C 8!fU>YBF1k132铧hAP^ |U07LY (1+#(!"!pHʫ{sXA(C51]fcP͒@22Qƌi a.3-(ymb!"B#'mH\n `ʀ*,f7.E΋wkWrW#zHyuvۻ)J{ !<"`"c7uhG!~.oGkR-ns^*dIh#X1PDlD`BP( X(5$@Wy{P q '>u Eyr_\^K@Ζw],g %e,Z9wtr<.W.'AqnfZJIguCr$Ȝ%+Ns X1%YS従./rd>f[11R+T3$KJiR傲c*D@UP QC0S˒ O2 i:i&bDX9UvO`M9Ãn=}׿2q'J2D-g#Ql*dSOlj {~|K|]?쳮rW-[,[ϡ7UDtoiOq*᤭hʵl܏)+ׂڨ2F읒SvR9?nj1lΐT1gznaRK9 !+6}ʠj/bK8=@m[8ıq؃%`A޲-yyI{گ_k,ٱdb tA4 #b'0+,YT&" ЀBm0TSgcyQ߾ok8^/Fqrl( 85dRUb^ᔻ\Y@A3l^31 gnǘT3*8[ϾnL,B$a" ySQIuR ӑŦ8vf9)yL$b1P32s!\a6Dn5U2`t F&6C̾r&G?` жY$ f) 1x"39ǔЩfhA4E^$VYBtʑm6 v̌$YcQ:r &kq\To qwuy\BHL.]]]>uoK/V? GϼRBaQaH?_z}~}ɀ6R*Ә2+6D3Ţ/K7O<dCt(DDcՔД"1#iӊ0~GgwۮYU|ca-Wc ӓȘF:w~q~h5եm;t|V?|~~7ّ(!%e >TWT*d 3VK\㧟},o"<;j@h$4ȓ8”QgǎQYȩd! B|yD0l($, I6=mbOϖ'gK8[Cyzka4B ΑdsnI@HاTLhDj"!kGȡX&ty4H"ACB"*IAO R+@DL\: v&d% b滽[Vոw.xtoֹ8JThĻ ̈9D1#!%AKS;U1jΨuؠ|%'MMY}죙 #Z?!4:UCv~s_^Ηhii!dS13.)vkȲO?so>7of~Z]Y_mC` e`85Zg+ViѲJ>> կ>3b~ y۾#*Ӹԫwݣ]E 1s<"-v=Up-)6*Xf').V{mn׻bvfXiR\ȄLL(쇾﫪B~_Cwn*ŌBUvIJM./GLHʡ}'mtNonwҧ4~{{;]5Ƅ#(dUQ ,+I* cmɘflȆ;SXy37޼Sλo }*s~@%&4f>M:RI.4+b!GAO3ahh`ƀrA P;BMjI3)\0eS4IOHb7czvGEDu~!Ȩ)I }(sUÊ!a?+On)#b:]Z*{dP)CQ1F 0v&S+`͠]~߁X!Xyi' S`={*ΐ,*Ĕr/g5cQu1A6@$Q)aSK̙*#yGhb-) "u#!p s 5 Kcvj99wI|~mfjHΐJbHh; :Ǫ*b9CUsf~60)I["`ErBᝉT 9۹F,) \lD=-8_G{<>0d5p( 8"qdVjy%I2!3#vΕ䙽1u1Ɣ#&⬒.JN%XK]<. jR?"OY8^`vVG{v_|Ύ͘ǒJ=1zb띘 s l~+λ٬nW8FXճZayRoc4G8х0|C8UTʥE$)aSͅA@)%Sv';w aw}#p&ĞM98]%`nXwf9Tj(Z7xZ/_,gF]GC}SO=ůo}$糮|>v rn\n }6hZ^yW_|q{t~b hBKˁP,2 y`<0Qvμ*)@6:]#Z;Aq쇡Oͪ!$R-OOO~(%Ǹ^_cZzv88_WH(i}'`Kq*Yx/̞#DLD̀ Č̎mr^VvH5a:ʵtXqhL 3B;GrAj]٬Y dۣx, Ŀ)Bl+_W3ðMй (Cr3ܶT{eU*8#dp޼LPD@ 16p 89[w[Wju.߬8 $#ҢJo&1BRUpLY5!w}ۗ9% H'y:P '>t興Jx2 *''Qht" ]IA3si"#E;;^ݹyk}F<=ڏy3"DX;r(#LXJ3f*tUQ \R.r;Y<,gr*N)It 0CGIMN"s '^dyx-`v@r<u&r1%@`brbgnn:;.q*M2fCbj+!cGFUcT]T镰M=]]t]ߥjEZj90c?w(&yLÇ۽ܾy @Ewn/`L!g5Ef6}r5sɷp܎f~k}<0ddjI5#s.T>T !cV-(@̹$Y!A)ATw(d9D~( D*&N%BZw?0zb~r? 99׿ޮw}GM o>ooq:bq|s-gׁxuUП}.w6"Z)4MJ423#!"zBS_۷ Gl9d1c0NX{޺usx;SQKU $ih|cD$0R cwb,Q6uUum["x;?D] < zs,H6_TM[ Cqql.Cjv>80,Yi(YA0LR\N kRSfXѐA7l.:򌬦)EI9C2Ǖ):Bifn"F@RӔҁ+f205){#qX L Lb6C+O۠;X.ɿVڗb/G2,ccƫfrI˿Wʳv6_Λ>ھǎ Q2zO>0;rMUMVdμ#z:o?8>1[nn Y$妞g1j!09`|#`X68WrUfE]מIt{5x@5f0 0rĞezq<9"&PT0N*B9ww}gPsV`N*9mLHݤGdO h*RmOW }̕bn){w7կ?s뫣r &>a!%p0gSqA38WE,ea,0Ĕ9HiڕTETEqP"8>^b=j31"萎UΚZ6x23a q?Q> BO%31c=fS˹x"˩@&~'"g>Lʑj﫪*YoEuLE4[h m>q)sn/CGfD<˫GZ4sxIsEK腗e,UHc@Nw}uX- >v/xjP7 psj|o3;}Ͱ>NP×~'>ny3}^TU`PYT-#Y]y\= G9&~UUuMDMLI0=`y:1|_嗛)- 1mf 31DDpٲEB5뺍djuv)Ce 2BM)fq(pv""*'buC ]?<h~trrrvz:_,=|ڒ\y+nF=dU`4A5- 8drH4곂)0T#f w߹f*gl6CZϚz>kZPU3B7#;$`μ:8~L9wαwDj2pţ} 5uvq! %%KD\Z 5/kWX6 UkHB\UU qq|lXNk):VDD-Ӭ9[PRrrjMi!khb= HDbJMm߫*Nd8=13 CT8p~q|W!g9jR$񂒳CjQoCKWwγg2Ë8m }tzBmR6E%AAUL1 pM'v"K>w 7CwHC~# tѣ«޻wk~Woݹ)4~_3=뷳|LKIΒTMnsWl+rW^?+CES$C .ı>*TW>A,~4vuGu]׻ݮmq^HҌMV]?s;C{4YӔs$=@\6 C i^{`^=귛h-Ynbrnwyyqw#ꨠ YdxŒBofLqMs\9q1f4d$111ۂܿ}Z:iQTpZB1͠"(2$ctU"jD`f!жGg7i}u~̲ Tl,a)P v)k3l"bYArFLed 5*I_HZ*nI,&p|v9(6 ց!'#F1d.#uUظ>1œgex+o鍳7n*D <yU־nƜR2g4beCVfmwiۮA :#h<ڙ]*PԄ`Lb{mW>m!2 >)Frn |6bL0`YWKy"zfs]<ғfmDBHY 1*U:݃g} Ϝ/s7~KC?@ʐX]C71FAYS9R1W?\&z]hD/[]^9DGTJa Ol-鿨[Sƀ'?7-DFgYYΘ-FњUaL>1ԍ/hȯJ59HDԲ& uT޳hdB86kQ$)8»1T(*b.l1aB+yк%UI"`F`vLnO>3b^-&Q1edg5MW_w~{aܸqoy 4ˣU)Ang3Z,}wQ9z6a\ĮZ- pʉS p0fE3H@@{PyW#d.D`yG yihYA7_oۭ;{Lc3`u]11cݶMw=x(Ηb1WUiyƮnclv=8ЭGaQ@ gzđ!'Rar6- 3}"3xJrTI!hSCOȎl6C5컇l7v71Kz#n2nru+#gekEfwty=}t?]C@m0Fu%ݼq|t|j? ] "9;ɣIy7N뺙L)Y`ZLm>i? uĜE?~X,f3f9Y3cbM1 2cL%[ KYeR`=!O( ́graq!u-y/xӨY. gl2W8E,R*$deQ\n/WSM| [ll#HYIEL Ms.QAxϐsI>D ץcdޅEsrEP]˭c`N9gGjA,DT־cE1y///8YFL~/91Ctc*3QPr>7 LE-f*)TZ,)e$c7\;! Zj}~PCb6",D@숝CDQbXZ!*zP&pUH΂9 /W/;vWնin܌}sW}B_Cɉ>|p|t4Ȏכ-! 4KUUDbS:z9g"B)OY/~s~>v1o,cfR6,ZU5"}Ǟ~_U0vuSo**x@Hcpo+f"߷!̪0k@a©Ysmz_znzsEP DRLDLLX]g!a议.DbȲHuCU{0P5CºV+K"y2dVB@r% -)o⣇Y3Sv쪪S]7nޜ/dϗQjbj{8Z4u)erܴ~/l`c)'0$"nPUUUM#:.&bhs+>F 5n1Y;wMvk9v}CUs&iq-3mBX̃}?64U.c y HDqR0t̀!n] 1sS۔{-n;ċGysc P;hf^7"NjPh[?:ƱƜL y)aM$VUmU hcǡn-|xASHTC`v2JTe9"xwj0NZZ7/DA1VYb }o~۽4-Nw뙧c~ZT*'y_%U͕Kx2_lY Q"""mQY^|ZĞ|&y\^^8WҘ""Vmsuc5 @{W>:T_ݻ ogm5"rztǢnں''GY;o˛ i e[Dd7^z_џ>j{:vDOv'ޓÝd`!818MGڢ0fdlj:D2GhLλٗCIܻ0slL.ƔSҬb4,J0H|1_(胟m)qnG" >}!Tu`6ˢ"cS,EjLunכfBhZr$&ẗV1z1i _{_Pu]UUy&hUd`}O?U /3P۽r6_-{pLRt{}_+Zn!7۱j9=uα8_q|9&Ia"Llψ@)~QNQ@4,>S(&`d_1_,Q[-s_8ko<8qZU>WUk"q,Ofv0z};d=T0=_˗yB9I ŀOVއ=z{~b\NB3-;xU|#}z@qL%8 ׼ U  rKi9pEn:PՖOYs8Es@{9j/9a\ge]UuS1g3@cl;$pPrrPMJ'!fĘa%uc}LYTrҔj<]pbKr v"Y +\BRޠd91K绉Trg??g?rݍy?*h4F0m~~rZ,1e1# Ts!8_.$v[hU]s1~D9GIbߙJ=Ok7_8#BÇl+fs `1Cy@*'My| @֗p]oכ.\;M0;9:yx5<3"}|]u dN!fM9Ɣ!8w7n4McQŸ.CBS"gN45 C.*TuS#S?\W hWW;P|wއuU5| U}pmݶmֳ||w6TUub B54f=33y& F]B}q!#Er(10w4py/<_m[P1v],10 Ґ[}{ oݾufN0f WdąHfd9rnr^[WUWݐxvG;4&1K`g BRC) x \@9~wC.11CR ,Sit٢5r\01T{su{?ܴ_/rB|<|I45]q=#b&OD8K S*wj(̎DL& 01+{O}tqYH qL\+!6/]G [3PYAf ؑʙUSߡ,ɣmCwhXWGsA`[zr*:N05dub򜁠!5ܸUݺrƆLLXBfJw&m*~12T`F"QSJ)a 6ePQTjgT9T AW$Q[U7orIL% u۴Ȏm"Z1!3GrICT9"A?U@|}dIr~g>ΖգmG bïUʙPAT/tZ;;8 IDAT8ֳ&>T"≇v1NLu!3 XJ) @bdFO|8|#vޱ1BYoIrDf4UOn,O>ܗ~?ɯ廏?߼'jv|cc/< PunC*pqj?aj4 {ǮxLDrqc~!Y*?9$8s䎔" fG|(!(ljT;@#ljX,]qhgmI[j\Gv|.wfv>s!jvsV10n ۭ<_!"\`*"{ex*@%-؊|g1~qc1ESb`9 v 7o/:^.oG gl1gM5@juηw<ʛo}~n8yo;m>3TEP5ռhHqmw~Ɋ =o:َyL"b*HFVeY-H)DHo F2Ǥ@"#;]6X7![ҘuP3vu.7}駶Ov7Eʁ^~}p.1S9$N QblKV=8qX}8_ "Jѧzr3j~R6u}??y}ӛ 1BJzf@J~\ oq KtY*>{7o6oU'ٻN!bJ1 `L$۔sR Y$.g㣣~) yDGnx|V'UTU8N7 !jJR"F<;\?=qnU8HYԐ,E5`QHHyrĬ`s}ˣk|O?G?ٟwn<; y;+M]ݾ+ XqgV^x>3K)B#}ߴSN>f|`]U> !K J3 .wďȬi^ٹaݻ\H4og?_˟_o{ivZt8Ob,60Lԍr9s1E(c5/ϝ234aD8cѐ0(HVPLDo@ 1QMgxD&` Cs c&v*3VU|0}76~/8^^]~VGO=̮ }@0ID7Q1}߉fC5Te"TCQrL)q~s-):&xD]Ư]4MǾ[evU:UF֛n\^sˋ{_dv7~3'7ns?zxHGysαGqpfvŜ6ub0$t(^GsLj b,1enRE$@L@q"%hH# Cq0VO=s闞?>=ڦ6V>?nﶳ캢*XY߇q1Ɍ]g@E:yc*|a0 SPT@D,t05\0wa9aL 3޹? l&y9Ɣs2%qX8 **ǂB2,z[e}|6bWCY|c!E!ړ5`32I} :ۥs~iðPbN#X*iG]WiU+qFh8ݪj9)B*ޔXXhnn_y/L(je[qЋg>/3hgsD˖DhrW34Qc9dkEj,98ɍ;5D8۲Lz]SP  'O m32LDr@僄 T%86j6w a_ ǔY͚ɪcˁ/}mz\Ua0P Mr]~}K_6M)cE2D$ǫc4WM]K*sxwď(b{ue`OD0'?ƍ[9Bxtq^Uv'j5}fΎm`]ޚI;jܽwQάPO^KIA&8u[ cqqƒ|PG/{N禮jXlWDv} Cnj^}?8`*-z$t++N-R#+h4!89py#BT@-)p믿o {rvtl7M=kʢW{UG}37>wkXf ɰt ه Jι*TmW!K&G1g!I?u-gKqc" HSƔQ VM x`gfYDM 4 hմ91FDjpB7`eέ/1yﮠX~ouۚIj<%+TY4%1Q̐Mgr`j1!s*K=qV+LYFC*Y qC2`l-3k{pm6WދaL< ~$@B*X01fԦ~41TՒ7/V){I Ii4^oE,rXvk<}\ĊFv=Y M1,6!1rsH8UR$ 80]r5CK"cY͔̖c^%\*TLtK(|Vw~;Sa>>={G:k״UUUĨTPQUUPUI h#Xfy|4&P1YE1dA}~T"l;R0!9L3;f7]9 AS9Moxtyy\ܿZ3!B!q]Yl%Eլy~o_mż< !I~Ͽع~J9ڱ}>qv\nk?{JS^h Pvucowλݾ߻u?,wHK{ae?U()%AQ(2,''G0_Cv;n @/9$Dco*!U^z!ŘH Y~SYSI'@Heapǜz}lcE'.ٝUQr1_!Rɛ1 .g.[84&O@ogLHfsS*Tbcq1G5#䣣UuO~Lm$'͙8FQ00Lboj}[7~_}H1Y]Uqn\h]5t}'$gPbw>򭯿WVg awb29" 8Ur&!8F`LrΪ"L[fG7y8/W|UDH@م)bDK0FjI%={lE JDD 'D6 `(h/%b"RYCS-rC I0d*5BHiLvO&&B6hc<5nKao8DlXR ΀bTIOoN20T x x-ܸ c5͏o#pa2iRs~cAWLb;0%B0e&qbq͛c/ﻡ57n5o޺ݮ!g؏ټf>{PrsO?w^՘{tdISY̔Y /P"B;l#MslpJbURptbF&䀝8ޅ(bM~i\yןgG_Up?_y'?3n{, 0w#i/|S7~k_ܝ?Gd?ڗ?#w|}ݮWˋ7O'WtjМЌ`̜zeAI2o2U|s f%WB͛Gl,ߏMSI2DYC+!%](*@jwqL˙_6nӣ )͌,kfj1d5ѝ~\?8W?j^v+ӜKn铕}U'sAzg&=;vα/'2ƞ#tC!4 nxL>m\ vNTUꪪP~qUqpqHq(F@@$KՊdx眇~1Uu|r☽`aM\E22x?Q~Gyǯ3_[a.Y~Ëh7wp P7~ӡ\\l$rq:>A,J6t -K~0%W#XHtT>8m6~@:dt2R!Щ*Sƕ(P#:&_|%2va8d0. -ǘ.R7f&Eq\߼u IIɅz>_?˕_R:4 xAI%r=[`FL\Y"@Β͘n,=G>s?JrcFBTQ.OMR[Yesȅ 9PT-e`}CӘd%TAk㤮6"zr*ڱqG`@4rjvΠHbcu:2f֐8[ja PrCq11ƘS,zNMsqvR0HN.~TX7oqRƨj>z㍷wWcl9JonUM"捏|7 LtH͚rm[Rnm )oMQz9HhW-; K=;&L 'H~S9Lہ.@s]f$Kʅy~u׿?W~~??OVzͣ{_~ "^\w/Z+~Nc?~om16u;f~7?_bW׫xY/n^x$ IDATYeT!0 (AV%J|0FEM!$ͦW%")0@Q$/f++hkK9-svX,V]{_,Lو Y 2sU8^@B0ogwnߎ'7on<@}8>;:}$Q(C7矹y{gg󳏼#_ݮf{t+o~y#8K)1)PJ: s6fv4j(y39= j+h"Xk}v]y$*Ԇ 9u=_n=3 b\r +"Jj`a'1ǜ#h$Ø"|]W5 $1g0`}Tj}UEdst~tsؽνG̅7U}|@;PrNP5&R,\# ^ 49:R,D]@ɫXNf諦hVѰ[f>_YcX4v;DCxY Ex e[QA| EQ 0DH)ys8 6jFyh}٧9w`~ c720_.o f~w|wc^TvڏՆ}??[pTl}vXf*A9!aIlll15Y*FU;G9ZSN"iݦC̣#`"c$GER"@6 )8l7Cp֍nu@ U̓`^^~n=g9VͬWFCdyvv\čqg§=&II!T)e5uU%ZLΐDp4ʢ7Ur/!Fլjq< u01ꜫgvUU5Uv~|f {7MJ&,ՅcdKRRSVcM=oY]5NcJZhBƷM\No,OG7'0׫0?rͲϏo4j\{]:>>/ua)OZJv놘w] *@ryߨjʛIc΂`QrQҐҘ[_YJ"% ͲdPL˼3 afM Ո  b DxPsBAOm*7e7,Wm~}GfSͳql6E33fk"Nќ5걂w@E$ۘc1@CDIfˢEs)yQ 7o.v_u?vQB[]B>c4;D+XL ëyXo T(5/߆FvxǛ.OA$cs6٘`Sr`ƆXZME/fbcQXw>|Y//6nWE{z|guY81%tMBfȳ<,fa6 0Z0;> ytw_kC~7BVg>민>j0|sW2|>_7j)Ƹo" dZ(@U52{_o"#^g,#@c☼sc*hkYyl\.p>3=xpƳsٮo?{^_jb?>4SsK ]vI7o?u7wcNYl6k84AU)!y3t}jD"@T"xI)t:EEwܼq|W,*#{RqTIDŽl[ʐ2n߾}u`7B<&Ehڐi7NNЀ◾՘O9 8`fͣӳm+y|\-Daח[^,fu{_rU{[o=99]Η:9 O=S.dWUMU5PJ ~"/f3WWJ܏ۏ~CJ1:Hfh199fm{^ҋ1o& ;`BCeSB6>蜧tbA&l3Mbf&<,z;FGYtJITEF0QNLi i31P)#Hf,W#o-GD`>_}^}-Q)cL. ձrR>1yJ(W#B]UUUgl~ݮ8XΞ1QLW+/~?JnߏYnx fx|o\_w~;?_m>^fvZ18BMd^aL$ޓ.'4& fdv  h,FLVpQC]J O)Rq<99{]dmn<}jW_)H֣r_AOvI ;gO=n`Wb=ޣ/}`v|8993vq62+34 }Ir932%15Y(:!985oĴWG|nw 1>T09D'c(/U[5|+y꣨ӷi{=ܙn}~f}>^~Փ{o|w|>?-1lV߾U|G>(R(a1qSiRO$4`86,$mEADU{nwݮf6cUFaֹ{Zk9w|>@?չ6ID22*,`Țyc3S@$cmX@R̒Dӈc"'@Z6 }kuUc*En1eQ˗%! P0zDF!欒ul6IBٖt~8Ք.WO>_7ÐRl4UU[޺=Λlz^Ջ{e=wec˦*( b:%dZ޽\.O4W),+o6c-i- NYڶ;"LȲvͮ(-Aaz y:(^w/5~?abUc )9Zif& 0Q eCBVɌ?Ib'ty8?'|xtzam._MUUYlwji-XKDpdֿ~#1GnIm_jޗ1PF\%eNx[+}ʹkcLuYSeYT/ˉ.S"ݽ{Lʗ֓iղi>4ΗCmH\ETP3/<$O}z9zxl3Cλ0dc`B`نnڨ '&|H ̪H dHL-rLQDGn$m=UiW˔ɘCk, (溁Y0,58-ؿ{ow/~G?˃ZU<9fj&:jN.Moa/EEU1m|wWE1zWWۋ{SXA1fn)kXcQ.:$̚RښEhlb(|K7{=P"NIR j,Rx7Mg!lVz B#<("B.WWz@ʢãw׿ܿhROAh9'6M'ãӓt1Ŭ<:N֗E1ssdr@Y DNI2 :kͺ*J|yqyuq'aw!f[%u,y{f<倫Z?DxMr溞,BG^nwmbR "#9jބߴ+SĜX )W Bc![X$eH: T@<HU᱒d)ס:s{SeUU9 Cte_0 !:o2n1 0feq}} U91.@p!F@*2gbA 9ϖ/y|^m>4Mnw 7|M|uu11@Qu]aO2/РP`27|ՈsyU{u^K (*xȂ'AY%8$Lo}9!RKJF xc&gΌ{{{>\]|햅u=\Of''At! 0ta{+nv3pƓ>iSU *0cyxX@]UT(f2Eӓ/ϛf:_z"dsB`O?Zo$</^PU/ GJxί{|ۨH4N_ g&M7%=\ Z!pc5FDBƘI bY8ϙseS*jřѠ5znJ"ƜXTN0p>u2=wO?}'uПݿcզ lU;c @G_P9ň@ㄞw=1~9'HDv;n.&>=9r79@hw^XTHgSK{3'*jVѦ˷gOzwzXÉS0qtQ fZL^>{΃ivw?ɫ~=?Y,X@6Če:Uu= Ul;HYVÈ 55FaإNBrN1vn۪jͤ.*@QD!z8<9k5֛r})[?~O<=3 z+拣{wÇǷNޗU1|1ʚ5drRݓ9%DZx7)S"J)\_<Ǔd0"+_OIB Hƈ 19nDWn8899w!\,W/ίv]-1 m]qq`T9:mI X/NofH &a0,D,Ɓ7lDG@043_bJyu _voeT>,޻#1rه0ضUu)"!D$(9wi><8 "|)ƐsLU=Ea4ڔs׫`Q6m/sh&!r3i)!Uѣ''r w23{gq!βbݠAkZ$қݣ;qcv2xҌ;{2!k5Brң7#D` X &hj* 0F pPPx(}BANjRѷ:s!yW~kw68N: HԐ1N'SR@|uq1mJUNƀBCTWfJd ef=ڄLIV i>3n8}nYU۷y*0 v8jq蘌1Gơ1TEQ#ѓsVպYEsqIff;X2XA=hEDD2f,g(pQ{'EdĩdFcEA3g!cLYXƆ?2lT$De%"e`¨s&kL5)8PaOnNc5F&Q`6Mnz3_Y]8Id6SG[  :0h1dY.*VSNUiݿ;wZkYBK],/ K,w߽Ƭy4.G/zx7āzqW~wOC74̻hzկ=~oµHZ䠆qVLEI9pA9>8~|ŧ/Pރ+1gq6WzlXftP4m F-$c,Ð8@L92ȢBwf (`8fjHB(snm8"c.}q$vQ ?]][ox-:[6~߽8zC*ûwu틪Oɘ$v}]` ź.B( KGaZ}7ի> 1D43jg8o7Zg,̛Wkj!iC]߷=]  UJdƠy_uey_t~__o ._B0ܴor@ n~A^ߵt7A9syxzy8v1,/|꽍ðmbƧzӓ|RJMĔwƸ3%k٬ֳݮl6[]!hꆁL!@?///^Lg8_t*^Lu55''gon^o7d2٬4۬pk~^8|їbgc8d-:CƠ1d-ZP%g pƐ% **i5\ץ<>z8}k89N&ZVR (*$Ό( ֈ/s@R& IDAT)FGJa:1s)ƔAuZ[K~myTqh{ܱ @fTLUUY1Ȅ}ʻrRT(/;cZ t5}>UF*t֊2gܤis9톾!B*+gsλ&@XKk.[uh5//~v`sICvh[}{V,aA&!Jd@5)6MR리5j\]=x~.$5ƀ%[4y392HbaaphW08`8ʑYYuhDop7iʦ!dMY EQ C\,21f66U֮Wa觳ɮϞ}r.w޿ɣ7z>əRF*@]ԓfC"4EYu*Wˋnٜ#;[ W"PJ攆1sg4ESC;04M}B7 ڮIfͦSLlD$2'kd޴!f.ڻ*mfŠa2$g.[W*S 9_ZIcYr@>k=^t0 :o&^p IBAS/ CFa:s (p֭s,˫\BvRYl2|G"2gs.@D3[kpO˪DvK9|>ёBB4D#ȎT{8!fCE]Y??Zi*rcԚr\ݾu-7җNPmO7]i/ea_XquR6숿 $CI3g<%bw 7MHJYCI%'@UOruX֘rl#L)]݆mzpϼ㓣S& !a_mZ9ѻ&%6nY.h#:k%8cۥmTk%TehbZlJ 6ǵ3X>v3Ծ4X vקOC*mb31 P!p!1sY~y<攉H1$럯pMUUNu(hȘ aCTT3%!=#A.;4׎`$'6g Ĉ4UQ( y>O?]vsv7߽woqt8ΚC3a]s"焈"j ="ġ.(Bg)hp dM'ryC4bFP)cT7O/}3nM,`E%B]k>'-|6$I0$F$nJ0J!P : cԢNJ[ v%:K[y[;VO,-5d (=#|W_ߏjפ)I bc1&b: 1Zv׭wv;<9:X,9v{pp0/X!#c!8_r@0d j:9:bfCX{yqEa! B `"q6"=7[?nw.i&dt@ί.6U19;};wλ'69OX|QԠ_byTc!F|QFVU CɄh9C2$X3?m=yͷyw;ug>?iZ.ϯr`gLIa}ι9SvWKM餞>a(N BΚ) a!/_>7CȀ/b6ޥ -"CO9R 45I׆{Aq!0 f7kB{RrО%&͜9 T`1dp+ 9sHj{HADAp):` _XF>1I`Jҏ^~OSL|>].[z?ɤEa^|ۓ97F= 1k1Ȅ!hMŃ?fTQXE1d(ڌ¯.^~md?;$EsX^6/?Um1{g'o>y?,|-̢7 ֱb8_An&G*H`q^D#xZT }n[Pa:SW½ (8D4@2'IԃCE98l>|}ynù vs]5t]ڭw}V;@mSP G)B4f,*p}r2rȃA0"QЗ) I]߻w/pfZVlY,旗AYܺwjux"Ĝz><},Ysd4aiH0 1uc;4ȭUQ4UsN)})uDy ðݔkBqybPftHf!pHΎfd"_~1hXŦhƨ1,wt(8#YB̜`w.nDqe)jVQPìUྀ_321"d@ǀȸA1HR Xo>ߕEXm,:3vohrNo]?쒪:V^OG_? BQ9$}Bi]>I1(DTY3YBL 8뜒ƫ @ :'2<}IN;E)JSPBcLXr*t#PLaSP&ʃdv)+'CR@[t2{œV˫O9k>}ouw"1Ȭ݄.ʍ71N.,T5sÓWktap#jC}AB!Jgm7(8g$ȒqPom7 D ]yu~uuuM/z^_mYs_Nlٞ9 0()>a 5S ٦C@EƢgoSco\^P5(x%pjzkʻUj##U csEQ>*X)0DdhHL!ƌ"O '[")Z$ɜB,BIX"X )n[Ww4fQ"^]fY1)nN$)f%ӷ"Z(˲b6.%)eVTƹ(* Z0` 8 _דai,@"{SX0$ ˘f8̢DFABҐd4ȜRudemAYhPԑ%F8B1yQ5֨pNH9^IAD ZLT91B';p&JڇYY+ƯYY?<]\;8v✹|qOo{o=84ҕJ1ҷ]۶!ūյZREUNӪ*rJ]ע7`0H׵/ݞԳY{^ !ZO䜳l@%BofI (Kv1}:9Q׶G5V+B^^_d~&yǿqq~=[ρ 4iݔuYdAI8Ǯ)JqoSJUU6Me-'mAi}[x9}H@d6fCu!mkY bmlJ `J1ŐC}@̧ k6 9rvHVp8j{uelr4Db64鬩JOx kk&T & v ng];d(jTJbfQn/T_eӵ(l[h9UV!0Pp`{}ݳ_._4ZN{m֛&a:McdȊHy~6|;;f صR/+ģ% %Dd?ٟhk?[*f{l_^ I}+~xy*gOVȰGVaxE_w{<ه_"@\@8ggpx8OEۦ6 0lU OVx𲶐i@LBL+0.e0D`@_qUUu]Œ];-JX_?5}[ToYQDD2{_9U31mg! )2u<ʩ"O?}vu)YV)U}֝uKB[ >tE G't{SFcl ru>sED[M,%#"[+9mBW՘aycl3MO_3v_U c ZGYsFGk>索($c Ygi)Fڷ&N0+KB k$I9B~)zՒ3p֠ޠQ(N(8J8~/kz 3MWCP+YDȀfFDK8(e +ϮgrLޭ[oyW_<ݰڬ,n[}m[=N3h]5j쐳 G~yqB0/eQO|6[Jܽ;wx=C+-9BPBDăt7}ꕤn؟޹}.E"$Q.cH PqC3puє81XW٢"p ~ ѓNjb΋$>Uu3&3-R#!!U]D$jnytCN')H1}v;Na"swιZKz}kn5GjeɐmMu6z9#dU4~t]+($1A )4<@pE` ژCJ!vQ:[8Q$̚"/} GDUq^϶9bwx[Et0hʓn:}7GojWCݾ>/] dHvR̜Re~O_q[gՋ8mp\o! IC!fQLVAEFk$ <}:OU=}+_tzO]R A=<<7yѳ>]o) U94ս{VPmB"r58g3c~K$guDQJ:r5IUP+P#26Ej3hIIIyܕEu=HUk 鱅L:>vǝ kI)!c0F{Kf @GEYj7 YuYgTKQ{xMAi^-xA "㐇Zb 9g ` _H~9NNߙdϏ^}@S9 }⌈WxwnAлzy&)'t\DNČ先u8RՔ1* 0֤>eD۴# N[ǧGu]cb6^^.D03HΙ}iOGT4B8SnxSPc,Ĵ6I>u{2\\_}ǟ=|۵Lu"۶'s(㲄Lj/?{(}e\f98}m|aY5sճ|^ʣ:! {۬R i]uh JsZ|ۏxхm7 ܶnx:~B4nkޮ/ӉN@WZSJ)Ib-9&~: KKXQ7p#Ej0It~jSqrˡan7n` m;s9FR1Փ$ڣu $ #f h$3@Ch5!I9gfT ;߱rή(Ǿ(I\,HxtBL,QѸʸ* fAb: i(v}{/br/vKJkGgH0!&aDכ??yN@ۦ}Z,ca@H,]#XҚ_/̷) WWt{VQD1ɰȨ`5`#3SIFf ||OMdUq6AN;h4{C9- IDAT$rєA|_񳏟BCn ҁ!V`@xqӦ{tv;WMہWgr[W7޽^_^q)HRדӓ[eQl/VC!*+qYzː3@e6EEԡ&gQCo5k_|ޅw?}vj>w[w~|`~8u]4/Apm,l F׫^̦맟|t~%;w{uqyxx\Pq4;xlBv]⠢WWL&ضmL9mzR|GL. MY9;鷻7߷'kgU1R0 bU%fc C@TUFTg͒XxRRGuc   d{YH5FM SVNIAH9{  2"րUE$C0ޣAʼ `Bӝſ-~0p&Ϋ3IcF^_HbA/w1[2آt=y=cH=Q B9!#,ιڸz= U?4`Q٢*𫮟qEfɐ[E!TXp"ӏ~k+?>{_?{*L ^\-Gh#s)ev  b̚Tb̜kށ|_Y(kYY *#!178I H 5tt\o8*#0$ wbO} '^vmx]]LWLDhQ,j ʻJVRHr-ˊ;n]J'Njנ.&M jwd@4fPc?ph i xجv೻rD8AĂ)I<6D2΁0*V@8+F +\Js9.J g"kH5eU݋HHH`TMQ<>CĶݢC 8YcAàY)0EE5Ġl2PKCZ$}e X5 b)C ]#hȒ*|,A>ge1ϑso;K^Q91)8mG?+/WMY 3^<999y፹z,6-*{p( 1YksHc!` !rΐ Mߡ *)AfEUU{wayy //`: 0 "5D9)"(XTeIʚEY0`Ik=LXnhq/_ i8:;[?_hsV`6m;և///۶ef\ T6V%]6z<zja؂DIQRoqe>, )IԢ餬A=/PXb|2y˗/?GΝ[mc*tîA(1JF[LbvփDR0h XOQ01iϔ%MOO&@&,:I 8P1Y-ZQ$֤!q #,iJ ##s:$(-.ڷ HDRi]H4z\t~9&UeF"PBRq_[\J?G-搩|ʜưƾȯGP2K3uC5;ZV%?ÿ[HiWQA%qBARΦ`B `O'!Ÿko~W~miCރHfQkF @qy Ax O*xzz< )7̜:jŁL֕ӓ뫮!gUEHnw؅Ϟn铓_ayPחWP;ݯ8)Ke6g [Dk7ɎxC FpRNpEPZ_a+P ' kiιthѧ`ZH>;;ٮogۮ@?@Ѻ"A$ 2aA Kc0Yk5j)'IIXYy ()Qsn# 5CclhDabΪj) _qvE<1xgX-D 0PO&;I&υ91j"̠uPMLQR 9g%TQPg۩ xdfx\XcZ 0!* 6h k uփ_QĴݺ] d!H,?Rw{X - Vm[UeΫzDm7u}8U]"E.9ǔ2ǐ|wuyu1hwA` qZ*gGǧU?vyJ#XUʜT&91Y* 1+ pcBPP4"/+~Y:>zІ mۭV#euztcl:/acvq 1u,98cU!:*àHds k!۾n>xUCbX#kcح7(7v:_]~^.vh@3EͬI` MznIU ihHcbbZYs:{Ϭq_uN 9[БfB`%hV՘BЅbR@`fQͬV (hd˛1d>0چ|$* ~{eQrz QrL);20*1xT> +  "X㷸8)G9snqV )1%Sc\a% (SZZ@Pv! &FR:txਈ}hJ[Oy+o|bumK <9CbNH@ wnoOo>܅؟7"]eAC!!FKH!ZtR5nq,D:a(,[Eݸ釰ᗿU{zI`17xoMi7}&Ͳ^ øӵ֢2J̒tRR̀)BYX3媰rʌVJإwqCitaII^PHFe̺О^Fcœ`PHfH)$3go2j:ǩݶ,h-M*<J //;)@@šbA3DcD)EDuv[џ')AYn&e[[D8Bn>Opf˗) MU]]/Wt>5@N5WUBL7ό5m "\4hP֕10Ljw˓txzvzj}DJHz5T i <_v;^UY`- *XG}!Wڲv [oFawXnO zdy9W 8>Jf1?mO~ eG Y]#C,,]QonjRmsD$Y1N8gK+&*,tH9ĀZ#<@c:a2em̎N/^JjDc̬rJl|a ijֿRZZŸ1 yS#7>2~*""QGT8Bn} 2hdP&5@}ۭXΎ֫-Yk93 ZG"M@((*XWBZȘ! O|S gfͨl!%D> #" 3x6 $ "Ƞ9Ǿ,pqciPI*()kTM(:-!G__wܽWwbjv@kr0]v=篞4|/|֭[W+W9j,"ƴivX[V>a:~ض[49Rc c\i/ &/ڗݹU}ç? 4DȁtU)vfTUuzz'T˗Kݴ1{߅hMQeYm'9g$ؑf͈*:ۇxz.囏޴nhɕeEQ5M5g8 }v]g0tݎSpΨ!9Ѵ?X|ʒs]) !0gc̮IU$T4tz}7,Tڲ; B0 WO۶ ]B$ 0fC, )$\YͱR*22jvClł8VNt&.EKΥ0aURUT hq PcF-e02#.iBU!Oaq.!8$ood93f@51ʨ4K4'EufHx?z0Y!{Ǫ"QQm}TDPu~pˢy?g_醶mHZe>vK+3(Zbrjꪩc1 $vmDe0| ΃7XadBX woÃYOO)ČM< JQꦴȾ Vᔴ8a ɢSUĜd᧳"QwuG/?OY{G1 ð.Ӄg?O?N>[rZճ :!55_F%C֬Ӥ[PTG-k*s 90Dc3D "̅su,g1FTYd6Y͘{O*91CHެ638pdJh 1, SBxřAk,ADg)%LH9g" 1Hb@k.3Ci&uՔe޸s}JLސ-lvd1uB'̆z("x$#XT3(J+SUV!f20(377ebQ6Cc0_bq-sd"CKI@CN}@PZ6`<_׿G탇&e}fKP1""^={_yݏ>{?]6mι5Z캮(ХmCqd׵]9Oi1R!;t\N˔f2Ȋ甔3Xꂬ1ܽ{ۈK˗mL&t2v;6썱䉙I!zTU }D 5E3ɭٝj W.ȅɢiC9" ]^S󗯘mZz/0뺮%1Hɀf\m~SJfk@!UeUEr69%YM|6!uN3t8ւ2G#5`E1df @ DVbXNUIڬM41 ")AV:Eu9:"ApcF ^x1!v2G]U3z\՛֫j0/Z4 IDATY bID *Kf7=o cWe_~D  e]'q|e|!$Jjara(O8WWWv @`KxWU QV!PU d,mۋ+nض=z?4Q*,9+Ckr,PȢE&hqsA0H;lI0j2jp%0|sZz1S0-"} 8OUt ,uEi%uq,;'tխ[??l2ۜ_^66Uݸj1UnwY3(|yv_y/=}t:~7Mھ[n>v=C(z\.gy^y?l>͂da)uxV1D&)8 blV"i04bńFs6p}y4 K>:<~&\sPGo؀)*fR (cd(_6BfV<)&. )brdi$+Gp# fɪ0%G5[+wjBASªfXI3뢬 dШ" `*?ݟ}tsm[$: l>=}?GOnor=_CΛHڋ Yg?gփ2H`l44Hh$KUOw`]A1WUӶb>_V~q5ڪ&_oVkJ"5?ju8_vɤ`PeS7,}mY;LT\1h%+C-_g{o_98< c;P:(G'.'9] =Xeg.3™,xo$pD ~=8'%vfh+bcV{g_=̇fES3uWϟo'~ӆO\-E WmVkM׶㩀 `wRW ܜN_qBȑyHz{3R8>iUUUw/ş崌(l W+ PAޒf> ;c x }ߧHaH)$ P?YJWeSݶ+p>hY "l.b k,K?v#G(359p3޺'ر0Ng$";>W0(P/*lɠѣHD D`1Q n{uuᦶŖZXl_N0BJ@|~ϗϟ0+ƪuHs0sc W\ek-!tзmZhwA`LkmPWh]`lɩ+vk}YA җeI9vu ðm;_٢4d`HD-04gNow;?<9% XX sd Y`a 0g] !Ivd0Hfߋ*W]l"vНew}Ldr0xefU2vC;[̏Φrtrv >B$@*JrvW8N8KC2d}O]޻woor׫DDB_Kݽ}w'Oz%?O_Zd.y5[gd*fw{#\FlRG d9L6zbdUBL g|q0謳EUUSMdr}rvt{lV}h6>GJeU2 3tu Oބo~a=k)2ւsΠXB9f٫|0cJ<>xoC $ZUN&6h̞ =WWYOKA@zvsv觓r_#BNB̸ށRСݮhcL!vӐR,Y/W0άG8-g˥Yz 5)R͚$ @|g@0 m Ae&=`SRÙnRUYyo_ᮻ*ЕywxyP,0o]Q00REslNr]̆>tQ- OH AUc8 u*[6G] ?Y[\__mɲ}s9躛z>[3Cz9 V>iZl=\zD%N A0!"P":Y OYRDB( 0 2!XK"IR4F $Ą-`Mi,8MΆ ;|DOx"")O"@X$ZrD)AGQCB"OmozM7_  MSD*)INQ~w|~,P3o0*x3svE} s]6+Uabc?}cc.˲8_8__>x{W1yUOd V7כ] *q1 vI f33pUsGV#sU1$( ̚9+Ď DZKnՃv2"f8[E-y&v40 #d0<榙[R""e$R$gVudCb( ,`B.؃Bx #KO_] 67덳U2 r<^:*SU8WdULKϞ=k2G꽟V1da@^mw?ʗxy|B4#pg]ۏh5\,2C?~y** (p 1(e"jc Gg-K8d$qaa'g!]__:?җ/ڶj5ЭY5 + dw~Sެ\ P`in8佟秧ry~1UJ~f{ݻkS=zhv7wq!nE v?[8%Y2T':tfubDrJiB1W;cЕ8c?kO5K_x~ݭ( fnv^m{Q!e>, V %!"+YE%%eAS 3 `,X!APpijV Y(*"1 !@J;L Rg@JpPHSV ,ARֆr},jJ17]߇ )AƠ1 }/?z:aAV88l=~jN)gW8xt>z TuGEH XX.S^5Mb,Ks\d97kl3j.yw`\9fv̍w|?_4~X 0 G.F;R"V1NNLYKx7kW'1>qn@4A7 bFN,"Vg0g@hd/W1d {=*Jᤖ;KYS#*^nyB4/ ^@(l;K)e"̾ @YYAZ"R&V1mjYHC@`QFaaƱ"H9cj,A;nmSUJT2e,1ݮwvK"-k.©0 uaaU=ps%˪43Y_j)HqN9K|w$ WYuzar1 )$d gd"[j!"Q$UIY4B=J1RY gK"RBFEgf,D<шH2mUq؏p ]1ϋ w]6(Ap79iY8!]]>ʽe֓/qʬPآ*jf]gNw~߾}G>qLJ_e`J̔IY pi1?Ncc_+U@q*ץWnçޗ_W ځc@۷O?{aݔ"y]\:9}bq|ql b* ?11ƗNFƎA9&l8K)}q޷Ǐ>9b9ƹ8/hW'MY*n"1^>[03dTp*8?L3zS9 noa@EA"1E 3錁=:ERrHptD6ƘR͘8"Tw"ԍ,'$OhX dU=x1Dd(U$3d071(Q Ir(P8maȐ X4UzP};nGj79!TX>{dμy퓜ۍC`@ g3T&@9N@铒 6Ŭ֖uYOCGXUEJ)(Qf|4Ga|UfА"4C>#n9ſ+KtA" C:?;fw_/d:_ԕU,5䜣$3!Z ցd3(;yٗKfNhgމȡ@ܿmmsU]mg?YQ0Z4 ONa,%qzʋۿ9ՏrJռQЂis(y=_?ެР*ow7?zN]fU]o>֏C@CnY/]m }߶;쫯z|zg4uQ4#$5еUߵD )G +>B&{wowŭvW?=qvMvu)d @0 N#N#Cd Y5}a\1! 4ֺOCҔm˱W7x!B*J_/D_~$RT@X@EI9`c`w?iSgJ&$PxQ@" SdYrZc@VPC? Rf0pڮv|~tӺ+vřwhh !'h]ܧ`#]b".'Ð)HYcH"< o}a} jgvuUJ9f {緜A1 ]SU981N&pg DzTsJ)SUUGGKU9ǔ*"1peQxGK(AE a!U"R'O,7墙5޷g϶x =7QϨ uf #4d_jҠC)b 591pVE%)QIkRHƐ1Ι5րXX*:5bGH h3Fs$lfI)+( Jc͢°۶q9NZN0HDStbnXO)10TvH^7hvdҐY8JNi.] vuǯvopN$]g4&IcpYC)&!Ƨ10}߶ч=;;[W뛕m֘'3b8#*&TDơ5cߑWg5y LM PQE$%U7qY+ʲll1D$8-`nNP|YS7{ݷ(I YYdy2Kn~GGGŢn,CaDz|UjQYXi~o:Z) 6O>[_VW: uW$"`YEdhb$a\D|%@ɑYE"&r͈*/ִ`1dQ&kJ)q0uD @]9k"È E*TSZ#b. @I5$a5&L+IX%ʪb^>}vux[@DRT-1 Mfglr A^"YYgGǟ<|t֏6  W+DGnj kr42\9`12$眈tƑ1&rra{Wp1F`wwkoU 傓czu'O^aḴ0+'@U77EǧP7ﰶ*3$J SY B# 3qWDLy1 onnZDkv}ߏE1?9)H֔1GK@T{rH^o_=Y{R9a ՘祺98~. !}BW)A຤~A*uس0hlln~R,ZqcC觷>81mrd˲1 KJYD8rCi @@!`90_b/n߾]eWz<*O_|  P@aEχSGUQEYeZ'<FKTe4MӄaT`V:q:h68kɖ@L&ސw Y™b XYY$13#(2d\NJ@:&0Y :Xa ZR8_ڬVw̪rro["\DcCsn}o=~ՎLGd4%ĉ`Z5I]9iǮ]{o2?zkw)?ɏ%ED dYm)|s;Ǣvrd@PBA:[NjWwÁSi& Zkr @"vO_~gϞ C/RJa^QD{SU%Iձn]>'1JdCU z4?l6?ť|4Ƿ1:ثri=`w溴nզwʔC hѶ;q߿鲨]0WOvS򸇺Б8FmH"ր*!2"3KX_qXx9|00`<?kIENDB`pngtools-1.2/scripts/000077500000000000000000000000001514741477700147315ustar00rootroot00000000000000pngtools-1.2/scripts/build-and-test.sh000077500000000000000000000015271514741477700201110ustar00rootroot00000000000000#!/bin/bash set -e cd "$(dirname "$0")/.." # Run autotools if configure doesn't exist if [ ! -f configure ]; then echo "==> Running autotools..." aclocal autoconf automake --add-missing autoreconf fi # Run configure if Makefile doesn't exist if [ ! -f Makefile ]; then echo "==> Running ./configure..." ./configure fi # Build echo "==> Building..." make -j"$(nproc)" # Set up test venv if it doesn't exist if [ ! -f tests/.venv/bin/stestr ]; then echo "==> Setting up test venv..." python3 -m venv tests/.venv tests/.venv/bin/pip install -r test-requirements.txt fi # Generate test images if needed if [ ! -f testdata/with_text.png ]; then echo "==> Generating test images..." tests/.venv/bin/python tests/generate_test_images.py fi # Run tests echo "==> Running tests..." tests/.venv/bin/stestr run pngtools-1.2/scripts/check-format.sh000077500000000000000000000010701514741477700176310ustar00rootroot00000000000000#!/bin/bash set -e cd "$(dirname "$0")/.." # Check or fix C source formatting with clang-format. # Usage: # scripts/check-format.sh # check only (exits non-zero on diff) # scripts/check-format.sh fix # reformat files in place mapfile -t FILES < <(find . -maxdepth 1 -name '*.c' -o -name '*.h' | sort) if [ "$1" = "fix" ]; then echo "==> Reformatting C sources..." clang-format -i "${FILES[@]}" echo "Done." else echo "==> Checking C source formatting..." clang-format --dry-run --Werror "${FILES[@]}" echo "Formatting OK." fi pngtools-1.2/test-requirements.txt000066400000000000000000000000411514741477700174760ustar00rootroot00000000000000testtools stestr fixtures Pillow pngtools-1.2/tests/000077500000000000000000000000001514741477700144045ustar00rootroot00000000000000pngtools-1.2/tests/__init__.py000066400000000000000000000000001514741477700165030ustar00rootroot00000000000000pngtools-1.2/tests/base.py000066400000000000000000000057771514741477700157100ustar00rootroot00000000000000"""Base test case for pngtools tests.""" import os import subprocess import types import fixtures import testtools # Project root is the parent of the tests/ directory PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath( __file__))) # Paths to the sample images shipped in the repository SAMPLE_DIR = PROJECT_ROOT # Path to generated test images TESTDATA_DIR = os.path.join(PROJECT_ROOT, 'testdata') def _ensure_test_images(): """Generate test images if they don't exist yet.""" marker = os.path.join(TESTDATA_DIR, 'with_text.png') if not os.path.exists(marker): script = os.path.join( PROJECT_ROOT, 'tests', 'generate_test_images.py' ) subprocess.run( ['python3', script], check=True, capture_output=True ) class PngtoolsTestCase(testtools.TestCase): """Base test case with helpers for running pngtools binaries.""" def setUp(self): super().setUp() self.tmpdir = self.useFixture(fixtures.TempDir()) # Verify binaries are built for binary in ['pnginfo', 'pngchunks', 'pngchunkdesc', 'pngcp']: path = os.path.join(PROJECT_ROOT, binary) if not os.path.exists(path): self.skipTest( f'{binary} not built; run make first' ) # Ensure generated test images exist _ensure_test_images() # Create an invalid (non-PNG) file for error tests self.invalid_file = os.path.join( self.tmpdir.path, 'invalid.txt' ) with open(self.invalid_file, 'w') as f: f.write('this is not a png file') def run_tool(self, name, args=None, stdin_data=None): """Run a pngtools binary and return the result. Returns a SimpleNamespace with .stdout, .stderr, and .returncode. """ if args is None: args = [] binary = os.path.join(PROJECT_ROOT, name) cmd = [binary] + args result = subprocess.run( cmd, capture_output=True, text=True, input=stdin_data, cwd=PROJECT_ROOT, timeout=30 ) return types.SimpleNamespace( stdout=result.stdout, stderr=result.stderr, returncode=result.returncode ) def run_pnginfo(self, filename, flags=None): """Convenience wrapper for running pnginfo.""" if flags is None: flags = [] return self.run_tool('pnginfo', flags + [filename]) def sample_path(self, filename): """Return the full path to a sample PNG in the repo.""" return os.path.join(SAMPLE_DIR, filename) def generated_path(self, filename): """Return the full path to a generated test PNG.""" return os.path.join(TESTDATA_DIR, filename) def tmp_path(self, filename): """Return a path in the temp directory for output.""" return os.path.join(self.tmpdir.path, filename) pngtools-1.2/tests/generate_test_images.py000066400000000000000000000106721514741477700211420ustar00rootroot00000000000000#!/usr/bin/env python3 """Generate additional test PNG images for pngtools testing. Creates PNG files that exercise code paths not covered by the existing sample images (paletted, interlaced, text chunks, transparency). """ import os import sys from PIL import Image, PngImagePlugin def generate_paletted(output_dir): """Create a 32x32 paletted PNG image.""" img = Image.new('P', (32, 32)) # Set a simple 4-colour palette palette = [0] * 768 palette[0:3] = [255, 0, 0] # index 0: red palette[3:6] = [0, 255, 0] # index 1: green palette[6:9] = [0, 0, 255] # index 2: blue palette[9:12] = [255, 255, 0] # index 3: yellow img.putpalette(palette) # Fill with a pattern using all 4 colours pixels = img.load() for y in range(32): for x in range(32): pixels[x, y] = (x + y) % 4 img.save(os.path.join(output_dir, 'paletted.png')) def generate_interlaced(output_dir): """Create a 32x32 RGB PNG with Adam7 interlacing.""" img = Image.new('RGB', (32, 32)) pixels = img.load() for y in range(32): for x in range(32): pixels[x, y] = (x * 8, y * 8, 128) # Pillow does not support writing interlaced PNGs via # the save() method directly, so we use the low-level # PngImagePlugin writer. path = os.path.join(output_dir, 'interlaced.png') with open(path, 'wb') as f: writer = PngImagePlugin._save # PngImagePlugin._save signature: # _save(im, fp, filename, chunk=putchunk, # save_all=False) # We need to set the interlace flag. The simplest # way is to encode via the internal API. pass # Fallback: use the standard save and accept that Pillow # may not set interlace. We can use the raw approach # instead with zlib. _save_interlaced_png(img, path) def _save_interlaced_png(img, path): """Save a PNG with Adam7 interlacing using raw bytes.""" import struct import zlib width, height = img.size raw_data = img.tobytes() # Build IHDR ihdr_data = struct.pack( '>IIBBBBB', width, height, 8, # bit depth 2, # colour type (RGB) 0, # compression 0, # filter 1 # interlace (Adam7) ) # Build IDAT with filter byte (0 = None) per row raw_rows = b'' stride = width * 3 for y in range(height): raw_rows += b'\x00' # filter byte raw_rows += raw_data[y * stride:(y + 1) * stride] compressed = zlib.compress(raw_rows) with open(path, 'wb') as f: # PNG signature f.write(b'\x89PNG\r\n\x1a\n') def write_chunk(chunk_type, data): f.write(struct.pack('>I', len(data))) f.write(chunk_type) f.write(data) crc = zlib.crc32(chunk_type + data) & 0xFFFFFFFF f.write(struct.pack('>I', crc)) write_chunk(b'IHDR', ihdr_data) write_chunk(b'IDAT', compressed) write_chunk(b'IEND', b'') def generate_with_text(output_dir): """Create a 32x32 RGB PNG with tEXt metadata chunks.""" img = Image.new('RGB', (32, 32), color=(100, 150, 200)) info = PngImagePlugin.PngInfo() info.add_text('Author', 'pngtools test suite') info.add_text('Description', 'Test image with text chunks') img.save( os.path.join(output_dir, 'with_text.png'), pnginfo=info ) def generate_with_transparency(output_dir): """Create a 32x32 paletted PNG with transparency.""" img = Image.new('P', (32, 32)) palette = [0] * 768 palette[0:3] = [255, 0, 0] palette[3:6] = [0, 255, 0] palette[6:9] = [0, 0, 255] palette[9:12] = [255, 255, 0] img.putpalette(palette) pixels = img.load() for y in range(32): for x in range(32): pixels[x, y] = (x + y) % 4 # Set transparency for palette index 0 img.save( os.path.join(output_dir, 'with_transparency.png'), transparency=0 ) def main(): """Generate all test images.""" script_dir = os.path.dirname(os.path.abspath(__file__)) project_root = os.path.dirname(script_dir) output_dir = os.path.join(project_root, 'testdata') os.makedirs(output_dir, exist_ok=True) generate_paletted(output_dir) generate_interlaced(output_dir) generate_with_text(output_dir) generate_with_transparency(output_dir) print(f'Generated test images in {output_dir}') return 0 if __name__ == '__main__': sys.exit(main()) pngtools-1.2/tests/test_pngchunkdesc.py000066400000000000000000000051541514741477700204760ustar00rootroot00000000000000"""Tests for the pngchunkdesc tool.""" from tests import base class TestPngchunkdesc(base.PngtoolsTestCase): """Test pngchunkdesc chunk name decoding.""" def test_critical_public_chunk(self): """IHDR: all uppercase = critical, public, compliant, unsafe.""" result = self.run_tool( 'pngchunkdesc', stdin_data='IHDR\n' ) self.assertEqual(0, result.returncode) self.assertIn('Critical', result.stdout) self.assertIn('public', result.stdout) self.assertIn('PNG 1.2 compliant', result.stdout) self.assertIn('unsafe to copy', result.stdout) def test_ancillary_safe_chunk(self): """tEXt: lowercase 1st = ancillary, lowercase 4th = safe to copy.""" result = self.run_tool( 'pngchunkdesc', stdin_data='tEXt\n' ) self.assertIn('Ancillary', result.stdout) self.assertIn('public', result.stdout) self.assertIn('safe to copy', result.stdout) def test_private_chunk(self): """tPRv: lowercase 2nd letter = private.""" result = self.run_tool( 'pngchunkdesc', stdin_data='tpRv\n' ) self.assertIn('private', result.stdout) def test_reserved_chunk_space(self): """IHdR: lowercase 3rd letter = reserved chunk space.""" result = self.run_tool( 'pngchunkdesc', stdin_data='IHdR\n' ) self.assertIn('in reserved chunk space', result.stdout) def test_iccp_chunk(self): """iCCP: ancillary, public, compliant, unsafe.""" result = self.run_tool( 'pngchunkdesc', stdin_data='iCCP\n' ) self.assertIn('Ancillary', result.stdout) self.assertIn('public', result.stdout) self.assertIn('PNG 1.2 compliant', result.stdout) self.assertIn('unsafe to copy', result.stdout) def test_multiple_inputs(self): """Multiple chunk names produce multiple output lines.""" result = self.run_tool( 'pngchunkdesc', stdin_data='IHDR\ntEXt\n' ) lines = result.stdout.strip().split('\n') self.assertEqual(2, len(lines)) self.assertIn('IHDR:', lines[0]) self.assertIn('tEXt:', lines[1]) def test_output_format(self): """Output format is 'NAME: prop1, prop2, prop3, prop4'.""" result = self.run_tool( 'pngchunkdesc', stdin_data='PLTE\n' ) line = result.stdout.strip() self.assertTrue(line.startswith('PLTE:')) # Should have exactly 4 comma-separated properties props = line.split(': ', 1)[1] self.assertEqual(3, props.count(',')) pngtools-1.2/tests/test_pngchunks.py000066400000000000000000000075231514741477700200240ustar00rootroot00000000000000"""Tests for the pngchunks tool.""" from tests import base class TestPngchunks(base.PngtoolsTestCase): """Test pngchunks chunk listing.""" def test_lists_ihdr(self): """Output contains an IHDR chunk.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertEqual(0, result.returncode) self.assertIn('[IHDR]', result.stdout) def test_lists_iend(self): """Output contains an IEND chunk.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertIn('[IEND]', result.stdout) def test_lists_idat(self): """Output contains at least one IDAT chunk.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertIn('[IDAT]', result.stdout) def test_ihdr_dimensions(self): """IHDR chunk shows correct width and height.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertIn('IHDR Width: 256', result.stdout) self.assertIn('IHDR Height: 256', result.stdout) def test_ihdr_bitdepth(self): """IHDR chunk shows correct bitdepth.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertIn('IHDR Bitdepth: 8', result.stdout) def test_chunk_properties_critical(self): """IHDR is identified as critical and public.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) # The line after IHDR should describe its properties self.assertIn('Critical, public', result.stdout) def test_ancillary_chunks(self): """input.png has ancillary chunks like bKGD or pHYs.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) # input.png is known to have bKGD, pHYs, tIME has_ancillary = ( '[bKGD]' in result.stdout or '[pHYs]' in result.stdout or '[tIME]' in result.stdout ) self.assertTrue( has_ancillary, 'Expected ancillary chunks in output' ) def test_compression_algorithm(self): """IHDR compression algorithm is identified as Deflate.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertIn( 'Compression algorithm is Deflate', result.stdout ) def test_chunk_crc(self): """Each chunk has a CRC value displayed.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertIn('Chunk CRC:', result.stdout) def test_iend_no_data(self): """IEND chunk reports containing no data.""" result = self.run_tool( 'pngchunks', [self.sample_path('input.png')] ) self.assertIn('IEND contains no data', result.stdout) class TestPngchunksErrors(base.PngtoolsTestCase): """Test pngchunks error handling.""" def test_no_arguments(self): """No arguments prints usage and exits 1.""" result = self.run_tool('pngchunks') self.assertEqual(1, result.returncode) self.assertIn('Usage:', result.stderr) def test_missing_file(self): """Missing file prints error and exits 1.""" result = self.run_tool( 'pngchunks', ['/nonexistent/file.png'] ) self.assertEqual(1, result.returncode) self.assertIn('Could not open', result.stderr) def test_invalid_file(self): """Non-PNG file prints error and exits 1.""" result = self.run_tool( 'pngchunks', [self.invalid_file] ) self.assertEqual(1, result.returncode) self.assertIn('not a PNG file', result.stderr) pngtools-1.2/tests/test_pngcp.py000066400000000000000000000121151514741477700171240ustar00rootroot00000000000000"""Tests for the pngcp tool.""" import os from tests import base class TestPngcp(base.PngtoolsTestCase): """Test pngcp image copying and transformation.""" def test_simple_copy(self): """Copy input.png without changes preserves metadata.""" output = self.tmp_path('copy.png') result = self.run_tool('pngcp', [ self.sample_path('input.png'), output ]) self.assertEqual(0, result.returncode) self.assertTrue(os.path.exists(output)) # Verify the copy has the same dimensions info = self.run_pnginfo(output) self.assertIn('Image Width: 256', info.stdout) self.assertIn('Image Length: 256', info.stdout) def test_output_is_valid_png(self): """Copied file starts with PNG magic bytes.""" output = self.tmp_path('copy.png') self.run_tool('pngcp', [ self.sample_path('input.png'), output ]) with open(output, 'rb') as f: magic = f.read(8) self.assertEqual( b'\x89PNG\r\n\x1a\n', magic ) def test_change_bitdepth(self): """-d 16 changes the output bit depth.""" output = self.tmp_path('depth16.png') result = self.run_tool('pngcp', [ '-d', '16', self.sample_path('input.png'), output ]) self.assertEqual(0, result.returncode) info = self.run_pnginfo(output) self.assertIn('16', info.stdout) def test_copy_preserves_dimensions(self): """Copied RGB image has the same dimensions as input.""" output = self.tmp_path('copy2.png') result = self.run_tool('pngcp', [ self.sample_path('input.png'), output ]) self.assertEqual(0, result.returncode) info = self.run_pnginfo(output) self.assertIn('Image Width: 256', info.stdout) self.assertIn('Image Length: 256', info.stdout) def test_reduce_16bit_to_8bit(self): """16-bit grayscale reduced to 8-bit.""" output = self.tmp_path('reduced.png') result = self.run_tool('pngcp', [ '-d', '8', self.sample_path('multibytesample.png'), output ]) self.assertEqual(0, result.returncode) info = self.run_pnginfo(output) self.assertIn('Bitdepth (Bits/Sample): 8', info.stdout) self.assertIn('Channels (Samples/Pixel): 1', info.stdout) def test_combined_bitdepth_and_channels(self): """Combined bitdepth and channel change in one pass.""" output = self.tmp_path('combined.png') result = self.run_tool('pngcp', [ '-d', '16', '-s', '3', self.sample_path('grayscale.png'), output ]) self.assertEqual(0, result.returncode) info = self.run_pnginfo(output) self.assertIn('Bitdepth (Bits/Sample): 16', info.stdout) self.assertIn('Channels (Samples/Pixel): 3', info.stdout) def test_add_alpha_channel(self): """Adding alpha channel to RGB image.""" output = self.tmp_path('with_alpha.png') result = self.run_tool('pngcp', [ '-s', '4', self.sample_path('input.png'), output ]) self.assertEqual(0, result.returncode) info = self.run_pnginfo(output) self.assertIn('Channels (Samples/Pixel): 4', info.stdout) self.assertIn('RGB with alpha channel', info.stdout) def test_gray_to_rgb(self): """Grayscale to RGB channel expansion.""" output = self.tmp_path('gray_to_rgb.png') result = self.run_tool('pngcp', [ '-s', '3', self.sample_path('grayscale.png'), output ]) self.assertEqual(0, result.returncode) info = self.run_pnginfo(output) self.assertIn('Channels (Samples/Pixel): 3', info.stdout) self.assertIn('RGB', info.stdout) def test_drop_alpha_channel(self): """Dropping alpha channel from RGBA image.""" output = self.tmp_path('no_alpha.png') result = self.run_tool('pngcp', [ '-s', '3', self.sample_path('foursamplesperpixel.png'), output ]) self.assertEqual(0, result.returncode) info = self.run_pnginfo(output) self.assertIn('Channels (Samples/Pixel): 3', info.stdout) class TestPngcpErrors(base.PngtoolsTestCase): """Test pngcp error handling.""" def test_no_arguments(self): """No arguments prints usage and exits 1.""" result = self.run_tool('pngcp') self.assertEqual(1, result.returncode) self.assertIn('Usage:', result.stderr) def test_missing_input(self): """Missing input file prints error and exits non-zero.""" output = self.tmp_path('out.png') result = self.run_tool('pngcp', [ '/nonexistent/file.png', output ]) self.assertNotEqual(0, result.returncode) def test_input_not_png(self): """Non-PNG input file prints error and exits non-zero.""" output = self.tmp_path('out.png') result = self.run_tool('pngcp', [ self.invalid_file, output ]) self.assertNotEqual(0, result.returncode) pngtools-1.2/tests/test_pnginfo.py000066400000000000000000000203661514741477700174640ustar00rootroot00000000000000"""Tests for the pnginfo tool.""" from tests import base class TestPnginfoBasicMetadata(base.PngtoolsTestCase): """Test pnginfo metadata display for various image types.""" def test_rgb_image(self): """sample.png: 640x480 8-bit RGB.""" result = self.run_pnginfo(self.sample_path('sample.png')) self.assertEqual(0, result.returncode) self.assertIn('Image Width: 640', result.stdout) self.assertIn('Image Length: 480', result.stdout) self.assertIn('Channels (Samples/Pixel): 3', result.stdout) self.assertIn( 'Colour Type (Photometric Interpretation): RGB', result.stdout ) def test_rgba_image(self): """foursamplesperpixel.png: 32x32 8-bit RGBA.""" result = self.run_pnginfo( self.sample_path('foursamplesperpixel.png') ) self.assertEqual(0, result.returncode) self.assertIn('Image Width: 32', result.stdout) self.assertIn('Image Length: 32', result.stdout) self.assertIn('Channels (Samples/Pixel): 4', result.stdout) self.assertIn('RGB with alpha channel', result.stdout) def test_grayscale_image(self): """grayscale.png: 32x32 4-bit grayscale.""" result = self.run_pnginfo( self.sample_path('grayscale.png') ) self.assertEqual(0, result.returncode) self.assertIn( 'Bitdepth (Bits/Sample): 4', result.stdout ) self.assertIn('Channels (Samples/Pixel): 1', result.stdout) self.assertIn('GRAYSCALE', result.stdout) def test_16bit_grayscale(self): """multibytesample.png: 32x32 16-bit grayscale.""" result = self.run_pnginfo( self.sample_path('multibytesample.png') ) self.assertEqual(0, result.returncode) self.assertIn( 'Bitdepth (Bits/Sample): 16', result.stdout ) self.assertIn('GRAYSCALE', result.stdout) def test_image_with_phys(self): """input.png has a pHYs chunk with resolution data.""" result = self.run_pnginfo(self.sample_path('input.png')) self.assertEqual(0, result.returncode) self.assertIn('pixels per meter', result.stdout) def test_image_without_phys(self): """sample.png has no pHYs chunk; resolution not specified.""" result = self.run_pnginfo(self.sample_path('sample.png')) self.assertEqual(0, result.returncode) self.assertIn('Resolution: (not specified)', result.stdout) self.assertNotIn('unit unknown', result.stdout) def test_exit_code_success(self): """Successful run returns exit code 0.""" result = self.run_pnginfo(self.sample_path('input.png')) self.assertEqual(0, result.returncode) def test_multiple_files(self): """Multiple filenames on command line all appear.""" result = self.run_tool('pnginfo', [ self.sample_path('sample.png'), self.sample_path('input.png') ]) self.assertEqual(0, result.returncode) self.assertIn('sample.png', result.stdout) self.assertIn('input.png', result.stdout) def test_compression_scheme(self): """All PNG files show deflate compression.""" result = self.run_pnginfo(self.sample_path('sample.png')) self.assertIn( 'Compression Scheme: Deflate method 8', result.stdout ) def test_fill_order(self): """FillOrder and byte order are always the same.""" result = self.run_pnginfo(self.sample_path('sample.png')) self.assertIn('FillOrder: msb-to-lsb', result.stdout) self.assertIn( 'Byte Order: Network (Big Endian)', result.stdout ) class TestPnginfoGeneratedImages(base.PngtoolsTestCase): """Test pnginfo with generated test images.""" def test_paletted_image(self): """paletted.png shows PALETTED COLOUR type.""" result = self.run_pnginfo( self.generated_path('paletted.png') ) self.assertEqual(0, result.returncode) self.assertIn('PALETTED COLOUR', result.stdout) def test_interlaced_image(self): """interlaced.png shows Adam7 interlacing.""" result = self.run_pnginfo( self.generated_path('interlaced.png') ) self.assertEqual(0, result.returncode) self.assertIn('Adam7 interlacing', result.stdout) def test_text_chunks(self): """with_text.png shows text chunk metadata.""" result = self.run_pnginfo( self.generated_path('with_text.png') ) self.assertEqual(0, result.returncode) self.assertIn('Number of text strings: 2', result.stdout) self.assertIn('Author', result.stdout) self.assertIn('Description', result.stdout) def test_paletted_with_transparency(self): """with_transparency.png shows paletted with alpha.""" result = self.run_pnginfo( self.generated_path('with_transparency.png') ) self.assertEqual(0, result.returncode) self.assertIn('PALETTED COLOUR', result.stdout) class TestPnginfoTiffMode(base.PngtoolsTestCase): """Test pnginfo -t (tiffinfo compatible labels).""" def test_tiff_labels(self): """-t uses tiffinfo-style label names.""" result = self.run_pnginfo( self.sample_path('input.png'), flags=['-t'] ) self.assertEqual(0, result.returncode) self.assertIn('Bits/Sample:', result.stdout) self.assertIn('Samples/Pixel:', result.stdout) self.assertIn('Pixel Depth:', result.stdout) # Should NOT contain the default PNG-style labels self.assertNotIn('Bitdepth (Bits/Sample)', result.stdout) self.assertNotIn( 'Channels (Samples/Pixel)', result.stdout ) def test_tiff_mode_header(self): """-t includes compatibility note in filename header.""" result = self.run_pnginfo( self.sample_path('input.png'), flags=['-t'] ) self.assertIn( '(tiffinfo compatible labels)', result.stdout ) class TestPnginfoBitmap(base.PngtoolsTestCase): """Test pnginfo -d (dump bitmap) and -D (verify bitmap).""" def test_dump_bitmap(self): """-d dumps hex bitmap data.""" result = self.run_pnginfo( self.sample_path('grayscale.png'), flags=['-d'] ) self.assertEqual(0, result.returncode) self.assertIn('Dumping the bitmap', result.stdout) # Bitmap contains hex pixel values in brackets self.assertIn('[', result.stdout) def test_dump_bitmap_format(self): """-d output includes pixel format description.""" result = self.run_pnginfo( self.sample_path('grayscale.png'), flags=['-d'] ) self.assertIn('bytes per pixel', result.stdout) self.assertIn('channels', result.stdout) def test_verify_bitmap(self): """-D extracts bitmap without displaying it.""" result = self.run_pnginfo( self.sample_path('sample.png'), flags=['-D'] ) self.assertEqual(0, result.returncode) # Metadata should appear but not bitmap dump self.assertIn('Image Width:', result.stdout) self.assertNotIn('Dumping the bitmap', result.stdout) class TestPnginfoErrors(base.PngtoolsTestCase): """Test pnginfo error handling.""" def test_no_arguments(self): """No arguments prints usage and exits 1.""" result = self.run_tool('pnginfo') self.assertEqual(1, result.returncode) self.assertIn('Usage:', result.stderr) def test_usage_lists_all_flags(self): """Usage message documents all supported flags.""" result = self.run_tool('pnginfo') self.assertIn('-t', result.stderr) self.assertIn('-d', result.stderr) self.assertIn('-D', result.stderr) def test_missing_file(self): """Missing file prints error and exits 1.""" result = self.run_pnginfo('/nonexistent/file.png') self.assertEqual(1, result.returncode) self.assertIn('Could not open', result.stderr) def test_invalid_file(self): """Non-PNG file prints error and exits 1.""" result = self.run_pnginfo(self.invalid_file) self.assertEqual(1, result.returncode) self.assertIn('not a valid PNG', result.stderr)