pax_global_header00006660000000000000000000000064147177264330014530gustar00rootroot0000000000000052 comment=81b4f01fe86129ecc94d0f2e0b89d214094a7af2 calamares-extensions-3.3.12/000077500000000000000000000000001471772643300157435ustar00rootroot00000000000000calamares-extensions-3.3.12/.clang-format000066400000000000000000000020371471772643300203200ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 --- BasedOnStyle: WebKit AlignAfterOpenBracket: Align AlignEscapedNewlines: DontAlign AllowAllParametersOfDeclarationOnNextLine: "false" AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: "false" AllowShortLambdasOnASingleLine: All AllowShortLoopsOnASingleLine: "false" AlwaysBreakAfterReturnType: TopLevelDefinitions AlwaysBreakTemplateDeclarations: Yes BinPackArguments: "false" BinPackParameters: "false" BreakBeforeBraces: Allman BreakBeforeTernaryOperators: "true" BreakConstructorInitializers: BeforeComma ColumnLimit: 120 Cpp11BracedListStyle: "false" FixNamespaceComments: "true" IncludeBlocks: Preserve IndentWidth: "4" InsertBraces: "true" MaxEmptyLinesToKeep: "2" NamespaceIndentation: None PointerAlignment: Left ReflowComments: "false" SortIncludes: "true" SpaceAfterCStyleCast: "false" SpaceInEmptyBlock: "false" SpacesBeforeTrailingComments: "2" SpacesInAngles: "true" SpacesInParentheses: "true" SpacesInSquareBrackets: "true" Standard: c++17 calamares-extensions-3.3.12/.clang-format.base000066400000000000000000000017571471772643300212410ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 --- BasedOnStyle: WebKit AlignAfterOpenBracket: Align AlignEscapedNewlines: DontAlign AllowAllParametersOfDeclarationOnNextLine: "false" AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: "false" AllowShortLambdasOnASingleLine: All AllowShortLoopsOnASingleLine: "false" AlwaysBreakAfterReturnType: TopLevelDefinitions AlwaysBreakTemplateDeclarations: Yes BinPackArguments: "false" BinPackParameters: "false" BreakBeforeBraces: Allman BreakBeforeTernaryOperators: "true" BreakConstructorInitializers: BeforeComma ColumnLimit: 120 Cpp11BracedListStyle: "false" FixNamespaceComments: "true" IncludeBlocks: Preserve IndentWidth: "4" MaxEmptyLinesToKeep: "2" NamespaceIndentation: None PointerAlignment: Left ReflowComments: "false" SortIncludes: "true" SpaceAfterCStyleCast: "false" SpacesBeforeTrailingComments: "2" SpacesInAngles: "true" SpacesInParentheses: "true" SpacesInSquareBrackets: "true" Standard: Cpp11 calamares-extensions-3.3.12/.editorconfig000066400000000000000000000006771471772643300204320ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 root = true [*] charset = utf-8 end_of_line = lf trim_trailing_whitespace = true [CMakeLists.txt] indent_style = space indent_size = 4 insert_final_newline = true [*.cmake] indent_style = space indent_size = 4 insert_final_newline = true [*.{py,cpp,h}] indent_style = space indent_size = 4 insert_final_newline = true [*.sh] indent_style = tab insert_final_newline = true calamares-extensions-3.3.12/.github/000077500000000000000000000000001471772643300173035ustar00rootroot00000000000000calamares-extensions-3.3.12/.github/workflows/000077500000000000000000000000001471772643300213405ustar00rootroot00000000000000calamares-extensions-3.3.12/.github/workflows/nightly-neon.yml000066400000000000000000000034551471772643300245050ustar00rootroot00000000000000name: nightly-neon-xtn on: schedule: - cron: "52 1 * * *" workflow_dispatch: env: BUILDDIR: /build SRCDIR: ${{ github.workspace }} CMAKE_ARGS: | -DWEBVIEW_FORCE_WEBKIT=1 -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DWITH_PYTHONQT=OFF" -DCMAKE_BUILD_TYPE=Debug jobs: build: runs-on: ubuntu-latest container: image: docker://kdeneon/plasma:user options: --tmpfs /build:rw --user 0:0 steps: - name: "fetch artifacts" uses: dawidd6/action-download-artifact@v2 with: workflow: nightly-neon.yml workflow_conclusion: success branch: calamares name: calamares-tarball path: ${{ env.BUILDDIR }} repo: calamares/calamares - name: "prepare env" uses: calamares/actions/prepare-neon@v2 - name: "prepare source" uses: actions/checkout@v2 - name: "prepare artifacts" run: tar xvzf "$BUILDDIR/calamares.tar.gz" -C / --strip-components 1 - name: "build" id: build uses: calamares/actions/generic-build@v2 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares-extensions' }} uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git_summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git_summary}}" calamares-extensions-3.3.12/.github/workflows/push.yml000066400000000000000000000041121471772643300230400ustar00rootroot00000000000000name: ci-push-xtn on: push: branches: - calamares pull_request: types: - opened - reopened - synchronize workflow_dispatch: env: BUILDDIR: /build SRCDIR: ${{ github.workspace }} CMAKE_ARGS: | -DWEBVIEW_FORCE_WEBKIT=1 -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DWITH_PYTHONQT=OFF" -DCMAKE_BUILD_TYPE=Debug jobs: build: runs-on: ubuntu-latest container: image: docker://kdeneon/plasma:user options: --tmpfs /build:rw --user 0:0 steps: - name: "fetch artifacts" uses: dawidd6/action-download-artifact@v2 with: workflow: nightly-neon.yml workflow_conclusion: success branch: calamares name: calamares-tarball path: ${{ env.BUILDDIR }} repo: calamares/calamares - name: "prepare env" uses: calamares/actions/prepare-neon@v2 - name: "prepare source" uses: actions/checkout@v2 - name: "prepare artifacts" run: tar xvzf "$BUILDDIR/calamares.tar.gz" -C / --strip-components 1 - name: "build" id: build uses: calamares/actions/generic-build@v2 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares-extensions' }} uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: | OK ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} .. ${{ steps.build.outputs.git-summary }} - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares-extensions' }} uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: | FAIL ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} .. ${{ steps.build.outputs.git-summary }} .. ${{ github.event.compare }} calamares-extensions-3.3.12/.gitignore000066400000000000000000000001441471772643300177320ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # .kdev4/ build/ *.kdev4 *.qmlc calamares-extensions-3.3.12/.reuse/000077500000000000000000000000001471772643300171445ustar00rootroot00000000000000calamares-extensions-3.3.12/.reuse/dep5000066400000000000000000000010251471772643300177220ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Calamares-Extensions Source: https://github.com/calamares/calamares-extensions.git ### BUILD ARTIFACTS / NOT SOURCE # # QRC Files are basically build artifacts # FILES: modules/*/*.qrc License: CC0-1.0 Copyright: no # GitHub issue templates are not part of the source # Files: .github/ISSUE_TEMPLATE/* License: CC0-1.0 Copyright: no # GitHub actions are not part of the source Files: .github/workflows/*.yml License: CC0-1.0 Copyright: no calamares-extensions-3.3.12/CHANGES000066400000000000000000000075371471772643300167520ustar00rootroot00000000000000 This is the changelog for Calamares-Extensions. For each release, the major changes and contributors are listed. Note that Calamares-Extensions does not have a historical changelog -- this log starts with version 1.0.0. # 3.3.12 (2024-11-21) This is a release to match Calamares 3.3.12. The *unpackfsc* module has moved to Calamares proper. There is a new module *flatpakinfo* that tries to populate a netinstall key with packages available as flatpak. This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Sławomir Lach # 3.3.1 (2024-01-15) This is the first *calamares-extensions* release to go with a Calamares 3.3 release. The extensions now require Calamares 3.3. There is a branch for 3.2 legacy support but no releases are planned for it. The main reason for this release is to have a 3.3-compatible release of *-extensions* at all. This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Anke Boersma - undef # 1.3.2 (2023-08-28) We skipped a couple of releases in the release-notes, then tagged 1.3.1 without a version bump or release-notes. So 1.3.2 brings us back to "regular releases". This release contains contributions from (alphabetically by first name): - Anke Boersma - Nathan Schulte - Oliver Smith - stravanpannala - undef Changes and new modules in this release: - *mobile* Has new configuration options. (Thanks Nathan, Oliver) - *unpackfsc* Uses a more portable invocation of tar. (Thanks sravanpannala) # 1.2.1 (2021-11-16) The 1.2.0 release had no release-notes for that version, and failed to credit Anke and Otus. Changes and new modules in this release: - *unpackfsc* can use `fsarchiver` and unpack that, instead of squashfs; a distro might choose one tool or the other. Currently, only *savedir* / *restdir* mode (i.e. directories, not block-devices) are supported. # 1.2.0 (2021-11-16) This release contains contributions from (alphabetically by first name): - Anke Boersma - Otus9051 Changes and new modules in this release: - *refind* is a new module that installs the rEFInd bootloader. It can be used instead of the *bootloader* module from core Calamares. (Thanks Anke) - *unpackfsc* is a new module that uses `unsquashfs` directly. This may be faster or more convenient than the *unpackfs* module from core Calamares. The configuration file supports only one entry, but is otherwise easy to adapt from an existing `unpackfs.conf`. # 1.1.2 (2021-05-14) This release contains contributions from (alphabetically by first name): - Oliver Smith Changes and new modules in this release: - New *os-* modules are intended for OS-specific work. They don't do anything concrete yet, though. - The *mobile* module has new features thanks to Oliver, with keyboard selection (numeric / alpha) for PIN / password entry among them. # 1.1.1 (2021-02-23) This release contains contributions from (alphabetically by first name): - Oliver Smith - Undef Changes and new modules in this release: - Branding has a new example, *image-slideshow*, for a QML-based slideshow with only images. - CI now builds the extensions against a recent Calamares build. - *mobile* add ability to select target filesystem. - *mobile* rename `cmdMkfsRoot` to `cmdMkfsRootExt4`. - *mobile* wait screen has been re-worded. # 1.1.0 (2021-01-04) This release contains contributions from (alphabetically by first name): - Oliver Smith Changes and new modules in this release: - *mobile* module bugfixes - *mobile* module SSH daemon can be disabled # 1.0.0 (2020-12-05) This release contains contributions from (alphabetically by first name): - Oliver Smith - ShalokShalom Initial release of Calamares-Extensions as such, with one new module - *mobile*, for PostmarketOS initial configuration calamares-extensions-3.3.12/CMakeLists.txt000066400000000000000000000135101471772643300205030ustar00rootroot00000000000000# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # ### # # Calamares-Examples is Free Software: see the License-Identifier above. # # Individual files may have different licenses (like the CMake # infrastructure, which is BSD-2-Clause licensed). Check the SPDX # identifiers in each file. # ### # # This is an example of a repository containing Calamares branding-components # and Calamares modules and Calamares configuration, showing how a single # repository can be used to provide customisation for Calamares, so that a # distro can use an unmodified (upstream) Calamares package and a local # customisation package in tandem. # # Besides being an example repository, it is also a collection of modules # and branding that is usable in its own right. # ### CONFIGURING # # By default, all the branding examples and all the modules are built. # This can be influenced through: # SKIP_MODULES : a space or semicolon-separated list of directory names # under src/modules that should not be built. # USE_* : fills in SKIP_MODULES for modules called *- # In this repository, there is just one "group" to which USE_* applies: # USE_os : operating-system-specific modules. # # There is a knob WITH_QT6 which can be used to build against Qt6 rather # than Qt5. This must match what Calamares itself is built with. # ### NOTES # # Call this CMake file in script mode, e.g. `cmake -P CMakeLists.txt` # to print out version information. Use `cmake -DVERSION_STYLE=short` # to get just the short versioning. # cmake_minimum_required(VERSION 3.16 FATAL_ERROR) set( CALAMARES_EXTENSIONS_VERSION 3.3.12 ) include( ${CMAKE_CURRENT_LIST_DIR}/CMakeModules/ExtendedVersion.cmake ) if ( CMAKE_SCRIPT_MODE_FILE ) report_version( ${CALAMARES_EXTENSIONS_VERSION} ${CMAKE_CURRENT_LIST_DIR} ) return() endif() project(calamares-extensions VERSION ${CALAMARES_EXTENSIONS_VERSION} LANGUAGES CXX ) set( CMAKE_CXX_STANDARD 17 ) set( CMAKE_CXX_STANDARD_REQUIRED ON ) # On developer's machine, the user package registry breaks # consumers by loading the developer's config from a build # directory (which doesn't have the rest of the config # installed inside it). set( CALAMARES_VERSION_REQUIRED 3.3.12 ) message(STATUS "Looking for Calamares system-wide") find_package(Calamares ${CALAMARES_VERSION_REQUIRED} CONFIG NO_CMAKE_PACKAGE_REGISTRY) if (NOT TARGET Calamares::calamares OR NOT TARGET Calamares::calamaresui) message(STATUS "Looking for Calamares in the package registry") find_package(Calamares ${CALAMARES_VERSION_REQUIRED} CONFIG REQUIRED) endif() message(STATUS "Found Calamares version ${Calamares_VERSION}") message(STATUS " libraries ${Calamares_LIB_DIRS}") message(STATUS "") ### EXTRACTING DEPENDENCIES AND CONFIGURATION FROM CALAMARES # # if(Calamares_WITH_QT6) set(kfname "KF6") set(KF_VERSION 5.240) # KDE Neon weirdness else() message(STATUS "Building Calamares-extensions with Qt5") set(kfname "KF5") set(KF_VERSION 5.78) # API that was deprecated before Qt 5.15 causes a compile error add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x050f00) endif() include( FeatureSummary ) find_package(${kfname}CoreAddons ${KF_VERSION} QUIET) set_package_properties( ${kfname}CoreAddons PROPERTIES TYPE REQUIRED DESCRIPTION "KDE Framework CoreAddons" URL "https://api.kde.org/frameworks/" PURPOSE "Essential Framework for AboutData and Macros" ) ### CMAKE SETUP # # Enable IN_LIST if( POLICY CMP0057 ) cmake_policy( SET CMP0057 NEW ) endif() # Let ``AUTOMOC`` and ``AUTOUIC`` process ``GENERATED`` files. if( POLICY CMP0071 ) cmake_policy( SET CMP0071 NEW ) endif() # Recognize more macros to trigger automoc if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.10.0") list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "K_PLUGIN_FACTORY_WITH_JSON" "K_EXPORT_PLASMA_DATAENGINE_WITH_JSON" "K_EXPORT_PLASMA_RUNNER" ) endif() include( CTest ) ### BRANDING # # Typically you would use only one branding, since that's # the (single) branding for your distro. # calamares_add_branding_subdirectory( branding/default NAME default ) calamares_add_branding_subdirectory( branding/default-mobile NAME default-mobile ) calamares_add_branding_subdirectory( branding/fancy NAME fancy ) # This one has files in subdirectories calamares_add_branding_subdirectory( branding/samegame NAME samegame SUBDIRECTORIES img ) # KaOS branding, with translations, note we can *NAME* something # different from the source directory it lives in; this will be installed # to a directory called *NAME* though -- and the `branding.desc` must # have a *componentName* that matches this *NAME*. calamares_add_branding_subdirectory( branding/kaos_branding NAME kaos ) ### MODULES # # Add one of more modules, either C++ or Python. # set(LIST_SKIPPED_MODULES "") calamares_add_module_subdirectory( modules/freebsddisk LIST_SKIPPED_MODULES ) # C++ viewmodule calamares_add_module_subdirectory( modules/mobile LIST_SKIPPED_MODULES ) calamares_add_module_subdirectory( modules/os-freebsd LIST_SKIPPED_MODULES ) calamares_add_module_subdirectory( modules/os-nixos LIST_SKIPPED_MODULES ) calamares_add_module_subdirectory( modules/refind LIST_SKIPPED_MODULES ) calamares_add_module_subdirectory( modules/slowpython LIST_SKIPPED_MODULES ) # Python job # The unpackfsc module moved into Calamares proper in 3.3.11 # # calamares_add_module_subdirectory( modules/unpackfsc LIST_SKIPPED_MODULES ) message(STATUS "Calamares extensions ${CALAMARES_EXTENSIONS_VERSION} for Calamares version ${Calamares_VERSION}") # If modules cannot be built, they usually call a macro # which builds a list of explanations; show that list. calamares_explain_skipped_modules( ${LIST_SKIPPED_MODULES} ) calamares-extensions-3.3.12/CMakeModules/000077500000000000000000000000001471772643300202545ustar00rootroot00000000000000calamares-extensions-3.3.12/CMakeModules/ExtendedVersion.cmake000066400000000000000000000065711471772643300243750ustar00rootroot00000000000000# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2021 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # ### # # This file defines one function for extending a VERSION-like value # with date and git information (if desired). # # - extend_version( version-string short_var long_var ) # Calling this function will copy *version-string* (which would typically # be a semver-style string, like "3.2.40") into the variable *short_var*. # The *version-string* plus date and git information (if git is available), # is copied into the varialbe *long_var*, in the format {version}-{date}-{hash} # # A helper function that may be used independently: # # - get_git_version_info( out_var ) # If relevant and possible (e.g. it is a git checkout and git is availablle # in the environment), put git versioning information in *out_var*. # # A convenience function for use from script-mode for version reporting: # # - report_version( version top_dir ) # Call this with an intended version string (e.g. "1.1") and # the top-level source directory (e.g. `${CMAKE_CURRENT_LIST_DIR}` # or `${CMAKE_SOURCE_DIR}` .. in script mode, the latter is not defined). # function( get_git_version_info out_var ) set(CMAKE_VERSION_SOURCE "") if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD) find_program(GIT_EXECUTABLE NAMES git git.cmd) mark_as_advanced(GIT_EXECUTABLE) if(GIT_EXECUTABLE) execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=8 HEAD OUTPUT_VARIABLE head OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) if(head) set(CMAKE_VERSION_SOURCE "${head}") execute_process( COMMAND ${GIT_EXECUTABLE} update-index -q --refresh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) execute_process( COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD -- OUTPUT_VARIABLE dirty OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) if(dirty) set(CMAKE_VERSION_SOURCE "${CMAKE_VERSION_SOURCE}-dirty") endif() endif() endif() endif() set( ${out_var} "${CMAKE_VERSION_SOURCE}" PARENT_SCOPE ) endfunction() function( extend_version version short_var long_var ) set( ${short_var} "${version}" PARENT_SCOPE ) # Additional info for non-release builds which want "long" version info # with date and git information (commit, dirty status). set( _v "${version}" ) string( TIMESTAMP CALAMARES_VERSION_DATE "%Y%m%d" ) if( CALAMARES_VERSION_DATE GREATER 0 ) set( _v ${_v}.${CALAMARES_VERSION_DATE} ) endif() get_git_version_info( _gitv ) if( _gitv ) set( _v "${_v}-${_gitv}" ) endif() set( ${long_var} "${_v}" PARENT_SCOPE ) endfunction() function( report_version version top_dir ) set( CMAKE_SOURCE_DIR ${top_dir} ) extend_version( ${version} _vshort _vlong ) if ( "x${VERSION_STYLE}" STREQUAL "xshort" ) message( "${_vshort}" ) else() message( "${_vlong}" ) endif() endfunction() calamares-extensions-3.3.12/CONTRIBUTING.md000066400000000000000000000033421471772643300201760ustar00rootroot00000000000000 # Contributing to Calamares Extensions Welcome to Calamares! We're happy that you would like to add something to Calamares -- by extending it! This contribution guide is minimal: all the **technical** parts of contributing to Calamares Extensions are the same as [contributing to Calamares](https://github.com/calamares/calamares/CONTRIBUTING.md). ## Code of Conduct The Calamares community -- of developers, translators, and downstream (distro) users -- aims to be courteous, professional, and inclusive. Harrassment, discriminatory statements and abuse are not tolerated. In general, we apply the [KDE Code of Conduct](https://www.kde.org/code-of-conduct/) and the [GNOME Code of Conduct](https://wiki.gnome.org/Foundation/CodeOfConduct) (the rules of decent behavior in both communities are pretty much the same). > See the [CoC section on the wiki](https://github.com/calamares/calamares/wiki#code-of-conduct) > for a longer text. To report a problem, please contact the maintainer, > Adriaan de Groot, or the KDE Community Working Group. ## Join the Conversation GitHub Issues are **one** place for discussing Calamares and its extensions if there are concrete problems or a new feature to discuss. Issues are not a help channel. Visit Matrix for help with configuration or compilation. Regular Calamares development chit-chat happens in a [Matrix](https://matrix.org/) room, `#calamares:kde.org`. Responsiveness is best during the day in Europe, but feel free to idle. Matrix is persistent, and we'll see your message eventually. * [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares:kde.org-blue)](https://webchat.kde.org/#/room/%23calamares:kde.org) calamares-extensions-3.3.12/LICENSES/000077500000000000000000000000001471772643300171505ustar00rootroot00000000000000calamares-extensions-3.3.12/LICENSES/BSD-2-Clause.txt000066400000000000000000000024541471772643300216770ustar00rootroot00000000000000 Copyright 2019 Adriaan de Groot Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. calamares-extensions-3.3.12/LICENSES/CC0-1.0.txt000066400000000000000000000154041471772643300205560ustar00rootroot00000000000000Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. calamares-extensions-3.3.12/LICENSES/GPL-3.0-or-later.txt000066400000000000000000001045131471772643300223600ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . calamares-extensions-3.3.12/README.md000066400000000000000000000231121471772643300172210ustar00rootroot00000000000000 # Calamares Branding and Module Examples > A *branding component* in Calamares is a description of the > product (i.e. distribution) being installed along with a "slideshow" > that is displayed during the installation phase of Calamares. > This shapes the **look** of your installation. > > A *module* adds **functionality** to Calamares; modules may be written > in C++ or Python, using Qt Widgets or QML for the UI (with C++) > if there is one. Both C++ and Python allow a full control over the > target system during the installation. This repository contains complete examples of branding and some modules for Calamares. - [Branding](#branding) documentation - [Module](#modules) documentation ## Branding > Branding shapes the **look** of Calamares to your distro Calamares ships with (just) one default branding component which can be used for testing. The examples here show what can be done with QML in the context of Calamares branding, and provide examples and documentation for the framework that Calamares ships with. - [`default/`](branding/default/branding.desc) is a copy of the default branding included with Calamares. - [`fancy/`](branding/fancy/branding.desc) has navigation buttons and a slide counter. - [`image-slideshow/`](branding/image-slideshow/branding.desc) is a variant of the *default* branding that implements its own slide element for QML that supports a single image. This is useful for straightforward images-only slideshows (probably moreso than the default slideshow). - [`kaos_branding/`](branding/kaos_branding/branding.desc) is a copy of the KaOS branding component, which has translations and a bunch of fancy graphics for the slideshow. Plus it includes examples of using different QML options for a vertical navigation bar and horizontal sidebar. - [`samegame/` ](branding/default/branding.desc) is a copy of the Qt Company "Same Game" QML demo. It shows that **any** QML can be used for branding purposes. ### Writing your own Branding - *Branding descriptor* The basis of branding is the `branding.desc` file, which describes the overall branding. The default `branding.desc` in the Calamares source repository has extensive documentation. You can: - configure strings displayed in Calamares that name your distro - configure images and colors used - control the size and placement of the Calamares window on startup - choose navigation and control panel styles - select or construct a slideshow to display during long-running installation steps. See the [deployment guide](https://github.com/calamares/calamares/wiki/Deploy-Guide) in the Calamares wiki for more details. - *QML files* Most parts of the user-interface in Calamares can be done in two ways: as QWidgets and as QML. The QML UI offers more opportunities for designers to produce a unique experience. There are sample QML files compiled in to Calamares for a basic setup, but an alternative can be selected just by putting suitably-named QML files in the Calamares data directory. This applies to the navigation and progress-panels, too. See the [deployment guide](https://github.com/calamares/calamares/wiki/Deploy-Guide) in the Calamares wiki for more details. - *Stylesheets* can be applied to some -- or most -- of the QWidgets parts of Calamares. See the [styling paragraph](https://github.com/calamares/calamares/wiki/Deploy-Guide#styling-calamares) of the deployment guide for more details. ### Testing a Branding Component If Calamares is installed, then the Calamares QML support files are also installed; usually under `/usr/local/share/calamares/qml/`. Some branding components need those support files, although a branding component is free to do whatever is interesting in QML. The tool for quickly viewing QML files is `qmlscene`, which is included with the Qt development tools. It can be used to preview a Calamares branding component (slideshow) without starting Calamares. If the component uses translations, you will need to build the translations first (using Qt Linguist `lrelease`, or by using the normal build system for branding components). Suppose we want to test the Calamares branding component *fancy*, which has a root QML file `fancy/show.qml`. Translations have been built and are in `build/calamares-fancy_nl.qm`. Calamares is installed in the usual location. Then we can run ``` qmlscene \ -translation build/calamares-fancy_nl.qm \ -I /usr/local/share/calamares/qml \ -geometry 600x400 \ fancy/show.qml ``` This starts the viewer with the Dutch (nl) translation, using the support files already installed, in a 600x400 pixel window. By doing so, the slideshow can be developed much more quickly (and with more fancy effects) than by going through the Calamares install process every time. > **Note** that running a QML slideshow inside Calamares is slightly > different. Calamares internally can call functions in the slideshow, > and can set a property in the slideshow, to indicate that the show > is now visible and should start. ### Calamares Branding API The slideshow which is configured in the branding files can have one of two "API styles". - Version 1 is loaded when the slideshow starts. If the slideshow is large, or contains remote content, then this may be slow. The loading time may be visible as a "white flash" as the QML component is displayed with no background until the slideshow is loaded. - Version 2 is loaded asynchronously from the moment Calamares is started. This may delay startup a little, but appears more responsive overall. If the slideshow QML defines functions `onActivate()` and `onLeave()` then those functions are called when the slideshow becomes visible and when the installation is finished. These can be used to start and stop timers or sound effects or whatever. In addition, if the slideshow QML defines a property `activatedInCalamares` then it is set to `true` when the slideshow becomes visible, and to `false` when the installation is finished. This can also be used to start timers, etc. The standard `Presentation.qml` included with Calamares has such a property. A slideshow (`show.qml`) can be entirely independent, with bespoke code, or it can make use of files shipped as part of Calamares: a *Presentation* and a *Slide* element (and some others). There are also Calamares internals which can be used from QML: - `import calamares.slideshow 1.0` for the standard QML slideshow (e.g. *Presentation* element; use *Slide* with this or write an API-equivalent element such as the one in `image-slideshow/`). - `import io.calamares.ui 1.0` for a *Branding* object which has an API to get colors and strings that are used elsewhere in Calamares (e.g. to make the slide background the same as the background defined in `branding.desc`). ## Modules > Modules extend the **functionality** of Calamares for your distro This repository contains examples of a C++ job module (no UI, runs in the *exec* phase) and a C++ view module (with UI if listed in the *show* phase, and may run jobs if listed in the *exec* phase) and a Python job module (no UI, runs in the *exec* phase). ### Example Modules - [freebsddisk](modules/freebsddisk/CMakeLists.txt) is a C++ **view** module with a QML-based UI. It has no actual functionality, and serves as a test that view modules can be built out-of-tree. - [slowpython](modules/slowpython/module.desc) is a Python **job** module that just serves to slow down an installation by delaying a configurable (default 30 seconds) amount of time. ### Functional Modules - [mobile](modules/mobile/CMakeLists.txt) is a QML **view** that takes over a number of other view steps. It is specific to mobile phone use, and as of writing used by [postmarketOS](https://postmarketos.org) and [Mobian](https://mobian-project.org/). Among other things, it allows to set up full disk encryption and to configure the default user's password. Read the [on-device installer](https://wiki.postmarketos.org/wiki/On-device_installer) article for more information. ### CMake Preparation The single macro `calamares_add_module_subdirectory()` does all the work. A C++ module will be recognized by the presence of a `CMakeLists.txt` in the subdirectory, while a Python module has a `module.desc` file. ### C++ Modules A C++ module can use the CMake macro `calamares_add_plugin()` to list sources, resources, UI files, libraries to link, etc. This supports both job modules and view modules through the *TYPE* parameter of the macro. The API is documented in the `Job.h` and `ViewModule.h` (there are subclasses for specific kinds of viewmodules) header files, and in the [developer guide](https://github.com/calamares/calamares/wiki/Develop-Guide). ### Python Modules The Python module needs a `module.desc` and a Python file, usually called `main.py` which defines a `run()` function. The API is loosely documented in the [developer guide](https://github.com/calamares/calamares/wiki/Develop-Guide). # Join the Conversation GitHub Issues are **one** place for discussing Calamares (and Calamares Extensions) if there are concrete problems or a new feature to discuss. Issues are not a help channel. Visit Matrix for help with configuration or compilation. Regular Calamares development chit-chat happens in a [Matrix](https://matrix.org/) room, `#calamares:kde.org`. Responsiveness is best during the day in Europe, but feel free to idle. Matrix is persistent, and we'll see your message eventually. * [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares:kde.org-blue)](https://webchat.kde.org/#/room/%23calamares:kde.org) calamares-extensions-3.3.12/branding/000077500000000000000000000000001471772643300175275ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/default-mobile/000077500000000000000000000000001471772643300224205ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/default-mobile/branding.desc000066400000000000000000000176121471772643300250530ustar00rootroot00000000000000# Product branding information. This influences some global # user-visible aspects of Calamares, such as the product # name, window behavior, and the slideshow during installation. # # Additional styling can be done using the stylesheet.qss # file, also in the branding directory. --- componentName: default-mobile # This selects between different welcome texts. When false, uses # the traditional "Welcome to the %1 installer.", and when true, # uses "Welcome to the Calamares installer for %1." This allows # to distinguish this installer from other installers for the # same distribution. welcomeStyleCalamares: false # Should the welcome image (productWelcome, below) be scaled # up beyond its natural size? If false, the image does not grow # with the window but remains the same size throughout (this # may have surprising effects on HiDPI monitors). welcomeExpandingLogo: true # Size and expansion policy for Calamares. # - "normal" or unset, expand as needed, use *windowSize* # - "fullscreen", start as large as possible, ignore *windowSize* # - "noexpand", don't expand automatically, use *windowSize* windowExpanding: fullscreen # Size of Calamares window, expressed as w,h. Both w and h # may be either pixels (suffix px) or font-units (suffix em). # e.g. "800px,600px" # "60em,480px" # This setting is ignored if "fullscreen" is selected for # *windowExpanding*, above. If not set, use constants defined # in CalamaresUtilsGui, 800x520. windowSize: 800px,520px # Placement of Calamares window. Either "center" or "free". # Whether "center" actually works does depend on the window # manager in use (and only makes sense if you're not using # *windowExpanding* set to "fullscreen"). windowPlacement: center # Kind of sidebar (panel on the left, showing progress). # - "widget" or unset, use traditional sidebar (logo, items) # - "none", hide it entirely # - "qml", use calamares-sidebar.qml from branding folder # In addition, you **may** specify a side, separated by a comma, # from the kind. Valid sides are: # - "left" (if not specified, uses this) # - "right" # - "top" # - "bottom" # For instance, "widget,right" is valid; so is "qml", which defaults # to putting the sidebar on the left. Also valid is "qml,top". # While "widget,top" is valid, the widgets code is **not** flexible # and results will be terrible. sidebar: none # Kind of navigation (button panel on the bottom). # - "widget" or unset, use traditional navigation # - "none", hide it entirely # - "qml", use calamares-navigation.qml from branding folder # In addition, you **may** specify a side, separated by a comma, # from the kind. The same sides are valid as for *sidebar*, # except the default is *bottom*. navigation: none # These are strings shown to the user in the user interface. # There is no provision for translating them -- since they # are names, the string is included as-is. # # The four Url strings are the Urls used by the buttons in # the welcome screen, and are not shown to the user. Clicking # on the "Support" button, for instance, opens the link supportUrl. # If a Url is empty, the corresponding button is not shown. # # bootloaderEntryName is how this installation / distro is named # in the boot loader (e.g. in the GRUB menu). # # These strings support substitution from /etc/os-release # if KDE Frameworks 5.58 are available at build-time. When # enabled, @{var-name} is replaced by the equivalent value # from os-release. All the supported var-names are in all-caps, # and are listed on the FreeDesktop.org site, # https://www.freedesktop.org/software/systemd/man/os-release.html # Note that ANSI_COLOR and CPE_NAME don't make sense here, and # are not supported (the rest are). Remember to quote the string # if it contains substitutions, or you'll get YAML exceptions. # # The *Url* entries are used on the welcome page, and they # are visible as buttons there if the corresponding *show* keys # are set to "true" (they can also be overridden). strings: productName: "NextGenMobileLinuxDistro" shortProductName: NextGenMobileLinuxDistro # These images are loaded from the branding module directory. # # productBanner is an optional image, which if present, will be shown # on the welcome page of the application, above the welcome text. # It is intended to have a width much greater than height. # It is displayed at 64px height (also on HiDPI). # Recommended size is 64px tall, and up to 460px wide. # productIcon is used as the window icon, and will (usually) be used # by the window manager to represent the application. This image # should be square, and may be displayed by the window manager # as small as 16x16 (but possibly larger). # productLogo is used as the logo at the top of the left-hand column # which shows the steps to be taken. The image should be square, # and is displayed at 80x80 pixels (also on HiDPI). # productWallpaper is an optional image, which if present, will replace # the normal solid background on every page of the application. # It can be any size and proportion, # and will be tiled to fit the entire window. # For a non-tiled wallpaper, the size should be the same as # the overall window, see *windowSize* above (800x520). # productWelcome is shown on the welcome page of the application in # the middle of the window, below the welcome text. It can be # any size and proportion, and will be scaled to fit inside # the window. Use `welcomeExpandingLogo` to make it non-scaled. # Recommended size is 320x150. # # These filenames can also use substitutions from os-release (see above). images: # productBanner: "banner.png" productIcon: "logo.png" productLogo: "logo.png" # productWallpaper: "wallpaper.png" productWelcome: "logo.png" # The slideshow is displayed during execution steps (e.g. when the # installer is actually writing to disk and doing other slow things). # # The slideshow can be a QML file (recommended) which can display # arbitrary things -- text, images, animations, or even play a game -- # during the execution step. The QML **is** abruptly stopped when the # execution step is done, though, so maybe a game isn't a great idea. # # The slideshow can also be a sequence of images (not recommended unless # you don't want QML at all in your Calamares). The images are displayed # at a rate of 1 every 2 seconds during the execution step. # # To configure a QML file, list a single filename: # slideshow: "show.qml" # To configure images, like the filenames (here, as an inline list): # slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ] slideshow: "show.qml" # There are two available APIs for a QML slideshow: # - 1 (the default) loads the entire slideshow when the installation- # slideshow page is shown and starts the QML then. The QML # is never stopped (after installation is done, times etc. # continue to fire). # - 2 loads the slideshow on startup and calls onActivate() and # onLeave() in the root object. After the installation is done, # the show is stopped (first by calling onLeave(), then destroying # the QML components). # # An image slideshow does not need to have the API defined. slideshowAPI: 2 # Colors for text and background components. # # - sidebarBackground is the background of the sidebar # - sidebarText is the (foreground) text color # - sidebarTextHighlight sets the background of the selected (current) step. # Optional, and defaults to the application palette. # - sidebarSelect is the text color of the selected step. # # These colors can **also** be set through the stylesheet, if the # branding component also ships a stylesheet.qss. Then they are # the corresponding CSS attributes of #sidebarApp. style: sidebarBackground: "#292F34" sidebarText: "#FFFFFF" sidebarTextSelect: "#292F34" sidebarTextHighlight: "#D35400" calamares-extensions-3.3.12/branding/default-mobile/show.qml000066400000000000000000000006531471772643300241170ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import QtQuick 2.0; import calamares.slideshow 1.0; Presentation { id: presentation Slide { Image { id: background source: "logo.png" height: 250 fillMode: Image.PreserveAspectFit anchors.centerIn: parent } } } calamares-extensions-3.3.12/branding/default-mobile/stylesheet.qss000066400000000000000000000044721471772643300253500ustar00rootroot00000000000000/* A branding component can ship a stylesheet (like this one) which is applied to parts of the Calamares user-interface. In principle, all parts can be styled through CSS. Missing parts should be filed as issues. The IDs are based on the object names in the C++ code. You can use the Debug Dialog to find out object names: - Open the debug dialog - Choose tab *Tools* - Click *Widget Tree* button The list of object names is printed in the log. Documentation for styling Qt Widgets through a stylesheet can be found at https://doc.qt.io/qt-5/stylesheet-examples.html https://doc.qt.io/qt-5/stylesheet-reference.html In Calamares, styling widget classes is supported (e.g. using `QComboBox` as a selector). This example stylesheet has all the actual styling commented out. The examples are not exhaustive. */ /*** Generic Widgets. * * You can style **all** widgets of a given class by selecting * the class name. Some widgets have specialized sub-selectors. */ /* QPushButton { background-color: green; } */ /*** Main application window. * * The main application window has the sidebar, which in turn * contains a logo and a list of items -- note that the list * can **not** be styled, since it has its own custom C++ * delegate code. */ /* #mainApp { } #sidebarApp { } #logoApp { } */ /*** Welcome module. * * There are plenty of parts, but the buttons are the most interesting * ones (donate, release notes, ...). The little icon image can be * styled through *qproperty-icon*, which is a little obscure. * URLs can reference the QRC paths of the Calamares application * or loaded via plugins or within the filesystem. There is no * comprehensive list of available icons, though. */ /* QPushButton#aboutButton { qproperty-icon: url(:/data/images/release.svg); } #donateButton, #supportButton, #releaseNotesButton, #knownIssuesButton { qproperty-icon: url(:/data/images/help.svg); } */ /*** Partitioning module. * * Many moving parts, which you will need to experiment with. */ /* #bootInfoIcon { } #bootInfoLable { } #deviceInfoIcon { } #defineInfoLabel { } #scrollAreaWidgetContents { } #partitionBarView { } */ /*** Licensing module. * * The licensing module paints individual widgets for each of * the licenses. The item can be collapsed or expanded. */ /* #licenseItem { } #licenseItemFullText { } */ calamares-extensions-3.3.12/branding/default/000077500000000000000000000000001471772643300211535ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/default/branding.desc000066400000000000000000000205361471772643300236050ustar00rootroot00000000000000# Product branding information. This influences some global # user-visible aspects of Calamares, such as the product # name, window behavior, and the slideshow during installation. # # Additional styling can be done using the stylesheet.qss # file, also in the branding directory. --- componentName: default # This selects between different welcome texts. When false, uses # the traditional "Welcome to the %1 installer.", and when true, # uses "Welcome to the Calamares installer for %1." This allows # to distinguish this installer from other installers for the # same distribution. welcomeStyleCalamares: false # Should the welcome image (productWelcome, below) be scaled # up beyond its natural size? If false, the image does not grow # with the window but remains the same size throughout (this # may have surprising effects on HiDPI monitors). welcomeExpandingLogo: true # Size and expansion policy for Calamares. # - "normal" or unset, expand as needed, use *windowSize* # - "fullscreen", start as large as possible, ignore *windowSize* # - "noexpand", don't expand automatically, use *windowSize* windowExpanding: normal # Size of Calamares window, expressed as w,h. Both w and h # may be either pixels (suffix px) or font-units (suffix em). # e.g. "800px,600px" # "60em,480px" # This setting is ignored if "fullscreen" is selected for # *windowExpanding*, above. If not set, use constants defined # in CalamaresUtilsGui, 800x520. windowSize: 800px,520px # Placement of Calamares window. Either "center" or "free". # Whether "center" actually works does depend on the window # manager in use (and only makes sense if you're not using # *windowExpanding* set to "fullscreen"). windowPlacement: center # Kind of sidebar (panel on the left, showing progress). # - "widget" or unset, use traditional sidebar (logo, items) # - "none", hide it entirely # - "qml", use calamares-sidebar.qml from branding folder # In addition, you **may** specify a side, separated by a comma, # from the kind. Valid sides are: # - "left" (if not specified, uses this) # - "right" # - "top" # - "bottom" # For instance, "widget,right" is valid; so is "qml", which defaults # to putting the sidebar on the left. Also valid is "qml,top". # While "widget,top" is valid, the widgets code is **not** flexible # and results will be terrible. sidebar: widget # Kind of navigation (button panel on the bottom). # - "widget" or unset, use traditional navigation # - "none", hide it entirely # - "qml", use calamares-navigation.qml from branding folder # In addition, you **may** specify a side, separated by a comma, # from the kind. The same sides are valid as for *sidebar*, # except the default is *bottom*. navigation: widget # These are strings shown to the user in the user interface. # There is no provision for translating them -- since they # are names, the string is included as-is. # # The four Url strings are the Urls used by the buttons in # the welcome screen, and are not shown to the user. Clicking # on the "Support" button, for instance, opens the link supportUrl. # If a Url is empty, the corresponding button is not shown. # # bootloaderEntryName is how this installation / distro is named # in the boot loader (e.g. in the GRUB menu). # # These strings support substitution from /etc/os-release # if KDE Frameworks 5.58 are available at build-time. When # enabled, @{var-name} is replaced by the equivalent value # from os-release. All the supported var-names are in all-caps, # and are listed on the FreeDesktop.org site, # https://www.freedesktop.org/software/systemd/man/os-release.html # Note that ANSI_COLOR and CPE_NAME don't make sense here, and # are not supported (the rest are). Remember to quote the string # if it contains substitutions, or you'll get YAML exceptions. # # The *Url* entries are used on the welcome page, and they # are visible as buttons there if the corresponding *show* keys # are set to "true" (they can also be overridden). strings: productName: "@{NAME}" shortProductName: Generic version: 2020.2 LTS shortVersion: 2020.2 versionedName: Fancy GNU/Linux 2020.2 LTS "Turgid Tuba" shortVersionedName: FancyGL 2020.2 bootloaderEntryName: FancyGL productUrl: https://calamares.io/ supportUrl: https://github.com/calamares/calamares/issues knownIssuesUrl: https://calamares.io/about/ releaseNotesUrl: https://calamares.io/about/ donateUrl: https://kde.org/community/donations/index.php # These images are loaded from the branding module directory. # # productBanner is an optional image, which if present, will be shown # on the welcome page of the application, above the welcome text. # It is intended to have a width much greater than height. # It is displayed at 64px height (also on HiDPI). # Recommended size is 64px tall, and up to 460px wide. # productIcon is used as the window icon, and will (usually) be used # by the window manager to represent the application. This image # should be square, and may be displayed by the window manager # as small as 16x16 (but possibly larger). # productLogo is used as the logo at the top of the left-hand column # which shows the steps to be taken. The image should be square, # and is displayed at 80x80 pixels (also on HiDPI). # productWallpaper is an optional image, which if present, will replace # the normal solid background on every page of the application. # It can be any size and proportion, # and will be tiled to fit the entire window. # For a non-tiled wallpaper, the size should be the same as # the overall window, see *windowSize* above (800x520). # productWelcome is shown on the welcome page of the application in # the middle of the window, below the welcome text. It can be # any size and proportion, and will be scaled to fit inside # the window. Use `welcomeExpandingLogo` to make it non-scaled. # Recommended size is 320x150. # # These filenames can also use substitutions from os-release (see above). images: # productBanner: "banner.png" productIcon: "squid.png" productLogo: "squid.png" # productWallpaper: "wallpaper.png" productWelcome: "languages.png" # The slideshow is displayed during execution steps (e.g. when the # installer is actually writing to disk and doing other slow things). # # The slideshow can be a QML file (recommended) which can display # arbitrary things -- text, images, animations, or even play a game -- # during the execution step. The QML **is** abruptly stopped when the # execution step is done, though, so maybe a game isn't a great idea. # # The slideshow can also be a sequence of images (not recommended unless # you don't want QML at all in your Calamares). The images are displayed # at a rate of 1 every 2 seconds during the execution step. # # To configure a QML file, list a single filename: # slideshow: "show.qml" # To configure images, like the filenames (here, as an inline list): # slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ] slideshow: "show.qml" # There are two available APIs for a QML slideshow: # - 1 (the default) loads the entire slideshow when the installation- # slideshow page is shown and starts the QML then. The QML # is never stopped (after installation is done, times etc. # continue to fire). # - 2 loads the slideshow on startup and calls onActivate() and # onLeave() in the root object. After the installation is done, # the show is stopped (first by calling onLeave(), then destroying # the QML components). # # An image slideshow does not need to have the API defined. slideshowAPI: 2 # Colors for text and background components. # # - sidebarBackground is the background of the sidebar # - sidebarText is the (foreground) text color # - sidebarTextHighlight sets the background of the selected (current) step. # Optional, and defaults to the application palette. # - sidebarSelect is the text color of the selected step. # # These colors can **also** be set through the stylesheet, if the # branding component also ships a stylesheet.qss. Then they are # the corresponding CSS attributes of #sidebarApp. style: sidebarBackground: "#292F34" sidebarText: "#FFFFFF" sidebarTextSelect: "#292F34" sidebarTextHighlight: "#D35400" calamares-extensions-3.3.12/branding/default/languages.png000066400000000000000000002477621471772643300236510ustar00rootroot00000000000000PNG  IHDR@)#bKGD pHYs+tIMEeiTXtCommentCreated with GIMPd.e IDATx]gX>=y!$ A,9,&Qלb 5cB J sɡWWa癇:U *$Ii`9ݑT $P@j.WA^}h}Ch]B5*P8-V?ݱo+k+4$֪TE5*@6\y67 LT&VZ\Es^ME;Da4R_T Z07rm,NϘŠFNˊI~8N ik.2u $ad< @T ˩GJeo=C/氦Je%7}#+eӃ#3$"UŸL~_jT<䛉%:! pq e兜) 6wgi0&eN hv&Clf/k.D,_!щMGN<.s<×/V\H7]͙7d{$I3yPCxI0zmTAE*JS9Až~1)Uy\&ycsk5OXYG (&IdFL-cct>g1v򘨩bqQ`[9%UM{ N,'.td |~yDyjkw*P4> [@$UI]; `p;Ĭz`sII(dL U-i,6m5w]X_Cܗ-22%=Ә k:>;{FdwnK2TZU>p¿HHHy/"~erzW%(L'Jki&l]+d2Xk 2yA.(ߣ ըB4Wo72'ſ+'0.zwfon7IT?u.0 $٥uaTQ*KJ2eTWR1Z|!qDH\Q "IKL6 vG9й+Z+ ޑkW 6Iz$ٖ֖ S *sxr' FѪkp4Dck35ef'DܱX zZrl 4h om jֵJ)eb S0U!iE u;d]x*˴v"5-u;n;|,oZ~2q6W=A`!P$IA3f=p?O_"!Q=ɩ"8zV, ғJAYkqk*MtXUk7&$m*ʹ84=5R]S[O3'2^.Soޗ[Dt8`w^u %vmJVM#N.75eKٹsꁪ + OfFy5tGsD|sP;,?=8Mz0n?r@pdFUrA$I I ݑČ-.:Z=uܾΐP$#Vr%5!֡q"r]fE2B;w>a}7ӺL>3U¢ Xx2eB؛o[z4Pj3;M y)/5DXx!ͬESV{}}#nj5i]cHB^#<|*ݨnܨo7QMBNwA$}Ѷw |W6jw2m-RЬ>FJvq괭726dOdl9emSq`ڝ|c.xx.ydwޜ8\ ?fcmg^CO.jYVU>sI? C#z:4@j_ $DE*C.k7a“}/(N (T7̬I#`6Dc$Ka&moO0AT>E,fsԴK&JtN2KVQcQ6v 3*@J^}p}<]{ ^2A@P]Ä+r?rE%*Tya#$ILhT aN uWZ+"hh_WA(d" /1M6 ,kk5$ UUU= 4YgaT?X+)j,tS=\.95h[!$  [6]]ҴoWT ⡵-j1*c߼/[g CƈR6$^aTԺV)sԃ#3}fNzlf-kɬu?=|"d}~TzK uq7X:Ejjj7fEn[VgsIqOϧyґ7-`1)6V15b uSG5 E${[R1$p"!!tŹ^zL5fҕ$8S%v̟BJG[ Iqrnyr4+x^;xѡqJÓ%ĸ+L-3ӱA0$_">0Poeb,rHOadȤf{w7`I1(V[j`D`fɸ8L8A|LmKDv$ 3!^!w>$IdktJ$8v-LFZeT8 rW,nZ-M <DZR U32WD+( N4C^{楗夋nMPXA0) 4 :)F/%uR~(BAGuռ !H }^IF\Vj jI[ޙmje+ebEKI00*TREiL*_Gho: ~='1AE,XoC'h I?زAZ9b9P'% [? Hj@_5)A2L$\Sux׋yAbۮɔP\@C-9+|C(_^RݦRtHHSM38H̭SzT.)O[hU4qAn-ãބNr.yYT28D2!,jH|FaqG8QgﱾV}Z^)̰ kŨ%qѠc:c\Vp w4)d;oz|?t8P &;~+%reK招 1^TIF9BP ۤTtySk<;ILUy ՖqJ1qTF֋ҌP"0 2)NfQl[B)G2F42r鎚ƶ{{j?4&59`l /w_tל~GV Sb&$% cp(ۦ>&bξҠrSҶz%1*SX)  +-oIdCsz5|&#Dșwޗ6PHq`G?Ϯp!+dI:6z;[N?TٲsJBPʩ:C)4Dp`{-Pb7ίh;--?'(;h橫kG.t-~z>8;cn+9 "#S杽QCt e0z'=)n.t4gDGWӥhm6=S JTᏆ߬\62p:.2+ss -*9z2xN.3/Z+sqe :"i[}&1zCckT&v$߈a(x,GӇJ}0iT:G֒-;N=m|w 3'Q|!,Hx cVr}uM+*//VFgfDglK|(kjTͿI*B˧r10dZZjO=)tu ٹ-!A$FgN1 -ꗣ2*JU fxs FNt!_~?.NDqPB)GjFJ`U4DtGVmK,i~8;[,B6a^8M=+zlK)0o;G orhzBRha@Hua6DHVO\zӑξ$/3[k:HR[FPYLDi#YkvR)Ju}}hIIEJT &9F|ﬔ =֦fPĽl%--:8W&]8;[ ~&H6Iјbȯ.l8m;fU}3$@6) uʇb e(fv?FoB؛\-݀ |*Ce.+(GkmYfa}ṽG/KB&Q4W3VX89/bh(6;<ܡV{NصNV6zG۬ 4I.nUVߘ rvӣ4o|.I!VX ^am㵭sva!ǠaJABӷ1kA.Rn58N -矗vkڗPJ1=xOχYc8N, qS\NFP#VuQi_\L/3)hlR! \9L)R*܁ HlVI/R+AVuSp;S3Qc)2r>Q v3 b塘#B}Hj> z1ûbFA,w]FmkKp`\ԧfћ=:ﶀPꏷ,Lc]` v)V@`Pܒ ZZ%R1t6_&-#Vr~f.*4)rt|WUP 2 (wxVy6H[L#qr iv_.jɯM?U]<\.WH9WuME_['sMv{oF(d\@P\$(@t|DZ,e|WYcN="&+!엂>?-&2moϾ9yp:+d& a>I9Cߌ LW, :UgܚeB1eArRMe/`>*/6Guݕ@ { 7֊/_r RR!%"@ K:0B׽LK3b&/ZR8iߥ.s{I-%o㜽=52ۍY-Ov\PMe71 !WځzFwSn.G«ӌ`!b7Wݠ|ė=cX~7bTfӯ9 +H@REV:*`lnWg߭}|-$Q%&^9qO?HQ'ko:QX۴Ci+-~϶5?Ap\.i_~ۼHKEyW?jnwZ$ *—:N"e9L'}\r$qZ IvIƙ֕a,WTڀ#X76]xH9aۼxwtm [Z*JӲwEz~SzP\3[smU ԕ4]ݞܱB=c ՞B1i\.94a3| ^-So'S¥i{,]*l)~{`b۫ IKNgґ4SCkr!43 k5a2dc6J>vI.0ٗ'j,-DB̟Rмkm_$l(Dq'Z&4 bTG/7MP*R"Pg$/ėBc1۲e fdm҈ؿcf5y͋Ǐ r4s>n_VVUUAO;sU~P鸺I_0?jtU-[."\}O6>ML%Pip o3kۧ8nAY kY_ >FօoK~#-@-|,4l,jAr 5'b W715r"5[Z+g08)LR$M='sHw-2)zY;葝Ud} ( X4Sit4ɒ]Nil)bJR)+tyi*>.nE oOH0s~k5^v^?!*cങTL˺ĵ8P-魼K~ ~kQk P.ʨ- r2$уk7cP)XfdޭXLʯGudzL\؊й$|}d\FEM=6ک1AOѤuү ,"a@BU!@ڴ̟S~4bvػ`;kw >f~U^IyҥksN5ʳo[Xr1QsI=>;踠V2>#qe1GS"@fdL^|?ca'GOeӨ6抧G}+1_FN[ç/RUVRxߞ򐟼`'L\Eލ95?ј s0aGØ1rBRF0@.5_#HK}|pĪu/K~|{NM_2+325X.[q.nTIIɬ`cW/n.msA(R=0eјi,W_ cx($}uY)^'.ٗ"ޅf'5S)SU7&'|b$FcG)t/궆Fcip[kpoW瞶C64~x*aZ56$ld1DGu'v&/f>_kuşYvb9TPr,?z @aSPJ*]4fڗon>SڛJuw߯qswns٫i'Yf"\,-}BoO@ \ymYg\&:}t6e.K- *K}sSR^}Y~.QP%RX#psvU8NP0:K K)ͦ+Zt$mv㇗#u Yg:r$ UFT\!A+?j{eg蓦*q ut&SŊUzc6+:G M^yk.j8"(b 0jw2cRh[hMLdm$zkP)4pNGfٿJy1sA"Y{}ATLK!3LN$A$ghEKuuHJ LMc]*K=hrmqv8TLh~u˙l<.hy/e]l[|otaB)?$Ics"p]~ip9.2:YW>5(/;?359zU\k\v^ٻۮfW,>$I뵝k"0L )aWPWo~rqK$ /A =ZJ?&8KFr؉+$y"˝b-(Fщ)nhTXscYi A7Q şMoKrM#%|`}>I& |3IA vhzʅugf'MAh &qEubnX$9kŝ6SrgO}'2&P7sBaMGS԰pvJ12M'EVm=z0i%1.քaP|`hV{2Aˇ켙n :`~aciÈʃ _c9e@k0kifbl7t_pS./j]Y_!6U?yv ɭSOw˅,ms5*K]a;Dyz (3&mPot8:/\KSψ} e+rze]w&?KWJ)tK/[ ]sKj",|z;6uԲzUw|@1;!Rh*wjCEyC.lErbm3[}lηci tG"x (&j*[]06&ut#Py)nޣI"A"$I(F8ELxvF~/zϿ0_40hF_5:cS[UN7:|BꚚ w[^3_y2iR.vz0!Ѹz*{›u,(tHs]P' uelfw^f.6O^7#*rʓ`Ø.%p"2JSar.QKU _\^Zވ_bn].~UE<-Ǒ?]@i˪F9xe;8ϔ]~as$`䩀 PIT$IJ4I&=e Wҳ ɺqD/OpEȩgCȚ|𘟾<ۜ;x}#5Ha7( [\+ll_QF.[ҡfN2ԪViXTBP&zh=[zB̷{u/ $JC*sQ!Z2 xkOriv6n>(fk斢6C8THB,"Ulf-G.lk~sШL^ jO~AZKggn3hqBZaP)>= N410$pϹ@ 13,Hq$\ |+C45$5ɜ ([pA1 ltqQ ى%u.g_d{jxu;#XfjsV3>'/KZڦlSVT9M sI}$Gޠ}@)bn̊ m96/+5qZPjo$:GIۘ{V1 H_PWcdQ/2n=6WhZ.^l2"Ըf]m66״Cs*;O%^u糵'٥%n`)zr%[2Wb_I'yB)Y9y,5bbjF4M. g$RMf ׸fnN 85\pY{~/#pCiE %<?'/,|Nm&j.(4MLtTT>Bc0*~8y`JEWy᳏[֎4kD2L\P7WJKyKIwa ^-oM KsN;= C`Ǵm9Z8\7ξu]MKD5}}֪"gAkf纏]cCMe(R^&vB+ivvchsku<}ayZ} 6mfGo~_X_%n{Mh Se̓Cw3 DZ4vb[[2r~_UM \v.9{ͪYW4C^or'?"{snZ( ?9)c7xl.s*i<W$ 9.8M=a6C4-{E宲iDc)UINe%Z.~~'N=)tz .]1@ģ65/)P[y>vO?\R~od7kq7;ge??co=6/r3f^S\+#A)ƽǩѹzȸ})7]3XtUw7n[}bxk5a,ʩbO9vԜ/62- KYue]TJܰ$ ={ڂ cCg=Oygw} NMٌ.]+< S=zSÈï/ _~0*|6 j%HF A5Z4 bk*p`nܝs{T~҇yol `kv·+L _4z^WYصN=ލ{3Kz{;8^8K3i ؚ8km #o5!}kq_4ЇݽW3qq8͸/e};7"rw Xt*K1q^[8|gf B9@MHYR'B1jRq~V#Qq_LtHrw6eȩ'$У/.2+f؄zm']$rӟRS)LlnKf:CF=d2ױHB,SJ54'v=ݦ JJ<'oI xQ,,M+xmVVti϶Bi&ʈŠQ]/ZPn1qBmvD 0LY{ùSY<ԦEP*rqE \z'5b- mEAPr1n"rqw{R*Ak* iHM"fþeFm}?Q0s?8g*S qjD +0![jI%U$)Jͼ$[*ld_(},=:]Os_5AgLq@\fzRyٗCeUAW{, g{m+ϾQ~E\[Y0e7FYsPIg)UyZͅWB~{{nԄo=wM? "O9 _LZElݗ_;wk^2w^Qk'*r_!ۓz}bn1x6`ڔsu67gv/lY<Ԧ iݝz-8rS宀n..gguАᘕ1qVօ3O.r~gϵԓf tYlTP'5Wa8ahBas{wvc]n ޜ|`hӬ-ߑ}1ri7bS>[0o7 m#])kQreɈs5SI~NLWʲ+c`[(nv"NN\2d;%J w#M': 5U< [~8$ 1B"pZrɞ@ׄ %\0tm^?EP-hݼ;}5(+>+(J Q_}%Ƒ$I/EG 1?I#I8OrC_6SLuX@eSJE6kJ`P=]s7owܥ͍PηFl4i?|. ֶ3ؚhD9oCc;{k< V3LN,f q͓ "q>vwjͳ~l,/s:xcg* pyy[Mobj-w@u=r1Od3i|/EMew/rFol>~e}fFtHOǪ{gX=s|WS^πPΐ{kawaє8}3un.Ი 1 (F(t9P UbckE(a}W\Kt4,\^t7SԴ\ 1 ܒnI^Sjr @bmKob羙IKٗC X7|SsӦy?=-j.oT7 vxh֪KFРPT޴@Z}"'w ٲmTTVֱ1կ6ilu'|ZK}NE#5VKjM?ό7/f oHh ɝ#8Neh(IBi$w l= /ZCW!.\߰mwc IDAT:,$6#qr=@ЅZۧw&mu,VwqC~uoFq;eVxah1 re ɯԶJLՕ[9V{vS֒gOn'It[`*b7> &_/x)GGʲ7!j(>+:)ʕzv<n m޹ m4~W@Яc< Fn>݌Դe1$J rdė {GElû'2 9'dČ9bN"&}xwR Xx4= ޲Tɍ/8n?S.u~LWw_%)k/m5!yd~H~lc%h|8ݰUHKCPw =v`d  ʾ>9 0i~@Rmdol]˷y`8An aZ%܄ݷ7T9XS Md9z_UFI)C~Iv}KP-}5<)BnIei>pn3 C8d8%|(F%HWbJ0y;MeQ*=GP 8+q-HI AgփQ4&@<h[Q$\SgBPBǦqè 1 { ݆W~=eohۮsoKn8ND--u TGM4$u94&Τ:\Ahˬ4šį[%; AwZ}.Y11w=o]@!CVCdb-EG{梓hƱo~vzzU0Љo\⡒z3mP쥒I YR궞|9:@&pj"FjZm\%ghY jc\F#6!Hr+;hLK/V6 M:ʗڊ+xʜ3<=D,XP2Tų_ԫ S]fȵ2~8I5e.-_S9Y%/'T wfc;}$;%GVu9^'s.[ʯ[%k]fRK Tm qQ=.]peys-*-j'hMb4H=@-g/oPR#3HLIH Hطk._珢hh)׊b4L :קeԢjz1wPP(m$[54ڸrݖeraÃi5$(J SǨIҘ'сIDСB)@EQ^9okVASWy$!Fg- u{yaϲ?e *Qy>`$I,I89`ٹŐJͅ$şéĔq^WW~, ^cepuetuۧ9uB] ]t%UxL\y@gP"V\qbsJ;T~]XWTPh+Nnx{h,dpw@Q}Csr"ηIL7V*l T)?]'$G|n>;gI_yy pfա|3y6Fs-{6e:rq3?/5B;c|tSs{ރߥ}yhR"XdKPE6.jpeU'yRG_gd88ǵ 𶥰|rXP0}\w۲ jy 'L8-{SXq|v -Α}]U.l"(%;=ļzrk黷pi>h[y֐E~|u|_nK 61Aw+q|j)1V[#-P*JD T ˀ]vz@u&^/v>!N3,+^Q 7yMsqs٦i6ǝo=p0>ōmހ H0j [Z%x-ʺg~u E+4#E+f0m@ 3WSʜGM]xX.ly Tv/.-ꢺO?BgK׿2 _gTƯl]RZ3*9@щ]PR~dA۷oqynY{]bK[x); $͕ƍ/Jjo$s0g?8N .Sw$㌴Y:>I/,\ͧZ?wߝK7=߀&KG`TWOō>T5nPGkʴ#O9jE8*[E~() Lj' Մmf 1Iz7jQ!pP%TTH]E25e b5:ERT8An%!j4m61rP77Ni9@%}V/q/RfLaC)_( =ra[X➥x;^n Z1Ҙ'Zֲgc(tR~_ƧaV_oQ: IyuqBQ qCЙF&8NE(4dB K_y;SR v $TR)UVz6C.RNV7PHXU5)RRh*xAb9,\5i⦲(vPQ @I+Z_n ]teݛzQ7}VKesoc5a"Aiuj7@Eft4Ҳ <9s@Bg}Tf'w,ɰ6iO N|v⨋6,w}4HﻙZM8Oui;[q7b/nDzIyg_ۄh4c ( ݚ*tkrKhC3K(i0Cgѵ{#U.SXg5w}i'XWWL|&^? N]Kj"fjs,T$ӧ{o2tzt?I&]{\ e^[Y!)kwny8~[Ho*68yM%&.s-"$qp\1 Y`?jSy,-Iz \hA:OKڏTRl1I}a gpj^Jvxd݈#^-[ߍo`wt,|yllKHr{Wzf:jk#ɦ4e{ojuj"5oz_:cF,zJ~N_ )yQ{94]U6{"n,ѱ U;N?j ߾gg>1Ou祧(:geV{]gp[Ur#W QݗCrбo,}H 0(.%Tg`ʭZַIakʳf9Z:JXKMfD[ b,iԢVǙ3/,>r~!.fZ7&;jٹ[#uҤf:q݂!Vv*{ O<-3QJ0i}:=ulMank6(Wf{>}m^fgaCC[.eB2քqS_{5;\5jŭԵg+>r5⦲wžs|R*4w2$'H:AԴH64i&¶ q]9M-8_o q\3D?gr4SgyjZ(SӨn` GS._ƕ #tַlչO܌B &}|5ѣ/f T{ jX77}8Ħ `OK݂cz8C'GKa2QC[ϒjc'[̂.@>RYM5ZDg9׊i1i&NF,CRMMivkF?ݷkE,tY\8 6Mw=Nh'VJ-Q}_s }?F|:Z%S~ͤq7d>g rAj7bHkIz~-=?Lٯ2vhI CI7WdYzf{yyKq@0 %nO(d~t]~t] ݚ<2r$ $!C1z%ŕ# %]sYnl\!AP Vzs U*E\S-j( WɄJAxM)'T %Fc,m'|=o$e6<8&}CH\!Ĩ  3){CLWw-Ik"(RhIkN*iZ$+=cCh,Mk"'>g}Ta cmѓ:C. G"|;6*T&+4Jfzhm;:~O pug*.,-܏b>$ITnVi~նj[Ot?'[#5,:dCS,+A9~+ ٻ\-4Bzkb3)sg3ap8QwVX7~le3(LM(8'Y)wޫxs*Us`xV!m!Ut4݋y\++oS)huC),{dGϛ=2N9wza?%0vk1i;q&2>M׌|tēҿ9Y.9=,̓fJ+j yRl{OVx;}$- TDw3 (,^y_RPvI\BH|9hZ&jf#8?U):욋'.@SZԓVhZx˚%/ޡcT& t6OwpG;t IDATCS 3ڶ|x.v}2ʎ6ƷrKu^kR \X;Lu}+3ǨU2MЈ1$FҙJ`skȡ^)8E\Ofߚ:BlBn%Z5* 8yVɱq=EG('!I?A13Au򲲕sfQLOyp4׫O gTfR0P I0EeTR$!+*"bUɎ*h7Qw_'}7e+ 'g`RTe~2iK/\},R^{ܩ;}t|ld~MtE䘻-w:wڏV_o퀂 kLi:8uS3EW+j\P1=9W&~5? šehW*[ =dm(-O Y:#NJ}1Ȓ7ҭevI_ )(Qtv3ʼ.lQF1XM/1h4mH}U[/YWZa4/ͷψz7 1'Ĩ h:hK,IAEWV5vK;ݫij^/ֱ@rq۫Ӝn:WH@)/>v`!y Qxryzn+B؏v6^+wc@m1;GނMWX9W׸E?8ֱRaB:JhR~cڐDB?XRf;vy2=bTA:Gw3j&Wʄ#9'D-+/IrmPRl\}L@){(7 s挖Y\d+_~KUr1\ Qje(f'i']\6~S{jIk#j+6cs~ØZΓblmI2.d-UO3Kڒ9LJ#5?Y{:vWUMCc󆗽9uZ/c惧]Vn?NzVSP 1s6ǜSvY IڤUn#~]Է'8A{4K{c*+Ҍ3EG"ì:fq\.fRT$neRH2d]]oz(5#n 7;93?=ʛb\=ɞ j'wJ4umˉRhVd>ί0 $ xw >t-nH|-_;H\F@M3#}X0Yq@!njVdb]P9:Ip/H:5oѽ^# [oQ{k;^][Ve4K:/81 P9W*hGж=+{ʄSw\p8|I,;p{keKTЎ;LMcVZYGnu?躹 ΋(^ IĞę .dʿRѰ~rͭ)'6E&?|IK6M [2~e_YtSΏ 8NP|]]~=+*PH'}?;)bUv80?~tg0*tMJע6WpiJ*Cci]6l8|YZgj֪5pU<^!njmһ7~ǁw";K)h1қ t .MvfcD9PILWryNà ;c"JSD3gFZj2Bg7H*.k.|/'F=L-XpW*KNVkNau{I79ֵw4WLROsg7c`фh^p[TErǹ,V DlmۀU+N C`m{ݬI"H\69zs]R=G3.$rmD0,o A:hCd Q X`Tj"@Uʄ@Bc %оHkS{2e~.V8=v`^_MO AG>˰gBB1'\.l=\'e1 mAէJxP /ӕZzfU q1W^gP)eo3ТE^ŭ (OSJ~tP[q@)+: n#& &6.Uz1Q}j7\&F\%[ADJ.8pg*m>ELQKk_yKH 'r6kbUIXlg;݆9JA8N »@;ڸ'y@m~n1)_fovrҶFnQh -8rO c4κ|AHm,$M9>W9˹lߐm0y)JCT_rI4C0wxal $I.IhQ pe>ԱW[ ' O2QUB[$iJ<4#[ CӠBgg:~-aSv I‹5]ZT:9djf$X;dЮJ.j7nyr/>9x8N0Mϥo'N8 oH訌OF>G~ (/HWajʊjό5_,~zæS촪>硢f)Jd@_vmԬ"4_$JqN[[5O 5*ovvv*C o/>y)'pX_;+Y͉y5݈R#2fs^Ҩ6Jy\hwK ,ع-JeJI$؏XoCr\>\lDd_qT`B6l&t%QhI$޽lҲ]PB'%軄PCLv}b\чO|"ډa(qńuEH<kQCv(u}b6Fm͓tQ %vȳϝ w6=5RA^G!pU.|tյJTrq T8hl^Į +[njfɛJbk<3u𜁖9 bٜ0qC(M6{w$GHǨj\K 4W&U@!뛡] C2p_q٨E'. %_mg((FeYg}TXSpRI&Iq5^)/%;K&hx;j9ot,{S2$p0x[{KI֧Ϟe%JZ81 9 (EM˴TO)Z0[w[$$ꔜ= H5>6! AP0mYn~=\.$ RF[KrwY_~$s"Q7$Tʢ[">][=顁1-u\F܄qxJO\ \ 5|kq@ö[IZpM]9!n,#I uE*9 QMb\)5 Yh +5%#)pÕ+gw=]]nxaϧ~*JHߤO׏Ӳb*訋s39aٝ& wO%2[K h \Dwb;ӘH`pzd h(?v.B\S;t%s\9v+ILpA<80Y3GM4Fahz;}+|hRAֲv~<$ qOV'nu8sXP)H0]QvTiQL(tvC'&mD&M Tj!oH\Ԋ{_MRQYyv Fc !eYs/9Rx:O]4q'U8inBj=RK'*e_,~}K1 %:b-oI|S`%lʜyv᷷GDNSӜwqAQ(:gvc1;S0j<::Z Ƿ~S0kZX.?PlK~^sO>Ѷ 0A4WYz!iX׏J)lq@P6~J~X^/b* 5D;.ōc7W#p~خEN$ 6>FKb':$d}HM˔ 03eP$gŘ2~ ݚ3?r*$r-5oD]i#%zLc$(vImۧ9)t LR U=;bR88bDr$!U%O2Q0D _傪O x/U|_ҭwV9 Tw+MRCW\ןI<G~Q>[>in/X\[ajdfykg_#_ 3sl Gg2-f'%#h> BƯozpn݉k/oadd*?,Z~4n6U8:q" E^ug,IT5-SΪLkд|qbnVY\}CQ o|Y5/u|]'$m HBgszbRkdf 닙tm=@)Sn/j: -7tŞqx;/-J=Ĺ^/P6 7 <*LOX: tA%&v޺zFcǜK<Ή|r\!(+i~ȑSwLw*+ )˘ םu^E]_] bp 27"bU1yקe/Xھ+掉πVmº#as/_MC g4|~2([.,e~RP71K/F?K8N`8N`ݢ~77!xo3<h;O=$IBw?`et~%weGK١p>䟶 0سq«[0e@\~{q)[/>/`M{59T&gO8L-sndz m`ҰAi_1d%t,&]'(%,O7z7L0TQyhci:`Ӌ=,hB+% 6 sCLMstu q[qSIšGI`'5qst<ӗ1CV̢2 _-uenZ| Snt?䝗[}w7<!n(Y ) qAaM);B1jqi &Ø-*>Xk81iݥq}T{╸2AM#uBKOsHke}&D₲n?[s7tMI_ Q^}޼ >Z8~mPpըT 'zV#C:ڍܞX[R):^~tTwP։A:ޡ TC7YW6=~L̲ IDATƅWBKS ͅgz{@GHePI.C TݓeߨgF9M0$ s~*}FV;>FDkooI3q2nhLc{|֩Y¢[RIlDM70ڑ)W~F@& ԓmKv`>S :m< :-Iō͎| C!vH% z>q VԂȕ8'Hݚ)A[T_,P1b6G ]f, u8`G+gsy-jۤػ/mvCuNfܪC{+ŬJ-*B1۰v[rYw)TZ9r{ c86e0#ļ>cӨsZViZZ")hUV=3混oYq+&΁9WZ'n(Q:1O~eN2,+C-ũ6r./<1]8O/[~h:x+sX1VL<8Un!KϺxw:J6ލK6nㄉLj"뎊"'3Ðs1 渠9'0'sƜs5 Hstaݧo>]U]uAr6,s;;;2\+ kd'{{LرШ83R$&%v Ǥ}4 ^wBVLoW"R$p!Lؗ{~(+{玅$l'8j7~5w?G|{?{-ѕUhdBnK Ev1wau%ˬ * !Jx![ !̛n.]MSļve逍5XXoylUA@Ж\ +CVLYæS"*-Q|Ǥay [1{CleZjQ{*E}S&Os@CAQF%n%R1}M|ԍ7cQwc(caۮjJ|Z=x|y*\`а+~-{ZRT''sLv\d(o(EjDjʏ@-c m`{GZy[uR$ܞJAH={?k\0k_Ă1vXq(6cP *ҹ:$oKH?ݓ|,!*ѹ*u#\c̫KV/i_Ȭ1R u e(Eϭ$  (pAt? mW(t61x1L=s0~䂇;'>ӄRDvj/isH xX821uוk^'淸m `w-Pl'ȿ~.k7'^B G({WuBu6*ozpoE{ a9¯YjNZ.ѥ6!] i5Ț;c܁6E>AR݇O.àe#46az=~2mHb 'd~ׂ8s_\yY1Eaj]@#9%\~llιxɊdJ&:Xn'u8`ģ3}l: JK]b::Ŏ[ U"IZrϕ*~SfYqkOoMN ݐKu$IXs%;Րx`}Q6H- :vAEm7p-ﴗ|,еfm>B-k_5WrҨ8 QKt,Tip9undť,L%l뚶aJ{ hJgקs}Gw4 Zm W^b2H$gJOA_r:S(c**EɛYgHGPJ,;AuHd3.L8$ůrkMu zܩٷ9T+=,r7C S+fx8s~fE 58)1dI{&{XOfNA7*"iԍUg ) +.fg*+;#Y/'Hw3|;èqgl1yC`͜+.\ӗMfu/GsJK(Uo>Y~?9o.m.*/0Mqc CW_:Q|}{G;M]&߼DT&3:iPx#r/s|WcCڳh9xsY# +U9VAZ:OoA48iT㤅;>Ir3<d]H!>d|5WqPɗFGE\d0A6= I>"j$M A%ҩX٬6{;s8F0ÞWYuQ5m 饗_$kX յ+0'XQqV cJQ2Ў9qR*r>=6R 33yPCmPQZ6{vZ'`ѪdOK483>#4gʞݻh\~[:Zqmh@!NeMs ن| ɥGxoPs*\&˫jR:-΁ۅYQzv"(NarJ(]C*I I67&>d9{Jt*ZC)5ă5W;7yK}2?'=#o[]O be{X(7r>8eRSJp:fLabPyT%48"4Is 8t@w# )Aؼ bbNYeQ8aM"0oRA,P>gJbv 9U8N&> iPw+dR5ڐT6ن7AYx|yE7M83Թs&qx˫8$s5!(J]pjʖ_\7hxa C 'f=C)Qj9:L& cȕZԘGy|ϲ@pdиC᱅ǢJE׭Yϥ9=|kYz$e#~+R卾F. (V ]֪4'PA{) 1qmyD"a!$-*+)؁Zo:Ћ p_I)(FgQI ImϷթg7HYצ(Që9LJ%I ȡ^@ gKJc/=aNgؚA (Ё}oZA m/I "*#NƗR۫)LܠM%S$SoePEu{pMTt :4Ue¶s-"U"<[cv;&|u#"&ޖBca*o+58Ҁp4(fPѯ >Ign+ԸݎOo 6^6}G9mw2T94H)s;C7>bfAUΗ% kۤjw EPb(Y̓A7Y $I4h-N^TrykT׳9SFۤDMdƑ,޵ b@klst.~jo2k^LVi'pͭj]EޖwAkbI\{DPyՕGo-9] l-R+D\[qٓc캝)AeZaUoE7z{{@YS=gGED_G_OX5܆'TiIOm{QSKPX*Qs QM5_,CԒ6˪19}^g׫[K=,Z0yQXH̛MBeN(A"UjkK$$F\h$IRtoyt0M=U!BkIZ=S*ȣ"| GjbZP : a?8Lk03 nĻum|(u28CTf׎:j[ʷV~I#pmm?N 1uR3Ϲ6J%$%܎4wش*qK&TCf֘ Y;Υ>2bPY$8r=3i؂vzniL G-2ѻ`S }̔:L/Ad -l .zzcm)7H99qNU|%r¨oSf(ոS $I.SΥu_ZuŊ> /ɽCW^;g3' Oik mkdZ&\d؂℣ X]o7YG\~;f`ʩIܜ ўSƨOf λ-7QOI0_'֜JwiVƟ0h~Qq#+CVI$1JaP 2ykZS]fUܕ#tgs'BKA;& kQ^=B 4`5B:Ijp5>c(jhW,[=KŐ卒ӑ A]gXϕظ\ фV͸Jڿ۪=hl]IYz4O,T"a3<ɪpc(ڪSYNqCpZ{߅&6+=ƔϸPe*W  XLQ0(r.BVțe*m.#D$ J'HkׯvE+EflZ咳;z+S0d "$@O{ݧ fI7sRNWA@%m5&Zy2hcJV}ķ;J"Ә=~jQHơFmy6R| ssײjul[zΎZ~*E\$518ԪE8Aj=.jUrFev,R A)nbElxfMj)- &MqIs[ ΤbhóP.!7K.*Rire!N NCgP$|6U-P2D "wls& @lģ/q΀P?m18icSuQXe T/AqQxB@ 1}+.f3c$M{;=>8^ Iؾf u֬T6wc Ϫw]"&* JUx|â55K;F&ܲ2?1F rrb>g^8o @7wTma@6 @1@Ӄpro@;]񮟍]?Ɵ {SZ>; `p'x 5C&r1 O=-~&xB_^ġqAP[\;EW:־E]t.c QkI? JLZ Sn`Lp}۲3,\ M$Ibsâu׾ vUο;^ EpCԪP3hwWIptXN 2(VⅠ j:QM$4,}s*Hhl=L#XK cZkN=Sk k;:א1:n̈UeYTX!@1*U[% ũBg=tT.ґtpյH k U!},j*~zI翯k'nP^ ? ;~votgU[9"V^r*D2umS܋;AӒ7-{o@퇮muactU/E}s\[A 5?Xԑ['%~ Mlc;`EhK:Bs@)xCw |= C}WzNj v-dұ&Ӛ7Pؼ=mM7s[eKZ1CweE⻼nO{ 'n Wi9Ͷ޶YX[c TIJl /{=JWJjӜ*aٙ k~8zdgmvt0km'ŧ_4Yw5{xi7g?Jm 8t !lΙ[$;syyUe,Vdgl^ "(`i%.(.᭏OMkˠi]J~y l#dA3b8A5خC$>IG6r͢τaICP$J2ljIS *J;>e<66͝CQ}n/ie|һ'Sʽ#ön;wpQq \@01 ҵl:p(\s7y )TRN;7o`z9^BP@oi-=#ȟl}U qxbe鏁Ctm4ا>ۉa̧Rͻ_.yTtbGl/Nf:/Mv[OlHlmĦqP_\/(P 5NVfu\Ûv${u+CP] D\~IP7MU5X}!TY'k6mx 'P&B8CkdwO|ӵ AZdD],TmHj3<l::-kA0e슘:ȴ-Dž8~Ϋc]mg Dih_;& mҀA8 w4 9gm30)`g #J /G;gӱ <OR8H~Ctp8! IDATw+p\Sc*w+h\s=mxc-J-{vA68AHۥyj-'?K֙k :]GVm5!a`H&UY^3t>20wF%xՃgՒCw V;z[_`.Z|;U3sN笗Ca߸xr_<#J7t{nց1KѹFsmզ^:,l/q4'dJeg) c|i,-~gl`*Ymy+gDž'a|N\ B()~'0' \<:g)ħH+ixh/ I`b:j_߫Ը+ttq?eZR C]&W8l;6f-JULT:_Z 2|^W,;KT>@zXdqeFM+=jخ4xkhL:5tۡso%049$881v[4ިY SjpAƈ4yf#aҭ6:-Y- 5.`0Mm1b3 y!*OτZZP٨JWBeq[kQ+ϬvrOw-64)j~\k*+}9'xbߣq o~ÇBv%/݄Җ$IlF1D٬g:Rٺt m|=1 ų+D͹/VΚ?mgcNHv&o៿^8jw4:~v64\<-:6>>~"S v~Hdi:o߿0ę0po곛Wnu0{u_eFC{@R(Sۥ)[Q h-x[:e'^2u(9q7[`HL4]*yvf2O_Ȭ~t82j[kãt+'qao:7wh)]8`ĝ A F_;y(<ݎ[<^W̉\ԥ%U^iINk!VhU%)Em[=n 1!5P5mRBm+/r0 %CE| 4ݺ=zQY ܥM[v3PL}Ǡ~j+M=Q%gRs]zȭSO|, 'U_8 Z/:7Q]PuR }mk #k)3rёG:n8 6\Tqat 3e/G'_>Ro_dB'1_H8N =py]q"IRQJ9RR޶6K*d24U8,uZFeZѹ$u< :z kJqWfV%i3V^;>__oR~srs `X8KzR?`ӘCdn=NhyTO36~+ª~K{}Ughbnc}^%iM_+L{eңz6{i#aq_j/K%p+>mg'];Pj ' s' |isΛf.߶'_d$-J[kt)Qjf"^tIo$in[C9<*B F_Aev`ҋ0wR5UO_g2sMTT|?GHچ٧"g)箼УQBcK GlsitHRo=GqC5B>R1T&7H@BgnEոZQt`dh?$5U({quףTB@)4)V JP~!S5VC x$=dm5gNZBNɸXu[sU}yq 7n68|z:N%m-ztc@+;~,K+E^ GYvS^>G; ܣ<#0 mI=lJo}qxHVQM@PM燭gY mh|xtѶ)BrDOG:z{N2*9d+^cehdQ *˗;\ɸx;za.BO9}Xa0e13GnO\>>Ұs+6=kC$/^r%@y]C7oyjΪ1N}n $ZQ Oc!l=ѫR ]XB~DÛx>ŹzXgߧ܍^puɭQu&@}f˘Mۼgq;H@2Uڂ;tRQKc%|*Z~lWgxSiQ_x ƴ)JKoۺy`GZ)CYxLIuoI|AȑGE:=瞏,I?&>{ޙIB) O7d'8ZFA@MI㒪=zn~¤aЙ?`Ev2dК+S6Te*}Uge#]7~)ut#gʡESn40<?/ByGEn>]ci=>9PT',ox/h} 0tݺ:T*e>AI19`-cQ[$q5Pks?kvYq3ϸ"\\UI<tm \b/ݥ7ziTLDc,=kau&c[e:Fvf1q 뫨,]?+99>Zz+]l;pb&R!`]]q}+Ư0TUigoJJ#pSv$@s*)++ ȸNj-Q~=Yx}-Q9o&tU}gl-^)RuPZ˳e٤@_2ܸd>u5]bͤy I^{٧-#~KbrJ]t,}Rq\m{(pk]ZFN֛L#3PT-i}gQ5V^j?= ['h!X9_K݋zz|q2 gZbZAcP* k:'xyjUR& {1W0})߶Zhf܆NaJ=K_ k*7X8eO&Ms{8\jG?T0-Ǎ֪ӎ14$3gje$kOIX_J=eK+i.Uǔ7ɢ*/\N~:ؼ+.f~x_~G,|i̫Emp.(P[/P0iXtVVb~kʦ9g<*b <6EVӱKv)Kzë*'2a#]ܗ;%lhij5  I hA5YgP{qt!=K\M9/Lҵ6ǟASҹfQ:AaVSP k.$97}ǀфV݇5 C>4̅d[QZL^۳&LI7W}0<1Kz?i2薸`V)}WFR:TJ'sC kQx [$\dkɇvRrWs5ra&(Z$$w6*q1{ +m/ODarz~N|e&nG|6PFB2H&%Tnx[1QoD>_Z)/|M{;I#59Gep +31yKYxd4 @)j.ot0P\;%wyUag<>+k.wfpr6 cEۋ$k8Q2Qno#v KMVpI#Gy9#C V!5rB cVU#.oyk2)I3K򔬥^Xӟ W;Ҷ9dB@cwitgQP N" FP:P*o2xc-~YO^=k~ԑ֫tE#樂pYFU:ഁsF[IֱE>+]n﹝oO=~N Z}/ޯAƛ~饂d Ng%w3؝ZSm_Lbuʣ~~y/(KR$-nbP19E4 N1wNqLlhOh=F(6z `g@gc:<_ce:3sj;l?at[>߭( ^q"quaE[q= .RtPMNA ]z ~ȦW?y|xMa(sLzܻ7vD=6p1^XQ>1L-z(\0ycQr\Sk! ^/@_N8N檏1[n}G0t%4x4v2Q=|oP"xgRAa-ĵ6?egz*>7JچhVS)D%nQ: _A1La)w{Na/7xQmTJwr?n *>1M-h N?g׫ѧţj*QϦ*;ACA+77vksx0$I;P~ $B1eS,|,?dHs= IyT4W?ƩlB_+8]޻e(aU*Uhyos[wK.fǢ.Ӱ:63LO.IA)0TL@!(z%"6z."HrG\rՒ[L\rYhgn:G G0cuZ.lɫM4x$*Fa̋ Z(vL`~|K$ ':G}߳b& \ 7schf?c{G]+w;g|U;xkQL^C, 1uL|s~uw%wuzl I\)ndccn(DQ\ yieպ#^S)LyKYAfC@JZl*9_Xw?Мo1omdw,eO1K*M䭤;\\29bĄ#,?mZ~Uda3xSC/ew Պ"&{N5WXIvW&73ɳk S&oճis$]Ij;81Q@qY2Bd ^tp4]o{&L]XJ4^X#('oERv.À$ s0Aeʌo&,T)mn=_G/]Vr e4*xQ$5wv A5KүQlwWzg9O奞gU8;s=lUJ<=EZ>T.5}(6,tOC3O}&{܏3p]?sk#(ӎ]/nmM' FEFǥތ>:(h[9vNwԛ#){S?d;NoRZ_meqJ ZϢmC 1kzͼ{xY{i<&P3Fq`݅5I(p`%x-0ӟkU$=]dS w6$8IJm4Mg9& FYEqfSbon!Gdu6,ECGu)+ O>װSV!IUoHsNBpyi fM`ɴ[e1;_{F5MeWVZRHk gԦ(biiV+ٝ;w ?ߜ}f~8\deiY%H4U>:?cZv؀mQN\?5&k[vZ+voK.IRe> m vR0 GYʚ,6lkwMH5ŏ\FIn1 m*Q-VN HgEZ sYeR'Ӥ}CFZvh'}QIXdSKIÅ\e}aN#Or.W7j-;j+WWM𠾶7j:dr`jJWw%^Yܝ$)G~Svz:aKV\Ht~gs7r. zfVg_9X`/9;v6@3w5enD% \-#XDweg9hWPzY'N5J/ay mQ%4K+<)#|V-9-xFG&XfUĖ%0Xm_3]N`Z CUj-GV^Lrsr "Yefj\T*Qdfy  9"o>c]?F ԌiRnJJQ .?nX96,m7u)o_C$"T!`X4SoFK($88+RB3IQ@ДljPh];fλ:qՔ.4MQ S=:;;l5GlԩMӳLx/9g1dy (XLKPIg ݗ^ӵsTeaz֕Q (:f+8&e-T:}JM)ot)u3G>Vk姞筒L#n'*J52J 6HBdɻVI(ľˮzJ24A4M8 TjQ*-DĖV*pX):f\jzuAyA|GٽFvX=lJan ߾ǪY pwGU?MuU-6 f܊*FLG.?*䤄/μ. rkkS~rE Z~*bvm%+X/co?pjrf"3*$H/qYVWEZp-A#~&j؅7àGsM@q;2vkoPhT\ݨFxI @~bﭨ3o8,%){GYL@G˅ݍ[Io#*$`c/%T4FPZ[aXD[6}78e0IR =@@Uԫ\}W= MFj|91眳`XapqVLkDߧT?-\}W8Ub#@LV/cɘ:V7h[VT_K=4n>nHf:vNxc@_#M4 撡!MKIbW*Fv4` ??AP!̒8;Z,ZڵLUC/r2La#nF9hՔai_e*BٙhcJ.KTzMLMcaL=@#10VGR+p IU8%V\٠aa)ڏ(uFuKCnRKoPu@\GR7*bbEs+Qv=TifjD<&TU|6~pSϵ/`h 0~_tY^AѺ2m!IR6^OUZjbEI/|P٠b_|]GT)LPVdy^P7񂷝 cˍԕ>7*'N5gk KꤚɅ\Ml:hcG! m\Mz# )mJz8Y=9)ìM%!)+UD}7*)uC@ΫLN@?"icrѮNֳ&I ױZ^wQ;?FljNx1 X18[~!iv~ՙy va#x.WJ?wzoEXR O&tghc`(~ kxLy&fxSL U*~Q#՜6Mr;fT36XBrVQY{!}SEq,"JK<7*8Nǿ)V^Il C Cy6ݙGNN0YH5/1&T6#l/u,֬FYlөe)ΦH]]sDo3}vjF~"+x"#F|SVJ5`"dY>)-[LE^e}?OSzR`;f31`hf٪0uQ!͊k?6HO>zb=j)ŕSjgP[aWv7u* SF4ٖ>7WvUjY'vHS֗$/F_Ա'mdy@л եg]S;R}=L(ߥ|SlWxWSvTXצ#:穽mnX/d\-u=4ppA6Ye2,Pj_/ӎ47YVȷy׾A=w{{t׵l /)5d$wݖC\ 4`3P~xJCYrN^g:bS o<29]z3?WC,xqŀ(z,a'MSRrS/D81 UuXz5蚎 <3Hȓ[V}čɅ;Q~r\-"sNEgij%@RNTT#f`uPbH0p(QfL"8g^\30 (R$,}RUyú-vqҁN}܍(uȈ2߰$I ).H ߈ Ќ e;E$%)b%<}7C>)n!["/'{,t0/cnuvSR̛;$I &}{(,1%pK~z%ts.aI~vLx8ڶ$t}uR~f,tǭ?Uwgkl*fyڊvaJp)E(lom ,vE蓜)$I HM(EH:C'9 8h~>sEEdP_iFGmzo8#k[iy9#$N#j9g7$LVPM(zo?6fM\^ʍ/5m( YG"+n.IрIRZ"ZqG hPo5n@;z5 lV&VP#}<%!Ӆ@hޣ].ʥ2Q&~PRa^El7qR5ۧ}zT6M$ -a(IړiEՊj5Δ߽e,ޡ0h+Ι o XxJ'G} Rgd/lܢNz$a(!W\MJQR{Z,QqX,j-١K9-RhwK& 4Qw>:SA2<~V_NU] ~L#U84L53ӯᩴMh>u;CV3-t#Jɔ 6MPy{S՗ T1>K`Б0y8Xg1}lMxxۉ\!a Na\"2"Qj``H_<G5ZReav• ,TF0pBIN7;rx,L̲\702M%QdqLr3%(LlMxŝ7koq7pqHbkKpV5~x]Į cǿ e\ZV6B#x/WS$r a4E 0yT(旤|8rpG}Dr[z#fg +".@ WK=<*wuX IDATsz!Q8|>MӅ{{UhH*0fHkZZM1ѡ LVj":ǻ:A|D0ٹakyӛ]2tZ5f@4h>MALER/]n= kcy!C~+ObYeu 9xyEz0k-lPjiq!(z)?(T6CZќP#tNb^^ɷrfY|A]ck[m"b-7ol`?W\ƱELla# E;L~_icᆽݍcf׏1uGVp_}Ύ5cB'wv4|lPܗbBgu]tKv7XmhlYW[{X ^)'FEtǒpyEuTʈ;"s#v~f`2;k$lkGߍb>cG\RfULF==>!@˵[+pHt녬2?~gx5ʡnN,hHZёKnEJ+?T~tY:ej+ShC3Kq M.WK+,1\, *LޫQ|H0qǭH ZKVք71&j€3Th長OT8kٻqŵJ6E&rqeǧgk_Q"~Y<}5{K^}WLe QDNptIc?#SNa`yVPԩS7)x- m7]aT?n?󼵂=& ~~/v(1 %=':ނ~S'k~Ԅⷿăo?/@ s7}Pd _q1#eʢ^O4~ϯWuΪKz-z.EǞ ҭldoV\x<]>X,ʀPPoݩyC4ӓDQ_ PR9J Ư|*O.lS%ѐݍo|CQjVGnjsIr1G,)Dfb)/*R֒\QHLE 4mԐz\F(cFm?Y&`o;ڊ|iW5f,Nh81_{v^q{/sn~bpAuez{![ߥ7 kŷfS4b MqgҤFqmD÷*k 6 u,F1Ƣzʗ0.gP`jI]IXxӋk>Z<&)wwWmD3$U=/.,pƘK>x'2j¼yv(ע;d8Ycp1 [8+]-b&]&QhG,hbL' \'-K71qP l^6]eg`9ЮN }WyFZ56w]WG⇠_ǦMok1=f]0wRUu.78g&}<0l_VZ%i`3pHFI [MowQjH+EMI`pyJƫ'u#bk]un_sH(R?uƝn&ωo$?y jߔ\fܲOwc\qgo V~j3y]& kBK7eغ9(# ;הh s &8&$n(`{u4s!G_˦XrEk! Lϋ.݆̍{)9~_a~=wVV{X_?-O7!M6& a;4=bkoW0BV)aMq<έˍ[帏ZwwdsUCZvΧopT}o]+^ӎ!TYNڸY <'Эƞp,cJ|oXX4+1}-sO&a{..'A0 %kP-)']_oⰙoxuYpC4a gPqLιhluUMS0<+<weZӂ*y+֠m]YovmLų _w~_FN[;(-7Rv[nt r2|.n ]JzR03@q@~Ԗ۞fk[ 0tJ-Iy^>ڴ[(&sݺzA$I7cpB>vϷ.v#~IN=PyuFV5ckW!6׼؀dv=\ s3.{|2Uvs1;5==uWiE;i)%Rַ=ᙞo apn݂׽a7ߺ|1=k~} z-g+q[xğqM#L7\ѣ0%/kШz=+++;a(>C8E-ҳ~wNH3,ijb9 UF]~@n`L9peߓ,o{Hp8JS$&N|˽X,rHXj杌1.d:S`h5lPT;4|xr}-޽Sa3:E aIRϴ+inJJRhA#,A1| bb6pծsnmAZ2qZUA"I蔒pA4M1wJ ߶۳qqX6J} J&j'(t[~tJ'~Yo?CϢ=nGOK!Qd U6*4: EI϶WQ2cBzPNJm7S:a-jKK֗7Ğ(Vn;uٮW?7Vԫ{nRyOgy$8LamD^nFde{3["nK4;VzeYRs*>۫d /~N|xg{ w\­ßz |no}t㨴Zy-]  EٗSsʞ i3"ɄZ:D-dw]VP$ѕP|(^c{X%F^p"-,t-oٽP7M;շz5гrED [d6_}U5V,yj?Zs 1]!h?Nk3|8/{q$E &fq t4yF4;w$I1=&wkve3}sqܳ kq'mߴƂ$-n].%`U}>MSttyׅaM3+ @Ө8Y=d+&쏱i\Ck"o$I#6??oׅeYyʒcN3 A"W^ދ+ra6zʗ}-ŝ~]t|YYm`GxCC ܻs33<{3t]t5##}/U(+ Ͼx=E돣6}?1'^9JNwΥY$Eiz"M@i0hԯPK cٌ~?D0//OtřuF*#.U*sfd*!AYQp#-:Oj0t=q97Tɇ*k>Mٙy EuE~%{N92rYq4ãqEY8%I =<+Ґ/[Jjp 14z CNs#}@µ_s)"I TE0|WL^iYEj,8s[BbR IRfawaL~/yc`T PV)%00BPc dƸsbynAʝ-Sh=PdŬ^uήwn֡s 5XJH2,z's۪ѽS_sBqc7[س9;8I _=^h١Mom{̬g3B$)6IR3ӿ5r]a:}PgyZUԯGkC?ٞk1{>X7Jԣeڒӝ\DŽgbe{BY[l[-BA]["4Ov$jъmp/yC?u/t$)ZZ cpNĝѥXooJy1?aLWBC˜Met6PI918}6wDPl)ͣӵ:ñ3Nmт`8ב<&<7&t-`6':m0SAoZt# ow Zkc>\7q}Ӛ8 nGϳZy~B-?qкM=\ߣj90axtͧiOwV5:Mµ{=eFL`PI(j *?PAZz4Ѡ+HjU,m݊`Xۻ~QT1;Nl3'VJ#* | X#ݣ{]wMD`.I!WP-𵶲:p@#c־ZQ'FezjQ y>fN$Jt'5 姣c#n{noL^iMQ:%bT+1";{g޿t(P˫Y˭'9TjJ8<$z:NG db_Y׀ΔZj,/>W0MFX:R$g-V^Lh`AQTFw Aj4@q_4$v걋?upC`Y $s裣+Oh_27<)E1 &DXKo2lqyP"uo$="ys|eR>X{PDDń܌i4f]%t=g%,6*_biXj';Z~V4&bN)&\Z0P [E%$A7`U#voz=\QMQS0.`$QT)Pc+PbNU:G _)ake|` kj2#GhUIX+,kقL+p)qN"gqcHEKP~T3TUfeUTy]9>II7Vؾ<UmFCSrSLx#ͥirUYͬ1no4VIc8C--Oo4F)EΜ>a՟+ Y2*Z;>^].: ms4 h/xD3 ON]hU c$*C#Gm841eyTu$jJr:|9i[]Sf9xaw͍ !GW+fS_)53纴sfLFZǹƥDUJau*wj[53~^@bZ ꩷Nxly{bbr Ҭ쮬׷ʨズK;?++l<)Qlة0 H ZrAR*QE{^1h: C)ZB%^t|< C) qL7>*tM*dCFeJ~iRJ"Xˠ($O)[S5 xeʁq0:3ǡ\ţt삍'֌ gQhic4X?b]9~wbG(n 9Tm5Ux}iy'A~>3xz~О&<"pj[)')TQ,&.+Js0ܸQE,#:Dr@=DjA`TMoҶQ3eV~ڇf}o}3J,"n.Ǚ\mmWT+൶`jAimROɖSRѮ [Sm-~EQ{ %z @1ﵮ"sN Ics;X*gksY)j*9IG| xՐP3q"ߟG}z+t; [D ;þÖ(x< i\RRud$z- O%#;g?ݦ1ѫ"00aJEY!Y~*yZrqQ S"X1{)n[97h$%l7eJ  ] G5:9ZM=e`g wE 3z[ Ǐ^g l_2ۧQNFJglYtس`1ݸ x=)woS(7]ʋrlCۮe'_}Y=D$G'Vv{KD$IoVWׄ_Ljtz vv3WV{IW2w}m=f$xl5@yOpLُ]˞1ⓛD#KN}|:*n`_R/R7bY95sM.NzWݱG i,:Z¦g۪{^]}S [N,cu Ѱ6|"BTfsAR#̩Щj$)JUG )j3zhG7l}'C o*8Z:dcR\Wґλ(>Z5-r1ƎuяxQ̗9i0>=U%mbn8ӑ&zgiwE.!\l|nKz_awm-0zCg%kvTB4e71pWrgٖ_ ,GdMi@% !IFe71p\*?ﲙw!O ?E?`1XZnٟz{triXF˓4C;vo6~+]c2<~:a͑r |c|[Mm 3FN]sQ,?>\{3~>,n&NX%GJ 6ı^_G^:) >*(!Iɫ[o'2ZKR77!ޜ eF5WTѷ+<ʋrrz5z#@JjiՎݝcJW# H\B.YH;79"jkn?˒7Z`(PH䄵@8"O)[f}t͎,MT m 'VpbQwmM+ZVSbSKm5e5{B:üfUG0hs CwWMP&? )jAVvrޥ#-r/V(*mTWfo쐵ŊwCzigAC8LLAr0gJln2^`xa(37Li  I e竛 Z FW>`eol,.g1twZfFW嫺 gzsǥ=1O{jz`L-O=xz7y).oh0 G>L.M} 3^OfrUuϾ]g)&KO~ɻv\)mWZҫ{c[ mEkl‡K,3ƒx.<+vX>vwQs#Z=WFmO~g]Pӡq}uǏk7T335BiSתRodN'd6۽DwlP>ѹg?bwR6#- mGc3@@X!AR rr_vY479M̍PDH‚af1"soL%3qvP_!Zc4( iE@Kǽ{g07ԬCGww[o^`t"(ԏg;, JAբ("#)BQd$ۗk'ؔkzB@P>](|.:4q(g|61i2.>/[CQ>ꩳ'զǞJ99cNʉ1b둋6U {h 9f/VcgCW~uqkƜO`OŠz~c,pZI ' 'nKGU3U[KR'}X4cqtT6`(x[g}%4-i.L\Y]hus,UݷIL1é#V;#`E0; ;0wG?fNAiLLDnUQS׹Z_owGxbMS~)n[j)"oo#EMe)Bʓr PH[+?S}f.H:jMyƽ1AzR~}B&9xԹJjbZ 󅍥Z[% 2a\Q4 Ѱ1Pi (U?͈ $eT5Y H͚w=Q6 H_*I+i\[ZuҢ5vi$/7؍6n~+L<I:FR!8Y8Pס{L/X#6ݾzlDN4$Iy:VeUOt_cȗTv'GY Cq2u(_pBq!R"~f`JA]C&W34LW_sf$ڕbN&(t$I >p1l%`?7h0$!^fZ$I!;K|5˃UUMFgFMbm [MMI,U3%M)k)I~SE53级9aCyhr3+6Et1-2F.j[a6'߉˝ j\}7rymۅmw7[4/űs2RX$.Qk$/*!dbm q_CʣK\ ACc )hEPLjWG:.LV;Fg8ޱGa6SR!bZ ?(RAӾ9&,.ِ95:[لc xkcV[iZo9G)X405ٽ'˄# ;Oe{0CXW4-jg-2IQlG퐠6ߊՈ=E.\TўVR\H$Qpj2 NPr UY@hlôT2{jP8zأM' ]gx˜ `Vܦ(CWPj׺, 5B)>0:vxeuԳsD$Xʲmbֽ>(-͡q/Q {֣<D^!_\ErmdKZ Rb Nrײ0.J ЙO˪ZSONFsSt+4?ZwM2b~Jʳ(|psamtJM_w/ݏEr:[PBR0TTAWL<"N@ .ː?~Qh[=bL/!S6_#2cM#&W ; ޳#ʚ;;y2"*aCoR$Y:7ҕTٱn4O\1ߒ+RΏD,=(䬹 j[3@M`lɈEjʣbGd \6=F)(*yZasgc5؂C\$ l4{2iȐɏVT74{mMzqIuxwwBc  {TW(%l&6+n=ѹ-}-Hd A@](ŕ,%&"\S߲}aN'69kpRIִHTG;m䬰GE $WAP4ms&0D7)/ZISےO op4gR3zQܫQ;7hX ߼7Yukڞrq[3s$I!sQOp ֤"`޽ Qu3)qF5-y z⹃ڏD5AV!cM=~}p?u^{hn׌^c4S9kFAm㧽;h=nggVbbײXpzA4((r4{b.CP L%R:Jg Rb SCWI!ooio *M FP.'l($213ťrg"w=9 p]2NYۂ&#Ucu .5~U3KU}֚ eo2E TW +) Jg}@iڦ7&`RPjloۤEۭeNP"8,N8a&ڜU :z8W+FY|\:Jۅ_zlpTXe)Cwmj&1OW3~<`#X2A$u~h=]R .TdRX>{ɛc -*/ڞSku0JqAqqDXm dА98AQT+ti%Zi:JqJ ݹ8`;"XJa㗺+f0}u ,)4`ԾϣBGvEߺOqj&}Z7կ@ݝrj̦@/u4b <.㔖$j, lAiG=={)[Tv#A_r0ZݫAoVCd` K db>ϰǜw{5ٌpQµ"-qq_uk_c?8NrSNڋF5 ү[rEq,;&T.:]R\֏TVȅ!FAa(kAd}I*Kh|*DZeiMLLEQnRAS_Iu3ȕ, Elx=B,6yUYSv+k+Y)Ǘx̺&hTъ_1}^QjһP"{W}ڎј[4mFȅI͸k&O0԰Kq#յf!(e:xOSO!}4EF2ayA1 :ZZ1IխLeM-B.9e@W&v|b{ۛOj-C*-l,(k!+VGӊZ$I!f^rYϹ&^7LJ Ş~XZc;f-}խcǧDƨ$;y/JuuY5?׳+. ;i/~hv-[?eso߳";$Y" ?}=U^Kphu:;: hd^Hu. ixux-7i*|g=uղK&<4>G"ߨi2ίkX"^䔚r'Zm %mʅ^Y*u87KmfO:²3TɨmJϽ)D ɲYy>~o3UIcW(wgR`i1r.K)桴[SϸK"'lzWC[^WNWRE`C)ܒ⢹R~k/wjڐ"GusĐQ&W~ٛ);[b&E[ -ȸЀRH)+-immrm눟=G$zUšV|"IS_us1Agjo 69f9􋋷8rxCYN[d_e#>bcQp0a' C3Bk[g*CZue,gxo]{UvKE^v]m_>^n~$.%0ґ?ͬ&Id30gI24ʴ{W,_6ԿSc1' Ħ&6Qwܮ ?scr?5p@wkNXʣ;jrXv~ǡ 1A4tumY] ^o}uИ y{c*QYCTA-XK0Vi{؝Gl2;ԴH-Ӎ˱DVM~3n1+!kxyTȝohFsqK%oG?Prv! $Ejܞ$tz ӯo'KpLvMIBFtИU'G(ګ/%2BCasz[鴞Xԉ yBʆ|}pGƼ:oxENvV35yd=wAsxQ028߿Ey#v[/'PH:;rE@W7X ]6FK1 -;p\7' okK}suaXڅ 9*AQ5-$T'3NmIY}-q!~/wN$PB0:7:עPˣ,5W$E (V^ EGYs³iL0< ̨I;RqGqV(N`\ lmFUvz8 1K:!NԲ8ߏ9w 6u8b?8/`ȓrQMQ9IYl9ƺ`0?qPK0Ƕ ZP\PUQ F&R"דp*kZH wwRIߋGG`T/2H3`iX4LEG6rܪ? *kA2&&nL 'Oq7T~]z˲ CP_t՚u0p5]YjJc2RQYBghύ $f Ph_cxݷEO-c RUIM/G?e2E˽ qy +iǒOy+$%2AsA֍ k-]M0,wa] @$CJA՗N<}KjI\[)GTLh E੢g4ӶrQqaC~QVƘ  )7T (CI=V.<Η;W? *Z9 )vrx~eZNc)cMCtWmidc [.>*zN:Wpo(-tgzS@@F;;Ĭֺ;y7~ q~w%]߂krW^]^x.O{*w[MAYB˰~Vԕ.3]n+]-ߌKbrcm!F;uicE#p#{EcoZGM沀T8"d5%:N p+?ʡWFLR@BmË=Q4R! =]^e}` 7+?8w6Bc$.n@fdG|0W2~.?6v|N\񢼰A{F9aԐ\]39`˗V I@`ӳBRdwZ=e9U_3(@g o47_KQrZ>D!PY66T{{dq~uq +)-Ygþ;|O5AjhsyfNe>P0pʐ؂szQ}!kAأ]Ϩ&`aQ!4`ƒSE TtzzCiqşŨ:{o,4$woLClgJ3ˋ> |[ձNMZXG^|Kbo@VU.^|Ra.[KS:{ୀY=PR{PZ?ͥǬOK6xڷvŰhiٚ}> +*\* :rq Gˌ|{՞:A/\BP(6UޮU A(4hl/SdqI! 9 Ae=R7HC=Q4]#_sO*"}MM8iXE!.\fk21Q9yYR\*DI\N'sNEARaI:(m$:UbxMR.2f{gF{<#b>1<3N^_õ#wɠ!u *<6ɕe]V#[F9z $=mml7[4Gø* v_W 4 5+bV uN:AI(PA٣yb[mQKNa )2JEJ^Z6}¬e학*ZP,+hĥB!-](vAƛB``^eB1:V7e؏ԳYBdt%գLgH>\~oPZ:n>')$/lެʺց /(Zp4M'vDe(i3ru4 ͥz A,1%}mGMNmhQKBr4 I(B!M)#,4g+T!\8cFf{8' ')hP2l"^h؋1[kܪGɦIM$ͅNE(@;XИJu5o$Hu`3:=#fO|pxkˊ~VPk P,i!̯*j*LlJ I[2W޵'ZЌM}I\vC BPXbwa3˱ӳ6>ӫWd nlP.4f:J4A:M CFf-AC dL_M]+~t%@bNSm)yՂ 6Q,xۤzAŖٙViQexatbh5-[I ԥ.5aRI<(n}Av.k0{ |k{34c֟ |V@͗o∜ԥ<;Wxwg냾>^>p17tiAnQ5'?\Z~bЂӱIE3<7=SJE('N"18 Q7H@ɼ2kCuSAO/6L((2#m]8;kk]ozMsN!n\jȄU/of'Q(p 'L-rX'mZvH'][9LvIM{$[w2hV< h֫ٽ [TE2\̢i:n6=7&˻I Wٍ^- ZrӠ 6k{ʡoCgX*3f15^E9vs6PJ/72Bc hk'~0AF@C).sm eq՚y=> z`26=/L5wJ_MqGKTeY] (2t]> WeU : gRZ!{sg90k+Oٴ3dJăT!E$.i8M7) O5@z=>kh_xvt@$ PK7߼Qc}fU^džOV14Еd;(A)\V310v* BtBz}ĭ>;{PYbY;d@=C Ϣc S Zg?-f 8MU<0 )*Y5ly`ﮢ^w"H~Kpq0Jpл[~fn)pkKV(T =ܾFK{oj 5R V~v!qy-LV{t!+&dmཻϒ: jEDmUpb4s}5?01ixwZ ^C^~$`*%rۀ 5_i,tawmO;IDAT3?Hf`9 v9ab&<}E!I",P]cJQ^sz #Gqj4 o* )8ɯl"9Ų9sәUm.=2^i"#?{q;L:m I$.W44j_? ~.ԌdV֣e dm<* j:BflmC*,1RSNhqYiښ~yUH$6t^0T>g\Vzl2•luJZf zЙʨBvN`,3>׈$5׊ } +2{"g(ڴr?ueS6V<7A/~\{,UL)@x| Thl+-9A< `dzC_SZ`tE'?$K}lrI>zE'?v-J`dՆ3*^&ʘ}憕:lI;NE\[Ӽӌ/nvߞY,:6âo$\G_>_nOApWxbOcG\9MD2O]w)sk޳j'f_ݗY_,6Y'mUD@dXAX1C]Lx|ٻ,Z=W#rdw/JZc-NW+X_*Y ?Ԕ[r賊V<ACLMa:=T#mv[5V&l>.hɽK4Z%;:@!<\EΣ:rbjFV~Q7KHB> _ }=60PVcz%16=3emrQ5CRΉzP[Më'o:AոLXkd6 q\)aeFr{ޕ㟆g$|j1hmXo]w-mj# z aϠv:ƫҧLq?7#H)nȾ QF (<1dT?^Hf)J`-IⶃBwta3c 5+oᣡxʊpTj^ ) bjZ$29 8 B ĤsJ t ~KX&έqRWx% IQc8 qA8|`aX7]1} G>KqIG\Ԛ|y-rd$1y }{MUU6CYJ!j;s݉yꇕ4M = M.Y\Fb>&Ws KU7P!U2D.l݉Tt.0<-a}Z im^jʌqO34 |,nyf;,n^`2ИJ""Qmf 0~*_+voOraqLJ] (;) #;(,>极0\"`(""(Ѹ1&+&R&Zx.h0$FŨ1D4QFԉ*r) s=} ƨ1Uf+[~~hNQZw7 ri{>LH6gŬ~^,P7׺Mm)C73#f j16XKG.ſn+e~u7`X0d/}B`]wsz-yp+ Sv1zKO 5\ W_<7vĴlJt(>@sXwpT;y} dպĄ3\h4E\t\VMsFҠ@'@Cჟv@y;byN],k>{J+kXdqz;E| WLJ)B(+Ew M|^,yl[foCgyGEH?_AtM4P w\D]aTs#&Aq9Q  8j%J}< hGhou{jX' c%c$-fIHQ|-ֶ֖m_ piBLOM4b`hϱ}7dh^p櫓+su?ªf?S;޸ l:ך-11U[EqPDLGS&}vI~{'G{d;ro3:5[WA6?H%YvsT! aYE0QG)/]T+ II:Leh&y' jYp,~ɳ#($@0 XZ$Ꭾ,1%-+|f\p3 ύRl_: ̲v$c(Ÿ!1re凞M\sjۢhoP@!FG^e3<;`-pVn[DDvMQoV: oKxIC8S*ksrD0qGO8B͹Cv%o0jN$UZ8\[am<$JQDVHLK rm9Xw\~j6_s5v8XT,OlMCTF9X3ҍNtƈs?to\QKL׿bU`bZR%ܾ o+Fw߉0 "~;b:/qMٛ/$Vk,7vKTɲTaVv)$4!kG17Jin0S(x{g=w˼upCkzm8Crl Yo% TE,ȍ$aKCmaR.lEm |_iٗ-%C{\_JZC{GL@(x̊У,&]/ǩuoV}5 mF'Y]Z3$v ;g!q+cJ}>-eܕ+t:cirZ;-HKx&h~uݷqfRH~ƌa72rIyG+ NE$o:磟N>.K.z[ d 5h'5w5[8CGϧ=eϏb٦od委j2 Ǩ2j9fJ!P/įgzy+ҧx;Qe?n9(@7ryKVVU~# $/?$(SGu"P%6gdzGaz`YNxוAjiÜ:\u\2$*PnpKok]a7 *i]*Yizb喢rd̢^̱_%]07{lK~[A!OfIENDB`calamares-extensions-3.3.12/branding/default/show.qml000066400000000000000000000041171471772643300226510ustar00rootroot00000000000000/* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Calamares 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 Calamares. If not, see . */ import QtQuick 2.0; import calamares.slideshow 1.0; Presentation { id: presentation Timer { id: advanceTimer interval: 5000 running: false repeat: true onTriggered: presentation.goToNextSlide() } Slide { Image { id: background source: "squid.png" width: 200; height: 200 fillMode: Image.PreserveAspectFit anchors.centerIn: parent } Text { anchors.horizontalCenter: background.horizontalCenter anchors.top: background.bottom text: "This is a customizable QML slideshow.
"+ "Distributions should provide their own slideshow and list it in
"+ "their custom branding.desc file.
"+ "To create a Calamares presentation in QML, import calamares.slideshow,
"+ "define a Presentation element with as many Slide elements as needed." wrapMode: Text.WordWrap width: presentation.width horizontalAlignment: Text.Center } } Slide { centeredText: "This is a second Slide element." } Slide { centeredText: "This is a third Slide element." } Component.onCompleted: advanceTimer.running = true } calamares-extensions-3.3.12/branding/default/squid.png000066400000000000000000000201711471772643300230070ustar00rootroot00000000000000PNG  IHDR\rfsBIT|d pHYsXXm7tEXtSoftwarewww.inkscape.org<IDATxy%U}ǿofce`d (}IԲRV*eECXFMRTʊAB2RRj, 00lo7ݵo}Ͻ޿xs{Yix#q["4n>|/(A B@ 2 Ad20da"ÐD! C@ 2 Ad20da"ÐD! C@ 2 Ad20da"ÐD! C@ 2 Ad20da"ÐD! C@ 2 Ad20Z ghu]}fzрJD2 PX>&']}fq1T*"PdP0Q2`A'H3d7e54BW]%H!tE`R]M.IHt% WXougR]EGM X D/ H>t/ H6t刎p?` $jĒ$,, $b;;`L q"0֠d0,^GAC@xyo|599 L "h#~cQ2h  KwUdaC@'oA&.d;_P+(€ phsxu-K%~FɊ5> dgmSsQcI&-~0f[eZ'(d!RX>6 Qc7jɧl02(lڅwڲ5fl}0Ŀ!7 sleGRL Bi6gPGWiI00/F&뎇0ҖdC0n$ Rmd6ȇL_I20/MdA_Sa.݁JӄD@7@L/@6@H? ~AA&+d>2r%7cgtŠ@os-@o~|ٗF@V z_y}9{7d]C3S|7Uw __{RW 2@ǐ@L )g: bIH,: @nfdKC0I5o1 :@I5O7NUD+d!4p}Pb ;d!4ڇI@ d!$HdD@L *ˏk.BTl"" &݊`A;J DIMUZ$.Sk!"e22 HAFCD#2wSbO{݁ Ą@3Ռ@ dE"an6%bF\LiƳet2V}}5r<ʮ?XۛԁA@LkESUuP{|0E?QT `d1'&t nd i& ld !)&6 tP5:80a$@Z/32WHE>iHL +J\L+&4 j)12 t-)~׊:g%h)p™z[UFOqz/j%Vb2aG$~H_f @JHh_O MW h42m t2&bw$Hr>uA!H)~@'oHh9n^2= 12ӯ !~7"\c,~ALRNc^v<>@h1ƴXt $M"/ cdSHk "( ܊b@X ~?@7g41,~IAAPA@i2/?S^ݎA) /<2_CZ7? qT!Q? 2yHG$#420Ry22&êdXy;@@4Sy*?hM hASќ&m ~>q@ͻB@2`TPaR?.~!}( L}yڞw|Q2-{˧jdĒ( v1ot[#h axGoOgW2c!wM'TN6 (Ǔ{*OejdD0C@L||,T9-ĿDzP9kMGy-hCo )KcBI6^YB@BAj)%4G]C]7 /53+GNjqٶB{)P@NNmʫsGeH )y+( DSiB/"vD2${:,T ( AmT|  BALyR(n_  3g<7 Y} a- E0r(m'lʃ`.V6ݖG^ +dDd0yP| <' 9;S<'{B@Ć bA("eaؑSZH@@Ē%Bs؉ɩEy8yԡuԪVxQ|s Er>X CEhjW'6;w:+Ckk/{KlqK=1V>(fbN r97c&椈  1s CQ7Uze aJ$~Wٹ@=9k€ř6žBu+-"<\mQſƠj ݷ}{?ݦ-1%%TEM1pywW/@t#^B~|+sBQ[MېHM @N^=oDUU'پ ^l޻IOH w~Ga nxd ) 9aH]) |aX/ҷ[ @d 0ŗ@.= 1엡.I@X(Ca u;|݁A]h22 ,I"N~ `q88ثOzl5Z 0 V.|q7Id0pd/kOS @i@~X|`֫uD]1߻t]'p7pqETJEh|q,uaF V^`Wl. Tt07;?DZs)ظi3v^x!6nI#O= >3b[`K  ~@tYFkoV@/ _y ~u V\kk׭tJ`?lw` w|oR~ʏ}|Wnoۙ~/xXWw`a;kC)H>Þ~@0&o<)ʗ|~`j`;o@y> YG W]7߂!aؙSAP{P>񯀒g?6}a-;>90 ?^ \#&&=OӀ'-@#}?4k{<c9ÿE(p̙@ϣvG 9Uh߿l@Bzam2Fz~ B=o^-߁Y[B=oT?L֪8y8ݱ#hKQ~O)R|bcP篁rw W:ǎF_LMNb޽So?.CP+;¨Cy˨Uѕ!ShhI.fg#+Cpn_ HLOM(?Nw{ ? ^OkbKN9t &'0 _ЧG0C8=s&M@Q3m<`3rxcvncH033}?u3ǾY?D]ԣԊ8am y -/_ٱ`}='67ڬj$dri}PpDrX[=yVNR%Ǐ;k`ꈟ b26hL8GZhZf,Ԭ]̎Hcl]7;/ 槁'E"G:npj#ZOx-*T+~PVQ(( e?.roFDKU1/T.M~osr2#c(Λo/j|%c{ Ԭ[|ˋH8*ȹ9mppԪryef}0֞cnDΟ{Se2epsv ˑ t+;Px9Ldյv$~ZFc]( Z<}6`aƖGi娏0_*Zk9R1'eӍ'`ǻ+4Ù Wl|~ bVE0*vv`a 8z4bج[\1]A!&Ø+0CVc5cD#Әp4Z4bƭ|ď8)9W+(wdv}ܮg#!Ua cgjs1j}.֫5^&)rfͩ?Ԯdl[g2"~R)v݁|>su1##زm' Ӡ_i -Fn~lxbx 08p[G!ڏ1ULIyQ|wFUzJ믴5hձ]?aGTQ7m}\sWhhŗ\)?j?cΐ+>JvqKrN8anV}9sGNp~g<ʍ_x'L5(֝]GQ"M uipJ7h742K/"zmb8s~ĐLA;#[X^;>a*v藍)g #+Qy_o]qVϰRg.GREĪի#9i-x@+ >S7 D&ⷿvߋ҆qOOY T1z;122ykそCTƪs B0 8qwP]c6<޽s`/o!(ӯ~.:n;p t'U} n9l\y58'AHӷ~G'0_cp+{OlvhhIP`ϻ8Dc)ۍ7 ^vS߮;fj>;.~Mtz7b>(,^)u!N͞LAmuX(0tr?| ? \tE\ b?R.~ 0p ,:K QpS`z(JlLM oZöW\C34S&Q<7F 4q,{N L.~aDşb10ROFE9W/kL"</:Jc`ظi3v+W KBjk5LNM¨ȕ0#>/B{;i}hJk.BqeX{V9fgP00}c>Sc`0WU7b,n5Z(:BƍW7(jUWc݆ غu;C]a{ Ph8IAUcQ^YfwMDh#~K}UNkӸ)~33(U;sj4< UoDk3%~}-9(~R ~7P*QQ.*\cc@uLMM¨s0ƭ&$`Q{sٹYTJe;ZUN=A|IuGNXr%8`62!hnKĒ\fQH!> "LCj"7I%Ki5+ V` X>19̢T.YmFʭ1p3~8%~>96wo&.iR&wiX|9fffNŝ7EҝRoS58}y";)ݼa5I' `T*Q~_ܭa7C07dԑ}`% Փr3.iR&R-apGV+3ۛM'ҭg$~qgcY8'kȏ5˅ 6ar||;r K)wjZO \SN@zNSr9LL,nPp~6c㤈@ɚ~'/:66AC븳VhON]ӤzMz='w5aٲeӉ4oȨ!jwC)\>0RZ*?nRh@./S\.B0@B}T0`%cW.r4V9-Q\ sLIT@FQU yįyh O w\` &pF&=f9hsg.C_z]^9L0ỉ0z(v0;9hǦ'.AA@ 2 Ad20daok\IENDB`calamares-extensions-3.3.12/branding/fancy/000077500000000000000000000000001471772643300206275ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/fancy/branding.desc000066400000000000000000000016501471772643300232550ustar00rootroot00000000000000--- componentName: fancy welcomeStyleCalamares: false strings: productName: Fancy GNU/Linux shortProductName: Fancy version: 2018.3 LTS shortVersion: 2018.3 versionedName: Fancy GNU/Linux 2018.3 LTS "Terrible Tubas" shortVersionedName: Fancy 2018.3 bootloaderEntryName: Fancy productUrl: https://calamares.io/ supportUrl: https://github.com/calamares/calamares/issues knownIssuesUrl: https://calamares.io/about/ releaseNotesUrl: https://calamares.io/about/ welcomeExpandingLogo: true images: productLogo: "squid.png" productIcon: "squid.png" productWelcome: "languages.png" slideshow: "show.qml" slideshowAPI: 1 style: sidebarBackground: "#392F34" sidebarText: "#eFFFFF" sidebarTextSelect: "#392F34" sidebarTextHighlight: "#c35400" calamares-extensions-3.3.12/branding/fancy/go-next.svgz000066400000000000000000000125411471772643300231260ustar00rootroot00000000000000]ms_~*$hhI引T%o)ZٺH/C4)ʒo<~@}LWG\G^oQo:^w1^O>\tlvszrÇpx7ӟfWG e+7:;i.z6='GY'~V9_]mwk“y:[!L) `zw=~Es%8yäN?^f&>ٙ6wM]Xa:5dɏq90֪Y_[ Ϛ/f1Ż.}1zu#kSv=K7TWW6޿t|;#g6ZVm hp8y?jNn.p20/5'ӳi^^6u/7lp~qoToΦ'㶦U 'óYd~d;@wF4.ۼN8.ozg,nZ[UUeVV;oe\xr-4v1;2iZ-%Xz'lk ƫ~8M&Kt~X(ŃX:oDzD)`鉍 T4}IM؀`l4A,fhTRm,?V}|u$%^ aWGayo4ϾW_CH1QrKG'7j,/neߧM=xb'ő~Dq}ŤXw7z{& n|{&}MބoYqe2IWU@]1~1 ;'J~k<#U^m<}^g,4Q0B$=c6$ "):͟=&]7v`փC2zQl*R81N6h!*D=Ԍ7f8s3{?̺U;j~LNI;s D@]ݳS syQ=\**]b?/oKwtX.哘n]zFkJӚ?Ũ)!jm(ANfC(I=ʼnCsG@ZiU:= p@rC> jd`₌b7\0*'m. 16gA&}PD7|CICQfHB6t[eϷN2-h-f@} HRI@pDG$ ;rn%|Gh^yÃ'T]P8BdDLᗚU>c d#Fu:F!biqV_V]f;+YpnHC2H5]1V H lF]PCy*13K~ybII? Aꇊ,͆V#Ze8X;ԑ}a0ٜ:㹴V)šfjgo"/Jÿ$b>ey2]A,v$QʭS br+PդF-x,Y&|^ W =t! QQUbD)aո{!ToHH1 ZA9~3ϵ$CP+ $TliYy(ɜ1x.AN1@J Yr7$g75_ox1r7KpM͏Z_%w(dz|,)Z(gN':5ˋq*>N']ZAۭ,PpõL֟{:)$7@A V(fc 1ZI9uFm!.}N)qcz "XcH7p*I X`9$T@J9u`$DUbRAၖzJjY;5^0&+)7bur,e&2Zp%u\Gc%Iq9< Ͻ(!9 \c̍hHSn>hJI필P 3ܺs  )'ϟ@H9@Y}P @`ZoHh(k]J@77.AڛEyup5 ΠRB%ŝ ?lG㓌6aFJ!,zV̢. R QC'wS1QcHJA= kb]SECi "ƊNeڞ.t9ZG(A$Fzߛ,$6#C|hă1` *r:TTd!YCy3/HrI!Du2 ~s5$K.Ӎ4(EX L kݑ*;]js|ڌO3x tO! A*}$$}"C0LdM"=4|—4)՜j@2wj%Hݯ ɼoDv_*DWTO|ȠU_p1Zm#{(N  PPMVk8wV4m=DpNܷQ3$0:k{!%7|d<3p(YOcƑ0qFkOtDl?K⇳t^aIaKOǒ1eɘg)GGd\cIx?K1,I|->-p49=|~}͓zlQJhpvnTc0=_d⸏%&N43[0 c)#X,QJ4,?xT g:N{ᖳy/vo՗oۋ~_⛵ b߬}ɯ=:g\H}}=S~$ѪÏ_ ncox`| d!_4E?c <$K> [yzJ#A~iQ䩩Iy{s?WwU3нWp];ekv<5eWؚZR*OGys?J~~X,$&֍ܠ1aOr?s4>-oe·Fɤ\wEzp)WwÊQ\Ew 7W7Wv̆~OKf|q]Mnb˕۷?\\a,OH,uD(d́}+>+o~xWo @mVtGjz6Wl8Ά,2e'=Գ^=6ՖYȍNK~{qq7ىp!$UfFm/!?W_gɟJ#'.7_;=rbhzwo WGo.K/=4x,\h?Z u݉^]wL%DG>R@S(8~Pbr: 0J]2S<9SEрIeK]s%ҬJQ1%)$ zi\h\8߸(*t\K 13^,@{+utI)ut%COScҮ@۝'"4m%܍{)X-9POcެL+7Y@ s4),>j}fʵ,к;ֽHXu#-ARbtE)L8[R)F7HHsڡZ?RM-!\!3ftH+p?b7׃i06Źnh^ U0cnYno2*.TDD`.JW;sng(D"+]&,M! y-s@|uWDַ+=$XCs+ , &f_nz 8 *F!e6PEk7ۣO(֪)R%XxՃ)I`lca%L6_Z^w*' {ljt;؞e/ Arbz[%A/}7WTAO$I;1(~`ISk(eT)`'GmaGoakJ\sۄ+zjS6R J)d#bF8$JT.i&%" Ty^2C1a8hʰ/yn}j[@&";P#i~dELJx(3 zZzR?~J7Pn)!XiOKaSSr\;?-OsK&\+?-OqOkRj?o›ۨSF^[%"e%dӀT#?ґ!rxcN&BMIni0$No@{A-(8FҌBfY$s{8wZ-{@0M+$Vc*j \1_җǺm1*FxYJUOn?䯥K$K_fcalamares-extensions-3.3.12/branding/fancy/go-previous.svgz000066400000000000000000000130721471772643300240240ustar00rootroot00000000000000}[s[9 CBUYWDGTlt[-ږEI $!Ҥ(SVSxH\C^_rrtW۟~z2ǣuzropxzڍ_9;t'|7߼<;C\dpK~y/'''Ϻ}w=aӞg?/_ҝO޿\j֘wCLR::#fz>8l>n+Jpz·qxlgjzߪfywKvẛVCx%M͈\wy7;[K< 5|nާ/ǯN|5˕ATծg* 浕'o'ÛivrOn7tdkbZnEhh9{7yߝ\^gyta2~{]Χong{t5zsյ>LU;QY8MjMFY:?\ZMtؚ{Sq]bJܬih2WWy>P>fUUmȜj|r.285N/C%M]^}Ŭ WVk%OOξ5no-Z{7(QPإǢDB~#+)(aT0*Oـ@|u_A(nh@TRm(߿XU|){{u:@F: 딷6]r~h>G KMF-W yY޶ OxQ}(w7_MCPL sMC0}Mބoniq2 igh}ف⨔c1QC h.1:4jt}Q{,DZ/ 0=6$ ̄q&H w,G ƤLE 10y=bL=o09Tgy)1nfYl^.:<=y?_iF8KsR.G?F^ݖp?eh\hby.=%٩w)U?r0iOi`a8l8bH84RK@$N\Xc8* E#mILLP,6dObAfٰ'9튜,4ltzދ[yZ7&WTR͓ bH:$~Lic-.p[ ^vpcs#2;~۸֎UIu?J쇣tQ?AI`JCI#EIc<%h@Iқ %Qby.A14x󄺤ztq́Q[57nĭ{#Fe+=íoT=&Z*ct-G`hPW~{gʼny>뤎Jуd=y q@"VgIU2`9"_9L 9MjzkŞsB$@ o JcA~HPWZR++S`hçaCߘuӽŸsHgf!2DZc@f w-ze5Rh k!)?xh&d/GN,0zue~}7sr{~2&/ ÅO({!G Y n2@ ¬ "xͼJAԵ\"l Xu-_+~ ȚJ5aiz[G N1bSL"v\S"3kpN"jՔ \*~2Bx^p)s1ĞdBJ)2jGV(!Oƹ OLI+>HY ķA_O~Q웧{eJynswxHXMvDFx_7pUm)?uNj{s%),R!yVR*4\6M(F!jE JP+ nBbGe?q+ପm7~d`j%+FHE_dDT/f¢xOElqA!V\$S@1AY*tp-)2E>fB .d^[0?ذ|!y4L|CH{ f;=`۝tuԸQæִrxQCaaQn8;#&{o88n:!Qi*z%3ʋÿk7[R g($k.d]%1<@ʎ;*ĭ/NYCo7CVd Brq2 F.Q7ܾq!7zDy@X9q[ 64Iz1iJ`T(zyɊ)0W-i6UpAO5ճ\)F9Mi`i!QH隆`ѣ88nHz}[uVbV(l EmUHC7+xzMT"?- ה-kEM ǐ0O1IDH}rX(_n1ZP :z㓨\R23j'QW4+ZT7 1-+쉵Bfd+4sj1&ѿ\ zõ/6֜,$fKTփ,oBPf7j5iϏ_U܍calamares-extensions-3.3.12/branding/fancy/lang/000077500000000000000000000000001471772643300215505ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/fancy/lang/calamares-fancy_en.ts000066400000000000000000000036011471772643300256300ustar00rootroot00000000000000 show This is a customizable QML slideshow. Welcome to Fancy GNU/Linux. This is example branding for your GNU/Linux distribution. Long texts in the slideshow are translated and word-wrapped appropriately. Calamares is a distribution-independent installer framework. This is a third Slide element. This is a fourth Slide element. Slide number five calamares-extensions-3.3.12/branding/fancy/lang/calamares-fancy_nl.ts000066400000000000000000000041341471772643300256410ustar00rootroot00000000000000 show This is a customizable QML slideshow. Dit is een zelf-aan-te-passen QML presentatie. Welcome to Fancy GNU/Linux. Welkom bij Fancy GNU/Linux. This is example branding for your GNU/Linux distribution. Long texts in the slideshow are translated and word-wrapped appropriately. Calamares is a distribution-independent installer framework. Dit is voorbeeld merk-materiaal voor uw GNU/Linux distributie. Lange teksten in de presentatie kunnen automatisch worden ge-layout. Calamares is een distributie-onafhankelijke installatie raamwerk. This is a third Slide element. Dit is de derde slide. This is a fourth Slide element. Slide number five Slide nummer vijf calamares-extensions-3.3.12/branding/fancy/languages.png000066400000000000000000002477621471772643300233250ustar00rootroot00000000000000PNG  IHDR@)#bKGD pHYs+tIMEeiTXtCommentCreated with GIMPd.e IDATx]gX>=y!$ A,9,&Qלb 5cB J sɡWWa癇:U *$Ii`9ݑT $P@j.WA^}h}Ch]B5*P8-V?ݱo+k+4$֪TE5*@6\y67 LT&VZ\Es^ME;Da4R_T Z07rm,NϘŠFNˊI~8N ik.2u $ad< @T ˩GJeo=C/氦Je%7}#+eӃ#3$"UŸL~_jT<䛉%:! pq e兜) 6wgi0&eN hv&Clf/k.D,_!щMGN<.s<×/V\H7]͙7d{$I3yPCxI0zmTAE*JS9Až~1)Uy\&ycsk5OXYG (&IdFL-cct>g1v򘨩bqQ`[9%UM{ N,'.td |~yDyjkw*P4> [@$UI]; `p;Ĭz`sII(dL U-i,6m5w]X_Cܗ-22%=Ә k:>;{FdwnK2TZU>p¿HHHy/"~erzW%(L'Jki&l]+d2Xk 2yA.(ߣ ըB4Wo72'ſ+'0.zwfon7IT?u.0 $٥uaTQ*KJ2eTWR1Z|!qDH\Q "IKL6 vG9й+Z+ ޑkW 6Iz$ٖ֖ S *sxr' FѪkp4Dck35ef'DܱX zZrl 4h om jֵJ)eb S0U!iE u;d]x*˴v"5-u;n;|,oZ~2q6W=A`!P$IA3f=p?O_"!Q=ɩ"8zV, ғJAYkqk*MtXUk7&$m*ʹ84=5R]S[O3'2^.Soޗ[Dt8`w^u %vmJVM#N.75eKٹsꁪ + OfFy5tGsD|sP;,?=8Mz0n?r@pdFUrA$I I ݑČ-.:Z=uܾΐP$#Vr%5!֡q"r]fE2B;w>a}7ӺL>3U¢ Xx2eB؛o[z4Pj3;M y)/5DXx!ͬESV{}}#nj5i]cHB^#<|*ݨnܨo7QMBNwA$}Ѷw |W6jw2m-RЬ>FJvq괭726dOdl9emSq`ڝ|c.xx.ydwޜ8\ ?fcmg^CO.jYVU>sI? C#z:4@j_ $DE*C.k7a“}/(N (T7̬I#`6Dc$Ka&moO0AT>E,fsԴK&JtN2KVQcQ6v 3*@J^}p}<]{ ^2A@P]Ä+r?rE%*Tya#$ILhT aN uWZ+"hh_WA(d" /1M6 ,kk5$ UUU= 4YgaT?X+)j,tS=\.95h[!$  [6]]ҴoWT ⡵-j1*c߼/[g CƈR6$^aTԺV)sԃ#3}fNzlf-kɬu?=|"d}~TzK uq7X:Ejjj7fEn[VgsIqOϧyґ7-`1)6V15b uSG5 E${[R1$p"!!tŹ^zL5fҕ$8S%v̟BJG[ Iqrnyr4+x^;xѡqJÓ%ĸ+L-3ӱA0$_">0Poeb,rHOadȤf{w7`I1(V[j`D`fɸ8L8A|LmKDv$ 3!^!w>$IdktJ$8v-LFZeT8 rW,nZ-M <DZR U32WD+( N4C^{楗夋nMPXA0) 4 :)F/%uR~(BAGuռ !H }^IF\Vj jI[ޙmje+ebEKI00*TREiL*_Gho: ~='1AE,XoC'h I?زAZ9b9P'% [? Hj@_5)A2L$\Sux׋yAbۮɔP\@C-9+|C(_^RݦRtHHSM38H̭SzT.)O[hU4qAn-ãބNr.yYT28D2!,jH|FaqG8QgﱾV}Z^)̰ kŨ%qѠc:c\Vp w4)d;oz|?t8P &;~+%reK招 1^TIF9BP ۤTtySk<;ILUy ՖqJ1qTF֋ҌP"0 2)NfQl[B)G2F42r鎚ƶ{{j?4&59`l /w_tל~GV Sb&$% cp(ۦ>&bξҠrSҶz%1*SX)  +-oIdCsz5|&#Dșwޗ6PHq`G?Ϯp!+dI:6z;[N?TٲsJBPʩ:C)4Dp`{-Pb7ίh;--?'(;h橫kG.t-~z>8;cn+9 "#S杽QCt e0z'=)n.t4gDGWӥhm6=S JTᏆ߬\62p:.2+ss -*9z2xN.3/Z+sqe :"i[}&1zCckT&v$߈a(x,GӇJ}0iT:G֒-;N=m|w 3'Q|!,Hx cVr}uM+*//VFgfDglK|(kjTͿI*B˧r10dZZjO=)tu ٹ-!A$FgN1 -ꗣ2*JU fxs FNt!_~?.NDqPB)GjFJ`U4DtGVmK,i~8;[,B6a^8M=+zlK)0o;G orhzBRha@Hua6DHVO\zӑξ$/3[k:HR[FPYLDi#YkvR)Ju}}hIIEJT &9F|ﬔ =֦fPĽl%--:8W&]8;[ ~&H6Iјbȯ.l8m;fU}3$@6) uʇb e(fv?FoB؛\-݀ |*Ce.+(GkmYfa}ṽG/KB&Q4W3VX89/bh(6;<ܡV{NصNV6zG۬ 4I.nUVߘ rvӣ4o|.I!VX ^am㵭sva!ǠaJABӷ1kA.Rn58N -矗vkڗPJ1=xOχYc8N, qS\NFP#VuQi_\L/3)hlR! \9L)R*܁ HlVI/R+AVuSp;S3Qc)2r>Q v3 b塘#B}Hj> z1ûbFA,w]FmkKp`\ԧfћ=:ﶀPꏷ,Lc]` v)V@`Pܒ ZZ%R1t6_&-#Vr~f.*4)rt|WUP 2 (wxVy6H[L#qr iv_.jɯM?U]<\.WH9WuME_['sMv{oF(d\@P\$(@t|DZ,e|WYcN="&+!엂>?-&2moϾ9yp:+d& a>I9Cߌ LW, :UgܚeB1eArRMe/`>*/6Guݕ@ { 7֊/_r RR!%"@ K:0B׽LK3b&/ZR8iߥ.s{I-%o㜽=52ۍY-Ov\PMe71 !WځzFwSn.G«ӌ`!b7Wݠ|ė=cX~7bTfӯ9 +H@REV:*`lnWg߭}|-$Q%&^9qO?HQ'ko:QX۴Ci+-~϶5?Ap\.i_~ۼHKEyW?jnwZ$ *—:N"e9L'}\r$qZ IvIƙ֕a,WTڀ#X76]xH9aۼxwtm [Z*JӲwEz~SzP\3[smU ԕ4]ݞܱB=c ՞B1i\.94a3| ^-So'S¥i{,]*l)~{`b۫ IKNgґ4SCkr!43 k5a2dc6J>vI.0ٗ'j,-DB̟Rмkm_$l(Dq'Z&4 bTG/7MP*R"Pg$/ėBc1۲e fdm҈ؿcf5y͋Ǐ r4s>n_VVUUAO;sU~P鸺I_0?jtU-[."\}O6>ML%Pip o3kۧ8nAY kY_ >FօoK~#-@-|,4l,jAr 5'b W715r"5[Z+g08)LR$M='sHw-2)zY;葝Ud} ( X4Sit4ɒ]Nil)bJR)+tyi*>.nE oOH0s~k5^v^?!*cങTL˺ĵ8P-魼K~ ~kQk P.ʨ- r2$уk7cP)XfdޭXLʯGudzL\؊й$|}d\FEM=6ک1AOѤuү ,"a@BU!@ڴ̟S~4bvػ`;kw >f~U^IyҥksN5ʳo[Xr1QsI=>;踠V2>#qe1GS"@fdL^|?ca'GOeӨ6抧G}+1_FN[ç/RUVRxߞ򐟼`'L\Eލ95?ј s0aGØ1rBRF0@.5_#HK}|pĪu/K~|{NM_2+325X.[q.nTIIɬ`cW/n.msA(R=0eјi,W_ cx($}uY)^'.ٗ"ޅf'5S)SU7&'|b$FcG)t/궆Fcip[kpoW瞶C64~x*aZ56$ld1DGu'v&/f>_kuşYvb9TPr,?z @aSPJ*]4fڗon>SڛJuw߯qswns٫i'Yf"\,-}BoO@ \ymYg\&:}t6e.K- *K}sSR^}Y~.QP%RX#psvU8NP0:K K)ͦ+Zt$mv㇗#u Yg:r$ UFT\!A+?j{eg蓦*q ut&SŊUzc6+:G M^yk.j8"(b 0jw2cRh[hMLdm$zkP)4pNGfٿJy1sA"Y{}ATLK!3LN$A$ghEKuuHJ LMc]*K=hrmqv8TLh~u˙l<.hy/e]l[|otaB)?$Ics"p]~ip9.2:YW>5(/;?359zU\k\v^ٻۮfW,>$I뵝k"0L )aWPWo~rqK$ /A =ZJ?&8KFr؉+$y"˝b-(Fщ)nhTXscYi A7Q şMoKrM#%|`}>I& |3IA vhzʅugf'MAh &qEubnX$9kŝ6SrgO}'2&P7sBaMGS԰pvJ12M'EVm=z0i%1.քaP|`hV{2Aˇ켙n :`~aciÈʃ _c9e@k0kifbl7t_pS./j]Y_!6U?yv ɭSOw˅,ms5*K]a;Dyz (3&mPot8:/\KSψ} e+rze]w&?KWJ)tK/[ ]sKj",|z;6uԲzUw|@1;!Rh*wjCEyC.lErbm3[}lηci tG"x (&j*[]06&ut#Py)nޣI"A"$I(F8ELxvF~/zϿ0_40hF_5:cS[UN7:|BꚚ w[^3_y2iR.vz0!Ѹz*{›u,(tHs]P' uelfw^f.6O^7#*rʓ`Ø.%p"2JSar.QKU _\^Zވ_bn].~UE<-Ǒ?]@i˪F9xe;8ϔ]~as$`䩀 PIT$IJ4I&=e Wҳ ɺqD/OpEȩgCȚ|𘟾<ۜ;x}#5Ha7( [\+ll_QF.[ҡfN2ԪViXTBP&zh=[zB̷{u/ $JC*sQ!Z2 xkOriv6n>(fk斢6C8THB,"Ulf-G.lk~sШL^ jO~AZKggn3hqBZaP)>= N410$pϹ@ 13,Hq$\ |+C45$5ɜ ([pA1 ltqQ ى%u.g_d{jxu;#XfjsV3>'/KZڦlSVT9M sI}$Gޠ}@)bn̊ m96/+5qZPjo$:GIۘ{V1 H_PWcdQ/2n=6WhZ.^l2"Ըf]m66״Cs*;O%^u糵'٥%n`)zr%[2Wb_I'yB)Y9y,5bbjF4M. g$RMf ׸fnN 85\pY{~/#pCiE %<?'/,|Nm&j.(4MLtTT>Bc0*~8y`JEWy᳏[֎4kD2L\P7WJKyKIwa ^-oM KsN;= C`Ǵm9Z8\7ξu]MKD5}}֪"gAkf纏]cCMe(R^&vB+ivvchsku<}ayZ} 6mfGo~_X_%n{Mh Se̓Cw3 DZ4vb[[2r~_UM \v.9{ͪYW4C^or'?"{snZ( ?9)c7xl.s*i<W$ 9.8M=a6C4-{E宲iDc)UINe%Z.~~'N=)tz .]1@ģ65/)P[y>vO?\R~od7kq7;ge??co=6/r3f^S\+#A)ƽǩѹzȸ})7]3XtUw7n[}bxk5a,ʩbO9vԜ/62- KYue]TJܰ$ ={ڂ cCg=Oygw} NMٌ.]+< S=zSÈï/ _~0*|6 j%HF A5Z4 bk*p`nܝs{T~҇yol `kv·+L _4z^WYصN=ލ{3Kz{;8^8K3i ؚ8km #o5!}kq_4ЇݽW3qq8͸/e};7"rw Xt*K1q^[8|gf B9@MHYR'B1jRq~V#Qq_LtHrw6eȩ'$У/.2+f؄zm']$rӟRS)LlnKf:CF=d2ױHB,SJ54'v=ݦ JJ<'oI xQ,,M+xmVVti϶Bi&ʈŠQ]/ZPn1qBmvD 0LY{ùSY<ԦEP*rqE \z'5b- mEAPr1n"rqw{R*Ak* iHM"fþeFm}?Q0s?8g*S qjD +0![jI%U$)Jͼ$[*ld_(},=:]Os_5AgLq@\fzRyٗCeUAW{, g{m+ϾQ~E\[Y0e7FYsPIg)UyZͅWB~{{nԄo=wM? "O9 _LZElݗ_;wk^2w^Qk'*r_!ۓz}bn1x6`ڔsu67gv/lY<Ԧ iݝz-8rS宀n..gguАᘕ1qVօ3O.r~gϵԓf tYlTP'5Wa8ahBas{wvc]n ޜ|`hӬ-ߑ}1ri7bS>[0o7 m#])kQreɈs5SI~NLWʲ+c`[(nv"NN\2d;%J w#M': 5U< [~8$ 1B"pZrɞ@ׄ %\0tm^?EP-hݼ;}5(+>+(J Q_}%Ƒ$I/EG 1?I#I8OrC_6SLuX@eSJE6kJ`P=]s7owܥ͍PηFl4i?|. ֶ3ؚhD9oCc;{k< V3LN,f q͓ "q>vwjͳ~l,/s:xcg* pyy[Mobj-w@u=r1Od3i|/EMew/rFol>~e}fFtHOǪ{gX=s|WS^πPΐ{kawaє8}3un.Ი 1 (F(t9P UbckE(a}W\Kt4,\^t7SԴ\ 1 ܒnI^Sjr @bmKob羙IKٗC X7|SsӦy?=-j.oT7 vxh֪KFРPT޴@Z}"'w ٲmTTVֱ1կ6ilu'|ZK}NE#5VKjM?ό7/f oHh ɝ#8Neh(IBi$w l= /ZCW!.\߰mwc IDAT:,$6#qr=@ЅZۧw&mu,VwqC~uoFq;eVxah1 re ɯԶJLՕ[9V{vS֒gOn'It[`*b7> &_/x)GGʲ7!j(>+:)ʕzv<n m޹ m4~W@Яc< Fn>݌Դe1$J rdė {GElû'2 9'dČ9bN"&}xwR Xx4= ޲Tɍ/8n?S.u~LWw_%)k/m5!yd~H~lc%h|8ݰUHKCPw =v`d  ʾ>9 0i~@Rmdol]˷y`8An aZ%܄ݷ7T9XS Md9z_UFI)C~Iv}KP-}5<)BnIei>pn3 C8d8%|(F%HWbJ0y;MeQ*=GP 8+q-HI AgփQ4&@<h[Q$\SgBPBǦqè 1 { ݆W~=eohۮsoKn8ND--u TGM4$u94&Τ:\Ahˬ4šį[%; AwZ}.Y11w=o]@!CVCdb-EG{梓hƱo~vzzU0Љo\⡒z3mP쥒I YR궞|9:@&pj"FjZm\%ghY jc\F#6!Hr+;hLK/V6 M:ʗڊ+xʜ3<=D,XP2Tų_ԫ S]fȵ2~8I5e.-_S9Y%/'T wfc;}$;%GVu9^'s.[ʯ[%k]fRK Tm qQ=.]peys-*-j'hMb4H=@-g/oPR#3HLIH Hطk._珢hh)׊b4L :קeԢjz1wPP(m$[54ڸrݖeraÃi5$(J SǨIҘ'сIDСB)@EQ^9okVASWy$!Fg- u{yaϲ?e *Qy>`$I,I89`ٹŐJͅ$şéĔq^WW~, ^cepuetuۧ9uB] ]t%UxL\y@gP"V\qbsJ;T~]XWTPh+Nnx{h,dpw@Q}Csr"ηIL7V*l T)?]'$G|n>;gI_yy pfա|3y6Fs-{6e:rq3?/5B;c|tSs{ރߥ}yhR"XdKPE6.jpeU'yRG_gd88ǵ 𶥰|rXP0}\w۲ jy 'L8-{SXq|v -Α}]U.l"(%;=ļzrk黷pi>h[y֐E~|u|_nK 61Aw+q|j)1V[#-P*JD T ˀ]vz@u&^/v>!N3,+^Q 7yMsqs٦i6ǝo=p0>ōmހ H0j [Z%x-ʺg~u E+4#E+f0m@ 3WSʜGM]xX.ly Tv/.-ꢺO?BgK׿2 _gTƯl]RZ3*9@щ]PR~dA۷oqynY{]bK[x); $͕ƍ/Jjo$s0g?8N .Sw$㌴Y:>I/,\ͧZ?wߝK7=߀&KG`TWOō>T5nPGkʴ#O9jE8*[E~() Lj' Մmf 1Iz7jQ!pP%TTH]E25e b5:ERT8An%!j4m61rP77Ni9@%}V/q/RfLaC)_( =ra[X➥x;^n Z1Ҙ'Zֲgc(tR~_ƧaV_oQ: IyuqBQ qCЙF&8NE(4dB K_y;SR v $TR)UVz6C.RNV7PHXU5)RRh*xAb9,\5i⦲(vPQ @I+Z_n ]teݛzQ7}VKesoc5a"Aiuj7@Eft4Ҳ <9s@Bg}Tf'w,ɰ6iO N|v⨋6,w}4HﻙZM8Oui;[q7b/nDzIyg_ۄh4c ( ݚ*tkrKhC3K(i0Cgѵ{#U.SXg5w}i'XWWL|&^? N]Kj"fjs,T$ӧ{o2tzt?I&]{\ e^[Y!)kwny8~[Ho*68yM%&.s-"$qp\1 Y`?jSy,-Iz \hA:OKڏTRl1I}a gpj^Jvxd݈#^-[ߍo`wt,|yllKHr{Wzf:jk#ɦ4e{ojuj"5oz_:cF,zJ~N_ )yQ{94]U6{"n,ѱ U;N?j ߾gg>1Ou祧(:geV{]gp[Ur#W QݗCrбo,}H 0(.%Tg`ʭZַIakʳf9Z:JXKMfD[ b,iԢVǙ3/,>r~!.fZ7&;jٹ[#uҤf:q݂!Vv*{ O<-3QJ0i}:=ulMank6(Wf{>}m^fgaCC[.eB2քqS_{5;\5jŭԵg+>r5⦲wžs|R*4w2$'H:AԴH64i&¶ q]9M-8_o q\3D?gr4SgyjZ(SӨn` GS._ƕ #tַlչO܌B &}|5ѣ/f T{ jX77}8Ħ `OK݂cz8C'GKa2QC[ϒjc'[̂.@>RYM5ZDg9׊i1i&NF,CRMMivkF?ݷkE,tY\8 6Mw=Nh'VJ-Q}_s }?F|:Z%S~ͤq7d>g rAj7bHkIz~-=?Lٯ2vhI CI7WdYzf{yyKq@0 %nO(d~t]~t] ݚ<2r$ $!C1z%ŕ# %]sYnl\!AP Vzs U*E\S-j( WɄJAxM)'T %Fc,m'|=o$e6<8&}CH\!Ĩ  3){CLWw-Ik"(RhIkN*iZ$+=cCh,Mk"'>g}Ta cmѓ:C. G"|;6*T&+4Jfzhm;:~O pug*.,-܏b>$ITnVi~նj[Ot?'[#5,:dCS,+A9~+ ٻ\-4Bzkb3)sg3ap8QwVX7~le3(LM(8'Y)wޫxs*Us`xV!m!Ut4݋y\++oS)huC),{dGϛ=2N9wza?%0vk1i;q&2>M׌|tēҿ9Y.9=,̓fJ+j yRl{OVx;}$- TDw3 (,^y_RPvI\BH|9hZ&jf#8?U):욋'.@SZԓVhZx˚%/ޡcT& t6OwpG;t IDATCS 3ڶ|x.v}2ʎ6ƷrKu^kR \X;Lu}+3ǨU2MЈ1$FҙJ`skȡ^)8E\Ofߚ:BlBn%Z5* 8yVɱq=EG('!I?A13Au򲲕sfQLOyp4׫O gTfR0P I0EeTR$!+*"bUɎ*h7Qw_'}7e+ 'g`RTe~2iK/\},R^{ܩ;}t|ld~MtE䘻-w:wڏV_o퀂 kLi:8uS3EW+j\P1=9W&~5? šehW*[ =dm(-O Y:#NJ}1Ȓ7ҭevI_ )(Qtv3ʼ.lQF1XM/1h4mH}U[/YWZa4/ͷψz7 1'Ĩ h:hK,IAEWV5vK;ݫij^/ֱ@rq۫Ӝn:WH@)/>v`!y Qxryzn+B؏v6^+wc@m1;GނMWX9W׸E?8ֱRaB:JhR~cڐDB?XRf;vy2=bTA:Gw3j&Wʄ#9'D-+/IrmPRl\}L@){(7 s挖Y\d+_~KUr1\ Qje(f'i']\6~S{jIk#j+6cs~ØZΓblmI2.d-UO3Kڒ9LJ#5?Y{:vWUMCc󆗽9uZ/c惧]Vn?NzVSP 1s6ǜSvY IڤUn#~]Է'8A{4K{c*+Ҍ3EG"ì:fq\.fRT$neRH2d]]oz(5#n 7;93?=ʛb\=ɞ j'wJ4umˉRhVd>ί0 $ xw >t-nH|-_;H\F@M3#}X0Yq@!njVdb]P9:Ip/H:5oѽ^# [oQ{k;^][Ve4K:/81 P9W*hGж=+{ʄSw\p8|I,;p{keKTЎ;LMcVZYGnu?躹 ΋(^ IĞę .dʿRѰ~rͭ)'6E&?|IK6M [2~e_YtSΏ 8NP|]]~=+*PH'}?;)bUv80?~tg0*tMJע6WpiJ*Cci]6l8|YZgj֪5pU<^!njmһ7~ǁw";K)h1қ t .MvfcD9PILWryNà ;c"JSD3gFZj2Bg7H*.k.|/'F=L-XpW*KNVkNau{I79ֵw4WLROsg7c`фh^p[TErǹ,V DlmۀU+N C`m{ݬI"H\69zs]R=G3.$rmD0,o A:hCd Q X`Tj"@Uʄ@Bc %оHkS{2e~.V8=v`^_MO AG>˰gBB1'\.l=\'e1 mAէJxP /ӕZzfU q1W^gP)eo3ТE^ŭ (OSJ~tP[q@)+: n#& &6.Uz1Q}j7\&F\%[ADJ.8pg*m>ELQKk_yKH 'r6kbUIXlg;݆9JA8N »@;ڸ'y@m~n1)_fovrҶFnQh -8rO c4κ|AHm,$M9>W9˹lߐm0y)JCT_rI4C0wxal $I.IhQ pe>ԱW[ ' O2QUB[$iJ<4#[ CӠBgg:~-aSv I‹5]ZT:9djf$X;dЮJ.j7nyr/>9x8N0Mϥo'N8 oH訌OF>G~ (/HWajʊjό5_,~zæS촪>硢f)Jd@_vmԬ"4_$JqN[[5O 5*ovvv*C o/>y)'pX_;+Y͉y5݈R#2fs^Ҩ6Jy\hwK ,ع-JeJI$؏XoCr\>\lDd_qT`B6l&t%QhI$޽lҲ]PB'%軄PCLv}b\чO|"ډa(qńuEH<kQCv(u}b6Fm͓tQ %vȳϝ w6=5RA^G!pU.|tյJTrq T8hl^Į +[njfɛJbk<3u𜁖9 bٜ0qC(M6{w$GHǨj\K 4W&U@!뛡] C2p_q٨E'. %_mg((FeYg}TXSpRI&Iq5^)/%;K&hx;j9ot,{S2$p0x[{KI֧Ϟe%JZ81 9 (EM˴TO)Z0[w[$$ꔜ= H5>6! AP0mYn~=\.$ RF[KrwY_~$s"Q7$Tʢ[">][=顁1-u\F܄qxJO\ \ 5|kq@ö[IZpM]9!n,#I uE*9 QMb\)5 Yh +5%#)pÕ+gw=]]nxaϧ~*JHߤO׏Ӳb*訋s39aٝ& wO%2[K h \Dwb;ӘH`pzd h(?v.B\S;t%s\9v+ILpA<80Y3GM4Fahz;}+|hRAֲv~<$ qOV'nu8sXP)H0]QvTiQL(tvC'&mD&M Tj!oH\Ԋ{_MRQYyv Fc !eYs/9Rx:O]4q'U8inBj=RK'*e_,~}K1 %:b-oI|S`%lʜyv᷷GDNSӜwqAQ(:gvc1;S0j<::Z Ƿ~S0kZX.?PlK~^sO>Ѷ 0A4WYz!iX׏J)lq@P6~J~X^/b* 5D;.ōc7W#p~خEN$ 6>FKb':$d}HM˔ 03eP$gŘ2~ ݚ3?r*$r-5oD]i#%zLc$(vImۧ9)t LR U=;bR88bDr$!U%O2Q0D _傪O x/U|_ҭwV9 Tw+MRCW\ןI<G~Q>[>in/X\[ajdfykg_#_ 3sl Gg2-f'%#h> BƯozpn݉k/oadd*?,Z~4n6U8:q" E^ug,IT5-SΪLkд|qbnVY\}CQ o|Y5/u|]'$m HBgszbRkdf 닙tm=@)Sn/j: -7tŞqx;/-J=Ĺ^/P6 7 <*LOX: tA%&v޺zFcǜK<Ή|r\!(+i~ȑSwLw*+ )˘ םu^E]_] bp 27"bU1yקe/Xھ+掉πVmº#as/_MC g4|~2([.,e~RP71K/F?K8N`8N`ݢ~77!xo3<h;O=$IBw?`et~%weGK١p>䟶 0سq«[0e@\~{q)[/>/`M{59T&gO8L-sndz m`ҰAi_1d%t,&]'(%,O7z7L0TQyhci:`Ӌ=,hB+% 6 sCLMstu q[qSIšGI`'5qst<ӗ1CV̢2 _-uenZ| Snt?䝗[}w7<!n(Y ) qAaM);B1jqi &Ø-*>Xk81iݥq}T{╸2AM#uBKOsHke}&D₲n?[s7tMI_ Q^}޼ >Z8~mPpըT 'zV#C:ڍܞX[R):^~tTwP։A:ޡ TC7YW6=~L̲ IDATƅWBKS ͅgz{@GHePI.C TݓeߨgF9M0$ s~*}FV;>FDkooI3q2nhLc{|֩Y¢[RIlDM70ڑ)W~F@& ԓmKv`>S :m< :-Iō͎| C!vH% z>q VԂȕ8'Hݚ)A[T_,P1b6G ]f, u8`G+gsy-jۤػ/mvCuNfܪC{+ŬJ-*B1۰v[rYw)TZ9r{ c86e0#ļ>cӨsZViZZ")hUV=3混oYq+&΁9WZ'n(Q:1O~eN2,+C-ũ6r./<1]8O/[~h:x+sX1VL<8Un!KϺxw:J6ލK6nㄉLj"뎊"'3Ðs1 渠9'0'sƜs5 Hstaݧo>]U]uAr6,s;;;2\+ kd'{{LرШ83R$&%v Ǥ}4 ^wBVLoW"R$p!Lؗ{~(+{玅$l'8j7~5w?G|{?{-ѕUhdBnK Ev1wau%ˬ * !Jx![ !̛n.]MSļve逍5XXoylUA@Ж\ +CVLYæS"*-Q|Ǥay [1{CleZjQ{*E}S&Os@CAQF%n%R1}M|ԍ7cQwc(caۮjJ|Z=x|y*\`а+~-{ZRT''sLv\d(o(EjDjʏ@-c m`{GZy[uR$ܞJAH={?k\0k_Ă1vXq(6cP *ҹ:$oKH?ݓ|,!*ѹ*u#\c̫KV/i_Ȭ1R u e(Eϭ$  (pAt? mW(t61x1L=s0~䂇;'>ӄRDvj/isH xX821uוk^'淸m `w-Pl'ȿ~.k7'^B G({WuBu6*ozpoE{ a9¯YjNZ.ѥ6!] i5Ț;c܁6E>AR݇O.àe#46az=~2mHb 'd~ׂ8s_\yY1Eaj]@#9%\~llιxɊdJ&:Xn'u8`ģ3}l: JK]b::Ŏ[ U"IZrϕ*~SfYqkOoMN ݐKu$IXs%;Րx`}Q6H- :vAEm7p-ﴗ|,еfm>B-k_5WrҨ8 QKt,Tip9undť,L%l뚶aJ{ hJgקs}Gw4 Zm W^b2H$gJOA_r:S(c**EɛYgHGPJ,;AuHd3.L8$ůrkMu zܩٷ9T+=,r7C S+fx8s~fE 58)1dI{&{XOfNA7*"iԍUg ) +.fg*+;#Y/'Hw3|;èqgl1yC`͜+.\ӗMfu/GsJK(Uo>Y~?9o.m.*/0Mqc CW_:Q|}{G;M]&߼DT&3:iPx#r/s|WcCڳh9xsY# +U9VAZ:OoA48iT㤅;>Ir3<d]H!>d|5WqPɗFGE\d0A6= I>"j$M A%ҩX٬6{;s8F0ÞWYuQ5m 饗_$kX յ+0'XQqV cJQ2Ў9qR*r>=6R 33yPCmPQZ6{vZ'`ѪdOK483>#4gʞݻh\~[:Zqmh@!NeMs ن| ɥGxoPs*\&˫jR:-΁ۅYQzv"(NarJ(]C*I I67&>d9{Jt*ZC)5ă5W;7yK}2?'=#o[]O be{X(7r>8eRSJp:fLabPyT%48"4Is 8t@w# )Aؼ bbNYeQ8aM"0oRA,P>gJbv 9U8N&> iPw+dR5ڐT6ن7AYx|yE7M83Թs&qx˫8$s5!(J]pjʖ_\7hxa C 'f=C)Qj9:L& cȕZԘGy|ϲ@pdиC᱅ǢJE׭Yϥ9=|kYz$e#~+R卾F. (V ]֪4'PA{) 1qmyD"a!$-*+)؁Zo:Ћ p_I)(FgQI ImϷթg7HYצ(Që9LJ%I ȡ^@ gKJc/=aNgؚA (Ё}oZA m/I "*#NƗR۫)LܠM%S$SoePEu{pMTt :4Ue¶s-"U"<[cv;&|u#"&ޖBca*o+58Ҁp4(fPѯ >Ign+ԸݎOo 6^6}G9mw2T94H)s;C7>bfAUΗ% kۤjw EPb(Y̓A7Y $I4h-N^TrykT׳9SFۤDMdƑ,޵ b@klst.~jo2k^LVi'pͭj]EޖwAkbI\{DPyՕGo-9] l-R+D\[qٓc캝)AeZaUoE7z{{@YS=gGED_G_OX5܆'TiIOm{QSKPX*Qs QM5_,CԒ6˪19}^g׫[K=,Z0yQXH̛MBeN(A"UjkK$$F\h$IRtoyt0M=U!BkIZ=S*ȣ"| GjbZP : a?8Lk03 nĻum|(u28CTf׎:j[ʷV~I#pmm?N 1uR3Ϲ6J%$%܎4wش*qK&TCf֘ Y;Υ>2bPY$8r=3i؂vzniL G-2ѻ`S }̔:L/Ad -l .zzcm)7H99qNU|%r¨oSf(ոS $I.SΥu_ZuŊ> /ɽCW^;g3' Oik mkdZ&\d؂℣ X]o7YG\~;f`ʩIܜ ўSƨOf λ-7QOI0_'֜JwiVƟ0h~Qq#+CVI$1JaP 2ykZS]fUܕ#tgs'BKA;& kQ^=B 4`5B:Ijp5>c(jhW,[=KŐ卒ӑ A]gXϕظ\ фV͸Jڿ۪=hl]IYz4O,T"a3<ɪpc(ڪSYNqCpZ{߅&6+=ƔϸPe*W  XLQ0(r.BVțe*m.#D$ J'HkׯvE+EflZ咳;z+S0d "$@O{ݧ fI7sRNWA@%m5&Zy2hcJV}ķ;J"Ә=~jQHơFmy6R| ssײjul[zΎZ~*E\$518ԪE8Aj=.jUrFev,R A)nbElxfMj)- &MqIs[ ΤbhóP.!7K.*Rire!N NCgP$|6U-P2D "wls& @lģ/q΀P?m18icSuQXe T/AqQxB@ 1}+.f3c$M{;=>8^ Iؾf u֬T6wc Ϫw]"&* JUx|â55K;F&ܲ2?1F rrb>g^8o @7wTma@6 @1@Ӄpro@;]񮟍]?Ɵ {SZ>; `p'x 5C&r1 O=-~&xB_^ġqAP[\;EW:־E]t.c QkI? JLZ Sn`Lp}۲3,\ M$Ibsâu׾ vUο;^ EpCԪP3hwWIptXN 2(VⅠ j:QM$4,}s*Hhl=L#XK cZkN=Sk k;:א1:n̈UeYTX!@1*U[% ũBg=tT.ґtpյH k U!},j*~zI翯k'nP^ ? ;~votgU[9"V^r*D2umS܋;AӒ7-{o@퇮muactU/E}s\[A 5?Xԑ['%~ Mlc;`EhK:Bs@)xCw |= C}WzNj v-dұ&Ӛ7Pؼ=mM7s[eKZ1CweE⻼nO{ 'n Wi9Ͷ޶YX[c TIJl /{=JWJjӜ*aٙ k~8zdgmvt0km'ŧ_4Yw5{xi7g?Jm 8t !lΙ[$;syyUe,Vdgl^ "(`i%.(.᭏OMkˠi]J~y l#dA3b8A5خC$>IG6r͢τaICP$J2ljIS *J;>e<66͝CQ}n/ie|һ'Sʽ#ön;wpQq \@01 ҵl:p(\s7y )TRN;7o`z9^BP@oi-=#ȟl}U qxbe鏁Ctm4ا>ۉa̧Rͻ_.yTtbGl/Nf:/Mv[OlHlmĦqP_\/(P 5NVfu\Ûv${u+CP] D\~IP7MU5X}!TY'k6mx 'P&B8CkdwO|ӵ AZdD],TmHj3<l::-kA0e슘:ȴ-Dž8~Ϋc]mg Dih_;& mҀA8 w4 9gm30)`g #J /G;gӱ <OR8H~Ctp8! IDATw+p\Sc*w+h\s=mxc-J-{vA68AHۥyj-'?K֙k :]GVm5!a`H&UY^3t>20wF%xՃgՒCw V;z[_`.Z|;U3sN笗Ca߸xr_<#J7t{nց1KѹFsmզ^:,l/q4'dJeg) c|i,-~gl`*Ymy+gDž'a|N\ B()~'0' \<:g)ħH+ixh/ I`b:j_߫Ը+ttq?eZR C]&W8l;6f-JULT:_Z 2|^W,;KT>@zXdqeFM+=jخ4xkhL:5tۡso%049$881v[4ިY SjpAƈ4yf#aҭ6:-Y- 5.`0Mm1b3 y!*OτZZP٨JWBeq[kQ+ϬvrOw-64)j~\k*+}9'xbߣq o~ÇBv%/݄Җ$IlF1D٬g:Rٺt m|=1 ų+D͹/VΚ?mgcNHv&o៿^8jw4:~v64\<-:6>>~"S v~Hdi:o߿0ę0po곛Wnu0{u_eFC{@R(Sۥ)[Q h-x[:e'^2u(9q7[`HL4]*yvf2O_Ȭ~t82j[kãt+'qao:7wh)]8`ĝ A F_;y(<ݎ[<^W̉\ԥ%U^iINk!VhU%)Em[=n 1!5P5mRBm+/r0 %CE| 4ݺ=zQY ܥM[v3PL}Ǡ~j+M=Q%gRs]zȭSO|, 'U_8 Z/:7Q]PuR }mk #k)3rёG:n8 6\Tqat 3e/G'_>Ro_dB'1_H8N =py]q"IRQJ9RR޶6K*d24U8,uZFeZѹ$u< :z kJqWfV%i3V^;>__oR~srs `X8KzR?`ӘCdn=NhyTO36~+ª~K{}Ughbnc}^%iM_+L{eңz6{i#aq_j/K%p+>mg'];Pj ' s' |isΛf.߶'_d$-J[kt)Qjf"^tIo$in[C9<*B F_Aev`ҋ0wR5UO_g2sMTT|?GHچ٧"g)箼УQBcK GlsitHRo=GqC5B>R1T&7H@BgnEոZQt`dh?$5U({quףTB@)4)V JP~!S5VC x$=dm5gNZBNɸXu[sU}yq 7n68|z:N%m-ztc@+;~,K+E^ GYvS^>G; ܣ<#0 mI=lJo}qxHVQM@PM燭gY mh|xtѶ)BrDOG:z{N2*9d+^cehdQ *˗;\ɸx;za.BO9}Xa0e13GnO\>>Ұs+6=kC$/^r%@y]C7oyjΪ1N}n $ZQ Oc!l=ѫR ]XB~DÛx>ŹzXgߧ܍^puɭQu&@}f˘Mۼgq;H@2Uڂ;tRQKc%|*Z~lWgxSiQ_x ƴ)JKoۺy`GZ)CYxLIuoI|AȑGE:=瞏,I?&>{ޙIB) O7d'8ZFA@MI㒪=zn~¤aЙ?`Ev2dК+S6Te*}Uge#]7~)ut#gʡESn40<?/ByGEn>]ci=>9PT',ox/h} 0tݺ:T*e>AI19`-cQ[$q5Pks?kvYq3ϸ"\\UI<tm \b/ݥ7ziTLDc,=kau&c[e:Fvf1q 뫨,]?+99>Zz+]l;pb&R!`]]q}+Ư0TUigoJJ#pSv$@s*)++ ȸNj-Q~=Yx}-Q9o&tU}gl-^)RuPZ˳e٤@_2ܸd>u5]bͤy I^{٧-#~KbrJ]t,}Rq\m{(pk]ZFN֛L#3PT-i}gQ5V^j?= ['h!X9_K݋zz|q2 gZbZAcP* k:'xyjUR& {1W0})߶Zhf܆NaJ=K_ k*7X8eO&Ms{8\jG?T0-Ǎ֪ӎ14$3gje$kOIX_J=eK+i.Uǔ7ɢ*/\N~:ؼ+.f~x_~G,|i̫Emp.(P[/P0iXtVVb~kʦ9g<*b <6EVӱKv)Kzë*'2a#]ܗ;%lhij5  I hA5YgP{qt!=K\M9/Lҵ6ǟASҹfQ:AaVSP k.$97}ǀфV݇5 C>4̅d[QZL^۳&LI7W}0<1Kz?i2薸`V)}WFR:TJ'sC kQx [$\dkɇvRrWs5ra&(Z$$w6*q1{ +m/ODarz~N|e&nG|6PFB2H&%Tnx[1QoD>_Z)/|M{;I#59Gep +31yKYxd4 @)j.ot0P\;%wyUag<>+k.wfpr6 cEۋ$k8Q2Qno#v KMVpI#Gy9#C V!5rB cVU#.oyk2)I3K򔬥^Xӟ W;Ҷ9dB@cwitgQP N" FP:P*o2xc-~YO^=k~ԑ֫tE#樂pYFU:ഁsF[IֱE>+]n﹝oO=~N Z}/ޯAƛ~饂d Ng%w3؝ZSm_Lbuʣ~~y/(KR$-nbP19E4 N1wNqLlhOh=F(6z `g@gc:<_ce:3sj;l?at[>߭( ^q"quaE[q= .RtPMNA ]z ~ȦW?y|xMa(sLzܻ7vD=6p1^XQ>1L-z(\0ycQr\Sk! ^/@_N8N檏1[n}G0t%4x4v2Q=|oP"xgRAa-ĵ6?egz*>7JچhVS)D%nQ: _A1La)w{Na/7xQmTJwr?n *>1M-h N?g׫ѧţj*QϦ*;ACA+77vksx0$I;P~ $B1eS,|,?dHs= IyT4W?ƩlB_+8]޻e(aU*Uhyos[wK.fǢ.Ӱ:63LO.IA)0TL@!(z%"6z."HrG\rՒ[L\rYhgn:G G0cuZ.lɫM4x$*Fa̋ Z(vL`~|K$ ':G}߳b& \ 7schf?c{G]+w;g|U;xkQL^C, 1uL|s~uw%wuzl I\)ndccn(DQ\ yieպ#^S)LyKYAfC@JZl*9_Xw?Мo1omdw,eO1K*M䭤;\\29bĄ#,?mZ~Uda3xSC/ew Պ"&{N5WXIvW&73ɳk S&oճis$]Ij;81Q@qY2Bd ^tp4]o{&L]XJ4^X#('oERv.À$ s0Aeʌo&,T)mn=_G/]Vr e4*xQ$5wv A5KүQlwWzg9O奞gU8;s=lUJ<=EZ>T.5}(6,tOC3O}&{܏3p]?sk#(ӎ]/nmM' FEFǥތ>:(h[9vNwԛ#){S?d;NoRZ_meqJ ZϢmC 1kzͼ{xY{i<&P3Fq`݅5I(p`%x-0ӟkU$=]dS w6$8IJm4Mg9& FYEqfSbon!Gdu6,ECGu)+ O>װSV!IUoHsNBpyi fM`ɴ[e1;_{F5MeWVZRHk gԦ(biiV+ٝ;w ?ߜ}f~8\deiY%H4U>:?cZv؀mQN\?5&k[vZ+voK.IRe> m vR0 GYʚ,6lkwMH5ŏ\FIn1 m*Q-VN HgEZ sYeR'Ӥ}CFZvh'}QIXdSKIÅ\e}aN#Or.W7j-;j+WWM𠾶7j:dr`jJWw%^Yܝ$)G~Svz:aKV\Ht~gs7r. zfVg_9X`/9;v6@3w5enD% \-#XDweg9hWPzY'N5J/ay mQ%4K+<)#|V-9-xFG&XfUĖ%0Xm_3]N`Z CUj-GV^Lrsr "Yefj\T*Qdfy  9"o>c]?F ԌiRnJJQ .?nX96,m7u)o_C$"T!`X4SoFK($88+RB3IQ@ДljPh];fλ:qՔ.4MQ S=:;;l5GlԩMӳLx/9g1dy (XLKPIg ݗ^ӵsTeaz֕Q (:f+8&e-T:}JM)ot)u3G>Vk姞筒L#n'*J52J 6HBdɻVI(ľˮzJ24A4M8 TjQ*-DĖV*pX):f\jzuAyA|GٽFvX=lJan ߾ǪY pwGU?MuU-6 f܊*FLG.?*䤄/μ. rkkS~rE Z~*bvm%+X/co?pjrf"3*$H/qYVWEZp-A#~&j؅7àGsM@q;2vkoPhT\ݨFxI @~bﭨ3o8,%){GYL@G˅ݍ[Io#*$`c/%T4FPZ[aXD[6}78e0IR =@@Uԫ\}W= MFj|91眳`XapqVLkDߧT?-\}W8Ub#@LV/cɘ:V7h[VT_K=4n>nHf:vNxc@_#M4 撡!MKIbW*Fv4` ??AP!̒8;Z,ZڵLUC/r2La#nF9hՔai_e*BٙhcJ.KTzMLMcaL=@#10VGR+p IU8%V\٠aa)ڏ(uFuKCnRKoPu@\GR7*bbEs+Qv=TifjD<&TU|6~pSϵ/`h 0~_tY^AѺ2m!IR6^OUZjbEI/|P٠b_|]GT)LPVdy^P7񂷝 cˍԕ>7*'N5gk KꤚɅ\Ml:hcG! m\Mz# )mJz8Y=9)ìM%!)+UD}7*)uC@ΫLN@?"icrѮNֳ&I ױZ^wQ;?FljNx1 X18[~!iv~ՙy va#x.WJ?wzoEXR O&tghc`(~ kxLy&fxSL U*~Q#՜6Mr;fT36XBrVQY{!}SEq,"JK<7*8Nǿ)V^Il C Cy6ݙGNN0YH5/1&T6#l/u,֬FYlөe)ΦH]]sDo3}vjF~"+x"#F|SVJ5`"dY>)-[LE^e}?OSzR`;f31`hf٪0uQ!͊k?6HO>zb=j)ŕSjgP[aWv7u* SF4ٖ>7WvUjY'vHS֗$/F_Ա'mdy@л եg]S;R}=L(ߥ|SlWxWSvTXצ#:穽mnX/d\-u=4ppA6Ye2,Pj_/ӎ47YVȷy׾A=w{{t׵l /)5d$wݖC\ 4`3P~xJCYrN^g:bS o<29]z3?WC,xqŀ(z,a'MSRrS/D81 UuXz5蚎 <3Hȓ[V}čɅ;Q~r\-"sNEgij%@RNTT#f`uPbH0p(QfL"8g^\30 (R$,}RUyú-vqҁN}܍(uȈ2߰$I ).H ߈ Ќ e;E$%)b%<}7C>)n!["/'{,t0/cnuvSR̛;$I &}{(,1%pK~z%ts.aI~vLx8ڶ$t}uR~f,tǭ?Uwgkl*fyڊvaJp)E(lom ,vE蓜)$I HM(EH:C'9 8h~>sEEdP_iFGmzo8#k[iy9#$N#j9g7$LVPM(zo?6fM\^ʍ/5m( YG"+n.IрIRZ"ZqG hPo5n@;z5 lV&VP#}<%!Ӆ@hޣ].ʥ2Q&~PRa^El7qR5ۧ}zT6M$ -a(IړiEՊj5Δ߽e,ޡ0h+Ι o XxJ'G} Rgd/lܢNz$a(!W\MJQR{Z,QqX,j-١K9-RhwK& 4Qw>:SA2<~V_NU] ~L#U84L53ӯᩴMh>u;CV3-t#Jɔ 6MPy{S՗ T1>K`Б0y8Xg1}lMxxۉ\!a Na\"2"Qj``H_<G5ZReav• ,TF0pBIN7;rx,L̲\702M%QdqLr3%(LlMxŝ7koq7pqHbkKpV5~x]Į cǿ e\ZV6B#x/WS$r a4E 0yT(旤|8rpG}Dr[z#fg +".@ WK=<*wuX IDATsz!Q8|>MӅ{{UhH*0fHkZZM1ѡ LVj":ǻ:A|D0ٹakyӛ]2tZ5f@4h>MALER/]n= kcy!C~+ObYeu 9xyEz0k-lPjiq!(z)?(T6CZќP#tNb^^ɷrfY|A]ck[m"b-7ol`?W\ƱELla# E;L~_icᆽݍcf׏1uGVp_}Ύ5cB'wv4|lPܗbBgu]tKv7XmhlYW[{X ^)'FEtǒpyEuTʈ;"s#v~f`2;k$lkGߍb>cG\RfULF==>!@˵[+pHt녬2?~gx5ʡnN,hHZёKnEJ+?T~tY:ej+ShC3Kq M.WK+,1\, *LޫQ|H0qǭH ZKVք71&j€3Th長OT8kٻqŵJ6E&rqeǧgk_Q"~Y<}5{K^}WLe QDNptIc?#SNa`yVPԩS7)x- m7]aT?n?󼵂=& ~~/v(1 %=':ނ~S'k~Ԅⷿăo?/@ s7}Pd _q1#eʢ^O4~ϯWuΪKz-z.EǞ ҭldoV\x<]>X,ʀPPoݩyC4ӓDQ_ PR9J Ư|*O.lS%ѐݍo|CQjVGnjsIr1G,)Dfb)/*R֒\QHLE 4mԐz\F(cFm?Y&`o;ڊ|iW5f,Nh81_{v^q{/sn~bpAuez{![ߥ7 kŷfS4b MqgҤFqmD÷*k 6 u,F1Ƣzʗ0.gP`jI]IXxӋk>Z<&)wwWmD3$U=/.,pƘK>x'2j¼yv(ע;d8Ycp1 [8+]-b&]&QhG,hbL' \'-K71qP l^6]eg`9ЮN }WyFZ56w]WG⇠_ǦMok1=f]0wRUu.78g&}<0l_VZ%i`3pHFI [MowQjH+EMI`pyJƫ'u#bk]un_sH(R?uƝn&ωo$?y jߔ\fܲOwc\qgo V~j3y]& kBK7eغ9(# ;הh s &8&$n(`{u4s!G_˦XrEk! Lϋ.݆̍{)9~_a~=wVV{X_?-O7!M6& a;4=bkoW0BV)aMq<έˍ[帏ZwwdsUCZvΧopT}o]+^ӎ!TYNڸY <'Эƞp,cJ|oXX4+1}-sO&a{..'A0 %kP-)']_oⰙoxuYpC4a gPqLιhluUMS0<+<weZӂ*y+֠m]YovmLų _w~_FN[;(-7Rv[nt r2|.n ]JzR03@q@~Ԗ۞fk[ 0tJ-Iy^>ڴ[(&sݺzA$I7cpB>vϷ.v#~IN=PyuFV5ckW!6׼؀dv=\ s3.{|2Uvs1;5==uWiE;i)%Rַ=ᙞo apn݂׽a7ߺ|1=k~} z-g+q[xğqM#L7\ѣ0%/kШz=+++;a(>C8E-ҳ~wNH3,ijb9 UF]~@n`L9peߓ,o{Hp8JS$&N|˽X,rHXj杌1.d:S`h5lPT;4|xr}-޽Sa3:E aIRϴ+inJJRhA#,A1| bb6pծsnmAZ2qZUA"I蔒pA4M1wJ ߶۳qqX6J} J&j'(t[~tJ'~Yo?CϢ=nGOK!Qd U6*4: EI϶WQ2cBzPNJm7S:a-jKK֗7Ğ(Vn;uٮW?7Vԫ{nRyOgy$8LamD^nFde{3["nK4;VzeYRs*>۫d /~N|xg{ w\­ßz |no}t㨴Zy-]  EٗSsʞ i3"ɄZ:D-dw]VP$ѕP|(^c{X%F^p"-,t-oٽP7M;շz5гrED [d6_}U5V,yj?Zs 1]!h?Nk3|8/{q$E &fq t4yF4;w$I1=&wkve3}sqܳ kq'mߴƂ$-n].%`U}>MSttyׅaM3+ @Ө8Y=d+&쏱i\Ck"o$I#6??oׅeYyʒcN3 A"W^ދ+ra6zʗ}-ŝ~]t|YYm`GxCC ܻs33<{3t]t5##}/U(+ Ͼx=E돣6}?1'^9JNwΥY$Eiz"M@i0hԯPK cٌ~?D0//OtřuF*#.U*sfd*!AYQp#-:Oj0t=q97Tɇ*k>Mٙy EuE~%{N92rYq4ãqEY8%I =<+Ґ/[Jjp 14z CNs#}@µ_s)"I TE0|WL^iYEj,8s[BbR IRfawaL~/yc`T PV)%00BPc dƸsbynAʝ-Sh=PdŬ^uήwn֡s 5XJH2,z's۪ѽS_sBqc7[س9;8I _=^h١Mom{̬g3B$)6IR3ӿ5r]a:}PgyZUԯGkC?ٞk1{>X7Jԣeڒӝ\DŽgbe{BY[l[-BA]["4Ov$jъmp/yC?u/t$)ZZ cpNĝѥXooJy1?aLWBC˜Met6PI918}6wDPl)ͣӵ:ñ3Nmт`8ב<&<7&t-`6':m0SAoZt# ow Zkc>\7q}Ӛ8 nGϳZy~B-?qкM=\ߣj90axtͧiOwV5:Mµ{=eFL`PI(j *?PAZz4Ѡ+HjU,m݊`Xۻ~QT1;Nl3'VJ#* | X#ݣ{]wMD`.I!WP-𵶲:p@#c־ZQ'FezjQ y>fN$Jt'5 姣c#n{noL^iMQ:%bT+1";{g޿t(P˫Y˭'9TjJ8<$z:NG db_Y׀ΔZj,/>W0MFX:R$g-V^Lh`AQTFw Aj4@q_4$v걋?upC`Y $s裣+Oh_27<)E1 &DXKo2lqyP"uo$="ys|eR>X{PDDń܌i4f]%t=g%,6*_biXj';Z~V4&bN)&\Z0P [E%$A7`U#voz=\QMQS0.`$QT)Pc+PbNU:G _)ake|` kj2#GhUIX+,kقL+p)qN"gqcHEKP~T3TUfeUTy]9>II7Vؾ<UmFCSrSLx#ͥirUYͬ1no4VIc8C--Oo4F)EΜ>a՟+ Y2*Z;>^].: ms4 h/xD3 ON]hU c$*C#Gm841eyTu$jJr:|9i[]Sf9xaw͍ !GW+fS_)53纴sfLFZǹƥDUJau*wj[53~^@bZ ꩷Nxly{bbr Ҭ쮬׷ʨズK;?++l<)Qlة0 H ZrAR*QE{^1h: C)ZB%^t|< C) qL7>*tM*dCFeJ~iRJ"Xˠ($O)[S5 xeʁq0:3ǡ\ţt삍'֌ gQhic4X?b]9~wbG(n 9Tm5Ux}iy'A~>3xz~О&<"pj[)')TQ,&.+Js0ܸQE,#:Dr@=DjA`TMoҶQ3eV~ڇf}o}3J,"n.Ǚ\mmWT+൶`jAimROɖSRѮ [Sm-~EQ{ %z @1ﵮ"sN Ics;X*gksY)j*9IG| xՐP3q"ߟG}z+t; [D ;þÖ(x< i\RRud$z- O%#;g?ݦ1ѫ"00aJEY!Y~*yZrqQ S"X1{)n[97h$%l7eJ  ] G5:9ZM=e`g wE 3z[ Ǐ^g l_2ۧQNFJglYtس`1ݸ x=)woS(7]ʋrlCۮe'_}Y=D$G'Vv{KD$IoVWׄ_Ljtz vv3WV{IW2w}m=f$xl5@yOpLُ]˞1ⓛD#KN}|:*n`_R/R7bY95sM.NzWݱG i,:Z¦g۪{^]}S [N,cu Ѱ6|"BTfsAR#̩Щj$)JUG )j3zhG7l}'C o*8Z:dcR\Wґλ(>Z5-r1ƎuяxQ̗9i0>=U%mbn8ӑ&zgiwE.!\l|nKz_awm-0zCg%kvTB4e71pWrgٖ_ ,GdMi@% !IFe71p\*?ﲙw!O ?E?`1XZnٟz{triXF˓4C;vo6~+]c2<~:a͑r |c|[Mm 3FN]sQ,?>\{3~>,n&NX%GJ 6ı^_G^:) >*(!Iɫ[o'2ZKR77!ޜ eF5WTѷ+<ʋrrz5z#@JjiՎݝcJW# H\B.YH;79"jkn?˒7Z`(PH䄵@8"O)[f}t͎,MT m 'VpbQwmM+ZVSbSKm5e5{B:üfUG0hs CwWMP&? )jAVvrޥ#-r/V(*mTWfo쐵ŊwCzigAC8LLAr0gJln2^`xa(37Li  I e竛 Z FW>`eol,.g1twZfFW嫺 gzsǥ=1O{jz`L-O=xz7y).oh0 G>L.M} 3^OfrUuϾ]g)&KO~ɻv\)mWZҫ{c[ mEkl‡K,3ƒx.<+vX>vwQs#Z=WFmO~g]Pӡq}uǏk7T335BiSתRodN'd6۽DwlP>ѹg?bwR6#- mGc3@@X!AR rr_vY479M̍PDH‚af1"soL%3qvP_!Zc4( iE@Kǽ{g07ԬCGww[o^`t"(ԏg;, JAբ("#)BQd$ۗk'ؔkzB@P>](|.:4q(g|61i2.>/[CQ>ꩳ'զǞJ99cNʉ1b둋6U {h 9f/VcgCW~uqkƜO`OŠz~c,pZI ' 'nKGU3U[KR'}X4cqtT6`(x[g}%4-i.L\Y]hus,UݷIL1é#V;#`E0; ;0wG?fNAiLLDnUQS׹Z_owGxbMS~)n[j)"oo#EMe)Bʓr PH[+?S}f.H:jMyƽ1AzR~}B&9xԹJjbZ 󅍥Z[% 2a\Q4 Ѱ1Pi (U?͈ $eT5Y H͚w=Q6 H_*I+i\[ZuҢ5vi$/7؍6n~+L<I:FR!8Y8Pס{L/X#6ݾzlDN4$Iy:VeUOt_cȗTv'GY Cq2u(_pBq!R"~f`JA]C&W34LW_sf$ڕbN&(t$I >p1l%`?7h0$!^fZ$I!;K|5˃UUMFgFMbm [MMI,U3%M)k)I~SE53级9aCyhr3+6Et1-2F.j[a6'߉˝ j\}7rymۅmw7[4/űs2RX$.Qk$/*!dbm q_CʣK\ ACc )hEPLjWG:.LV;Fg8ޱGa6SR!bZ ?(RAӾ9&,.ِ95:[لc xkcV[iZo9G)X405ٽ'˄# ;Oe{0CXW4-jg-2IQlG퐠6ߊՈ=E.\TўVR\H$Qpj2 NPr UY@hlôT2{jP8zأM' ]gx˜ `Vܦ(CWPj׺, 5B)>0:vxeuԳsD$Xʲmbֽ>(-͡q/Q {֣<D^!_\ErmdKZ Rb Nrײ0.J ЙO˪ZSONFsSt+4?ZwM2b~Jʳ(|psamtJM_w/ݏEr:[PBR0TTAWL<"N@ .ː?~Qh[=bL/!S6_#2cM#&W ; ޳#ʚ;;y2"*aCoR$Y:7ҕTٱn4O\1ߒ+RΏD,=(䬹 j[3@M`lɈEjʣbGd \6=F)(*yZasgc5؂C\$ l4{2iȐɏVT74{mMzqIuxwwBc  {TW(%l&6+n=ѹ-}-Hd A@](ŕ,%&"\S߲}aN'69kpRIִHTG;m䬰GE $WAP4ms&0D7)/ZISےO op4gR3zQܫQ;7hX ߼7Yukڞrq[3s$I!sQOp ֤"`޽ Qu3)qF5-y z⹃ڏD5AV!cM=~}p?u^{hn׌^c4S9kFAm㧽;h=nggVbbײXpzA4((r4{b.CP L%R:Jg Rb SCWI!ooio *M FP.'l($213ťrg"w=9 p]2NYۂ&#Ucu .5~U3KU}֚ eo2E TW +) Jg}@iڦ7&`RPjloۤEۭeNP"8,N8a&ڜU :z8W+FY|\:Jۅ_zlpTXe)Cwmj&1OW3~<`#X2A$u~h=]R .TdRX>{ɛc -*/ڞSku0JqAqqDXm dА98AQT+ti%Zi:JqJ ݹ8`;"XJa㗺+f0}u ,)4`ԾϣBGvEߺOqj&}Z7կ@ݝrj̦@/u4b <.㔖$j, lAiG=={)[Tv#A_r0ZݫAoVCd` K db>ϰǜw{5ٌpQµ"-qq_uk_c?8NrSNڋF5 ү[rEq,;&T.:]R\֏TVȅ!FAa(kAd}I*Kh|*DZeiMLLEQnRAS_Iu3ȕ, Elx=B,6yUYSv+k+Y)Ǘx̺&hTъ_1}^QjһP"{W}ڎј[4mFȅI͸k&O0԰Kq#յf!(e:xOSO!}4EF2ayA1 :ZZ1IխLeM-B.9e@W&v|b{ۛOj-C*-l,(k!+VGӊZ$I!f^rYϹ&^7LJ Ş~XZc;f-}խcǧDƨ$;y/JuuY5?׳+. ;i/~hv-[?eso߳";$Y" ?}=U^Kphu:;: hd^Hu. ixux-7i*|g=uղK&<4>G"ߨi2ίkX"^䔚r'Zm %mʅ^Y*u87KmfO:²3TɨmJϽ)D ɲYy>~o3UIcW(wgR`i1r.K)桴[SϸK"'lzWC[^WNWRE`C)ܒ⢹R~k/wjڐ"GusĐQ&W~ٛ);[b&E[ -ȸЀRH)+-immrm눟=G$zUšV|"IS_us1Agjo 69f9􋋷8rxCYN[d_e#>bcQp0a' C3Bk[g*CZue,gxo]{UvKE^v]m_>^n~$.%0ґ?ͬ&Id30gI24ʴ{W,_6ԿSc1' Ħ&6Qwܮ ?scr?5p@wkNXʣ;jrXv~ǡ 1A4tumY] ^o}uИ y{c*QYCTA-XK0Vi{؝Gl2;ԴH-Ӎ˱DVM~3n1+!kxyTȝohFsqK%oG?Prv! $Ejܞ$tz ӯo'KpLvMIBFtИU'G(ګ/%2BCasz[鴞Xԉ yBʆ|}pGƼ:oxENvV35yd=wAsxQ028߿Ey#v[/'PH:;rE@W7X ]6FK1 -;p\7' okK}suaXڅ 9*AQ5-$T'3NmIY}-q!~/wN$PB0:7:עPˣ,5W$E (V^ EGYs³iL0< ̨I;RqGqV(N`\ lmFUvz8 1K:!NԲ8ߏ9w 6u8b?8/`ȓrQMQ9IYl9ƺ`0?qPK0Ƕ ZP\PUQ F&R"דp*kZH wwRIߋGG`T/2H3`iX4LEG6rܪ? *kA2&&nL 'Oq7T~]z˲ CP_t՚u0p5]YjJc2RQYBghύ $f Ph_cxݷEO-c RUIM/G?e2E˽ qy +iǒOy+$%2AsA֍ k-]M0,wa] @$CJA՗N<}KjI\[)GTLh E੢g4ӶrQqaC~QVƘ  )7T (CI=V.<Η;W? *Z9 )vrx~eZNc)cMCtWmidc [.>*zN:Wpo(-tgzS@@F;;Ĭֺ;y7~ q~w%]߂krW^]^x.O{*w[MAYB˰~Vԕ.3]n+]-ߌKbrcm!F;uicE#p#{EcoZGM沀T8"d5%:N p+?ʡWFLR@BmË=Q4R! =]^e}` 7+?8w6Bc$.n@fdG|0W2~.?6v|N\񢼰A{F9aԐ\]39`˗V I@`ӳBRdwZ=e9U_3(@g o47_KQrZ>D!PY66T{{dq~uq +)-Ygþ;|O5AjhsyfNe>P0pʐ؂szQ}!kAأ]Ϩ&`aQ!4`ƒSE TtzzCiqşŨ:{o,4$woLClgJ3ˋ> |[ձNMZXG^|Kbo@VU.^|Ra.[KS:{ୀY=PR{PZ?ͥǬOK6xڷvŰhiٚ}> +*\* :rq Gˌ|{՞:A/\BP(6UޮU A(4hl/SdqI! 9 Ae=R7HC=Q4]#_sO*"}MM8iXE!.\fk21Q9yYR\*DI\N'sNEARaI:(m$:UbxMR.2f{gF{<#b>1<3N^_õ#wɠ!u *<6ɕe]V#[F9z $=mml7[4Gø* v_W 4 5+bV uN:AI(PA٣yb[mQKNa )2JEJ^Z6}¬e학*ZP,+hĥB!-](vAƛB``^eB1:V7e؏ԳYBdt%գLgH>\~oPZ:n>')$/lެʺց /(Zp4M'vDe(i3ru4 ͥz A,1%}mGMNmhQKBr4 I(B!M)#,4g+T!\8cFf{8' ')hP2l"^h؋1[kܪGɦIM$ͅNE(@;XИJu5o$Hu`3:=#fO|pxkˊ~VPk P,i!̯*j*LlJ I[2W޵'ZЌM}I\vC BPXbwa3˱ӳ6>ӫWd nlP.4f:J4A:M CFf-AC dL_M]+~t%@bNSm)yՂ 6Q,xۤzAŖٙViQexatbh5-[I ԥ.5aRI<(n}Av.k0{ |k{34c֟ |V@͗o∜ԥ<;Wxwg냾>^>p17tiAnQ5'?\Z~bЂӱIE3<7=SJE('N"18 Q7H@ɼ2kCuSAO/6L((2#m]8;kk]ozMsN!n\jȄU/of'Q(p 'L-rX'mZvH'][9LvIM{$[w2hV< h֫ٽ [TE2\̢i:n6=7&˻I Wٍ^- ZrӠ 6k{ʡoCgX*3f15^E9vs6PJ/72Bc hk'~0AF@C).sm eq՚y=> z`26=/L5wJ_MqGKTeY] (2t]> WeU : gRZ!{sg90k+Oٴ3dJăT!E$.i8M7) O5@z=>kh_xvt@$ PK7߼Qc}fU^džOV14Еd;(A)\V310v* BtBz}ĭ>;{PYbY;d@=C Ϣc S Zg?-f 8MU<0 )*Y5ly`ﮢ^w"H~Kpq0Jpл[~fn)pkKV(T =ܾFK{oj 5R V~v!qy-LV{t!+&dmཻϒ: jEDmUpb4s}5?01ixwZ ^C^~$`*%rۀ 5_i,tawmO;IDAT3?Hf`9 v9ab&<}E!I",P]cJQ^sz #Gqj4 o* )8ɯl"9Ų9sәUm.=2^i"#?{q;L:m I$.W44j_? ~.ԌdV֣e dm<* j:BflmC*,1RSNhqYiښ~yUH$6t^0T>g\Vzl2•luJZf zЙʨBvN`,3>׈$5׊ } +2{"g(ڴr?ueS6V<7A/~\{,UL)@x| Thl+-9A< `dzC_SZ`tE'?$K}lrI>zE'?v-J`dՆ3*^&ʘ}憕:lI;NE\[Ӽӌ/nvߞY,:6âo$\G_>_nOApWxbOcG\9MD2O]w)sk޳j'f_ݗY_,6Y'mUD@dXAX1C]Lx|ٻ,Z=W#rdw/JZc-NW+X_*Y ?Ԕ[r賊V<ACLMa:=T#mv[5V&l>.hɽK4Z%;:@!<\EΣ:rbjFV~Q7KHB> _ }=60PVcz%16=3emrQ5CRΉzP[Më'o:AոLXkd6 q\)aeFr{ޕ㟆g$|j1hmXo]w-mj# z aϠv:ƫҧLq?7#H)nȾ QF (<1dT?^Hf)J`-IⶃBwta3c 5+oᣡxʊpTj^ ) bjZ$29 8 B ĤsJ t ~KX&έqRWx% IQc8 qA8|`aX7]1} G>KqIG\Ԛ|y-rd$1y }{MUU6CYJ!j;s݉yꇕ4M = M.Y\Fb>&Ws KU7P!U2D.l݉Tt.0<-a}Z im^jʌqO34 |,nyf;,n^`2ИJ""Qmf 0~*_+voOraqLJ] (;) #;(,>极0\"`(""(Ѹ1&+&R&Zx.h0$FŨ1D4QFԉ*r) s=} ƨ1Uf+[~~hNQZw7 ri{>LH6gŬ~^,P7׺Mm)C73#f j16XKG.ſn+e~u7`X0d/}B`]wsz-yp+ Sv1zKO 5\ W_<7vĴlJt(>@sXwpT;y} dպĄ3\h4E\t\VMsFҠ@'@Cჟv@y;byN],k>{J+kXdqz;E| WLJ)B(+Ew M|^,yl[foCgyGEH?_AtM4P w\D]aTs#&Aq9Q  8j%J}< hGhou{jX' c%c$-fIHQ|-ֶ֖m_ piBLOM4b`hϱ}7dh^p櫓+su?ªf?S;޸ l:ך-11U[EqPDLGS&}vI~{'G{d;ro3:5[WA6?H%YvsT! aYE0QG)/]T+ II:Leh&y' jYp,~ɳ#($@0 XZ$Ꭾ,1%-+|f\p3 ύRl_: ̲v$c(Ÿ!1re凞M\sjۢhoP@!FG^e3<;`-pVn[DDvMQoV: oKxIC8S*ksrD0qGO8B͹Cv%o0jN$UZ8\[am<$JQDVHLK rm9Xw\~j6_s5v8XT,OlMCTF9X3ҍNtƈs?to\QKL׿bU`bZR%ܾ o+Fw߉0 "~;b:/qMٛ/$Vk,7vKTɲTaVv)$4!kG17Jin0S(x{g=w˼upCkzm8Crl Yo% TE,ȍ$aKCmaR.lEm |_iٗ-%C{\_JZC{GL@(x̊У,&]/ǩuoV}5 mF'Y]Z3$v ;g!q+cJ}>-eܕ+t:cirZ;-HKx&h~uݷqfRH~ƌa72rIyG+ NE$o:磟N>.K.z[ d 5h'5w5[8CGϧ=eϏb٦od委j2 Ǩ2j9fJ!P/įgzy+ҧx;Qe?n9(@7ryKVVU~# $/?$(SGu"P%6gdzGaz`YNxוAjiÜ:\u\2$*PnpKok]a7 *i]*Yizb喢rd̢^̱_%]07{lK~[A!OfIENDB`calamares-extensions-3.3.12/branding/fancy/show.qml000066400000000000000000000073171471772643300223320ustar00rootroot00000000000000/* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Calamares 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 Calamares. If not, see . */ import QtQuick 2.5; import calamares.slideshow 1.0; Presentation { id: presentation mouseNavigation: false /* Only the fwd/back buttons */ loopSlides: false BackButton { width: 60 height: 60 source: "go-previous.svgz" } ForwardButton { width: 60 height: 60 source: "go-next.svgz" } SlideCounter {} Slide { /* This first slide ignores the "normal" slide layout and places * an image and text by itself. The anchors need to be connected * to place the items properly. */ Image { id: background1 // Must be unique source: "squid.png" width: 200; height: 200 fillMode: Image.PreserveAspectFit anchors.centerIn: parent } Text { anchors.horizontalCenter: background1.horizontalCenter anchors.top: background1.bottom text: qsTr("This is a customizable QML slideshow.") wrapMode: Text.WordWrap width: presentation.width horizontalAlignment: Text.Center } } Slide { /* Make this one narrower to prevent overlap of wide text with nav buttons */ width: parent.width * 0.9 - 120 x: parent.width * 0.05 + 60 /* For just a slide with text, things can be simplified using properties */ title: qsTr("Welcome to Fancy GNU/Linux.") centeredText: qsTr("This is example branding for your GNU/Linux distribution. " + "Long texts in the slideshow are translated and word-wrapped appropriately. " + "Calamares is a distribution-independent installer framework. ") } Slide { centeredText: qsTr("This is a third Slide element.") } Slide { /* Note that these overlap because both are centered. The z-order puts the background * in back. While you can use the properties of the Slide, it's not easy to get at * the anchors of the items. */ Image { id: background4 source: "squid4.png" width: 200; height: 200 fillMode: Image.PreserveAspectFit anchors.centerIn: parent z: -1 } centeredText: qsTr("This is a fourth Slide element.") } Slide { title: qsTr("Slide number five") writeInText: qsTr("This is example branding for your GNU/Linux distribution. " + "Long texts in the slideshow are translated and word-wrapped appropriately. " + "Calamares is a distribution-independent installer framework. ") } Slide { title: qsTr("Slide number five") content: [ qsTr("Welcome to Fancy GNU/Linux."), qsTr("This is a customizable QML slideshow."), qsTr("This is a third Slide element.") ] } } calamares-extensions-3.3.12/branding/fancy/squid.png000066400000000000000000000201711471772643300224630ustar00rootroot00000000000000PNG  IHDR\rfsBIT|d pHYsXXm7tEXtSoftwarewww.inkscape.org<IDATxy%U}ǿofce`d (}IԲRV*eECXFMRTʊAB2RRj, 00lo7ݵo}Ͻ޿xs{Yix#q["4n>|/(A B@ 2 Ad20da"ÐD! C@ 2 Ad20da"ÐD! C@ 2 Ad20da"ÐD! C@ 2 Ad20da"ÐD! C@ 2 Ad20Z ghu]}fzрJD2 PX>&']}fq1T*"PdP0Q2`A'H3d7e54BW]%H!tE`R]M.IHt% WXougR]EGM X D/ H>t/ H6t刎p?` $jĒ$,, $b;;`L q"0֠d0,^GAC@xyo|599 L "h#~cQ2h  KwUdaC@'oA&.d;_P+(€ phsxu-K%~FɊ5> dgmSsQcI&-~0f[eZ'(d!RX>6 Qc7jɧl02(lڅwڲ5fl}0Ŀ!7 sleGRL Bi6gPGWiI00/F&뎇0ҖdC0n$ Rmd6ȇL_I20/MdA_Sa.݁JӄD@7@L/@6@H? ~AA&+d>2r%7cgtŠ@os-@o~|ٗF@V z_y}9{7d]C3S|7Uw __{RW 2@ǐ@L )g: bIH,: @nfdKC0I5o1 :@I5O7NUD+d!4p}Pb ;d!4ڇI@ d!$HdD@L *ˏk.BTl"" &݊`A;J DIMUZ$.Sk!"e22 HAFCD#2wSbO{݁ Ą@3Ռ@ dE"an6%bF\LiƳet2V}}5r<ʮ?XۛԁA@LkESUuP{|0E?QT `d1'&t nd i& ld !)&6 tP5:80a$@Z/32WHE>iHL +J\L+&4 j)12 t-)~׊:g%h)p™z[UFOqz/j%Vb2aG$~H_f @JHh_O MW h42m t2&bw$Hr>uA!H)~@'oHh9n^2= 12ӯ !~7"\c,~ALRNc^v<>@h1ƴXt $M"/ cdSHk "( ܊b@X ~?@7g41,~IAAPA@i2/?S^ݎA) /<2_CZ7? qT!Q? 2yHG$#420Ry22&êdXy;@@4Sy*?hM hASќ&m ~>q@ͻB@2`TPaR?.~!}( L}yڞw|Q2-{˧jdĒ( v1ot[#h axGoOgW2c!wM'TN6 (Ǔ{*OejdD0C@L||,T9-ĿDzP9kMGy-hCo )KcBI6^YB@BAj)%4G]C]7 /53+GNjqٶB{)P@NNmʫsGeH )y+( DSiB/"vD2${:,T ( AmT|  BALyR(n_  3g<7 Y} a- E0r(m'lʃ`.V6ݖG^ +dDd0yP| <' 9;S<'{B@Ć bA("eaؑSZH@@Ē%Bs؉ɩEy8yԡuԪVxQ|s Er>X CEhjW'6;w:+Ckk/{KlqK=1V>(fbN r97c&椈  1s CQ7Uze aJ$~Wٹ@=9k€ř6žBu+-"<\mQſƠj ݷ}{?ݦ-1%%TEM1pywW/@t#^B~|+sBQ[MېHM @N^=oDUU'پ ^l޻IOH w~Ga nxd ) 9aH]) |aX/ҷ[ @d 0ŗ@.= 1엡.I@X(Ca u;|݁A]h22 ,I"N~ `q88ثOzl5Z 0 V.|q7Id0pd/kOS @i@~X|`֫uD]1߻t]'p7pqETJEh|q,uaF V^`Wl. Tt07;?DZs)ظi3v^x!6nI#O= >3b[`K  ~@tYFkoV@/ _y ~u V\kk׭tJ`?lw` w|oR~ʏ}|Wnoۙ~/xXWw`a;kC)H>Þ~@0&o<)ʗ|~`j`;o@y> YG W]7߂!aؙSAP{P>񯀒g?6}a-;>90 ?^ \#&&=OӀ'-@#}?4k{<c9ÿE(p̙@ϣvG 9Uh߿l@Bzam2Fz~ B=o^-߁Y[B=oT?L֪8y8ݱ#hKQ~O)R|bcP篁rw W:ǎF_LMNb޽So?.CP+;¨Cy˨Uѕ!ShhI.fg#+Cpn_ HLOM(?Nw{ ? ^OkbKN9t &'0 _ЧG0C8=s&M@Q3m<`3rxcvncH033}?u3ǾY?D]ԣԊ8am y -/_ٱ`}='67ڬj$dri}PpDrX[=yVNR%Ǐ;k`ꈟ b26hL8GZhZf,Ԭ]̎Hcl]7;/ 槁'E"G:npj#ZOx-*T+~PVQ(( e?.roFDKU1/T.M~osr2#c(Λo/j|%c{ Ԭ[|ˋH8*ȹ9mppԪryef}0֞cnDΟ{Se2epsv ˑ t+;Px9Ldյv$~ZFc]( Z<}6`aƖGi娏0_*Zk9R1'eӍ'`ǻ+4Ù Wl|~ bVE0*vv`a 8z4bج[\1]A!&Ø+0CVc5cD#Әp4Z4bƭ|ď8)9W+(wdv}ܮg#!Ua cgjs1j}.֫5^&)rfͩ?Ԯdl[g2"~R)v݁|>su1##زm' Ӡ_i -Fn~lxbx 08p[G!ڏ1ULIyQ|wFUzJ믴5hձ]?aGTQ7m}\sWhhŗ\)?j?cΐ+>JvqKrN8anV}9sGNp~g<ʍ_x'L5(֝]GQ"M uipJ7h742K/"zmb8s~ĐLA;#[X^;>a*v藍)g #+Qy_o]qVϰRg.GREĪի#9i-x@+ >S7 D&ⷿvߋ҆qOOY T1z;122ykそCTƪs B0 8qwP]c6<޽s`/o!(ӯ~.:n;p t'U} n9l\y58'AHӷ~G'0_cp+{OlvhhIP`ϻ8Dc)ۍ7 ^vS߮;fj>;.~Mtz7b>(,^)u!N͞LAmuX(0tr?| ? \tE\ b?R.~ 0p ,:K QpS`z(JlLM oZöW\C34S&Q<7F 4q,{N L.~aDşb10ROFE9W/kL"</:Jc`ظi3v+W KBjk5LNM¨ȕ0#>/B{;i}hJk.BqeX{V9fgP00}c>Sc`0WU7b,n5Z(:BƍW7(jUWc݆ غu;C]a{ Ph8IAUcQ^YfwMDh#~K}UNkӸ)~33(U;sj4< UoDk3%~}-9(~R ~7P*QQ.*\cc@uLMM¨s0ƭ&$`Q{sٹYTJe;ZUN=A|IuGNXr%8`62!hnKĒ\fQH!> "LCj"7I%Ki5+ V` X>19̢T.YmFʭ1p3~8%~>96wo&.iR&wiX|9fffNŝ7EҝRoS58}y";)ݼa5I' `T*Q~_ܭa7C07dԑ}`% Փr3.iR&R-apGV+3ۛM'ҭg$~qgcY8'kȏ5˅ 6ar||;r K)wjZO \SN@zNSr9LL,nPp~6c㤈@ɚ~'/:66AC븳VhON]ӤzMz='w5aٲeӉ4oȨ!jwC)\>0RZ*?nRh@./S\.B0@B}T0`%cW.r4V9-Q\ sLIT@FQU yįyh O w\` &pF&=f9hsg.C_z]^9L0ỉ0z(v0;9hǦ'.AA@ 2 Ad20daok\IENDB`calamares-extensions-3.3.12/branding/fancy/squid2.png000066400000000000000000000203231471772643300225440ustar00rootroot00000000000000PNG  IHDR\rf pHYsXXm7tEXtSoftwarewww.inkscape.org< IDATxyG}ǿ=3Cu>C/| aM%!p$`RTIqMeL _e[lY%zsv:̾=zݽ=ί{0-AEI3z(~@Dt! C@) R A2H1db"ŐD! C@) R A2H1db"ŐD! C@) R A2H1db"ŐD! C@) R A2H1db"ŐD! C@) R A- 3*\>3OPO5"@ ȭ9o>38T}h@x2o(հA 0 $2n2MJJż $:D[0 d& w9Rh8(LNKX$Ht Ol73`J& -pL #)~@3G2BgXVy2Agpv/'tO:HH ^Й":L .Y"ڦ !-:xч(݈_PeXR7*tf"~N&Up) :<@3Bx"K<@䠳AM/ D :D[H/ tw Y E*@3@ ‡ZpD[(AaA:2ϫ~-8әKPB h:=/ 2bqkCnBL h ~ko  G U2  \1yvh%~F j=B@dOf®Ƣ [L͠7NW$Ll?®N!3?{'#ܰ)hN'"~6 zݱ0Ŀw#3~ miGBL ~6|PYiq0 /ІƱ1¦d!7 `)~64sL@C& 2i%~AL  &X.<| `A_ L`e8P26!=d>ЉQ60/p3pL7$ӍQ40/ppL{$ҋQ2(_r8` t DGOz)' q tDۘR[1R~o;M:H2o]wFpgơ~R);vtt) ?>KtXx4_2>(㌃ # t+~Y+~PH-(w?z{z蚎һtc֑E0ZCLnn;)y}MRX  ,ZqWODDMp h@<ߘ9;TjN͐DLa@3dHLhbEBdMLL I Cq0|tXczD&`Aq00VkµN_$@L L"mBw+AX5. MM)D^nE = Q7 /Ws892UZ@0oR Q3_S1F@Ĉ 0-]TxL LnnwߍX/ur/0M L5i?}qֿv7&~qY*L A\/H D@/H Ā@R/H Ą@/9ChA#nIb$bFTM $- !Q3_$ )Q1ﲛp/$bL&б_+꜡s 9a@ow b%~b@&л?*bkd !( N"=&@ 6?\/ $ L@?m(~AL 6k#$~OF,hGu MGɶ݋GP=&&@`z5?F]kz/ $nMKalݘO/p tjDs]/ vM / d)b1H=A݈  /H-k"j&@BM $DL@ D8Ln*#;^UajH L5 wOL)OPm%͟  UML}Dr5D  0Hէ19,  , 0֖}W>a :2 06[%-~ Mh 01X7l~a~_`p]M 8n3 ?.~!}( r,w|Q2%˧jdĢ( t1wtZG|*418:.\)]dD0p{5U}| Ȧ+L@iNw=U}Z(S  ~z_v})&@@tMʑA$EһОM >#گmwiYZܓ І DS^릇-Lg-k !Tx}W%4[CCB9W@ KhuyD/~"B2Y`(Im;'.otSNFm˫ sGiH .y+( |DSۄ^E"8  |Fe 4 "NJw{O:]" SlH;ͧ:oI @@R3-ƚH;O3dD`(̼;ٿI^*2"P 4u<nN@€ʡm|?@@tXxvZ{)T`*2/* xO2"tpקyO 9P>$@  "EVAӎ|ȑQH@@DEB}щ="qUrY+TXsyhrGu=Ȃ]ס뵗ȽT%DDM^x11A1AUUhs\1BUUdĈ9N(i-vΈȣ*~*z5:D0nb$~Wٰ@]9ׄ>3i-=4M뵔lt:˧B~ A4TU+0ͫocJo]G-65%TEL1pywW7e D ~7!?>MQDPf4$&&}I@D"QUnl_EUP DN$+ģ07h RSspp$&wO:"50[Q{BC"U00)RID wX,İ T"&B) H- ̼w0H4 Hz=IZ,L{)/M^ǀq`dB 2}9L{)``~(Ucl֝l X}V5SAu;z8G ϣT,PC4d9bl|Vu/ys} `t1i0M1 ` }}/\>K`vf~/ۋrSn}9X~C(G<v?_ʩ\R{@DoY冀+of@.>u".[+VT*_|l7>vW^/Mo6S7Nv=/ා芿1l=lʫz df߀r`}+xyWVFa~|ɟ^ _Ԛ{Qn_ Vw``'Y 叠|%}k9; v-2s@㱸^ e?p?9&~8v>;gp|'%0PR1:{.Cg;@O  ~ùGzs#3%ocQ~@v zğroMjubK M|ٷw/&&0 <|~ 8vy(/};f +{=9lj0>6EIm+]˧33`Uîs{?Uc,îBQ*y` ٬L f/+zG@$ ;ǵD<ٌFJQ,1=%w2PrpaU0Y9RL9"w@`܈1X7\.4-}Kbff25+wp:xurY.O "bG:npr#z\.AfB^Cʫ@V+G!0\.#AQh^0 #CdߌbkT.6 (Dsy1 /rl.%e{ Ȣ25+uW`txQ̎땟~G\B&@AfΔ'2V2ep@&!%˖Ew">0:^WW[ ;T*4')ـa/r3šQ>=6`kkw#1?s\&=]_=q{m:B}^)Q1\{9N0@1Ea;0? ׬A6;:Pv#r1_u3, dY~ְ͛+O@A+)Ffsdv;&g撏: `b2bozg-:QǙ.ʰgylҵx'L (+E;49kjK(0CA\x%kW'd J7|#ŕgcwEʄbh~?F2m?7 \ @mQ*d|ŊP4 W]f c&B_$U==\Ea8qG!Sc o \ʫoe7X~xnZ@w0^TWw.~fy 2ԫgu3 yrX\`Đd2Xv-d6. $[n5cF}x%]-\/:$ߚ ]ׂ姡a,u n^o3[T5w;vz:xOn+ֳGS?c (؊u< Wc&#'~SP|  <c8qM~on5شe &‚9𖷽7odW*:wF_{XJ5Cp -w`=%}{Y] ߛkE m(Wz_(p%? 0M &`s7vB, jn_އj8_`&{WX^MU>8q1U-4;5J&|{ߍEG10[λ˖/]N &&'`T d y ޅT:"",l#@Y S( ڇWw`pwu(> Ai9Ft:D;U]kCqyc5U+zZlڴ]p{2XLDfဂ ǐ; Ra􏠚Eup*çM4Lk¯>o&۝;p13=Bh͋zGN@+́C\Z١h<cV/EԋjߍyyJEEh -(GF"=B1u0ZG!Z"w33(VZ;%I)C@Xl8`v2!h^?wKrY-"4V43ɰӹC4ʊƂ7c3( 52]Y-#11fRspe Ok'n_N\v+rwUӰdLOπv;Wp;p6ekZ==Һ VC0:>2 E+5ff;22`md?m 8Ixh4Gƭ AqL0-Z/3M'k=ϼH4&JLVk< A8ۘ10vBCp088~͏pG_>ɺ;ڔ*?; g;ljHS2/Pp;G8淏sDB cNx,P;cёQW~fp1[h5Ѯqo }GnQ30;3 {i^xZ2n!>=!l-/- i>Y '"ķ#qGϭ6ⰷr 8 2횔vhi'fgkrf-!ŭw+C4y0PP[zG5uS"1piFT ÁZ:;o !q~/?0`][E]s")B4bnn ֞n~<kZa5GcZ8B|kP_Tr VSR"?pjq5 _:l`@T$ui O>42,r\|O#@SU\ 01|厰ߙƬ"h&iT*p9hksDr$,1+ΰ@SxJe2cTt0{v.iǬS;Gm\u 0@#TIDATPWbҬ0̎60ۺP 渪[ j爣AD& A2H1db"?f/v~_IENDB`calamares-extensions-3.3.12/branding/fancy/squid3.png000066400000000000000000000201541471772643300225470ustar00rootroot00000000000000PNG  IHDR\rf pHYsXXm7tEXtSoftwarewww.inkscape.org<IDATxy%U}ǿofWaXYB(JPhYVĀĤʨ,bHKIX'$,C($̠08 30 00[{w'=}]z߇z=},4C3P>O%"@ ȭ9c>338T}* @2g(հA 0 $2n2MJJŜ $D[0d&ͤy$ #7l d"-tW]A zD rD[8 jĂ$W̑ b35e#~@젫E҉E:Eodq6_@& mщ>tuF*|YT+C t2BWp{"~<3̑ D"+^_'t5E2hAWh // :<Dz.@JصkWGǯ*`P3:*-dDK _H l(H |#81¦ U2? ᄑJ )~w.Ŏ / x8_hO s)m0H+ dA_ @y ' &* !N/ !~ 2 n/ )~lN2!^/ DAL[EbJ&d>w6$X2 㮞(VA&2 1=rwb$!Ӷ3dΐHLhbEBdMLL I Cq0/?:_P" 8@w*5X/KUL&@&6Gk߽Lͅt ^&& auDi"@M H|/.w:&@jAFSjd"j&|*h Q1K O D[}Փ|,Kn}9u&AQ&g@7~z:g02ew *~AL .~AM "~AM &&~F 2uH#y&@3jI'i@ E$@L t$~݄&~A%!&@c6D5+dDdȩ*$) v yLdD$(X)DnۇYrHzUG\i֊0Yη+;0(mm]$|uz?7-wt.`3Yp@ݢ:tbv0ȣic+"&81"& -q~3bb2"FL6[11I3E1MQyTZE] Jo8NwD skM8&~s |1@T^Kin˦Ow?WgtXh/"A1jjEfymlnO;GQDMI UQ-`9*-e9„D"݁H~MqKQDPf4$&&}I@D"QU@q/h*V[fNEDi'H_@cDQ)7BD*`pnRbr  Rc0e[) RIw PHbNPH%b Z,_Dja`@Ҡ.A4@~ZD$iO;?0? z쵧O6:Pz _ #ˁoX[82q8Wi0 Tu ;,Zx#|`ӥs.q^8֛8~7vI8qnjz0ě%n^(-pW hم?"ݻꡗ;aeʫjJ@|FP}.ƕנ gw&7~lxi]1mgoۯ y {lo(^ad#ÿ? f xjMs/Ϸs-^^w=};w``Oy@eoAJy=h }{:?w:u&`~?7zguK ̡c,n@8E\sG@sxqi_ϣr/9eh߿lU_wCxam~[ 6*P.zܑ=Y =oX4=l,W8qܶͷhKQG苾z!|^1 (%]n#׃?ػgO(>y$<+ p %0P"*bxe=`oz<Z~]the <#0Df߳brb—?Eٷ:[Wj7~y?u /=c/czf&:f 0S)^/@yeWp sgXg?3?m#*݇Y=zx  /’y7091w|LzOdpjj+AQ3m<`1txbzf# H055ʫ ~VNT&ǎy;i`Ⱇ1b4oL8G\hZf4Ԭ]SG̎c,]7;-ss槁{'y"bG:npr#z\.Kzy.*VC8`A\F.6`FtȄ.eŜkT.6 xQˌ8o}Keds9()K+f=/Y^D(fGQBa?hR.!Rw -Z/5ls#dv`(cq+1\7g2 @,^4cuDxC]o%H●T*4&`Us06^ /=̴7 k.Fuxoj~jk9~.?8޹4>(N ghXm VƘUe͝ƛG] k z;=u"b<;k #;Pkxf hV3.F+aݽFlx-#.?vJN,z++YoU٪cHjUș@\ƽmh -g yWϹƨaJv]"K?N ݈|0gP\w ̳] 6ny 4v7 P[cc`QkƵXqVwSqV*Ťpn9Y9/t> S0yJ.գg&_4R>ą_l6lrq晾|?bHt ,܎o0 r+޻3~(/<Ϸ]f*˶5ozA9ZT*gyɶsc塜[4\y;|'%PzWE^k ѻI\Fa8uŬc = W]QΡ|˧n+scV f0_-TW w.~fy .2~k Jk\I# ypf_@.np0EA]bHd2^bn2orlyR- 5n_/>':   ]Y׀姠a,;qs[uUlG__֮_7Aç7pW`91od:  Ň+@udU/` *\>N{#&c+.R7x <9~,y1!P͍bkqjMA,0Ia`jr~@]S^S}s[j_(ya^>x.Eny.[C 8{:ԪW*Q5)L`0xt/_RuwV0-g5>3sLMNX*o F^ۅ/oWܕGס|o*Qu●U]ƛoǐ]T ˖/ki < v? LLL p@AٹZ)U0GP͍:fw Dh!ۭIv㎧sLOMP*Z"G1S `03<Fv&Z3ƘU7kz[Օ;177B>RbMUe2HdG(cbbF1^khI5*wp1=3RhEKճ]O_ğ2<k*.]Ipj64L%bI.QH!> "LCj"ץI%Ki5+ V` X<6LP,t-g>kǘIkSSxj]=q;k&k9x+pŋcjj۩;h\CJmִ//Zu֝7740:60 E+5ff=2Y 0`:̺z^n&!M׸svCn exl S0 n fbɺZ3o aj8'ˏ5˅ 6frtt;bK)k\O \Sfv@zS2-jPp~6c㤈@~ǹ/:22>ϬA]긽VhONӤz{=w5aѢE݉4o HɨGL! ]j}~k,}10XQ7k XC.iVJa=bo_Sپ>pP(~{Q? Bd2bpp _ ݥ8JbC/W'Hwd4U@ < V7T P_TM))?ȨjuC)L6 0T*TNa:4 }}}]^ħ4L\n<*X Q!5FK \ 4fiD3M8GR[r?.r$,1_9h *LZ`!Mz:sdfNφ]0 ժ^{%F0fvdv@Y׵b0n%R#vtr<2$;"ŐD! C@)#CIENDB`calamares-extensions-3.3.12/branding/fancy/squid4.png000066400000000000000000000201161471772643300225460ustar00rootroot00000000000000PNG  IHDR\rf pHYsXXm7tEXtSoftwarewww.inkscape.org<IDATxy%U}ǿofWaXY4(JPhYV+IQcY.C\`ebD R*ˀ08 30 00[{w'=}]z߇z=},4C3Q>O%"@ ȭ9}S}棫hS(@]•9C] GW9L ɐpiT]U-tL %ڂ'Ht5 Go&Sw QЕ$au9dK&Ht Wl73`J& -pL #FL Е#I@mvL U#E'a`L v#) b]-•N/)th%~|s^' tiG2x@WhN/ޠ@C,H7oW̢ ]%_0 D* yaL r!\J<@䠫AM/ D D[x!~^iv U K U2(@Wh > ~703 yow\oƷ>"3; -v{Ջ_@&dt!~tINBL h ~ko   G U2  1yf@ D4A_QEDP0[LXAs~F @֜ 0~`\i gM Fc>A;a/q܀'&ЍwVЖ v$.T rw`× +-&߱;v=6_$2q &Ј~R`"2o!V@6 xO#~AL H :tJUfMC_eC'dA1݈_ESdC!_%-@xI;k>}g+ٓ߱v˱5+dDdȩ*$) v yLdD$(X)DnۇYrHzUG\i֊0Yη+;0(mm]$|uz?7-wt.`3Yp@ݢ:tbv0ȣic+"&81"& -q~3bb2"FL6[11I3E1MQyTZE] Jo8NwD skM8&~s |1@T^Kin˦Ow?WgtXh/"A1jjEfymlnO;GQDMI UQ-`9*-e9„D"݁H~MqKQDPf4$&&}I@D"QU@q/h*V[fNEDi'H_@cDQ)7BD*`pnRbr  Rc0e[) RIw PHbNPH%b Z,_Dja`@Ҡ.A4@~ZD$iO;?0? z쵧O6:Pz _ #ˁoX[82q8Wi0 Tu ;,Zx#|`ӥs.q^8֛8~0LO}P.c ֭߀瞋u7}n`p@1`0`p7K =`#P8[V!в  EݏC/;$v’pŕWa5=3J짷ρ]!o+A#xMo&';:/c ގ_q%2nOA7u+!NQȼ+S};Ga Gg}ɟ\ _Ԛv?(^|ao[z v&'N4ʖw@w%}}=9˕2N?3m-R?~ 8/^C9_W~ | ({pĨb]>z$zgb|{ 'OĞ'[tNԝdF}_DT MG;@ˏ#03=ZsW0Df߳brb—?E:[Wnj7~yu /ݏc/czf&:f 0S)^/@y@+ȍ}ΰϰg~t_GUs8={*z=^%o`rb|BNFKV-$gJyab/ʙ4G048ve=Gq¾J1d2Z65^y]q3z\{Nē8imYTIHbSz:i|RL&Ǐv .a/s#b`ipr д-ixYoz#C/XnRw[(N ghXm VƘUe͝ƛG] k z;=u"b<;k #;Pkxf hV3.F+aݽFlx-#.?vJN,{{++Yo;2nճUժ03r{Z6[8^s-QoÔn9D*~,2ݭٝ3?`B@6řgm !lܼ|i/#3so47ƨ! <֌kG!Z>ULIyxQ|FT]DU| kV^̪osO`onp EU9wVEPS8ap3}'P\ N1nvIYN 7 Xng}ܨ#s?r^s}?<`?ڝ]GQ"MuXuipR7|h704 /$zm`83}~ĐLAB[X\:a*Vo!wg CKQz_zo̜TmkHs3.GTFmlDzC9iw-OK68 >|wT[wP|ߍڋqꢏKY 1y{044y+CO+scV f0_-TW w.~fy .2~k Jk\I# ypf_@.np0EA]bHd2^bn2orlyR-ƚ`A}uQ^}o .~Q^kSP08qmAuًcxFckׯǛGSa+O˷asq}:*}0WbX}t` νW<QY#ߏM[`I{9`-{|oh &IJ=!L_8}@CCK% 'x?q<+k1yٟB{s|(1m_oJ 6_r)<NGn|?<zkҐNF1w8&T ]0059K?o Ʃ>W/kL</7^sk(:DF7cje˗cڵشi ]a &&&Ph8 dfBe#FQ\ A"M}$~qS9P(qU#s)hY0~P] #;TcԪEKJC!GTDX2bxd$2#]11154$;8瘞FP%ٮ'/IOщ5K.$Q5F&k$ՂO(!5X$N4+N0, Q(jeZFkcc̤5))<5qH5WCTMŋ155 ^TIxÝ_ .!6ekZݗ-ҺVC| f Uw3 sL0`vYf]R= /7&k9nx!H72X<6)]kef{vd]z7__Xi\BRxV9:BPpv%۵h~Ka]Sh'.)U?; g=ljH̩h CTd5(8t@ ?qRD duE__}gVIYuB+4'PWiRƽ;uѰh"LπsD7[v&kűv[ˋqK%~):4CX6BV`01.ܪ#{/)O@&Y&kR9TǸ Z4(BL[a:3 6ub1<4 1~ԇVI]/󨦰Ha?PW=.i]LU(%Xa,_k!q~7?0`ݱ[Fk")jFFF1;;[DkZ7P?Jmkonb䚣1-2080;`u4P?"י|MЭE):4#Ø zn4?ms֐rkFp{@?]-Z;R=E][2jRSQ$RcdT C#Yc& ̐.R>5 >BC[čvsԈd@F4 a~~+)l_8c( ua !]MS188hUS/ROawrYb!k A2a|B|*(\T*IՔǟwdTMCO{N&P*k*?DnBh>@./SL&\.W7@B|T,g%cW.r~4R-Q\ sDU@FQUds9yįqh O gL` &G&=f9h3g.COjU#rZKXQ2;v C1tW X)TG;:9v db"ŐD! 5x === * * SPDX-FileCopyrightText: 2021 Adriaan de Groot * SPDX-License-Identifier: BSD-2-Clause */ /* An *ImageSlide* is a *Slide* (it offers the API that *Presentation* * expects) while displaying only a single image. This is useful * for presentations that are all images, with no interaction or text. */ import QtQuick 2.5 /* To use an *ImageSlide*, instantiate it inside your *Presentation* * and set the *src* property to a path to an image file in a supported * format. Relative paths are ok. */ Item { id: imageslide /* Slides should be non-visible at the start; the *Presentation* * handles visibility (so that one slide at a time is visible). */ visible: false /* Make this item fill up the parent, so that alignment of the * image (below) works out to "middle of the parent". */ anchors.fill: parent /* The *Presentation* manages visibility of children that have * attribute *isSlide* and *isSlide* is set to *true*. Other * children are ignored, so we need to set this so that the * *ImageSlide* elements are treated like slides. */ property bool isSlide: true; /* The *Presentation* allows slides to have notes, so just leave * an empty string here. */ property string notes; /* This is the important property for *ImageSlide*: the path to the * image to display. When instantiating *ImageSlide*, set this for * each instance. Relative paths are ok. */ property string src; /* The image itself. It has fixed sizes (300x150px). You could set * an aspect ratio here (e.g. `height: width / 2`) as well. * * This binds the image source (filename) to the string *src* * in the *ImageSlide* element, for convenience in setting things * up in the overall slideshow. If you want to make width and * height configurable, add a property above and then bind to * them from the Image element. */ Image { id: image source: src width: 300 height: 150 anchors.centerIn: parent } } calamares-extensions-3.3.12/branding/image-slideshow/branding.desc000066400000000000000000000025221471772643300252350ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2021 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause --- componentName: default # image-slideshow # Branding must define some strings for the welcome page, # even though this example is about the slideshow, not the rest. strings: productName: Mirror Linux shortProductName: Mirror version: shortVersion: versionedName: Mirror Linux 1.0 shortVersionedName: Mirror 1.0 bootloaderEntryName: Mirror # These images do not exist in this branding example. images: productLogo: "logo.png" productIcon: "logo.png" productWelcome: "languages.png" # Dark-mode for Calamares. The slideshow can access these color values # through the Branding object which is always available to QML inside Calamares. style: sidebarBackground: "#36393e" sidebarText: "#efefef" sidebarTextSelect: "#2eb69b" sidebarTextHighlight: "#313338" # The actual slideshow. API version 2 means that the QML is loaded at # startup. This is **slightly** slower at startup, but means that by # the time we reach the slideshow, it is loaded and ready-to-go. # # A v2 slideshow **may** have an onActivate() and onLeave() function, # although Calamares will complain if it does not. slideshow: "show.qml" slideshowAPI: 2 calamares-extensions-3.3.12/branding/image-slideshow/show.qml000066400000000000000000000072331471772643300243100ustar00rootroot00000000000000/* === This file is part of Calamares Extensions - === * * SPDX-FileCopyrightText: 2021 Adriaan de Groot * SPDX-License-Identifier: BSD-2-Clause */ /* This is a simple slideshow for use during the *exec* phase of * installation, that displays a handful of slides. It uses * the *Presentation* QML components -- this allows, for instance, * notes to be added to slides, and for arrow navigation to be * used. But at its core it's just a bunch of images, repeating. * * For this kind of limited functionality, it may be better to * use the "plain images" slideshow format in Calamares, although * then you don't have any say in how things are animated. * * This slideshow is written for *slideshowAPI* version 1, so in * `branding.desc` set that appropriately. */ import QtQuick 2.0 // Basic QML import calamares.slideshow 1.0 // Calamares slideshow: Presentation import io.calamares.ui 1.0 // Calamares internals: Branding /* *Presentation* comes from the pre-installed calamares.slideshow * that comes with Calamares itself. See `Presentation.qml` in the * Calamares repository for details and documentation. * * The important parts of presentation are: * - it has a property *activatedInCalamares* which is set to *true* * when the slideshow becomes visible, *false* afterwards. * - it expects one or more children with a property *isSlide* * set to *true*. * - it has a function *goToNextSlide()* to do just that (where * "slides" is the sequence of children that have property * *isSlide* set to *true*. * */ Presentation { id: presentation /* This timer ticks once per second (1000ms, set in *interval*) * and calls *goToNextSlide()* each time. Note that it needs * to know the *id* of the presentation, so keep *id* (above) * matched with the function call. * * The timer starts when the presentation is activated; you could * also set *running* to true, but that might cost extra resources. */ Timer { interval: 1000 running: presentation.activatedInCalamares repeat: true onTriggered: presentation.goToNextSlide() } /* These functions are called when the presentation starts and * ends, respectively. They could be used to start the timer, * but that is done automatically through *activatedInCalamares*, * so there's nothing **to** do. * * Leaving these functions out is fine, although Calamares will * complain that they are missing, then. */ function onActivate() { } function onLeave() { } /* A presentation is an Item: it has no visual appearance at all. * Give it a background, which fills the whole area of the presentation. * Setting *z* to a low value places this rectangle **behind** other * things in the presentation -- which is correct for a background. * * This uses the background set in the styles section of `branding.desc`. */ Rectangle { id: mybackground anchors.fill: parent color: Branding.styleString(Branding.SidebarBackground) z: -1 } /* The *ImageSlide* is a component unique to this branding directory. * The QML file `ImageSlide.qml` can be stored alongside `show.qml` * and it will be loaded on-demand. See the documentation in that * file for details, but it comes down to this: for each *ImageSlide*, * set *src* to a suitable value (an image path in this directory) * and that will be displayed. */ ImageSlide { src: "slide1.png" } ImageSlide { src: "slide2.png" } ImageSlide { src: "slide3.png" } } calamares-extensions-3.3.12/branding/image-slideshow/slide1.png000066400000000000000000000160021471772643300244760ustar00rootroot00000000000000PNG  IHDRVGPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fWBW+-GHQRIJ-/,.styy13BDMNde12` aef@ABCLMxxT Ussxy0246hi*,HJ-.HI(*{{\ ]89rr;=FPtRNSA pHYs+IDATxK(2>7Zy3+_fVyIK<"ɒ@ !__h}:'Z(Pf=x9\\A!EݶH@"ږH.+>]Ngon|ǙTY-kE7RVtP)e1lT >~,|,FDN=a4O r|Rߟ7 >c+˒%%KpY`W-e9džwI >J@H>IGPE~uɕ*Ztnc%7-uUTĎs٥y`mmF+D-՚V@EZj7V^lJz >I?ʱi'YgSGP l>wvK|>/mK yࡉ]mU퉀ڴPiA|Q>JP:-XCHNvcԊ:J.7G$j2 {H]#yم=#||h#ڏ >J:N.3G$A|8u<g?{ |v*GŇ4 nA|L-Vܿ#(\-i% Jr\k즨֬U6M@EmQb> >KLj̧g (_~9g~mi">4x>stN.DTA%*>;#_G<+O.REKuZi<3TB|,]۾fm#"{0[Ew%ZJ-\|W`y7i-L>gOld|4jg0T *&? >8Gs5-=!VTV|KLJwV"M~ <stO]ysZق&nkġ2':=W|αKr|kc">uGs|̟84缿NOsCSKp>gd||>mb)^nj)f&3ߟ}TACvU||NNHϣW86 ߓ>NBәy?j_9ub_G7xS|$?>'&s| ǧ ~*ctI -xG}>bU@:\ƊoW{|\x^;ur|^+X{g||7yivrz(Gҷ9(Gb^ҍi@>h\ S>>&6hF@gKۓ`c }_xg#sZ3ג'p0t76ͺ"䭋r&>*fiGj7kP}TO/ҿ6s))hDA@֡25Q&L^3&B/SRjZ3s9#/>75zo~JdlI)tt?]VY/}?E"Թw_*G裡g1[qX3|삫ͧX3|"|.WoX46͚~_M/&D:)yXXkOmN >m1|{)~\JΧ0[_&;qUFGNf`,#ڏ8MGn`|_ SI)$yW $$#|QÎGq(¬OQIx"#[|_$7uG;ZsJHso'D|C0#P1o|B X(>RP,5|r?I.MoZg O!ḷ IUA|L̒OA'MMv1O}%6Oq&\l(>?aV T:يq-}} $6:kG5V{j8Zr|Tڀ!P[ұq',Gf=V+S>_ϻ`xec>ݱlz=$Swﲝ7^=j:vͻpSP}=~D>.m5zj3|l}=cי'}!{ Ch9V#(c&L=g\K`uPQ#8|!HH`@$ΧCCSvT",$!z>IG $$#|@SQq Á$|_􃩊~'*x $}G IG $$#|8})x8t|8`xw0O { O*}DQ8$$#|@H>IG $$#|@QvF9GQ~u+^z Qכ]MSgPf) 倏 ./x`d-O'Xϣ.U2(#O<]>sfp iQ?}T޻_u]}ǿ@8&%|4~ԯM>Tnrn.ܖ¢=1o[}{v>ThWXrBgad1aި>F[7_Q8'0v)lWr,ۚ5#?C{iڃQtsdxSeG3p-~ ǀ VE>F,{2q$lr}t{DG*^Huq >&}>,ԟqː_l'gdH{VxxxI(V1OlPGл!<fU1<|Yw$#|@H>IG $$#|@H>IG $$#|(JGc57Z>0 ]5\ "|Tqwh5P|T}l.nT;gS5q|4apLE5h|M]hQJ++ѽtmǚ`,fXeulcp* :Œ}T5k5!q!|~. GǦMFk r#>Y@0;e\kȥaFwt"b|֟WGې>NgnsZ >@H>IG $$#|ɰe%Q*[G Xh3h# |R`#]lISmWl'&<+#xP<_(d>&#p*>f9>~_Gkv?(+c7ue8hL<y-X*5ČGQ ͓|Bah{SU>3"?:#%h Rq|:ҿAůJ:>^↡O}|r+s֊2K\c[g* s=ǫkr#$b{]^N mΏc,T/J߭SDQ*AtES=<q_;Aζ9g2gwq7Wr U 8%k[]NnlS{X"|TZĚw'H^SIx*d6!Zf[6ղuk¸J(jG!9]mWֶƍgֶ.Q ,RWSZǡB o&>*pCQ o!lV>o.꘧&9)-ѭS}T?aӸ<{c|4-$iJrIyY&|А%twzf'>5Azy$dDZk|} 2ѢpRpP ]{^ǥJֿ !lHNH-/IDvڽ𒶳y F8Bn,R4&f+7#B?L(}!IG $ɰ/4$#go>~@H>Ij7}H>IG $AQyGP?Ywcf-y:OyܟϬwMG|>}|>n&ԥٵa1}̯`?Oϧ|,QKy|,SK1曟TGd,8;d},PKQQ݌V{>jecx?sQ4/J>$#|?ra~IENDB`calamares-extensions-3.3.12/branding/image-slideshow/slide2.png000066400000000000000000000753121471772643300245100ustar00rootroot00000000000000PNG  IHDRu pHYs==լttEXtSoftwareGPL Ghostscript 9.52*%LF]"T " xԁ#Q]>G2Trqt}.ZGٕ =qڟ]Yui}~){U,x⌕ 6DDT y$~ީ8'~3MNtlSsDDDDG""ҦZ)3~{t~SHDDDTy$)?2:/ }DVޟ~1x$""-nA߀k9c}r^wچu~OgaS)DDDD-.fHG""""1x$"""d7VMT=DDDDTsz)W>U\\%u]BgBan/mXDD+L닷aK,gNbu&:hݲaQuoZeeXCKy9HkY4w?^ʊk+g_DDrR1x!Qfl86DD0x<3`_#"˖G]V~ƙ]Y}qFe^S~""MrsM}m k@gBAyV򈈨{˭\䓄s`TraѸsSi{v*}GDD+lcV.H+ϗT?Ftj83$"\Z%p^XTg4A}Qug|:k9}Q,4[BsT3]ґ }Z>VP$  ֐H$\,-Sw^hǭv{ٟf/rDDda 67lJdgP^XX角~wrՒ٧?5*jB,m6״S9;~w:a뼶H3 a5Qt5`mz 3E3QDI(׶.g4Qg4OF] ""Hp>*y5UHQu4 ڋDDDDH' 3ݭH""" SwO4xUyu㥜Xi (LI+rvZG}y)hHT]VY˵UZG}y)Xh(O޹#"""*G186bsmk2z"""?}u_:3XE:IS)3DDDD $E7"""h%b GDDDT{Q4 :`WjK c9}n V QNs"""hDeď z'̣*Ce&""",6[i{y6lOE2 z7X(hj|o(*=c9eJk[3p7vX~.C]|X<Ƭwg!ϣ{Sw?nS6Hzn=kTBq\m>F?ٕWe^UJ}qsf13e͹c 0}櫸Ыw/s ŗ]l)_Ē0B}}܌Yӱl=p={ĵ?/A~FKC]&bҙh҈wc??Xʞ5,+r.~_ pϞ8[/by{~D"q~fǼs0qa(_е[W\u͕xkx|C5NJ1rvg=e2f+yYrڴ~uf6c>04viDޖ1pZg|gMh҈OhQ#;1ӊ?=[_0~̱\V._9͵,wkus]g_DУgldKǶJr*hϙˁCOl6i/⫎sIDы|~n^J&6YˊK#rHto}DTb9ϣ9?ws/-p1Gc镬Mm8\QucՉMOC={s/= ,x Ĝepon 6X?1o\p*[(#FG+f\6{Ye DҼK-5>b4歜s/8'{y y]u-[bE㑣F`9Ygm;qzo 璈c'"YbDddAߣn;.Ns[{Ys-m݆s}{-lIMŀ7mI4R{יNJ8kٰ8|.(>`U%Ơ aQNSj6^/]4ۭ\!f:sYԳ72"""ZQ1%a40f׎m.|_<%(ť~(G1kL]yKP~?9˺F_KC]&bҙh8s10g,r Gx؈%kY֏~zlβYH&{͹c 0}櫸Ыw/Э{7\c癗/M8MMMů~KÜep}B>mzkx ^z,X=3fM-=rе[W\u͕xkx|I_>1z4Oϖ֠pѥapSs.xf G{ލK#7SнqѷVo{( b;pL<0y.>|COrzLnjk.;fXL}vػg/`q;j3hѣ$ ]}>x~TqƇӿvW?u|z]7:Q4"ukc)d,;vb=e۷mGfsP_#a(H+'T^nXu hD<`%/M=wl)cV҂]u~4N{Z[[&`۷O>8t(sْEK1fߟ-Y~ O =ݺw?@إ'LF|wW沓O*^"᫓ۥ֮#g,7cvl|*™i.[bz${qsQcĐa/Q&ǝkseW^}:wq5xe~2s,l4ZֆO~s򉓎T7/O/U"N"TX\>>뾛۶nS_b;K}2V[mcA,?݊hky h*-׵KWqOU=0Sogy~ks1kdu teg[>WLj~vS%Z$k9ѳy|zY7:Qt")Zǟl?%z',RױyfBiтf8p߁߾?H$pأ2 , vt<ߥeyzn~˯C(:>/ \q.|+8EZs<$#XwuCU7ϧuêUGr4qұW݅qcY }3vS_`a+6Z }|nQcڛ7rnno3E~}s53קo@^ODa֨}SؾSݼ|>V(:l%G?F}DfuZO:T O=I;#;KW`ͪa;m-#_\<~ճ Mݨ\lI'!NSN' їp QWWI'wm0_kǰC1h Lteꕫ=˺aՁ#9366dYs/6oє#GslMt˧׿e+e˧fHR2A{xq= ,x w.p?[yQ* x'pU(#G-sfMyK3,ZFF1Vα #Ѐiodf}7<˺aՁ#9zw}[`D"t:_w]ZiZffhΝi'eskذn] ޿vs PeUysg5?۶n\:+#Xdy F}|R)Kgyk?\n^>^ D hgqWaŲd2胏p57k~-͞7}ttݏi'hiiKϽ va-Rb t-tlނΘGx֮C&m۱t2s/{f򋾉y7>XZ[[Mx|=i/[n[6o={?M֖)m/qم v܅{♧~py|zY7:Q4鄃^/Oh\p Cwa `'#QMh nf_ .BDA6-¢Vl=U8Μ8o>8sڰ|iDDOfW`>YFq{6kQ-Ozyˈ&0_z`׮]޽?GޖGDE<~:׶+%[G/M:̈Up-/# 1R','hMDǿSƈC>xxL$MDDyրx٧}#"{<<=jȃ03^6gͽrY"""`1x$""""m HG""""E>:L^F^Wz^aQcXzgyK3W^Kՙ˷oQzd2QWjtoǍDDTET]T6*^d2Y綾S9ٺ?}^w.s,Ə9+WnۂBz$.>Pr8߿Ѳ|Ĩsnj;~Kg<['}i2nvrcA;owq5x |Ə9k#"Σnt:SH 1 ݺw3Oe,^}UzGsm=x(zm>~c( =s6YY5a\rߠaú-{^|3;o*˗i-UGu}oG}{/:ɺXV2MdXߚڼV~z:xZ>ݲݖ zwe}M?O=$ʶvl/J*/=zn9+ǟBkk+Qg&f@8Q(:$JGbWT ȃÝ446(tj'n[\yYQz샞gclMi'}i5l ݻ:2pU7ląg]ks55z*ח_ۺ^oO)$H!Hbo!Fݱ)uQԙi?Qcf)L< t're3g6%=x(q܉^l9(6]2lہť߾~[ӷ1 (Yͪ5~ikkr]1ۜfϜcI/ø'~w;hllTn]W '/׭{7<_в]1Y7WbEk?ZF4sF͆u,˃n6ѣqMsۧX>6wmrQ#-""""1x$""""m HG""""E>Utd-^|a1;I9I8HG13:=UQܞ 9ܮvMz#UHGOv~t?^Y֕:,vWk[K9]گeG^ۚ]) `QEwpftQ//OHDDDThw ø`5U xglMDDD(G""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG""""1x$""""m HG"""BuG"""D"uG""" f/u Ob­ l펬^<G""NOF\pA|~>ww.63:W]s-َi/(L154.+;ݛҮ G¥:v }`%Z[s)Uy$""au?hQԽ)p4 8KH5jFrXqa}lGG""4pPcѷc ׿Xf #QihL,p4߈@+hcHDDTc51rX\|PMՁ#Q ӷW|wdݧ!}P|1x$""!\rQ^55K/DDD5d~(~<Ոf^9&l#V}Q 3DDD5be7wwꯟJ11x$""v-{jC DDD5wzeF;P-c摈Flkn\f pCm@$ӧm<G""ɦ=$ p`p`eߟ U?6[ՈU+w(<Ո vcْ G""25DDD5GV]PkWxdUbHDDTC6. uf)mm u_ j̣oş eT<՘-|%~߹m.UDDD5hƽX|7|%I#QZV{e7a/z+9uj2DDD5mƽpOxkW\tk8'$""q9.Ɩp6Ir($T~0$0< H*nE'7o޺67ld;FwFwA@ܮM"yBgG|汒#g?Q\gz_9g"̃ LSORd쓸O1@$S0b!tdtfvOh|o96'MFC_,* e3bd;b+Q(|6g^2pvlNr+/fnGyn{}FTA|Rn񼗾~U|}{DH~'>δdAe(U`|_Q%HOcW$M3@:b7Il/*=8Qw߮};=2P>~xtz(3ryv}A F9>`U˥Adt|ƾܲAkA)NQewDvxatOVcV\ǭOQA8XH4`TvtZT!d1& ՒYṭGvy92/}UgDqaHIg:SYtl$lL'bd>*TD$&ёAJ3,yUD$c#gt9W ad8^ܨ^]~̮q*u0ifpM0C.%=_#// XǩN껤$/`+,'D)7N\C7GDz-Hc<3EY87 Pz2#p;ܚlua髦:&V2>^Fͅ B␥"Y |Ԯ$VUÔ?Gr9ct|%r/!fe*n]m'ޓ'^MS/ *2op9 8 cy 3fyu})-uqgNg:=c-HչuŹi9 ޸~ю[O]AgF5x.e$7'~v>v%c*FŮZU|&#/Ud]݆}9)g^xAj|lP:ͩ(䐄5h3E֘z9?4N?NngE]d c KPsEqǴ s \q$.@nWT]U' ܾaLnmYNN]@w&vc4p&::x#~0ngƗxDgUOu#3|2m+N8'&Mg:?~ xsYC7)$)xoD))# 3Z=Q5O׬6GާpPBW#$sRb,!poQd$U.֜hFYtSG>6JZ p3vBfQNF !U ~Se(V~9@@_'kvG';ʰeetS0AfGѐϷ.UVRDZ6b=H^vu?:٭;)~eUWۯRUVw[vI#/OM74% :q =CSu\HCv{ 8et~dtTfKə6յƒx6׽ bHCUtWMI1Ӻ)NQT(Z౜ѕX,D<6|OgJnے@}3Ա(o|1^t)Hje-ȣ5u݆a[HKU>,r,P:s~6N`dɱ.$: V5I$PTWc9?vek9p4u^!g5:˵1J\S)7>ד5ӰN3N@۬-Y,9  2~2~d־3^2YLة>SH4Ae0dWdDBAg; w<ۮ\VMNuKmӴcƉSb¥~F8e\N&< g:/$6H9C_///gAW # Ru`˝[Sr^O;jkК 0 e\~F85/WwmOM3Āu[s;4Rc q+%TM* i洏} USxI_$9e3z̠S2c^'h;q "},S%iNUd"i^|=c 9332V7k*3U?1rFwBS'+ ae9cZ&_lj"$H/*%[')~ܺ SUQ#}c¡]! 1ΌM~̣[Pd\'Tj2V$% {xXʗaRȯMlvgsN:ˋ?҄!N?Pu2Q^3[nt"tZ Jf8h-w_ov=$|*3r:#J-vɹt>e QGz?ћK U*vE ܂5 Əl%f hK!yN-t9 CsPɑ:MyK9}!~f::y,W!^6-y<É eJk/5 RXՔϷih_x);a*nn K-vT [&FD|rnG=`TੂG1 6?tfrYw*3_jb{u: A6@x-hnBj\vǭ)4 ]<v[fa7Y@v@R|\QaL/NRNn@]b\&7@U҇+ FXfk |%W4G{93>b7y;g Cv#9 R˜R9xd.hl@GSS /r̭ձ>:CK7QDPz:խ8q[ 卪1Q #SƱInE<'AC[@__D2-nݔJL[I%Q F r죲8D:fݶ/茹+NdJLu[H$,uBGnp*v6^g5El-_µ4* QlVUU}ĉJ[Ui;|]63}ljT[u>XW1{+niqSw®A%sza|@iQ' u)$Vb,86[MnOO1` ld(U(5lw(3FЩꛨSH|Ot ~+ݪC,Y8?XISxɨfiY s*j:~Q6#IUߗ2z:euZpʩ}[(yXM4%Pܾ| .T6hoU*ݺ{h-e\VXUƩ8~82hʸHb?}jRs$T~*eA 6 #nܚݷ3 ,x4ɬ3?o,Gx9'a֭oW HlKYrǠ2~L8ب(7c'c(_M||ɟƅ/q}ڗ4G+}-< "pt4]g^ykx˭_ĭ>x+בsZS6nuvQ~6\_=(-G+,-/GT,6Zk}ǁ9_i.J{<ªk댈b/JY>9;(om_ۗ[Lы(TUd?;npJ@mhw^3;uk A$*䊣,<:VEL$mP@ yWH$J2I2#8 2PK8ňuθU}?~:1pVqvyR#u*?;ْۢ,c)G=]_r4%(^Q$%A +SrFSfg[3JAU>Y}Yש>ʁNvXz-S+h}+INKGRhiK'LGwרt?]?(qU- ,mǩڭ\Xz-&wY\joK<۷M_rU]t؍>&}(_ݳngLA9s!32r2&A*TЩn:! c:˓*٧}zZ X-*4me0kG r~cĩnKw_:sۏBg'qq0j-p,׮ T-tQ)fʔ3Mgg<W*rˀMag3vl=kjg)ܚ~, {:;흟r)y+{P5]N%UkT[-}@2*'ȣ$@, H 4 ۵\f}㾱L'^g㾟33L:]Tt:t;sęj)RKo^Jw2y8@9rڗߌob04v JO|?r9SgB|)v})u>zAxޮMU}LV>"t56;wND9xOhTevլϩ0[zO E*q] n)$b?̢P^1OG!o3'#N1#>ڷqgJֳkf ,<ڇ2uәBdBβu1UNr_^f 4Y_pJxlwI,˷}55w^k2}XO\w+ǴJpu L\?䩧IZH6-dQt!m;N٣^Nu .sZ_vgrvg~f36ib [+dkud2ړ/.S=_mQ9E35u+j_'rD.OYZ7~&q;)?Mi?"aQ7ԏ?Ol~x.k,zPt}fGUXDUP'{ky&r/ &Δ#+~ƕNG'N&) @8:K'o}[y}y $݄n}:n4_='9r(G2Yogzn3-hP~ˣȟ0<[X}Ўy@oS%tH :9Z/]hVɀCݧQ|N+gp::,=NS¶c?+)aDzϙٴnR ov}AGyXks.d1(_F4&8u6Q9)`J)g~JSQTC[An+Q':Rf|qVcNNǼ3֮nrOpz mMbӬ17_W :۠p'tV/y=م7N͙D_bP((H4fOGJ;ks{igWy[Z?ŒwcM8f{#kghD_Vq8/!uf=V΍~F( ^ \rQDq4ݱ]N?;T1-*\:m߮Ϧ}/5oٷ}dڙZ -Aoq3>\AlOw A C4YIr~31 ίt0EHu>\mvGQAde5tzAAy@umD(ڃGbԠZ5pUVmķ0a9 "d_%^UY>k^Ϡ}- 958#g 6騃 Rm/zȯ=9/ WR%ˬ֣t}`8+iTuɒytќ̬`kX1NgAu9kկKo- $ ĺyXz Ҽ#ܬsYLӲr2&?Fhٕc\؟pA/Ne@/|1Z,kهӺcI3#J!ze:j88-GMa_x-2}ͯ˳﹪}k}Zw|Qf I˗|%gDZ3z;꛲l[zZQ@s,%VVcC<˙m|e M>RY0s%fvIB 7вS+C, ?7N--E_ǒptGjGwvl>6(Dn%$0r5HCQ- -rpk[\WG՞mx~:q qpq!(̈́C.-00BH*oC).jSAO!?&>\{MaU,bo[}4'r;G16aGt*X.6Ն>mC" l jZ(G,4 pa&WF|5f]/ m)œ;6^tN,ntGbq)N e5 J@- ϥV?nS:,<BJ u>v oHDiChX|ClHZU!nY[ Rv?X`t!?إmlVNꞘ8c9RB/5k\%—x(ݓ_n،=QA$+ծ9f"9VI 3$u8tUKCi&O\Ṇ݄SR/IDATǭEz=by6udB>ϋl~ ?}ɽ[N|}J8 t4a 4 i=X5Dzo}"!$vplPrZaepi&_ʺPHX3)SLTYA]y<݅^1к&Ry>h/'Օih(% fb.bVak`hY%ܖp f*9!TɵI7uktMx>a,B%'s",ɪ.pHh(9ZrSMv h ȻS 8-ΤJp 4, VMk8+t].ѷ YiBc T=vivmu5X`Sٯעs`,.IP٘6UtiàjaQ0ew3S\[ ϛC-Υ%#] 93,% 6A>u_6O5ާP2 [ͶM'1McaHaD,Vv* qycy)̣M)ea:Vr*<xX~ϋ&/TldV7Yн5MЂ-ZUsEg4b(`(_*җ+ˢ4i׵8 B_T*Ӊu\w[4&M؟xnA\]XM%ؾ\A*vܖ~9l$y,fd4b>׎:H,e/nN_V,IH"jOU浚5Ɣ߄Hy~ЈI 8CnYB1eLj>8p}/Bi~tcqR0BN0fFLHabaX4B2L]^yե|դ6hCͲ2a脝;,[ke3Daeu$>6Z|K W1)'qŸ%կ~CvbӬƒ6fnatqBbʗ867uekx+wѧZn泃u ي:RM1y s^뤀ƌC;T[_s\ s5~E>Go΁ۋBJ#cƢ'|P2$*fm-&5U*]x #E8bnq)dλJCKܥ1Q)u7ԅoMRȖ}fA5oqY5T,t xrr. M:>ĸ:ΰ.Լ*N4Az(+d31hCBR8bKel\JѕmN]l+qt2M6@~$?~wvJ,4˳Xrb !:G#nhڄmҶ)tMyĘ+  ֶ/3`>cҷ{ҘC ˡ 1. .ׂ !X_P~wuS8GY_&[i=ϕiI*<ꌊ,s&շ [|}iuXVuXͦDȳV8Ms l_>1Km73m2 !ƤS &]<5:/8y+0c6eqey&}+F |Ct @NĴlpk^gte6ט0raRKp St`KgQqHi[c,oUS4imyស.)lhb 1K_Ύu΁::cbWZ .kcgj+vqgRS.'NHCsIjx9|Ȃ&@>qjA?s$@3{'EbSvN^ͣ$+JGӇ^)JhߒI4fY ^IV/ [ ϊ%\2x<݅&x.=.p~zKX@܏ SςwR P֝Y69/#]y*TP%Tevoz z&Y ;S"[ON] j2_N\ YL$},,eKi,ynp}Б1.9dP4>v?7f9q+߀%pu*67%_%̲)|_*#?[Qͣ)`5s'oӗϡ^e, bl1L'N/1>1+Cm‰HsbBYCiϷ ޞ<}V^joL6P9qy4& qdN{&Y{E;7n^QG9R,sZyK-3' i* ;$@ZA'jZflU+fʓ\[ QuĘCeQ[o9}c{;_e};w߃_{~\FMpaAb5A͕sR,G/c̥"m. e͟]oCkYG[߅k7_܂|Oß|[<|ϗ'3h{!0N6M-?j4㷥s9h/*%@YPh"n3NBl5E+uӦ4AIjPٹq mhЬ3*8 ,_Y 'A#1O0tnĜK>]BS&4m"FhC-`([W;Vi|U?y\m=C3aG!H58f_-OŸ L)/~~ $u/Rlre8څ.ß|Oa(`Agŀi*D6e `5-ysh^ex=wzB#ŃO?}s}+ JQj,Q'1S@8mp ;zL]9U) M/edc^Z)E!9HJp,% XVݢ ?~NCc]d҉_n1Ҕ-iu:rYgڧfY 0~vֵrLfep7]rjyUXaqt\289>INMZ"^X&xOԅ1eo L N*ZO%,Xp 'tny1whƷPx;{N&Y7n>|???YH_s ns8<{ZڸLϝJΐ~ae$6ka۾iJ,=!6]ZπY9ݷu2,wZEkoMp?Ka i^tnE4R^|5xϤ>6&;oß|7ݿ>4*\̥,#}:)K1ح,'3+8gBmkd*ObBkrr3:6}8.pB4QZ&c jV&iڜ{赲VܺuH9MN#}r\_ q|X6/&Cb4 \, CZRcS3yѶܘ@*ώ 4YAĕ9dxLI,a,kHsqn4lye5B/`R$iBdyG)³ ^|LUKmӴ)>!]]S8<؇,/?ÃZ:&e|/?>'Λ25g9z/u߼-}`(f+a㘴v8qZøw`\|'< \UUuA>uLE[yfz/``k{ge7l&4Z.PY)uqBȴ 4cA`aNS_ޏ8(c,>Sx88ֱoXciǺ?7iYY+'.27) Xꒄ3jeǼcZIڠܵfիI[2 f^VP>~z;pz4T3vҔ-u87U7~ɹQX4H>^㎥ %dƒ&+,LO[ͺ@{˥I-}޽x}:>m1cy֥pǭ..B }S;>.ƿMSVj̢"1P[B361/M'|_r P O}Mt<8!$XZ&PI5e&<\t*Ky.p~7bA̦ U]m.x57ݿjIENDB`calamares-extensions-3.3.12/branding/image-slideshow/slide3.png000066400000000000000000000766541471772643300245230ustar00rootroot00000000000000PNG  IHDRu pHYs==լttEXtSoftwareGPL Ghostscript 9.52qZ1=cser,""Z9)1x,"~fԑS>?6DD0x,2zPQjreˮTV<'D $X_VA]fv>nI9E WBfe99LLʺ}N0;ɮϽU;I1x,ٸXV˼* \J} ĴN2;9Le/H0X %* >/L9ݱm6UYP*Τ4ѯ1jBPIJo'WBN8qY3{lvXNCDD, 8Ǘh1f{^+@. iwm̮<'fǓ9O/YeEEW~iyb<IcHDDDD҂QDDDDtَ[rS({€r9VaIDDD䭼\aƫ#DDDDʫh9'y$"""ʮ3DDDD*Ȋ#r6ښk[>FWDDDD$|vufk""""oT= HDDD2xry3UO.b99tsLHDDM')}7%|NrUQ$  E}˪ǓlXV*H""",dMi 2p$"""._Xe0HDDD_,1t2grDDDD_G['刈2*wnVs[W+1""""r!E(Xv|$Sx#5fƮrVUldXv|DڏVe]W4^++C""*ǔ[y4:!;l&"""gk[ڦg, WI d'@demLF5EߧADDY;fY@|o&"""""""*,Fv^{$nەcIDDD`Ϫ@`YqsN<}>)DDDDnzGa"|#e~q y2xŪٱ̱cEDDD$IT-lFrz2rRγQyPFelϴQ&AIn*ʛe 3DDDdt3X:IU)3DDDDIm03DDDDhK @x:ϣid2Q^!"""*.At\53X%"""_'Gi[ϩzkv1@tẹQ4=MDDD[l&"""v."Sd#Qy<2HDDDB?^C.NfPǒFK$y$"""*Oni9cɞ~'Gs,xt ԟLnW(EE}VܜrnOmnU$e]9rf2hIϣۓt V(3DZn;tmr<6='t[j._}2sߧEDDT<<:mFT=y÷1df57M%gdAq7chݺª?>ŧ}C5ת^{UhB6x`4k0h 1j$p\?iq5٣Ɵ^BᐺuN9}N9}1i X\mhּˆNňF౧EV-qƐP{:w܁=۴={1c gQuJS}}AN_|%.+.Bn]PWW_Ѻ7v#\0vƁUzx~.@a 5y/d<~y())Q5o&c؈73Ǣ \|Lb"|= xC1|$IzƩwU4dڵox,E={X"k_&xtrnGZW]AD"b1E.Gjx]u'`䨑q8x+jUJs jjjS俽^}z:wq^sFW^7cX}BzD-4MK/^Žw܇iޏ?xB5 ""gQ~ɐXO9]ڬKnfiw3)y&Sݪ\6N[F ? з_M]+]HIDֽGw]&Ix?L^RRxWhӦO?> }ь,b1L:~q})ñ~'O[qڜ٧'Ԡ7]8wϴeK?7yat%%%]=Z Ck^(wVIKWI6co1+̸ 2Y&WYfu@47khߚy󾛇q]p nC5Keu| vƩݺM۶nÎm;0|0tIqaɧ7|Mq3y W""ʍ\/OIl&2(Y\e%{l8G'Xf^8kW_?_?t/ a)PRd2)B&/YvF]7mQ 1L-lIu^ﵴ@2r8`&Qv7N ɱ2) Ihhn? :W ,D_~ӪBhאg"R|8>_v^ FQ#q TWUYL&SpݷH+\vڼ .mێm;4 _yULzaVE5﹵עr/b>e̮5u?'4)+畈(|V._#ao^LdZL:Cݷ7NzYlڰ uuu.ꋯrO%n/X#Ng.x\jtø;vZDQlٴ7e}^r-з[h?͂|$O`g|="""tq5F5|9Za;#DDDD$#I˛I³AvqzXl:"""|Ve\HDDD䄯:v=r<yVQ6.+0HDDDMGf>3<5nvcfH0HDDD(o2FrNAh;O$""Bfc4 &l&""{>0cr ߃lŀo<Q!*>! 3? w>rczJ'Ey]C(h>UJE c1QSSm[a3Ͽ~=}yi/EII hq^zߠ!pƨ_zjyz=nig:[6mO[:OGDD6RCDܷs;1x/k궲feб p8g/M~m2x5(ޟ[g>< O;T<ڳ(++Sb1āqף@g$""օ$H CfQ^a[.!GkV~Ǿ[!xѧ00x*}=u{8ӳrvbҟ'iڣ/@>pV+NQa`(I"&})T-xWgǩ'} wǎm;+ZW܍|%aּxߢKΚz]WbɆEhѲn0Xq1>C:7 Vä~6mxZҍ>s/<}tlޢ9v^5n\{ ?cn'ܥI())Q5o&Vo_ /g|YvBԅCYYVl^[ޟ3jU>`ƌ<*r|[jz[k'<؃! :~nSNS⛅_a٦%9w:|n:m߫3'0""Uz(Mq$QS}!׫i 4_fU俽^}z:wq^sFW^7k+--ŋoY J߀xgf4$u-[ x^Sxgq#m>NycG]G}|rzӧNG>=͚7C}rJ th4vݷ~zËϾeKa؈R}%Cz6@g^XB׫bŲsӹK'ѻԹ_n]0 9j$p:,<#~& 'hQ*c6F]+K'*&r-cC`%u1{QrCOx,$5k ' =IS[۷}h4K;. % Dqگ%۶kp1y{.qUW,]bۆfDxO>f0|O4ft/p*₳lgy]Ͷ+ο>ӧ+{n! AIC 6biuw^~=;,[LǏz<ۛ߫wOhB|/] H禬YƌmZg_°'Mɠm' n_|ʾDDEQ)#v@kTh}t>E_B,5 ?exZٍ7bú?wfwEmm-@yYéukcmX`f{՛L&1cLvcqM֥ ܮnެ`8X}P܇6==FSDz%Go>>㯻.7vc9P8r/f"ϴZ""*F@2S{Y z<:޿/R2Vr^G4?Rau8u13ӧPڽ+ yfMOo.hFm)6]wEm6uPT.4ݏvvM4ѮC ͚m۷75Gymyti9Uk?vDz[ƨ\0$8ڻwan]M5? 0u{v}=CQZV*_4s\sj^KԿ]&UQYYyOuAs>x߳qrK;wn 3m޴6l l[sc6V\81hcyyG[:C~} ݵS۷]CfIaڳ[ob0ۼy M6f{x\(z[L|31h-6ߨnۮʫVRG"hظ~zҌ e賆!> Ms:2· HѾ2/n% smOTvÿFNn:H;H\My}DٽFYY:̬W)ڽf_C (kO}TGPמ˗6U^j-6ߠӯq ~5hF8N [lK#J-(0Q}yMDDQWߪ\> dɥ^}KӏnC IDATax6_9_Ιt"%$IFcm.dտ۴mܑy -Q}5i$ dͲ^:^/1j2;؅|ؼi3,#董4 bΒ٘j.'=Xq E/rul""oM+*Bvۯ59 4+(^~,P49ᬞo6Ys m0kWm #R}fe+Ӧѫ:P;off͛jj<@fkkncqlٴUsߎm;4fI``0<7yH$k7KDDc4\qO?ƞ{Ű~,YO?>I]򮶶7NzYlڰ uuu.ꋯ/_oy۷nG]]Ι[RR7 ,ƑGP]UysfovM֊yÅ\)om[ck.rLUkտŦk}S.7_y ۶nC4EՁ*Z?&39x®Q[[LKM _oE:f NW\ mZZ(S{ߧ@DD _G1S&6VV}+ЯEmǔ9Oz/"_GOfrNA ij+Qqi0e NNDDDTl|wMF̚vtr,rDDDD1G'MNݎV|DDDT#""""i HG.+zJqO:o-[5߯S>93͎ />W'qUO._3;}Xf>[6WO窎|zzT,z-8{t*{< .M~iÇ3x$FcẠvS4`cAԞ]{ Q$ѮXL [lOZo&Uh\TVh]{--Г5VS^ 53_JK[2V"n>'.^2<ڣظ~:mq1غeV2u*;ҦM уzț MX}vjtk$3J{vkzԝx^c=34W}ILv*|}ZfVk3JrE.h5y!GRz1fd'*TGO}D8Fn]םu:wY瞩پqFYF3yq-pcY#x(iv p:wº5Ԧj8{وD"8'%ϝnxYǪ~whczO}F7 p/8O|fv6nب}9g" Y7`yT4$OID%p1 *e~Fi_YvKbʹr4t،?>[ (++>f3#G1i Ĝ%1o\,X=O {ܱ=vhnװh$IFcm./leN>sy}lrh2W+7f E~K.Ѣe 8z-i !Dv Du_@I5oPq- 3uRy?lA/ d_iD"|zs`ἅ?nxU:9 @ H$#5ܤ5#hBx<{%%%Xr'u{QӒH$H&G%Zh]ۡMylM<\xŘض55mC|rb&mJWMGxX}%dNg]v\Q /+_Vy:MÄP7^ ?yV|?V>dLmj.[Ϋyhbr?}y:wm5}f7DD O8!8HW`\;0/H;U[ܬ0olsGDs'HGݲeK4m"\&⨪ޏK`կL~f26ڎh x+:\>e(7snފ_Ά(%VW96ڎ!0d^Lc4{~rV|fhjsOQ8|:vlہ:=rkVϼ^8.myM"\PE!D^}W8ZC.ʛ̣lgWN&t4;rփ DMŌi31cLOȐ2D `q$Q8?ȏ DDDD撁Ljauh"y6!"""J# ,}L#1ѷu#d `CBKӨd-t0:AI9N!"""rN;b98W'DDDDDK5#OG""""mt4+7K!YODDDD5=g~2y$"""򞯙G rf$'$"""\f؜NDDD\c9 fIiFPmd2Q>=xtSeRi4DDDD$#IcHDDDD<4DDDD$z.O, hdrR'$"""ʜc($ޜ$ȞxBQQO_>i2ViT3DDDT| ?9 ݞUӹ2ߛs:[V1õ셭Vd)Qȵ셭B N#< 2W}͖0l&""BT#ߙ?6[Q!芈G""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG""""1x$""""i HG"""">"""ʮnǴ@ޭЩssiW{_w;0x$""*Bmەau=17~WV϶cʛ_mϐ G"""RZn[ h~Z[?[C]]<gj,Lvl>DDDEsfxspoIAxsйK,@ ۱IG"""pmcpm33#Qܥhߡ̓u(ËoK+#= :WF4iT<7Z'n읕p1x$""*Pmږ_czmmV G""5^GU;ղ<1D0<t/Pa`HDDT7_9KFcZXm<Zxzx^or|<*Nl&""*@;ƪU99UرpNE#QEu*  Ԕ7ף>8TŔ77dTX<Ve/q%Mŋ#Q{uXtV^t?ze]Vq bo٨{Z/>DDDn#庯= V_~ vt1$=DDDE`/"&Kce\/DDDEb#x%Gaǖg0H QWomza֦ZQ/>ێ)oǁu9}+ǐc  q˦Ά <4DDDD$#IcHDDDD<4DDDD$#IcHDDDD<4DDDD$#IcHDDDD<'@DDDD" 27M (oH& 9!JМ Z!P @A(c摈F"DareTx2)ό=DDD7B&uVe\rVr_00x$""bIt]&d P1<Q0k '##r =p<Q 0?&Hcx,QDDD7BdL܃r$G"""n'fvS򆛩zO#R[|G"""n<lsMD_ѬV_csɄԴ N-%4O>È$bBH2[m1P`xd3FN.3Ԥ]_Fn*d. FeH5C9'Y,GS!&f`,,3H"f#ow<B$d r? IDATb`c8G"IeJ ]73@3oJ \@v3ze[eJ` `č2Eyddd^eR~3)IZ $+ȰʺYVF}d}:Čx|:d\&t2Ceđ7 L؞¨XR'zAgG}1+=/b̃ L1 lgcb4 )_J &&53{dnGs˲=`ܔ?T9ɲeԡ<1'L:Q*v}2K@ !E.K6+,Fd\"Y&Ly"3vw*.7Fyy;vgZOS&;rKp2K9-4_F}̒d5 0DaˠĪ,de3_4'6_ 2a5(I$s >w(cz(k4G " }ٮhR秞AFӪk?Mgl8ߚ9a4bX:*uf 0v_`F_{F̰؎MDӲb@H&լHk1W90RL9*eD͘dIh8=SbFA` jDf'}8k"U3x[ܞާfemȶD .}A2l"/ {s&з[(#&X4礬ѥ q$lHLbI{}i3;b04*AYVL!d3#fdYIΌͪ.bV*hyבi&Yǧd@1(ӿlnrn'4\}O:*yE籩G=umWG>jtdF1c!rV8`qI?'mN=SށjV85,f2}V0SJju2g밪K|P/:C"D)#6I$B)ﳆhCφ}NŔ}f(а%DN/r=8Qa7@,=2}r_ZŐD@Ѥ1 ū"xi'(p·@Rdr~`Q ~mG@}E19zVcg=w;9u& )1{ ѕ8CQcwE|HJUꉺ}`zFǗskL헐}Κjph'Iύs 3 CjedЌ:QStjt ^y V//# 6½yx6q|hf6"Ǡ6:&YĂL8EQ&dG }h΂LFWm*Fvg\lJɮ. $VG>#^Yd\g2)\̶E cu)ƣRE<V>EH&02kXcJx5I$P&SYLXs਼yoD2[ qu$҉X64Rb>@tU2WT 4hxd+@4̸%O2dڬd4Z2Ys8d˸E%Rǎ&~` Th2I RAx[6s2;`@"B^g or^Zh·:7ןJ?M3Jk8[$K%\rlvN?:UFt55ɤx9lj~Hb )ާ5 z͜~828WM]6P2Y/`ٳk6_궓fu}`望Bk l@2<swrG[Ϭ|bռ,.nD07jF)_d~8hN#4[2 do/z^7͛Y<ދeC)<$/ >e3zFAdfA)\%˽w)\%{~쩾%jLUr` .g>3S2-o٬be˪ MTs<yi|`Sq.Y}A: Ȍ2QN2Y$s?.kjT>{{{&l j|m'_y uBEFMFWDT]$0W`'K2Ly?6e/`35U^>p3-M6f2QN3[vOϟ" 3m^b d^7QDlL93IX>#n Դ > 3uJ0";Zn9?h}4<*A\1u~#7Ly+@ l\-b`gPdsٔG\!/ m3ڿ.ԝ5 ɜFIG|{>pÎ~g2YhI< VO$mыU}sʛ((GvD&&=ĨϠї/Pj,clmH ѹF9}@0_M-ph20jWnk'Gˆ!ϕ::D M9YVܐ?HvLK&}!ϊh1S^ z0CZQAVYf.VP "5%&4KY\N9lr*#횟ʖb휫A$dM ȄДi(xn{qn2>3(/3_v-V4fl쵠iG T&]ShYdyԯ!lM Rݴ+fϵ9(]H3a6*,eS`)C2(K dMqf~Q҇+1֔] /oeE('bMD_jHVԚlu) 6 i4)*Bp}̮]4 [uV8o~: }:ʊ%n)e3 F|Q\ˌF f*M-,BE`d0Wat]@_vu"=-vn\jJ[AiQ F fGf@d74kWEe6^jp@ N%Dhkȥ6VŎ 7<&?p1vBpWFWqR'>LnV$}fĦOĠB[j_"-iMmٓgx¬A.s:|?@zG0K[9NcٸZl {+kJhiŲuR :&M?GLgm_Q==~\: Xc',Sn3Kٜ2VYMYN?ꑟ}^ی)+ӂ OE雇Vs@i+H K2 zB#e Pky}YFekǠ7)M4J`$b?~BP"$侩|*m^ 6F0)So5i/fqv̳Q& ^9 ~O9de:ڝcrCh[${5,޻^e2-۔pQӑik6N~JCj"H&~l+>H55lש*6B0ki7o}G`ĩ+@'v>R񷾿>m2em۠M_./NGYiD4[iL:RZk(}ǁ9_inwJsL<*Fkˌb'JY>}vP_ݱdןB o2NqUftl*^88G`ǐZV5V@3Y:̯VdBY fe K2X GA;q$GdB[ 2I 2eJp&2P #5ň1vUt8o9GFlg?sߦIJw(g)L~`Ofsу8S_OwNr~}de/jPWf2+ITL$N!:#VуԦaFGLdn񭏥'ׯstL!ӯ%NWvUN ť#sLLՔ&n ш*nnl|B9X5[ەy[=UY>sr=if5yN[a(]d>&yQW%no]1y}fu\i ^]g+!$c2O-2]Tjƿ3N;VO6`i7#PV_19e3)<&d%s4kjgԚFSk(׹wnʅlwv8t9TSv  D0@04l!pLPfU(W:sVvsef7[I1 sqPD ԖM;l~8@:ز:ی~+c (T0)TT=$L)sO|>v}N'zyn)u ½z:V}my雭NW_;S$^sˋ$WWh2`]*832uF5ƴ5};bxEژ. RArK-՝[s6nS='8큶Or>~? I4!ѧ{9&~cJڑohqXF85le:D0&.& _x*-mcC;X @b!>!mb_3y?l~m,˶(AG(R3tU} e݄9R~l9PSHԅǒhTxk tIIpN&c7NDiBT/?/,Xxr. Jeؘ\RHӲwd }=rKt;tc_;-"gllYrs+ϝOMh>ŏlCy}md|3 [ Ep]:tBNqBmHi{zsdO*|Jq{FM /ǗL]|Aqyawc9&dN]楑k2w٠?. H| <k'e~xh(LuXVs8HqT29muVϷ? nzC½`~i74?,e[2䴐+ Rɋ1͓0)7gDoG# ,"B!dE?mN6w9)@)&ӾŒ>|w͵Čч]H!Y|1>* 3y)V $pR]ƘZqyR+_٤I.}_OY,)^&V/ަ!\%ʳ/ @^ȓ$G.# ) Q u^C <(3!W[kG>ȲyKߵ Gq( 46WXFwVטRuTo}56CsQ>m҅ڊo+WB jB{X>~p *gЇ`:W΄ <8XZl#MM ɕzcC[! 8b vL Z >h}%~ oC[JcoA;s86;ִRNj}q +/$ ym) iBZZ;e$cⴸ.L H}]zdY( cNyP>m V^Zm1}v,)/`,]pLَe۷nqt]M};IiƯgΙSC(O7hfH)]xecpu~[ /[c+EZ sR1׬oRæܳs~F8XI, w;|Pv|4/B!+03r  kSæ|:,B<c6[|;L'i4X91֊anLہeU,E+2gc.VAqĘO 2@@t!IDAT8+p8 wyHP"~f2q6F< B;駱Rc~QApヲ*}R{ M1Q9IL壘J#:,y SM* OۘiòJ=0 s@ܴɕ^c @˷v)fB-G'ئ < -~H RW1-E Tlǣ ج4X\m1v lqRr,ł|1fZ]Zc}%ِ[U!mY[ rv?X`t!?إmVN8c9RB/5k\%—xhšݓ_n܌=QQ$+ծ9f"9VI ʙ[UHWg*@zi4q'W.~…xVPr8HW#_Z>ʼOJjd q妬i?Աa 髑ʏG>V^hKݯ+|ە ZO+ryҐ|d/v>C-&<6}4qXl:u4 !_<+%-nk;wB? Nd>٣ܛn4pg[$NKkh]LvL+݃UC6$}A[cJR.u/V םg򥬛m! iAe>J=ǴJ]ޕCz䕚{[in"C%\W]ftLd/I.YX[kep)g$&msB8.`Kkn&}`3yYm)JN8ȳ'PXWsv/9b-$*v1p [Iyȕ'@giY@ SIk<+t<^d!-PH:ƾt&-9Pm(<KkqWsـ×; r~^ax2r-1dL9C$֝y3\!hRᡥZ]AvOE +rn+Yp0q pz ׌=vpf֗O`Mm˃=$S͂]g^&1C$AAfcJ,3O7&,A¢`ew3SZ[ ϛc-Υ%#] 9_ۋ% vA>f/' S(f[YH}bpzie?]8맏c aD,Vv. iycy9̣M9He+ym`8(\d!MW R)m/n]fjz{ImmtErHX괎 cj~9^<6Y]#X(Z&S43vPӴlѺ{Go΁ۋBJ#cXbQLڂ>oL{e3vEe*i.<Ƒ#<,f\>.m#Rh>wyf{4{Jfk>} ٲ5LQ01VVWߨF "9KCk/7Ϲ11m1@j3n!7Ei8ӸZMޟ)J튙mPr1yLH G |_T=~:̎Np1acy1ɏ}F}RuݿB<%G+!bPs$H>XxaZJG`ʀIWKJc.C ˡ1. .ׂC11W*梻]hJ`#y98-υGQB|}$\}+-ΰŇB̫ò"Oj6 &E^Vu[4]5/Cw^z,i욶ěe@bIS &]<5,ym+8c6LeqeNy&C/FrXM C'bZTONzY8Ky/˳IPl5&b\n!0E;K_CNK1?UiH,<{~t䰡7ֻ-R6ށΎ u΁#d|1W@z-if51w}35OZ;] !.>'rℴKRIp g{t],jd 3H,yf/\i{Z6cng}Ӊ]^`4µZκڄ)#7ı@RVHVjtR= z_K^V56ǫ\ghNrO8CC7XBTˍ\Fp}pZo3/I.L .8: 2<9 dj !6 թz݀ ` Tx\i^6blz+j__8/2I]lN3Lq\<{|8DY;~.kSoK{\bCs؟ǁq-MMxu{ g{^Z. tɛ6!sg7XC6M{1( >k&͌淬j8EWTIU8;yޱK&\ΠBGӴᜩwR ԝe5?/#]yZP5[Vs>  {0f0C3M\:|kХ&QHȻW͢iOl)%o/ i׍Qwu6 l7'` 5<<,\Ww/`Y-W52fs+#y4gl2fNdͱ4~9U Y֟t3926p[&x!;(J9ߊ2=9y8s7/$&Y:߃^ ʙD1%1$6ɜ~umů"+]Y^7nx}sioQjͲ"y+8s@ctef^`Y9h<)?oϵUGY:VF NC13MXo}{m=|~\F]3 K_ij9ד)~bRcbGO5,π7`C׿7n/|?Ự}ljP i6o*o9IPO-ݟA{P)ʂXEcqtZg!E.ZNQNc닲& .A]onyq ymF qX۫fr0 2h{$bSA&yHʹ#'4eBKS)B Ukp֋mܸ"᧮53Xƞ&w<G}ѥx7vT2+H^Pu~Flfx| x=߅+O+Oz4x,lJۜ\dFٕ1y״<P'܁Hq_|{avhS&P҈TV f>`Oy[؁xc9Jih͍Txj4{朢]2CqI yD 6NnQӐ+9XvYhqm[`EKZ]n~YUeU̙x?<2Z9͗YU_}w๛7n>g+8;>{nTüX'm-P)!: ƃ0^%_c7FU͢Hf1y}<Í_c2uKﴧ D}Р3֧oI7q;%Le iz.m"ݴ%VP[]8.ϞbH8-EqY&QI~]6nV{tWg x\'E5ҧTVM5ܡ1?60C'lH0V Z k7VeQFc$&0&Q0vMbbvRTpC)RR<Ton<68)l5pvr+W̟;on\GMs7`=|ȚpSqcBm8p < iSMɺpΗq&|p#Q]3p;c^ȓ(C6,Ӽ੅8K'4I]ٸ!cqrOK|4B_?9N5g %]fmK3ak/'RS0/TP As&]mq k#R%/@(R3c)XhR!U8Wk"VP r~ת x6ݟ}O*4 2mz5۵3h;~OE}i=RK!1fj\zpo_#ܹKCW/>|feU˼qZ9S>6 @ޘGp'~ tsYϙ9υh[%4]ʢN~.{U'vNXzk>|LUKB\ian#xz<O㠍W>e|/Ҙ?>'λ25gDs^y?yl8`vȢs5hVW'wzg8Y|^ OnfkUtҢ&17 ڱRq96+s\fcǥ@YX=̾4fvs2ke\>B_J1w!ge4ix6Z9W38ly^pu8؛g/:MeĶ t66]0Xԧ,4{E{n x[߀@ݏ~1p tt1KH=S>|ZX]g2JX8%m|8`0"! !g+#J!?ކtRW?L/:N p_?ؘCE-sTT6 "!\d<:VVN]G2/qi,T"ؖ iRK՗~z;pz4T3vҜ-u͸J7U[u~ɹNQX4H>^㎥ %fƒ&+,LO)fB믩y9wrirǡ{ߤw/%ki[FwGou#qVBԎOi$zL=֖pL]:tKӥɹ7<-_++5TӐ!=pt1K!6L܄˒[`)){!TQi?N3Wc)|SXIENDB`calamares-extensions-3.3.12/branding/kaos_branding/000077500000000000000000000000001471772643300223305ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/kaos_branding/1.svg000066400000000000000000000736611471772643300232260ustar00rootroot00000000000000 image/svg+xml calamares-extensions-3.3.12/branding/kaos_branding/2.svg000066400000000000000000004762511471772643300232310ustar00rootroot00000000000000 image/svg+xml calamares-extensions-3.3.12/branding/kaos_branding/3.svg000066400000000000000000043674031471772643300232340ustar00rootroot00000000000000 image/svg+xml calamares-extensions-3.3.12/branding/kaos_branding/4.svg000066400000000000000000003447071471772643300232330ustar00rootroot00000000000000 image/svg+xml calamares-extensions-3.3.12/branding/kaos_branding/5.svg000066400000000000000000002670001471772643300232220ustar00rootroot00000000000000 image/svg+xml calamares-extensions-3.3.12/branding/kaos_branding/6.svg000066400000000000000000103612641471772643300232330ustar00rootroot00000000000000 image/svg+xml calamares-extensions-3.3.12/branding/kaos_branding/about.qml000066400000000000000000000060531471772643300241610ustar00rootroot00000000000000/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 2022 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is Free Software: see the License-Identifier above. * */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.3 import QtQuick.Window 2.3 ApplicationWindow { id: about visible: true width: 760 height: 400 title: qsTr("About Calamares") property var appName: "Calamares" property var appVersion: "3.3 RC" Rectangle { id: textArea anchors.fill: parent color: "#f2f2f2" Column { id: column anchors.centerIn: parent Rectangle { width: 560 height: 250 radius: 10 border.width: 0 Text { width: 400 height: 250 anchors.centerIn: parent text: qsTr("

%1


%2
for %3


Copyright 2014-2017 Teo Mrnjavac <teo@kde.org>
Copyright 2017-2022 Adriaan de Groot <groot@kde.org>
Thanks to the Calamares team and the KaOS translators team.

Calamares development is sponsored by
Blue Systems - Liberating Software." ) .arg(appName) .arg(appVersion) .arg(Branding.string(Branding.VersionedName)) onLinkActivated: Qt.openUrlExternally(link) MouseArea { anchors.fill: parent acceptedButtons: Qt.NoButton cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor } font.pointSize: 10 anchors.verticalCenterOffset: 10 anchors.horizontalCenterOffset: 40 wrapMode: Text.WordWrap } Image { id: image x: 8 y: 12 height: 100 fillMode: Image.PreserveAspectFit source: "squid.png" } } } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom icon.name: "window-close" text: qsTr("Close") hoverEnabled: true onClicked: about.close(); } } } calamares-extensions-3.3.12/branding/kaos_branding/branding.desc000066400000000000000000000022021471772643300247500ustar00rootroot00000000000000--- componentName: kaos welcomeStyleCalamares: false # Should the welcome image (productWelcome, below) be scaled # up beyond its natural size? welcomeExpandingLogo: true windowExpanding: normal windowSize: 920px,630px windowPlacement: center sidebar: qml,bottom navigation: qml,right strings: productName: KaOS shortProductName: KaOS version: 2022.08 shortVersion: KaOS versionedName: KaOS 2022.08 shortVersionedName: KaOS 2018.03 bootloaderEntryName: KaOS productUrl: https://kaosx.us/ supportUrl: https://kaosx.us/docs/ knownIssuesUrl: https://kaosx.us/pages/download/#known-issues releaseNotesUrl: https://kaosx.us/pages/release_notes donateUrl: https://kaosx.us/about/donors images: productLogo: "kaos.png" productIcon: "kaos.png" productWelcome: "languages.png" slideshow: "show.qml" slideshowAPI: 1 style: SidebarBackground: "#bdc3c7" SidebarText: "#1F1F1F" SidebarTextCurrent: "#3498DB" SidebarBackgroundCurrent: "#eff0f1" calamares-extensions-3.3.12/branding/kaos_branding/calamares-navigation.qml000066400000000000000000000176741471772643300271470ustar00rootroot00000000000000/* Sample of QML navigation. SPDX-FileCopyrightText: 2020 Adriaan de Groot SPDX-FileCopyrightText: 2021 - 2022 Anke Boersma SPDX-License-Identifier: GPL-3.0-or-later This navigation panel is for a "vertical" layout, with mouse areas for next and previous and it includes the logo plus About & Debug buttons. */ import io.calamares.ui 1.0 import io.calamares.core 1.0 import QtQuick 2.3 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 Rectangle { id: navigationBar; color: Branding.styleString( Branding.SidebarBackground ); height: parent.height; width:64; ColumnLayout { id: buttonBar anchors.fill: parent; spacing: 1 Image { Layout.topMargin: 1; Layout.bottomMargin:parent.height / 7; Layout.alignment: Qt.AlignHCenter | Qt.AlignTop id: logo; width: 62; height: width; // square source: "file:/" + Branding.imagePath(Branding.ProductLogo); sourceSize.width: width; sourceSize.height: height; } Rectangle { id: backArea Layout.fillWidth: true; Layout.preferredHeight: parent.height / 7; color: mouseBack.containsMouse ? "#e6e9ea" : "#d9dcde"; enabled: ViewManager.backEnabled; visible: ViewManager.backAndNextVisible; MouseArea { id: mouseBack anchors.fill: parent; cursorShape: Qt.PointingHandCursor hoverEnabled: true Text { anchors.centerIn: parent text: qsTr("Back") color: Branding.styleString( !backArea.enabled ? Branding.SidebarBackground : (mouseBack.containsMouse ? Branding.SidebarTextCurrent : Branding.SidebarText )); font.pointSize : 8 } Image { source: "pan-start-symbolic.svg" anchors.centerIn: parent anchors.verticalCenterOffset : 18 fillMode: Image.PreserveAspectFit height: 32 opacity: backArea.enabled ? 1 : 0.2 } onClicked: { ViewManager.back(); } } } Rectangle { id: nextArea Layout.preferredHeight: parent.height / 7; Layout.fillWidth: true color: mouseNext.containsMouse ? "#f4f5f6" : "#e6e9ea"; enabled: ViewManager.nextEnabled; visible: ViewManager.backAndNextVisible; MouseArea { id: mouseNext anchors.fill: parent; cursorShape: Qt.PointingHandCursor hoverEnabled: true Text { anchors.centerIn: parent text: qsTr("Next") color: Branding.styleString( !nextArea.enabled ? Branding.SidebarBackground : (mouseNext.containsMouse ? Branding.SidebarTextCurrent : Branding.SidebarText )); font.pointSize : 8 } Image { source: "pan-end-symbolic.svg" anchors.centerIn: parent anchors.verticalCenterOffset : 18 fillMode: Image.PreserveAspectFit height: 32 opacity: nextArea.enabled ? 1 : 0.2 } onClicked: { ViewManager.next(); } } } Rectangle { id: cancelArea height: parent.height / 7; Layout.fillWidth: true color: mouseCancel.containsMouse ? "#e6e9ea" : "#d9dcde"; /* * The ViewManager has settings -- user-controlled via the * branding component, and party based on program state -- * whether the quit button should be enabled and visible. * * QML navigation *should* follow this pattern, but can also * add other qualifications. For instance, you may have a * "finished" module that handles quit in its own way, and * want to hide the quit button then. The ViewManager has a * current step and a total count, so compare them: * * visible: ViewManager.quitVisible && ( ViewManager.currentStepIndex < ViewManager.rowCount()-1); */ enabled: ViewManager.quitEnabled; visible: ViewManager.quitVisible && ( ViewManager.currentStepIndex < ViewManager.rowCount()-1); ToolTip { width: 59 visible: mouseCancel.containsMouse timeout: 5000 delay: 1000 text: ViewManager.quitTooltip; } MouseArea { id: mouseCancel anchors.fill: parent; cursorShape: Qt.PointingHandCursor hoverEnabled: true Text { anchors.centerIn: parent text: qsTr("Cancel") color: Branding.styleString( !cancelArea.enabled ? Branding.SidebarBackground : (mouseCancel.containsMouse ? Branding.SidebarTextCurrent : Branding.SidebarText )); font.pointSize : 8 } Image { source: "draw-rectangle.svg" anchors.centerIn: parent anchors.verticalCenterOffset : 18 fillMode: Image.PreserveAspectFit height: 9 opacity: cancelArea.enabled ? 1 : 0.2 } onClicked: { ViewManager.quit(); } } } Item { Layout.fillHeight: true; } Rectangle { id: debugArea Layout.fillWidth: true; height: 35 Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom color: Branding.styleString( mouseAreaDebug.containsMouse ? Branding.SidebarBackgroundCurrent : Branding.SidebarBackground); visible: debug.enabled MouseArea { id: mouseAreaDebug anchors.fill: parent; cursorShape: Qt.PointingHandCursor hoverEnabled: true Text { anchors.centerIn: parent text: qsTr("Debug") color: Branding.styleString( mouseAreaDebug.containsMouse ? Branding.SidebarTextCurrent : Branding.SidebarBackground ); font.pointSize : 8 } onClicked: debug.toggle() } } Rectangle { id: aboutArea Layout.fillWidth: true; height: 35 Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom color: Branding.styleString( mouseAreaAbout.containsMouse ? Branding.SidebarBackgroundCurrent : Branding.SidebarBackground); visible: true MouseArea { id: mouseAreaAbout anchors.fill: parent; cursorShape: Qt.PointingHandCursor hoverEnabled: true Text { anchors.centerIn: parent text: qsTr("About") ToolTip { visible: mouseAreaAbout.containsMouse delay: 1000 text: qsTr("Info about Calamares") } color: Branding.styleString( mouseAreaAbout.containsMouse ? Branding.SidebarTextCurrent : Branding.SidebarBackgroundCurrent ); font.pointSize : 8 } property variant window; onClicked: { var component = Qt.createComponent("about.qml"); window = component.createObject(); window.show(); } } } } } calamares-extensions-3.3.12/branding/kaos_branding/calamares-sidebar.qml000066400000000000000000000047731471772643300264150ustar00rootroot00000000000000/* Sample of QML progress tree. SPDX-FileCopyrightText: 2020 Adriaan de Groot SPDX-FileCopyrightText: 2021 - 2022 Anke Boersma SPDX-License-Identifier: GPL-3.0-or-later The progress tree (actually a list) is "horizontal" in this example, with the steps going to the right. */ import io.calamares.ui 1.0 import io.calamares.core 1.0 import QtQuick 2.3 import QtQuick.Layouts 1.3 import QtQuick.Controls 2.15 Rectangle { id: sideBar; color: Branding.styleString( Branding.SidebarBackground ); height: 48; width: parent.width RowLayout { anchors.fill: parent; spacing: 2; Item { Layout.fillHeight: true; } Repeater { model: ViewManager Rectangle { Layout.leftMargin: 0; Layout.fillWidth: true; Layout.alignment: Qt.AlignTop; height: 42; radius: 0; color: Branding.styleString( index == ViewManager.currentStepIndex ? Branding.SidebarBackgroundCurrent : Branding.SidebarBackground ); Text { anchors.verticalCenter: parent.verticalCenter; anchors.horizontalCenter: parent.horizontalCenter x: parent.x + 12; color: Branding.styleString( index == ViewManager.currentStepIndex ? Branding.SidebarTextCurrent : Branding.SidebarText ); text: display; font.pointSize : index == ViewManager.currentStepIndex ? 10 : 9 } Rectangle { height: 2 width: 800 anchors.bottom: parent.bottom; border.color: Branding.styleString(ViewManager.currentStepIndex === index ? Branding.SidebarTextCurrent : (ViewManager.currentStepIndex >= index ? Branding.SidebarTextCurrent : Branding.SidebarBackgroundCurrent)) border.width: 3 Image { source: "pan-up-symbolic.svg" id: image anchors.verticalCenter: parent.verticalCenter; anchors.verticalCenterOffset : -3 x: parent.x + 35; fillMode: Image.PreserveAspectFit height: 32 visible: index == ViewManager.currentStepIndex ? true : false } } } } } } calamares-extensions-3.3.12/branding/kaos_branding/draw-rectangle.svg000066400000000000000000000002231471772643300257450ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/kaos_branding/kaos.png000066400000000000000000001473561471772643300240130ustar00rootroot00000000000000PNG  IHDR*Z pHYs B(x IDATxy]U.[\$"D:1 *5iD !UI(-N=]V!֖J j+BU/ !3S2V9{Nj{yϓGYMH:k} """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""D ;&ɀ+z( # 쟌!P^ `BA{#O'Ry(XQEh$M dH;v$BsVTkq4sEDaNDDec wSEg&DfAYЁzsJ?gm{䟡ܒPDrz"" 3b(o:IBAÙo?yl"aNDD1g\:[{;DAe'rȡh; t""W<\ dLqܶﴝF:ENޣgplgAknm!cNDDJ%0G#6-7>:Yӱ{!r 0 B+CD:}źZMT]׳ DXQ(%2+!Xkl!Bδz+N,Љ(Pmׯo@hiOXQ@Z{,]8 O/v?ұ@'""-[sܤG#R^+a;Q%cNDDk_X=8иޭw D:]};GL|3,KBTX/[U ]P SSz[޿vJF} <൶D1_"?CNPUx \@[:ɶp'&dFFux+~uGI$p$)I8 H" ' Eyp(;xš( OW1}뗮gN":>1M|*>Ev'Dd&D&d& 'Fֲ~CEݽP^#P<|P<ِuJ &1xQ(ږ h%"D:dDT.'+Ty(>C/b>OuI+Q% :mקø_p,~KH嫑U#ẍ1Hj*Q}:Ç^w`@'""LΌWIս@Y,%q. ]E*_HڎiTIO[оpd( y!D`NDTZ=E,eid HW!AΨs)'#8C89 ¹sU rUs&[wgqid됩n@"lyn "泉:CTXUek/pvY$T#S݀df*Bp|b{Va_҈*)7n)?jYFK u5!U}C YUTݣ ;B,_wQtYFIfmB=ڽz-CTXv~Dނ"tٺHn=Ol\1`;Q%M~ik̴e$I WۄlD8ɔ84zڽc\M';DDeuy g;$R'!S1m(C󀸉Om;Q@'"*3+6d[Mmg9D&|C32u[R]*2w{NB7|5$:/:7hT{ f(|q.W(Rږ*鶳H2W|d|'*oC*r@wǷm!,ZOSom 330U\aUScsOKtlm\ --|5 -HlG ʁ{l! T?) z6xSY#5O7oebTǒ磊;z,ǓQhjC*_m; ß/WA:U^Ӷmx7 D<"^W0>+ڮ_ 7r,tC [o;Qb5*:Q4z+_im)^&)#SP,]?< `,IІlM=VCgױ щU"EzQ8@ BKWJ˾VmAֽ;/M:I;F=m_dsSyk_[!OLAn" -lHǤ=Ae,)R/];r ^oI$K5wq,Sv&96VmGCLM&$mK¨ ;vbNPwW'+Np2F _b{KT|*TOD:c(j;ՇlG!"dUgz "Iӑlh jR?5ƠeɚVwx,/3Bc+5ݝ_(JVԝ?,>0ML@tn29Vug`;Q/mg㌫;)UNgE t UW5$Egri]ǜo19Oҵ`=,Q3y*(TAm Hy$-T9 o[w)^ږ]\A S`qN:OA\A՞7o2Br2 Ӑ0j\)Tڗ*>n; $sU4 N:c;  n 8 :yGmw䀕2+S._* ŹՓtxW75A5\A@4&rYNĤN 8NS=OOqÞkwf_Pr $ s ftwn(JNkpi~09xG0I#11ESӢ RMZ/EolAYS(Dd DQ|UwC*YFV;"ESYM y6s$394LBS N#DŅ菰@'ԟ2QY ^-\ژcncbiMt~@ 0 Sg6P zM 9sR{jUH6APUuZGyRɻ@ &@S.ڊ@N@5\Aq==5J }Z'Hh^q!T dqNV=3E t7-3No/Žhs dvǒlOֽRm/-k?&eG4 =a;Q԰@1pNcmg=9ddOm&DQhj;Rⱹ3,'64j^V~LYVڻ;I3ßlxΏa8O0UHflLO?(XӨ_xM\ǰx-Hχ>@XWJ <`j蓿ԥvBbk;Q X9 z`,At0$Vs*xMhok)z?Փ!]]D'=m "4"︢Eߠ(adkt#=̠t6쩉F EI"w+et`^}'T/C %JC3ž;UAô3XST=?;u!:؜9Α܁ox(a {Jq-aOJjW4W)[7u]R4)^j Jt,|VKm%hq09ᵆ:!jFTv8M@^"nISa E&ڽ˶sEWϛ7R9lIx\A/s680i@mk'9Ph3F={nv( :S]/a;'"R[ sN'F3XS } (긂Nk΀b* yFI2жtߨʒ0Lf mqߜ"1 !b 0:7^[3նؤCP%Z[9g-!C)9܇C~q%'j;m^q()cSS07LF YP>EC ;(.X+ϛ*uP[p=,< eBڐktDzS®c ?%@ͶsD0cCmׯo|@>@i,)NпSC tB͛Aq,Q td4~J=cPօlMS@VD-.'=E@xQRЏ9Ӝ Nvc:HT$3,k!Ax p޼)29HP{u)K⭐pn5$OE" c:"?|a`wRDc_xMzr+vhR s:Du+8L2){-8ps_OMsW^suD8|P Π~,).JPaqNWX9" YG\,OIvP沾vr՞7o #B, ?hԚWo\^N1ɣT×gopKrD>`;Gԩ]gBFewf'39Ա8ܝ<9:YyU%sĂwzsݡMF֤>`v$9Զ✢o,'A *HE$A*4\Akz z'A],)?ɬA>qty߂lG!h`c`጗F'Dm{:WBǭjjCa`!"c,cDsVwoCAORi^4W~n@6TaD>ɋxXT+Fؠ|HT'=; @atU9$UC|;7-q @)^- "^R俶=;?u]0!IAVJ-v">1pUgs,* t_,|Aj>N*TaT3pz =3@͜ 1떯|C32Uu~I*@O=QXm;A B:Aio^`c79$U{ݝ,ΉhL35ΟW_m;Gy ["<y6][L2n3vzW瀽uhZ<"k<SPkŕ[ܱv"*|9v2|ǎgw}8I]sTn?Ǭ<L!=$FV- DT^XȄO,mO z no%k ǟVuim<*_ l : .xH4F\E'(wCFnԷSl5=~@w=,Ή((\An;C%zO~'N5-MG9a@^#?~^nqR?4NTFW]YqqfYr@ r}) M@ᨌ`/,DTyXDŽ"n?%[L.] _5^"Cab_QP`d߮_FxQeb 9y8$ؚs`/C<:mGl!=f.H 17s{Kx.Pvp%'[04)wRiTOPoTr{m!":1` om r]![ -t]`"i逘/zFD>6nW+0DD=DoFs:@ t":jJ ėUڐgXTV~l!": xujD}[8KFmڋ\XB-rubF{uv"bqL@@Č {$GlBD4Zlq"i;CEL`nӡۂ[.?ƪ4 &c(%";^✈b+L.y0*>pGw1H˒5>Xٚ&dCB>N3'Xcm"km$A"*< :"g(w'Bդv?"Q)pK4 =šzn$K,N}ٺ7$n>-˜\[qѩ?O,#J3x-\ /s68_|$r>HR#5v""@49vJxEDڛK8s$YZDsDR)o6zn;@ rKfK`\Ӣ EH^"lPUfTo:Z/v"@0D gJ\A?LA(&wBc o -?*fE(,,УK8v/sgfGPY뛡kwO#I3'J=jϛwI63 jXs0eo1Uͧ@xn9TS}͇m!"zD%DO%t 1.[wWw„v$R?"]6̉ұ@(Od[Pt{~qM嫐W$@Mglg!"Qf XNl jj]P\81D &Muux߼t0DDQ=T0MX.D%jGxx7rkK<߄+[ܱv"aQ:vJTE#֖5]J䐯W$ F,[3AztM"wK KQ?11@Svm=3WшXG㿴F/..CkqvnyIPhj3H{uv"cA"2OL0[\fK H늻;5c@ɧpkK4= 7|z*R@===38>gkW|0'3g8'"W#ɫ ꒢1ѶWl7BS{.޸m!"*G,УvJ!#[8  I-c0&h]nv"r-.$,-f]ɢmٚـ^:'sUV7Ʀ$*9zs"qY*X l `Pk S˾~1fQ߂($,У,`.*Ġqжl[?&!FCPgϜ(\IªĂ VtD'B=mQބzg-GDD z 4wD bD*buo&Mas; :o;Q%;`)<1~tMj3\ITn;✈:G(ʃq b)_7{,=JazD!P" z e;CEJ~H>Q>7 'BrXwfqND-\A&V(6^yۖD:|$ѱ wl h ;|xL2 P=y EoaZAXGLcVX)ם穾y,T7 ;RхBDD'=PV! ".ccy&<n^߷[h)WCDEl}Јj_Pu,7N䱋 pO21<9Qp=X,HŬ{*q'FC}=]?F+=l-.*be8,-Ll獡D3YW#IJ%Azg4 w,K檑፡Qv"".]ENPi ߃FM>OTOj QER@$Kg t8'"*\A#T*P[Dc 3HTqdނ (RHSt.DrCЫXGpzރ.R=]1_hj eyFEz;m;+:񹋋Bzy6Q\6%39djTDnJ,Ή]^A7whW8"c^^⾞QXGӋTxe|h 2UuH媂TT{:-.ѴvJtQb@aTOA~B[0W OLx@7s"J(10-s VTxM@" "R o; +$r=l~k?Od hsI)w h; (nq  Zg.X|`Ý|dUuU籯9]3<>r\p(9&FnbPʇ4ȵ]َBDDqK|ߗethU 1|9G= z$yg [EK/[{B^5$29djꃊTtv"".mEPʘݶ3T?q춸 }NՄ6IX/C^5,ΉXAֿ|Ktl>oq)tZֺlYP}hC*_T8M=]BDD(cT ȡyoYFxPX>DDt,У*75<'S7t6DuJ~=v"">nq]β{H:#TD/ DD,УJu+g.0ecC{hH)n1[0v""nq*)N|}̲A*#eH L {K s""=G@*[ԅ.. f@ >pG.3L'+0DDOnU,CtoYӶdͅH"W7!D1xN}o߂lG!"x*jFDՔE#GBc7Ɖ@~װ8'""?@yZ*ƾ@oY.N*lmS"NpK~YrZlo"""XGo!`p`xm(4B; 5ݝ+=d; Ql;BEokN@ԯlh]t #E;[v}v""*?,#L 6Pħ]%[W@n/Lh*0M_xöQyba=tg Kz{#}x2G:_d;4 ۷xnI|bz2˯ݓX_Rb 6&UyI tl;?f&u%p~mq1⢞.cSAƉ tNOOlg!"-. x@vr[nOcfu6ZL 39z Q%hAw{xb ]E28}{boKÈ(T,У1ʞO 6/X>>d;_Q<{l(WG/)礣d,l #jf*")sW!+z:o* ȓǁX}m~mo^~#~ & vS|{m!"=\<ƍH -ֽI6Ǧ uHf AGBt®Glg!""bq{m(WE<;(FZQ|XћA;YQ$@;ƒ@_6L#yl3y8so%"(P#vStƮ@wN@eعE]+ "z zTΝVM݇y2ǙB\£P|v""caQ뒢)N}ޔ>P\yTp˶ H%Ytxfw~!Qu#y\P_N3w{l!"":|1>`eɿ6h xI(@L+caqNDD=&xvrm<|y? ,<:$ez}s߂} Pyvd|E? G|CY=zo_tol!"")q!sʑg$ m]`W#}I.<5VxX7?/QnԗtM.\lq9t.W1f_>M ȵ=wBDDؼ#+Ϩvri? Vn}o+Z;K:cIվA?-[Jj$U+P5 T)iI Q9 ~w =fھ0?DDvqU~sm) ^5Zל1,Gi'IM\Ϗ`O+| (x8877@e<D_^쎥Mpm'͝1l;$Q@G5]}d&d:<>ccPKn"*f OnIjӏ >Oށ'm$" 16Nח>ѻ!o=& tw0soN3j\ҡE*.Q%ܬU~+*s:U21m}ٱh.8)}I3ڿc%z~p~dT/By;EE“=Wm;%_Da"@zKr+p(5+%}ѧ \q/'E]:m@>sg[ZDQ䕬^9IҬU~ >3}pDDAcw"?* 1qLޱdMp.Nٚ0#Bjy@ftBA5?E5 tԅY6=! ;(,c-95N69j>EA#s&'>ᡒ{Ll)*ݮTg~w`DD~a?[v,lXۭWg<ڗkp"rs[ G'=CDq X踖#u? <+TFK3 3Wmz\O_wSV>鈴1*߱!Rd:/q%psXV@ZY|\{y֗6=0s=g~:۹FzxGwltq[AWR{K*[@2[3q Q oȗfxU6^9?E 2*ߵ(4+֝}=[?)4DV`Ԟ[f^f;ѱ@/Qnsq%EޕDDv*p:gY6gƆRCzxa];o} 2VF!ٺ SBt|ܓۓ=kgkl""b^.({c͸/Luc}MAvBbJ:@'^7͟zgv."L,ˈ*z Y8R G\ħW>e iFFX 1Ȩ\:l]4Z+ҟJ@ 1*w§8)P' `eg[>w C@/C2֌'}kʣxsٚFakEH.@}6ڌl)d 4޿,y?!=r2^⑃G BiRxO;n˒\)^v삩@ n. .8$vHL&,T)HeI:3~s?d;23|?|f=g{sX3k3"DO4&yne%I*-C\>k0X܎1>uH T 45 {0Q.aQPA_su5ĥ6ь@,c"(qfTz:#eNGUjD~fz?10Z C}c-:$-2AHn&}<4t4}S͈_+۾V[N@MT;I^5J j N\,fg-DRcWKGf| Dl'3aUE5B_A=7o~$i |[Nfsi5'&{GSLU=>5vcGAS!g*jj xHD$m!;E6A&~Pl`nhz~fڿ=N'IL3݀Lg40uRRPBcHCS؃*(_|*)p{0vsv3Bz|z< 3HUGX *ۮB-}|N%Il]ѥ|jXUJVū zmT zm'[|CQl %U44'uJ9A[{3M5$P]ޛC*ƒ >9SH4CnmyP>( U@x'ue0Ӊ#zrh{OVGTkf2[nJn>|:fF^Xb-2RwfO+EY01d(D݊ *Wxw")%}vu (z&6Vk< 42?=Ū}~ʷ'8ܫ+ISK;8H UÿB^ݲ9\xrW6-+DMA[*NV7s{s.TUhE]u%4_#Y`8a"k]/=cZ6~G!Is8,r(Ɯ0[>|ӱHȫP}%K}([QXK#[6;^wc(o?dm…*V{PD*={o5"BmekXWj(ܦf, %L 'Ms\;a &eBX2, XL$RzUO%P\  0Cwk|^05b?t,:@^x.r:QAVnlKw+ =,͡~wtr$j,6zwhx֙uIym b}օe0 la:2l`Bh?`^t ܷ`~&Tw{F& 3" M{w8`M]!īZ=hs)/cՍϫ ԀzVUU~U~/kG#da:-(^ O΂! ,1r.5(I| 4qǛh c4fnpF>X_^;a;$9E& DZ==$Nxozx!hJSmUTyds)/cq{GƦ}Ne8 XҰ5EHʧs$Y_Yh@Xښe%zO[0Lfg`=SX# &C H5oH>1'5I)DE?tnB MwbsOm +W PZMa +k}E]xd9#fF>g? UުpZ wb@bdMF۲&~G4!K0l\T?!4G{a$['DRi> c ';kٷe5_zc`4u>u>$J*T ϼ,Ua_ M 33Y iS@7_Ks^Al|4tlsXy4{neIR}?]s0>t,nVL3??ysUu>ٝEʙ`=xy>IʋjpʥhnwsXe-gw* @uCu7 ( W*mnܸyIR1}"] a UL\IC CCu>T媹h<_ډXcjph+ϲŌXFtUƺ4ZxoF6> odV^nz%7oh$Xd~õc(mP z\MX2@"bҰz\˲vƮvgii\w9dLHD$m:X ^Tºgd+ S(Os:pwgJ;:.}'A^rmN\"ҖpE%šE~oɹh i p ~é%IΙь,Kvd0yRկ:톆u! (&z\_/Id`p3; o*MKh7٤03^ٳ=<)x4 gԎ,4Ű ;3x' 32*tJb|a[ןuBbG*4V)oWٟ-I%wz-`^>tN4ûdM/ݲyO_u?^EBXe2jJq4Whh_䗟ޥet~UX܄׮W) :su/倁_yؼ_Na[PVe_e]]KD ! N],_)W֖tG(]Ky4 gvRђsx'W292I{a +WNk J7`dG~W~yϗWilmx8V&%tlį\r&9r>a֯[_rHŽ McDGv$/Sn|u5tvPuL1d493e:GH.AXl\]j͹1#\#DwOzSogC$́,/t%KIl2D _K{E@r*{Opn9 <}0 K 7,ZlܴQc/j6Ew9߱=ot:I2KSmb;&2 5ك6{$Pt(Zq? Ll1,[(Jaf}=T5E<+`1qi\{_z 逦̈ t#~߳$KG0 N. y}:ҫ9@ˑ}Uu@6ozUg.R&RF"1XeQ0 _X̛jJ@72Jͣ[{Q?d5[-ٟIk 3} `׾xӦ j849C\[0+gaiÀXX`˂ "D Ej UՠxPT _ckmZi"M1>~=|;-w)G#蒭c]D,bw|AhB81 s)gwho>thj~w\Ҧ@hV-CM42N2 zPiPh^?Th>&(_q0ҳzj=~̌}_Y{ƭ<{Yޛ%9k޽Hs$<,]Up15MGasJi~9ThxgvR^ t._4g˄G&0/afF*ڃh?@P%4_n9Xt{#_M\ 23b{At{g3qI LХc>| /: iVqVнNi௬'7Q5RnbqD jY^d,"e33gfX8Tp0$L=S (PjxU Ë.ABҵ_t{gۿtX_y|,>4ȊWҘTB|[Q3u^".'L#Ja֜_ Ѭ+[&GGḃ0 db#F"BUVT{S5>u "{,pݛ@uO}am]g._y-\No\wIr^m/Yp+k ^Ⲿ^/o9jnmU^,(ϋdL6T:ō9&1L8cE6>V MDp މD] UvIy\e ڳ2Woڵ,s&6Mt˳̅s^AOD3P}^S*V.nqQmNgfxq rGNe:ƺw"ae~a8CzNJ< jDj:g >q[`,KΒ 4 Na'g{AJ\xۑϡyȫ`]$IsB+r 1@TwԴqₑcP̗mֵ$G]or:;q\^rl^X'7i-!NYx` +,0b{'k.#1܇ᮉ/ uEMZ(;eb#HG&`\q6"i! 4ѨSNa6[Shn%.Kb0 /Ù8|c"u.r0'3+i¹Dx"18p@O8݀h?F^@balvR~Դqm0 /94Ϲm3O~PyD9neAoMT+3DRS5寱T\`4A,ܪ9 .O.AEBEj R@"L[)0‚g!L} "X׌PmĤS!ԴFwm{ 92#zp/ꖯj`n=sy%QZ]RA~Jc)yuoy6<37Er6^8ۜtt2N|~h TMMw[# ӀedaYCidaf03I0wB 9܇td%Tt'n`Bo-=? ,-uS~[}^t`\t+X!wt%>@@'Xڥr}eL|?p?@t~Ix˃tia|`Y%j|Ax!h < TF&#H'`u|Z W;1ͻ*Z[|˄/_1I\AfEB6ȼw*οDn[s&  PzW>b K4s( ':(I<4xbgE4_鐦FO O `Ͻe0ɪ({ נ nku諨EE} 7|>, ~=>s}N&,D\e2_NQjl,)8A"J;U%8}^?9gnuturNe*WbQ]EݛOCx'~]~2<ퟵnE}­m1>=sCP藯sޗJ ķ09dc# Ap55YY例R=89%i*"Y7AwL=H.֜T F,Zu*[W^HՠC%/T-^(j<Ő9#л74u}ݩxE&R]@VЕ|i߁( IDAT-H%,ý2m͕'F咕hh?KzU]w.RTG:3SD7wF%2Ar6z]8J){=\eY)B}uo>$gD59LH :/@j֢vITaW`@%S@yZuf6hwnغbKyB|,-;(f!őo-L._ \'YwTGwԾl"}/Hh(._e ٷU ! G_SQu|8x"Q  Lno~nr{ǜI <"%]/]xxӱȦf1(}gY Zhxw?@s?t Nq cĦ䜁C}pgz7\%"k > W!x4U'V=I$ C7Y12ĿS@Ƅ6ubF$caIq"?BE} L Dtn :6x\dR9 ?| :ys~\oʺ6c%EG L3Ϧ\X&bBO'+QVֈB{ aw")zhY|\ BLs t!⺅xւCC`"菛X^E@|-Kk`l``1DLX& 0)=l>T4} ڴ\jIeJ&RFT>…NRlld@Nϧ#@rE !/!qGuB@7Ѵ@,cAgF̌H* ebcnڰىlEeQ9HG? 3oٰu]eCʐ;eWc(|qS]q7^<3^Vv bk3\5J*yO-H:2;])/'睜 aQHŚE~YKXUâ|: URɍ~4MAگb81:؏P/PҲ۰̇ Ha~\k䡻1(G'圠'gY=O >K^ Ȗ]RAYW26Fe`P++jPT-ɹ5_Wj/\ڂ8! ~ĩ} Vyq?ɍ~4UxV3gT4-гvO p#˛BOFt}BD8ʠ0MӴzcO~1 ъ!)>Cgy U-+Lk66qRO&`!?4 ~cbpt4 6@EC+@:6bY-)nVy9ifr]* Vނyү[Qڌ\Zg%ZꟲxMB<0!rq1b˶l*D6jOVPƇ \wMg^مDVHG0%'N,oK􃼘o^usAK&Rq ̇Utf~¾ͩJb|`T#$X.c:Dto2_;:[Hr3K%(#{Ӣ\}k}#_O_\YaK PH-ɱsA5+pr^yB4O=G} seHHG1v`Y;>Dh,1t[}X$w}RI`Ƌv*~8RR$_QU+;0z26m "2AJC.Q *oickXmdҗ>wƢ $K]*ny0rlsN]pR3LxwP"BvQŌL|'LbwmHrK<|oq"BUWگ=Vƫ/nϋGw󘒻 ʈPI-9|LVCO=ik%ў0sVח]Gl|2ʯy?bW,OTTźʊH嶙VH&/.v]LV06^lPtfʝr9 5dt<,; 2 aaT ٟ"e.ӗ1pe[JIygk/>H疠+h4~YX:.^w<LR>ZsHɘKwہ0H ;ߘ@5zTu@,%EL"Z0ҬP˭)US͂:!&VHep"a0}"@@5*LSqDR,={Pt-HQgMHGʦ =oKu!{#@&蒭T_Tz/&.jeAii4όc7tO&? |%;=]1y7Nccv㑡pʠJJR@$E0S%AT2:eQ2YSYJgIb|UKVz7\- ]'N` I:lW{%NǑ_)*-lvW*]]QMGG0>H҉vY-McgY} T]g?#g8T4.EMz2H"GT:zаt̐YeO}ݹK#d d;aYtLɩfm/u,[:CO6Gc疊0p^%@a;ݘC f|j h^[߆-zz.6%d9B$oI?u^%W"rŪTWxM> /ng  " #"1Ơ"`4aQDaeTȍokM 7޶} @1εIo vSqfMj*tŌN-?,SU/A`'ȌǿWHL%Gn%Vf hf cE] #:'y'zUVd cBLLJ)$"cKbEx]cdF*0v,Lra֝^7v3WKp;aEuڼkqHU[>o{6%9L&3Ϣ>y3?t(9,l oV"ox'zĵw2-_WC8\S1QDE1EP %† ZXǻSNmoXc!g0s7}b"s;+++ܴOv3W͟w@DO#5܇ T4_/3.QdedS3@!!E&cF /;K.D26ku6mMco~ݿTє 8[@'('\l'e(G%(Es(VT(kȷRkKRQE]=O A}OѾ-|ȶ/ m'̃ NQNUAz/\S6 :adR07pUݏs ("|ȿfV&>/ L:Vh@`,DY)Hw QQb%JBDDET(2ȿ-P,7m:X3 Rb+;7i\sb뜹Z{Ve}83um]^}|UHON̘Ldͷ_B&tQ`g݅+e6l%$t<|v=L0>٤nyG]nӜi _*fPmsnvm}ǽXĸTc9X7!1RqcT>),;Tt%/Br5Xf"Ie}FVul Vaxggd&ƊuB$yؘ%xtnT4ڮzNQC=UTC5D*fh^usOʝܨ"9nwqa]2Ʌ.A%z& 7}dӵ^EKSîs情 r0Bb0^Pe)>@̾_UGrL%WpqFfoF:t]6l}Cxz"=`V&Nѡ0)[xwuú?5fұQy%2oj%[6l0Kp}:;lrYA]ʝ*߅Os̈9\mֲu:u|(L?FKr43/R˧kàeG6l}uq#$t5F~t3x.e."b+t/lɖ~GAQa]tj&"02lQ\wWEY-}d.W 0 u}y3iV8 =vX*}۾FL _9 )/9¼@r$@9Eht)]Dd.[;㘉H̚+>ގX2@is Ю^ p,oY{0.N/r~uvYnBgd.k'L9lN.,I(ᒑb lb[F7\_KG;?V:͗Bvo)>νtwvᆍ[>绽[\M&<~W/8t8=e.bK2bP*u2[TsSj>aFadP5oYmFЗ<;eùwųghN,՛/R9  :3c\`XNqv֡υe}m)ڿ#Ky+ ;1Ͱ"Nr/qWMN}EUf\ 3疩%['&!h:arUϼ낹G*LХae=_h?Y\]:PSPt!iѰԧxoX63޻CpqWZLDuS^oCGgF!:75T'V&6N1:1o)L0qQoff/*-Uy)eOf t~?q:(;KE%i X[\>AT[e7QP-d.#;"vdQz]K2]&m{=W7>ArRPgkjZʗg`dfB޴⫊S8IcY3O(y!nmKHeG]A@nK-"=>SNYuoʧTr&-= P*8iPJ `R^ZV̈́n|:3rH@SL.y!zCSdF TvFcc};i2oZiW,RY z`F[Zc$KG:N2_ 1<E! P{:@m3oغ{Q^JJ&RY %+N̾QT|MH.w^ hA']=Xwȱ=)EGG^|{=Ksf̐ w>=sO-ff~I_#8pL g?nغ-I%Soli8J< t %Bk1.z*״%:/ImꪥѵkJmc\̈́;N9Kqznэ)~dy5'ʥxGJ^~G"$bm{NR]*[c;|Pʬa%fzˤ TJj:D--Woog|_'`΋}7~`M?J )WFfSg3;R}$E?كs=P{""ך~1 փ]i<{5̿B0~ Gi ~[ኳroؑ6OxվMO8md9bo L轚^ Jt{ȿpv ݸ@0ס3΋XXc|(Y nXx]e:'! Fpᇪ x~C#O` Tx_7_0a-,R(Od@ *{WGtڟ 3k:S TXSDQ%>{t"o_ e&LUھg`)# H)iLgoX?xDbD>_V&\e|`g sbÆo(]ȘAnbCI~!6\q`gAWcACcҹ/c%6mᕂ )xk "KGt4_^ߧƏ~\ hBHyCB3D)f 8p%PZ$n }ͮFc>lw !QHyGzW2fDpSGCqA rRpnų{jAH.J3v?fEş.ogt}Mf/tY}q|y WVu%`jwLvC72(  "LRX_Snⴵ:Nbe̥gypR Ę4zq}CD7hcm$W/l& QA[0^7c9+0b\#p(EL^Q'n@me鎺L?i †߅#uK/ҕqr<r?o]$guh=yhJ01!w@EUmw2KFe lӿMn@)):쬑 C7Ƀ~^֠0{)5H~}o$̡E_jCynR {V^ۅkͩ$AIwv=V7t8bQ;9b\kFLl*n 5>074[GP~IԟBA/.,h֦|/AX0͋t ng" HZr #92#(w 𦒰{+˶zI=6\jJ+JKk+KN}&kFiCBWj/}mҜF**()\|5Ss89ףAa:j.IEj} fѾzDȈ|g VEa/=y?k)?0԰AĕEU\34[zAI٢k.pes; MsD3)q.T<o0'!C]&[ v-hzѾ8nqby|̏D״ ,xq,(aZ\s6c$a yh.|tOS~yn$\)tP?ҸL^[mFK~%([EAv-"!R`P` HD?(7(;oNYq puԯ/i۸?c5v~\c F;=ᶛu;M dt~q^ejGlJ@9|[#E^㺅S=`뮘Ɣ䇕Hz-Oo{e领{2}"%o>®?g&O 7}fMٚųÛJW+G㉂J Cusu&<-;tűAdiPð6M,(ϡH.& ׁk;FtPY6ڊ6J ^ DxhUU9*`mV_MI0~ Oblk%e-.;F,=A?N;z%*Z>+ZFۼIiss<|_]L,/T]X۠w5G.s9MM,đ_Ά= ;A@Ex+ҘЮퟱ;xv6~`mC Nbгa6wpIIYWqumHjlW|UH.&gy?b-փus!gq1x:ۻa5ඣN HMi3(XtÉgQq#֖t3l-pF@lo1TW^w?MaEA<^=w (X n+;G>_h">IOCm!у/$Rq^2wp-(gPj\Zu \vwŸ?nZP\נsԠ_~֯LQw?8$bbz"HHp#^ZĄKġ3Gt}P*=V9]TDAK:jV?:ȋX㶲޺Fĸ0ƨg8É ) "/ 3>A?֌=v$9V3z67(mNv&#Y4P25DŽ_h'rivhuUűl`;JڍΎÛJ¾HkC-A#8MtIńڮcNc*RA#-Cu=v** k1z){æG8Ӭ"eݙ[ >S+bw\\4.">.+w0͗<:SP;@:o}4k|PP^髷kw@vkV֫)mq8|B}eS %DU{랒߳ $B@Et*]ZB1?2 4DA>wA7QuH (W**Z˫'_|$6\qL^V|4G 5_!bCt!xحv)$q]J,0#y(Sozh  ~Msc9e xpZ_`Mut9TEOLK9'%IЅT*Xo"x :ytr T'(36Q;<m&cK 0j]ҴO۝Ga\&&$B ŊkbrE5]\&LOx(\ }NwG%fhS*,=ȄLWcG2lLIr$$ 4F&^#eKc(t ɺ T@]#<1Awf0pBrcU/ZS5!SP@_0umBHCY/=omN,-$B{aC;8|ӹy+'b=G"0@#i=%5V"+lυUz$qqE#Bog8aJ@Tl-ҝ5'Oa!zϜhD<]Q u=ƣ?ZbkN-eq&~#bQ ʷA Ttb' R\&zv+LXlOEI~=Fĕ3"^uAbhG(d|uD|ٹbv=pѻZEMoix#O}HMQhI9),zq lS{{Ӵ+nj@b=>"+5Ն/"={m3{`ёn8֨m8Fj|(&VU-=H1pX])ӊ\a#*i:;VS$-bvs j8iPZC{Y IЅK7aG1ROt#5ݶJ2a?AshjitC }Q1vz(YΦ>Bzc2ҕm, 8$ h^U 3b26X\]ؿٟZB84&E%NxjDx#{j+9Vc[wZfsXϓ$Bm9z3Չ|ED88$ 0t[T-&1`Qyf~x_+Ba~~9yx\c,w /5'µ z9mC0e43^ grM!Wq¹yLV11pퟱ;Hԯ/?嵛Kb-IC$+IЅUEA:/7`a0=J\ٵ` uE#8zn8=r:JS|G;H07#xnci$JD~і<$]'M- z]0pO=̚ǘ̚_)UNw,#11:`Ng(,݁@ i;XqR T3% ˌk~uG Z6$$B{'v^`b"#28)q X5:t3O᪪"4Ν Zݴni(Q `YOI-Pv Dt!"`(fj >~1g(GcJ*q')s1gݒy)h'#ǔ 2^1e"$A"ml`Җ c`ۛDrhr_D7Ԓ戇DC2^ xZɄA /ԡ_gE E _PhZ#qeBs}x㧾qm/2fh?/ȌE]vr3:^9c}t`{ 'La;([tkcZKB`Za:d4=sD$)IЅB[FϐS`M&1b5ԱJs2Ӱw '3).nj Nڶ+& Fxou{XAG>V5'ݜb)oIv *ohv@kÐ?3hX͙  cq)SdtöP\c*a/Re?3(6͙:mS/4S ֧P9WX2 IDATx¬D|]>{ffrAQ&+Oiv(c%A@ :NH&3QQ7 >gUMI}=V >dV ;y3N4~bm=y2'8# Dt!b{?E| U GJ 6O}ߤ͜P7IЅ *x6g-C\>UAi;Cdn\ 1#)YjD$^]_A 7зRWYW+&:uIɚ6m>&ڰde~ KP c1z`|tN)-Scqx5'f$̧H:b庅EV9i9ew9 cG l|ԣ>,HBfw09(At\ےnbh 8vq"&"&Z5V/7XHrͻ5cN&@t!,}O3p Sza~'dIV@KW{؏NÝ }+,XU5kAi@fiǵs͛P$ IЅʎîG6`J"$BAbT9.>IN~Q˃i3((Rx9QA㉦uKX.`0NÝbL_9H a/yEuZ#7h3ƸYT) #3=No2g7G^fwaҲ˫5T SJ5܌jN*$Bج{x<03xSi`6o.sx̥H71 Sm>gd;oӥ SL G֮'B3h-X`ΔtO)2}^ŸͥgSz a?V3zс2f;= Qb }Q͞4k~I(QQ~?B"p"kKxeus:HX _5.0IÖ\Qm^~;~7וÓXUN"hHRhBDqm|=/#˩?}nk#U8iz#-f6AdLIЅmO6o 4" R?)Um`IӐ>(YkҙuY߲1әfݶӧ΀wD% qٻcZbewh_dB%ХEUG9y; I+F9k2 j}͞mtMX$.IЅ3mjx;ӊVUvPJ6הOVD@(%k2ҧHz1_Paѣv/7x~7^pz>Ŵ3,=d+$Běʡh?Oʚv^74׽9Sh;]u67k 恴qtqfæůH\`[o]Mg{:m Esbr(~uߘ>Hx ߶C " 5\\Db{, OX01JG;^Vn6+-93?;Ŵ9-Gu%Ke)޺7 u~ԶXH)d̅r~(Z*' q'F^\cd/,0aVzģEEO,A?z[90zȀe꼱3ڍv/n{a@wkGMo$Dp.$Zkg5hr$A"<{/xb[!e.INcFFݕ kqDnn07) Ys:)?+ډ>{yKk&~-5AO1=]Lzf]e" H.D|c3 ~]1f0ph_ON]t6 tz&"M)@ΌS9ߩ\R X. i0zSZnYSb5}t\-=X$A"5t_+U`..Rn,40a9-1֑:٘tϤ9Sґ3k>RؿNBҥM9p֦w0z[Tkk\)H͏ļf")H.Dh{f[L|H_cf`Cpj k/ŪGsu;&s+!#o& NpdqgВg7l,}ގ3oٷTsjo{눽y'cfrw.@,A̅H 9_v e_W ZW[h"]^tQ9ݘ44P /^b=o?pWxX/(nqi;:|}m~f 䘴S<k) V׍N=`,vPGr8L]t=C1]42f"]C|sҵ8ν.RS6$9׃h}<% مb`,\JvЅH0YzɄ! όӻͷ]eW| 7T1a׍@ 6Fm@洓౨T׍#u>nwYtό Yw|0Cs IJ^A_M pz*<Ë?ٵ|nE&]b"jރ.,jJ&l PXPF9" EM9fOAO!B LM M}WJrNEW 4@Dٽ_5ǎD(޹5?*N8F[] Xse\**/5, #;B$/\w~͑w,hωQeR:A4 =qE;l4 {b9 3ՆF}#6LLAueE|b[  5눹7F“ j?Sr|$A"|ᚭ3BɟRЄE< Bב:"\JT8])<|N3Nut"|=iiDwhgͥmǘi> ˘MctZ9S>1NLeEDr!XkaRq2;tl \WޜkhsxduMC#Oə&Asoꌥ&x OAYh U07ND;- ,{v3^$zaâ $}w&wik8e\ՆCaA iӑ;=+1e\DFvЅHp_X: N'ɟlst#_:HL śh{ۏr81i}h+= fn }vy](e,h1Xc tC_kEэ1)K1G'u"b .K{9yyo(;6af*|&t_bA9u\O.;b}םX޼tE/Bѕ`ct5DoJi, WjF#ںlu_H$3IЅH.xr e'_OYLx wƦ"1}6R2&hLxsk O33zzwc2Mq*1_Х B}VT _W|+so L?\o/T\`s-Ht Dp |+΂kj/cw\[jC^d{ *B4: k;#'w4͙ +QypjK$B$O/: CʛݧRsrY$_p׻jzئ">I>;-ƨ"E~o2/Ӄ<1}Y~ :3V@liȟ wZE+{L v},qnqOt!Pל`6ӛ6w^u1 ,Z3d ~z؈St2AZ3U?h? Nl`bn' 0E*\M2c7̞pYFbDDTd̅À0PccK$A"I\bƟSg}дsGXkᖚ2s>ߋ{lq q G8JZ4kHio°C"}]:Ҁ@ EF ҬYpPh{YYPL$ rtOݰih '>ps:&|k=->RoWH#b١;pU6擛ߙ$+8!!'`2GJCHɲl;XaB+5rl>xݱ͜4fR'M3%ݮFD@9Wzl\`yA6$?z[ehܕIN49g&u$"$A"ɥY(4cQBz@}*!#$tOkĮ'J%NH 65L8cFg jCDב:ҙeۋ"peA'.]6ֺEDo?&;.ҲXyIJeڏpy>ƨFpuՕc yݼ'|9&eD :Z@ogي}8R::އ#.)9^Β34;> z]ze^XLiq"Ӳ wZ qˮlQHE˫k7/jB/D8lBaOn/9BkzKG*3=֭f Y=lórzdN'c#. ڊ9C}pCex(241qI.ߟp6Eǡ6G5ÛJ5ˠ𡷭 m 0Z'cSj])4GhH.u0ۣO1Il:ָ-íQ~;[D}XWȂ>Վ`78>?R\d+ah;{ ʷ rQ~s_1B!lswgftMaehtc:ν*pEЃtpwj&\Kʏatӛ~Ǩpk46\q f qL\~!ǹK xEփh9/~MϏ5茇HuA+-+rtӎ@_}r8,SS>wh9cr U:gv=1M!$AB1=6v0ih}A&>"^\aoY], @"ߋ`_e'Õr ;nS2?C˶z; 5lZJb8IЅBO$ o'?0q fC qg=]60?~R@ 4h'4X2r@Yaw8pљ:Ojח>M~ ![3F0jEgwHcpXIDATY]חzwncHAdRXR͑qCnuݜ"y ڨ%JO!Q[e߷  I3tueW47xoY%gfNVU-cE+;K]!ĸξ Iocy 1I$~2vͮdW3]f **⳯P$ABf*޶V#ﶃxO? Ǝq|ͥ7WPOěT@_ FU2sEu lUVU.ˤ$B!"p_v4LvѠ &ȳ u.m`" l鮍odEUK@@V.A aIЅBDX<|¾v ?[<hߦ!uXmA83m7|7<ϚբP:a5IЅBDj>h?>RGc!ImN=_^ځ}d>kA|YW)k;͚hU&TFgE(%OBAt!Xsm;0^5nذPYӉy0 [\/_3լy<+"̴~?5 BӜ&OոA|aXTD?9חCr K BH1W|K KzBĊ$B!bjas8::T36ظawyϹW0Ъ1x'ROl f~x p?lZ4/BXMt!17ߜx%O)D2t `2ҋd+Lןz})1>n$Z)^~ɸ~Òb" BKNqhzv] vT(G:I暳X0ps$R~72ˆWH+Nnj5U p{9]F_a!"I.RE~tz٘dw,̴Ie墦hg_Ǖ8U' : iiBa ~yFμUJ1øo|u]b a'IЅBXhyU6\%J:0T'k7-&] W@.Ør8rAEx 4M 4&Ũ7:髪.P {lJ_6'$ABaՏ|Ym8XLr O+']mgŢWV۱?`=`zj?ݻˊ&: ,z})v}6'DLI.VSozh+mkvb& GН81%UUsAqc:!! BPz5 K "{,.\^N |\^fҿZ֒]!D[Y=١'`5>Α 0A?56ugӺGWkEs .(or%`;}!' B3)]o!ޫZ얠e@:k#>ѻJl?e[ʛEeL 1'u ·1B)~ !C?A v26g&C8 60`a02PÆjTͬ99+ G"&|xϞ^ D)D|]!D+ZSu!%v2w0= cW@l1)\M&` 32 P {+"n0EMB ەlב)4PO~6B7^"Ekk_񤔲Nt! po x_zIuvx~-T_…E跢<Ɗկ_V"H.",Xy$%Z ㊏3`bESWj+U}ru쭩18|6.~>=$gRy9O$_Vb|uթ38KUËI??'u9_Tq]ߦ@;m\=YsSy>ɣSgK|ӕφ70==+'S}},*YTeczX/7m}qp?OԸJ{=$O%y`Iv;!Jmu׵q1k[綒}n&Q]k6]t#5!NNϫk/,sNv*Iev߷\<ծc@~WX/EIENDB`calamares-extensions-3.3.12/branding/kaos_branding/lang/000077500000000000000000000000001471772643300232515ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/kaos_branding/lang/CMakeLists.txt000066400000000000000000000007301471772643300260110ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # foreach( lang ast ca cs de en es es_AR fr hu id_ID nl_NL pl pt_BR pt_PT ro_RO ru sr_RS tr_TR zh_CN ) list( APPEND TS_FILES "${CMAKE_CURRENT_SOURCE_DIR}/calamares-${COMPONENT_NAME}_${lang}.ts" ) endforeach() qt5_add_translation( QM_FILES ${TS_FILES} ) add_custom_target( translations ALL DEPENDS ${QM_FILES} ) install( FILES ${QM_FILES} DESTINATION share/calamares/branding/${COMPONENT_NAME}/lang ) calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_ar.ts000066400000000000000000000055601471772643300310400ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> هنا سيبدأ تثبيت KaOS الفعليّ.<br/>استخدم <b>زرّ الفأرة</b> الأيسر للانتقال إلى الشّريحة التّالية، والأيمن للسّابقة.<br/>بعد إنشاء إعداد القرص الذي اخترته في أوّل 10% <br/>نسخ ISO كاملًا سيأخذ أطول فترة تثبيت <br/>وسيعمل حتّى حواليّ 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> بعد أن يُنسخ ISO، ستعمل وحدات ما بعد التّثبيت ال‍ 25.<br/>هذا يشمل إعدادات الخيارات الخاصّة بالمستخدم، <br/>وإزالة حزم اللازمة للجلسة الحيّة فقط<br/>وضبط إعداد العتاد.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> الحزمة المكتبيّة الافتراضيّة هي كاليجرا.<br/>ليبر أوفيس متوفّر في المستودعات.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> For package management Octopi is the GUI application.<br/> May using KaOS be a pleasant experience for you. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_ast.ts000066400000000000000000000060561471772643300312260ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Equí ye u entamará la instalación actual de KaOS.<br/>Usa'l <b>botón esquierdu del mur</b> pa dir a la dispositiva siguiente,<br/>el drechu pa dir a la anterior.<br/>Dempués de crear la to configuración de discos escoyida nel primer 10%, <br/>la copia completa de la ISO ye lo que más tardará nesta fas d'instalación <br/> y executaráse fasta aproximadaménte'l 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Dempués de copiase la ISO executaránse 25 módulos de post-instalación.<br/> Esto inclúi la configuración d'opciones específiques del usuariu, <br/>desaniciu de los paquetes de la sesión Live<br/>y l'axuste de la configuración del hardware.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> La suit por defeutu ye Calligra.<br/>LibreOffice ta disponible nos repositorios. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Les aplicaciones d'internet específiques de QT/KDE inclúin el restolador <br/>web Qupzilla y kde-telepathy pa charres y mensaxería nel intre. <br/> For package management Octopi is the GUI application.<br/> L'aplicación pa la xestión de paquetes ye Octopi.<br/> May using KaOS be a pleasant experience for you. Que l'usu de KaOS sía una esperiencia prestosa pa tigo calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_ca.ts000066400000000000000000000061501471772643300310150ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Aquí començarà realment la instal·lació del KaOS.<br/>Useu el botó de <b>l'esquerra del ratolí</b> per anar a la diapositiva següent i el de la dreta per a l'anterior.<br/>Després de la creació de la configuració del disc que heu escollit durant el primer 10 %, <br/> la còpia sencera de la imatge ISO ocuparà la fase més llarga de la instal·lació <br/> i durarà aproximadament el 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Després que s'hagi copiat la imatge ISO, s'executaran 25 mòduls de postinstal·lació.<br/>Això inclou l'establiment de les opcions específiques de l'usuari <br/>removing Live Session only packages<br/>i la configuració del maquinari.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> El conjunt d'aplicacions d'ofimàtica per defecte és el Calligra.<br/>El LibreOffice està disponible als repositoris. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Les aplicacions específiques d'Internet de Qt/KDE inclouen el navegador web Qupzilla <br/>i el kde-telepathy per a xat i missatgeria instantània. <br/> For package management Octopi is the GUI application.<br/> Per a la gestió de paquets l'aplicació gràfica és l'Octopi. May using KaOS be a pleasant experience for you. Que usar el KaOS sigui una bona experiència! calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_cs.ts000066400000000000000000000056101471772643300310370ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Zde začíná proces instalace KaOS.<br/>Použijte levé <b>tlačítko myši</b> pro přechod na další snímek, pravé pro předchozí.<br/>Po vytvoření vámi vybraného disku v prvních 10 %<br/>zabere fáze kopírování celého ISO nejdelší dobu<br/> a potrvá přibližně do 30 %. After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Jakmile je ISO zkopírováno, spustí se na 25 po-instalačních modulů. Ty obsahují specifická uživatelská nastavení, <br/>odstraní balíčky živého sezení (Live)<br/> a přizpůsobí nastavení hardwaru. The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Výchozí kancelářský balík je Calligra.<br/>LibreOffice je dostupný ve skladištích. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> V Qt/KDE jsou obsaženy aplikace zaměřené na internet, jako webový prohlížeč Qupzilla a kde-telepathy pro vedení rozhovorů a okamžitou výměnu zpráv. For package management Octopi is the GUI application.<br/> Obrazovým rozhraním ku správě balíčků je Octopi.<br/> May using KaOS be a pleasant experience for you. Věříme, že práce s KaOS pro vás bude příjemnou zkušeností. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_de.ts000066400000000000000000000057341471772643300310310ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Die faktische Installation von KaOS beginnt nun. <br/>Verwende die linke <b> Maustaste, um auf die nächste Seite dieser Vorführung zu kommen, sowie die rechte, um einen Schritt zurückzugelangen. <br/> Nachdem die Partitionierung bei 10 % eingerichtet ist, <br/>wird der Kopiervorgang dieser ISO die längste Phase der Installation einnehmen, welcher bei rund 30% des Gesamtfortschritts fertig gestellt ist. After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Nachdem die ISO erfolgreich kopiert ist, werden rund 25 Module ausgeführt.<br/> Diese inkludieren, das setzen spezifischer Anwender Optionen, <br/> das entfernen der speziellen Live Programme und die Einrichtung deiner Hardware. The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Das Standard-Office-Paket ist Calligra.<br/>LibreOffice ist in den Repositorien verfügbar. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Qt/KDE spezifische Anwendungen umfassen den Qupzilla Webbrowser <br/> sowie KDE Telepathy für Chat und Kurznachrichten. For package management Octopi is the GUI application.<br/> Octopi ist die grafische Lösung für deine Softwareverwaltung. May using KaOS be a pleasant experience for you. Möge die Verwendung von KaOS eine angenehme Erfahrung für dich sein. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_en.ts000066400000000000000000000041141471772643300310320ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> For package management Octopi is the GUI application.<br/> May using KaOS be a pleasant experience for you. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_es.ts000066400000000000000000000060311471772643300310370ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Aquí comienza la instalación de KaOS actual.<br/>Use <b>el botón izquierdo del mouse</b> para ir a la siguiente diapositiva, el derecho para la anterior.<br/>Luego de crearse la configuración de disco elegida durante el 10 % inicial, <br/>la copia completa de la ISO será lo más largo de esta fase de la <br/>y se hará hasta aproximadamente el 30 %.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Luego de copiarse la ISO se ejecutarán unos 25 módulos de post-instalacion.<br/>Esto incluye la configuración de las opciones específicas de usuario.<br/>removiendo sólo los paquetes de la Sesión Live<br/>y ajustando la configuración del hardware.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> La Suite de Oficina por defecto es Calligra.<br/>LibreOffice se encuentra disponible en los repositorios.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Las aplicaciones Qt/KDE específicas para internet inclyen el navegador web Quzilla <br/>y kde-telepathy para chat y mensajería instantánea. <br/> For package management Octopi is the GUI application.<br/> Octopi es la aplicación GUI para la administración de paquetes.<br/> May using KaOS be a pleasant experience for you. Que el uso de KaOS sea una experiencia placentera para Ud. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_es_AR.ts000066400000000000000000000060341471772643300314240ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Aquí comienza la instalación de KaOS actual.<br/>Use <b>el botón izquierdo del mouse</b> para ir a la siguiente diapositiva, el derecho para la anterior.<br/>Luego de crearse la configuración de disco elegida durante el 10 % inicial, <br/>la copia completa de la ISO será lo más largo de esta fase de la <br/>y se hará hasta aproximadamente el 30 %.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Luego de copiarse la ISO se ejecutarán unos 25 módulos de post-instalacion.<br/>Esto incluye la configuración de las opciones específicas de usuario.<br/>removiendo sólo los paquetes de la Sesión Live<br/>y ajustando la configuración del hardware.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> La Suite de Oficina por defecto es Calligra.<br/>LibreOffice se encuentra disponible en los repositorios.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Las aplicaciones Qt/KDE específicas para internet inclyen el navegador web Quzilla <br/>y kde-telepathy para chat y mensajería instantánea. <br/> For package management Octopi is the GUI application.<br/> Octopi es la aplicación GUI para la administración de paquetes.<br/> May using KaOS be a pleasant experience for you. Que el uso de KaOS sea una experiencia placentera para Ud. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_fr.ts000066400000000000000000000060771471772643300310510ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> L’installation de KaOS va commencer à partir d’ici.<br/>Veuillez utiliser le <b>bouton gauche de la souris</b> pour passer à la diapositive suivante, bouton droit pour la précédente.<br/>Une fois les disques choisis créés dans les premier 10%,<br/> la copie de toute l’ISO sera la phase la plus longue de l’installation<br/> et durera jusqu’à environ 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Une fois l’ISO copiée, près de 25 modules post-installation seront exécutés.<br/>Cela comprend la configuration d’options utilisateur spécifiques,<br/>la suppression des paquets uniquement utilisés pour la session Live<br/>et la configuration des paramètres matériels.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> La suite Office par défaut est Calligra.<br/>LibreOffice est disponible dans les dépôts.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Parmi les applications internet spécifiquement Qt/KDE, on peut noter le navigateur QupZilla <br/>et la messagerie instantanée et client chat kde-telepathy.<br/> For package management Octopi is the GUI application.<br/> Octopi est l’interface graphique pour la gestion de paquets.<br/> May using KaOS be a pleasant experience for you. En espérant que KaOS vous soit une expérience agréable. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_hu.ts000066400000000000000000000057401471772643300310520ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Elkezdődik a KaOS tényleges telepítése. A következő oldalra lépéshez <br/>használja a bal<b>egérgombot</b>, a jobbat az előző oldalhoz. <br/>Miután kiválasztotta a megfelelő lemez beállítást az első 10 %-ban,<br/>elkezdődik a a leghosszabb folyamat a telepítés folyamán, az ISO átmásolása, ami nagyából 30%-ig tart. After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Az ISO másolása után lefut 25 telepítés utáni modul.<br/>Ide tartozik a felhasználó specifikus lehetőségek beállítása, <br/>a Live Session csomagok eltávolítása<br/> és a hardver telepítés kiigazítása. The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Az alapértelmezett irodai programcsomag a Calligra viszont<br/>a LibreOffice is elérhető a tárolókban.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> A Qt/KDE specifikus internetes alkalmazás a Qupzilla böngésző.<br/> A kde-telepathy alkalmazást használhatjuk chat és azonnali üzenetküldéshez. For package management Octopi is the GUI application.<br/> A csomagkezelő alkalmazás az Octopi amivel számos csomag közül lehet válogatni.<br/> May using KaOS be a pleasant experience for you. A KaOS használata kellemes élmény lesz a számodra. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_id_ID.ts000066400000000000000000000057241471772643300314100ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Di sini memasang KaOS yang sebenarnya akan mulai.<br/> Gunakan <b>tombol mouse</br> kiri untuk pergi ke slide berikutnya, kanan untuk sebelumnya.<br/>Setelah membuat persiapan disk yang kamu pilih dalam 10% pertama <br/>penyalinan penuh ISO akan memakan waktu yang lama bagi fase pasang ini <br/>dan akan berlangsung sampai sekitar 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Setelah ISO tersebut disalin sekira 25 pasca pasang modul akan berjalan.<br/> Ini termasuk pilihan setelan spesifik pengguna,<br/> menghapus paket Sesi Live saja<br/> dan menyesuaikan persiapan perangkat keras.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Secara baku Rangkaian Perkantoran adalah Calligra.<br/>LibreOffice telah tersedia di repositori. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Aplikasi internet khusus Qt/KDE termasuk penjelajah web Qupzilla <br/>dan Instant Messaging dan kde-telepathy untuk chating. <br/> For package management Octopi is the GUI application.<br/> Untuk pengelolaan paket Octopi adalah aplikasi Antarmuka Pengguna Grafis.<br/> May using KaOS be a pleasant experience for you. Mungkin menggunakan KaOS menjadi pengalaman yang menyenangkan bagimu. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_nl_NL.ts000066400000000000000000000057251471772643300314430ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Hier begint de feitelijk installatie van KaOS.<br>Gebruik de linker <b>muis knop</b> om naar de volgende slide te gaan, rechter om terug te gaan.<br>Na het maken van de door u gekozen schijf setup in de eerste 10%<br>het volledig copieren van de ISO neemt de langste tijd in beslag van deze installatie fase <br> en loopt tot ongeveer 30%.<br> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Nadat de iso is gekopieerd ongeveer 25 post-installatie modules zullen worden uitgevoerd.<br/>Dit omvat instelling van gebruiker specifieke opties, <br/>verwijderen van Live Sessie exclusieve pakketten <br/> en het aanpassen van de hardware setup. <br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> De standaard Office Suite is Calligra.<br>Libreoffice is beschikbaar in de repositories.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Qt / KDE specifieke internet toepassingen omvat de Qupzilla web-browser <br/> en kde-telepathie voor chat en Instant Messaging. <br/> For package management Octopi is the GUI application.<br/> Voor pakketbeheer Octopi is de GUI applicatie.<br/> May using KaOS be a pleasant experience for you. Mag het gebruiken van KaOS een aangename ervaring voor je zijn. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_pl.ts000066400000000000000000000056761471772643300310610ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Teraz nastąpi właściwa instalacja KaOS.<br/>Naciśnij lewy <b>przycisk myszki</b> aby przejść do następnego slajdu, prawy zaś do poprzedniego.<br/>Po ustawieniu wybranej konfiguracji dysku podczas pierwszych 10 %, <br/>pełne kopiowanie ISO zajmie najdłuższą część instalacji<br/>i będzie trwało do około 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Po skopiowaniu obrazu ISO zostanie uruchomionych około 25 modułów postinstalacyjnych.<br/>Pozwolą one na wybór specyficznych dla użytkownika ustawień, <br/>usuną pakiety sesji Live<br/>i dostosują ustawienia sprzętowe.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Domyślnym Pakietem Biurowym jest Calligra.<br/>LibreOffice jest dostępny w repozytoriach. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Specjalistyczne aplikacje internetowe Qt/KDE, w tym przeglądarka internetowa Qupzilla <br/> i komunikator kde-telepathy For package management Octopi is the GUI application.<br/> Do zarządzania pakietami służy interfejs graficzny Octopi.<br/> May using KaOS be a pleasant experience for you. Życzymy, aby użytkowanie KaOS było dla Ciebie przyjemnym doświadczeniem. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_pt_BR.ts000066400000000000000000000057021471772643300314420ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Aqui ira começa a instalação do KaOS.<br/>Use o <b>botão esquerdo do mouse</b> para navegar para o próximo slides, e o direito para o anterior.<br/> Após estará em 10% após criar as configurações do disco,<br/> a parte mais loga da instalação é a cópia da ISO <br/> está fase leva cerca de 30%<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Após a cópia da ISO serão executados 25 módulos pós instalação.<br>Isto inclue opções especificas de configuração de usuário, <br>remoção dos pacotes apenas da Sessão Live<br>e ajustes de configurações de hardware. The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> A Suite de escritório padrão é o Calligra.<br/>Porem o LibreOffice está disponível nos repositórios. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> As aplicações de internet especificas do Qt/KDE incluem Qupzilla navegador web <br> e kde-telepathy para chat e mensagem instantânea. <br/> For package management Octopi is the GUI application.<br/> Para gestão de pacotes Octopi é a aplicação GUI. <br/> May using KaOS be a pleasant experience for you. Esperamos que você tenha uma experiencia agradável usando o KaOS. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_pt_PT.ts000066400000000000000000000057171471772643300314700ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Aqui a atual instalação do KaOS vai começar.<br/>Use o <b>botão esquerdo do rato</b> para navegar para o próximo slide, e o direito para o anterior.<br/> Após estar em 10% após criar as configurações do disco,<br/> a parte mais longa da instalação é a cópia da ISO, <br/> esta fase leva cerca de 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Após a cópia da ISO serão executados 25 módulos pós instalação.<br/>Isto inclui opções especificas de configuração de utilizador, <br/>remoção dos pacotes apenas da Sessão Live<br/>e ajustes de configurações de hardware.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> A suite de escritório padrão é o Calligra.<br/>Porém o LibreOffice está disponível nos repositórios. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> As aplicações de internet especificas do Qt/KDE incluem o navegador web Qupzilla <br/>e o kde-telepathy para chat e mensagens instantâneas. <br/> For package management Octopi is the GUI application.<br/> Para gestão de pacotes o gestor GUI é o Octopi. May using KaOS be a pleasant experience for you. Esperamos que você tenha uma experiencia agradável usando o KaOS. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_ro_RO.ts000066400000000000000000000060221471772643300314500ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Aici va începe efectiv instalarea KaOS.<br/>Folosiți butonul <b>mouse stânga</b> pentru a avansa la următorul diapozitiv, clic dreapta pentru cel anterior.<br/>După crearea configurației dorită de disc, primele 10% din instalare, adică copierea efectivă<br/>a ISO-ului va dura cel mai mult din faza de instalare <br/>și va dura aproximativ 30% din timp.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> După ce este copiat ISO-ul, vor rula aproximativ 25 de module post-instalare.<br/>Aceasta include setarea opțiunilor specifice pentru utilizator, <br/>ștergerea pachetelor valabile doar pentru sesiunea live<br/>și ajustarea configurației hardware.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Suita implicită de Office este Calligra.<br/>În depozite mai este disponibil și LibreOffice.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Aplicații specifice pentru internet Qt/KDE includ browserul Qupzilla <br/>și kde-telepathy pentru chat și mesagerie instant.<br/> For package management Octopi is the GUI application.<br/> Octopi este aplicația GUI pentru gestiunea pachetelor.<br/> May using KaOS be a pleasant experience for you. Fie ca spiritul KaOS-ului să vă aducă o experiență plăcută în utilizare. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_ru.ts000066400000000000000000000066331471772643300310660ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Здесь начнётся реальная установка KaOS.<br/>Используйте левую <b>кнопку мыши</b> для следования дальше, правую для возвращения.<br/>После создания выбранного диска в первые 10 %, <br/>начнётся полное копирование ISO, это самая длинная фаза <br/>продлится примерно до 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> После копирования ISO, будут запущены 25 после-установочных модулей.<br/>Это содержит настройку параметров пользователя, <br/>удаление пакетов live-сенаса<br/>и настройка установки оборудования.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Офисный пакет по умолчанию - Calligra.<br/>LibreOffice доступен в репозиториях. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Специфические для Qt/KDE интернет-приложения включают веб-браузер Qupzilla <br/>и kde-telepathy для чата и мгновенных сообщений. <br/> For package management Octopi is the GUI application.<br/> Для управления пакетами - Octopi, приложение с графическим интерфейсом.<br/> May using KaOS be a pleasant experience for you. Возможно использование KaOS, будет для Вас приятным опытом. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_sr_RS.ts000066400000000000000000000065271471772643300314720ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> Сада ће почети инсталација за КаОС.<br/>Користите леви <b>тастер миша</b> за следећи слајд, десни за претходни.<br/>Након креирања изабране поставе диска у првих 10 % <br/>, потпуно копирање система трајаће најдуже <br/>и трајаће до отприлике 30%.<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> Након што се систем ископира, неких 25 пост-инсталационих модула биће покренуто.<br/>То укључује корисничке опције, <br/>уклањање пакета живе сесије<br/>и подешавања хардвера.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Подразумевани канцеларијски пакет је Калигра.<br/>Либре офис је доступан у ризницама. <br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> КуТ/КДЕ интернет апликације укључују Капзилу, веб прегледач <br/>и кде-телепатију за ћаскање и тренутне поруке. <br/> For package management Octopi is the GUI application.<br/> За управљање пакетима, Октопи је права апликација.<br/> May using KaOS be a pleasant experience for you. Нека вам коришћење КаОС оперативног система буде лепо искуство. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_tr_TR.ts000066400000000000000000000056641471772643300314750ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> KaOS şimdi kuruluma başlayacak.<br/>Farenin sol tıklama <b>butonunu kullan</b> ve sonraki kurulum aşaması için ileri, önceki aşama için geri butonuna tıklayın.<br/>Önce 10% seçtiğiniz bir disk kurulumu oluşturduktan sonra ISO kalıbı kopyalanacak <br/>ve aşama yaklaşık 30% kadar sürecek After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> ISO kalıbı kopyalandıktan sonra bazı işlemler için 25 post-install modülü çalışacaktır.<br/>Bu ayarlar kullanıcı seçeneklerini ve yapılandırmalarını içerir, <br/>live oturum paketleri kaldırılır <br/>ve bazı donanım sürücüleri kurulur.<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> Varsayılan Ofis Paketi Calligra'dır.<br/>LibreOffice Repoda Mevcuttur.<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Qt/KDE internet uygulamaları Qupzilla web tarayıcı <br/> ile sohbet ve mesajlaşma için kde-telepathy programını içerir. <br/> For package management Octopi is the GUI application.<br/> Octopi paket yönetimi için bir GUI grafik arayüz uygulamadır.<br/> May using KaOS be a pleasant experience for you. KaOS kullanmak sizin için hoş bir deneyim olabilir. calamares-extensions-3.3.12/branding/kaos_branding/lang/calamares-kaos_branding_zh_CN.ts000066400000000000000000000052471471772643300314410ustar00rootroot00000000000000 show Here the actual install of KaOS will start.<br/>Use the left <b>mouse button</b> to go to the next slide, right for previous.<br/>After creating your chosen disk setup in the first 10 % <br/>the full copying of the ISO will take the longest of this install phase <br/>and will run until approximately 30%.<br/> KaOS的安装即将开始。<br/>左击<b>鼠标</b>来观看下一个幻灯片。<br/>在第一次创建磁盘设置后10%,<br/>将会开始进行镜像的复制<br/>并且运行至30%。<br/> After the ISO is copied some 25 post-install modules will run.<br/>This includes setting user specific options, <br/>removing Live Session only packages<br/>and adjusting hardware setup.<br/> 之后,镜像文件将会复制25个安装模块并运行。<br/>这包括设置用户特定选项,<br/>删除Live会话和包<br/>并调整硬件设置。<br/> The default Office Suite is Calligra.<br/>LibreOffice is available in the repositories. <br/> 默认的办公套件是Calligra。<br/>LibreOffice 在软件源中可用。<br/> Qt/KDE specific internet applications include the Qupzilla web-browser <br/>and kde-telepathy for chat and Instant Messaging. <br/> Qt/KDE的特色网络应用程序包含Qupzilla网络浏览器<br/>并且KDE-Telepathy可用于即时通讯。<br/> For package management Octopi is the GUI application.<br/> Octopi是默认的图形化包管理器。<br/> May using KaOS be a pleasant experience for you. KaOS可以获得更好的体验。 calamares-extensions-3.3.12/branding/kaos_branding/languages.png000066400000000000000000003244461471772643300250210ustar00rootroot00000000000000PNG  IHDRtxۜzTXtRaw profile type exifxڥg$7s(8C bkT3)".pD?/j}Z:Lj_?yL~??O/fx <'/Ӂ~cƬ_yrT"}4TuY| ~=+ ze<%[R<2P/⼑x>J1}U~LV)+?%[lKۏ|=$gGz}{g5s^n%~sS#;CwP՛R8qN3eRM'yzD;mX GΛ Qzy7, 2I{QN%}N; |͉%{jKR򛳂29=12wP?~Q^ 4EY-2 :IJ$(D>h<`S3j"kXj){Jr gԼ@2ˇEZJ#7#|Ge^ +>dIVF:!b̚u6[iYk7k[}}Q6cy@f}9;t|ʫ,k.ߔϮv}=|?N;3t)[vw^+gƛd;O#k!Ĕ3CMd+tVHfeN93Y)g')cdޔ?rWF*oןiR73{*kG4m X>޿poN?6y̹5;קE x#/^X i[:Y}tjlPؼe :0hgYn| 55Hq׎uH|O;RzƢ޵lrykJ^wk}Rnfe+[b6ـ8=p[Ļpi+Ξ=S{Bz&TE.fM0[GVě<|r eӦ x*ީűR gHJii֦ol@Isw>{:+Hj] >':hKyGo|E])#k0kL_.O-2,Ͳ{nkIh\|pk?p¥6ެefRL5`SVxgE|&JmЖsö Lj?.iOPVK6 v:b{OWkQ 1H r}AC&4ֽpi+ꈃMMw?$?EAIzH^ry̸깕^ȋě壴NF$(a@<{F_/:oꃁѱ}7(Ics"lB =Sa0nNT~dx j}/=G(Hg  JP۴ҡl|qϹͧ[*vG羾)@MhzZcyGtX_o#5:h";(ƻfk7ǕX̴lrxshtxvA<; 2jA:[e3_h\f\}^ |+X*} SFBT6xԳz(N;<7@e`3{2uJ('ӝ ]Dz] ݣ[w8Id[IWj"hȅ\^$*%!X eO$B7w H7tJ&EΙ9A՗%!`^!U;=@1S[ڀŀ2Qoj}tsDPUbZy{"?12E#BoA tGK|"z*j@PpVP&q\aeqcBtXc[SHB gTD_g D::@+q] ᣒ2[<]- m3O@ߡ9d"! xg(R$L'Ar#`k77אe2;BJF^(Ef {Ձ(N?pEhW'#_(W PC" sv7OB]ݲATLj/lT j|s@J!QḿniJR/{ }*8F`TB")8HP k=EA^%lTHΉ8DPփ+&'HGY.@(W'u&PHBbp:E%mGC-륣3bݨA( ǯmkzfIh'l0A!,p'_Y8 ?wYrSp54$pe7iFLe%Hнja&'o"k@ eE"t "2ZҶYVNH51- @{<"uQ63e  $:1xxDk)P'M0Ow"(} 1MhsTDE: OSueI08r iZWݷ)DD&25r+_9s"ԥcBBkR%LR xK*JV=T5ֽP54 =[iH64:ZYBp0)Ma&_G}JJw|>ݱ98:5_d 0=iܫ{԰e(Iv:4bajtfVOfխb;> #44d~gHNj8j97x_ai6i5^"<76Kg4.EKSB 煯=Ie/d@R͗BdbI=Ip=0-p2)+ >ˠa!#"&bOγWXIVZ9oиɟ j9A% 64cҺ_JЈZRm A+OBjj؅. w$"`8p@\^ᰶ3%MA64A@2V^L aG!q5X2EdӧѐD",CTAz\?(,ȂZ 001`JÈ`1KI`7sP܍ {+ v{!k_zH%:rU{`2r\vl&,X[&@s^SGV%̗pvg=7e|PΉ SmڇZ8=J G[#12 .4QU$UXd _E֐S4W'm}]> @ H6@G2I$ϸ~|?1_E^rG'tkWZ=kX>dùӷ ˹H5e5U*G?!0kl3rhfr?c~).d lu EǘRPfbz5hO2`ud I.ՂR|WF@(FvBYY O!bg.5+ӆp̕k^=XUĊ4D/A8c-gZvhrʓi]v iD/%U/tfFdNm4 O.vsTLw󱘝TPcoM6"z.v##! 8&ϝ^ HB4cQ^+;oKDIy\,).؍=8K{i;j`TQ۞X4n4eBPUu&%"pjQ J]T8QS}gLҎAWm| Վ0+/ut#L5ف CZ5М̡ޜLi6d!-Qm ( 1V C+ %ĩwmE1; )( 5KfIe?V%A:6-ZZhC,:q)[6I%3e+8 ,umK!7]\>򈦁eDTʻaH8h7/lG]*wz W' TR4auď9?AHayC~)%')˄0\`+xӵiڄY4& TSo)YKAf5]f xg#M`YV$F&q(VDMlntÒKVTCG6fk;NM1u7@0%\!v’U/ONW{5$ׯغ-T`eޯZbrr[S_e'c:\>y/UQNt9hH u\A v6oR613P|ݩV Ō/Ԅ_eRB5%/,lMRn`.K-D8hXN͂cO7:v(-Hg,H2 ߊisz:*fS('"Ro#ŞaӌlkBXEMfSCSO/TT`C˥DbQ<ܤZ[ao@j7y ]ul2Gg^aoxf ѕ链̶ S4@8тD 7HCл66X0Di*nt-Ee}|L,.]چu8h"5`BuO{630XC[ćFVt{Ӣ=4U}MYb8tqg]C4O h{yI#2zSVqh͐5U¡.LjJȪյ5X"mu5- KA9A#UQ(nOKQ4*[ߟC,v23+iYG2ΎO<Ϯ6![YUt?(LD"tM'm@+E2D (w5oM\B_h^D9JL3Q]I,hydG#ӈ;LO"Oފ}Gkgk=,f&loOtVts\G6ViDNv-34@;D%;:(NB$AXͰY4 B՝N>D(YGºz h %^]^A-"QG`)Ovw[t'M抈@TF3 p<\!Cgu}ƔGR`^v}|)mhhL31Hi,ok53$>Pa@tn-aiPlMm\D{r AK@[j#G$\h G4=&%Q~Sߴi8g à#/FiPQeIS~JFD6_IBo wΥ_; ;.^&'" )nIbά>_(Tcjh3iCCPICC profilex};H@ƿJ}T ␡:YU(BP+`}A$Qp-8X:8*77'E)IE^V4ctL%B&*^ FLR,cN_.ʲ9ԜxV1Lx8iy(&]o .s,7өybX(JԈ#S>XeX+W= 9}e4G" B*J(FV )ڏ]H.\%(X@$S^R8t8(5>v |Rf>I0 \\4y ɔ\)H3,0x y5q pp({]{z|r iTXtXML:com.adobe.xmp JVbKGD 3N pHYs  tIME  )o+" IDATxys5IGA*6ch?G;Rqk-]Q]ֱhڱ[*qeŕʢ]A329~|>mj*=GLx?yTuէ?uty_                                                                                              b)aiv݁̀'AA 'gvٓɎe'gLA K\ x X<L``}p207u_8ձG  P,,0 >ԮV̱>r BA%͑oyU~6vԙVz?oX4Μ ]b;^"U斆׀)zK"' "A$דұ̙z VNc/vlvۮwzBo;|zk0Q%- ?-8C% S|܂  1! (l8o\@vq,NڪVu,%p<,:.8֨m62c?jPҢ`;ƱۏH_kc- U$z44.w⯏h,Y āuQ(_*{K=B>?9k "Az' 8c|k/nu,sBkwaT@ {kԼ6 *-':ywV_X晁mm3 >"*!.X#*R*1X斆~ڬ'44\%wψXr{m2 WcA蟈˨ JLb`?6w,1-EY1n+][[?bCI.)v).eVp/*h_;y\bPs$6{=s'Kn~ΧQBo%[|h,9LΨ BApf>L)Q$ʅfT]‘xpZ(cGNKlJ[v2lObYue7SepB>]A >c F%cm+s|L;`2O(Ke>ԛUEjgs{TsKՑM+|*6ԛ&44)wB~}`B>^mC(3 /eTc;G 6`Q N`qcgkQX3PBc{:9ڱm+ nT];}zFUvŦ[Q#_\{ʀ\1Ohy59 "AJL`0Xϲ]/ dڶE8$o6'.S*RxU:PoTEj߮ԞAX^-}sKë- ܁|Zyc̕+ PCl[v=lvmIiDֱCQF:ͱ̟˧:Y=1X*ɱ^`(˥uCPX_>*R=h*AQή BAvzm,Tfڮg- ǟXUV>dh |TάYb߭QW?k}$Q!CetݷaܥJGc s486jpATF%z+h=0]}Iۀ˜?hX2._ qs1or N,X/*bEX?+"/VCe}&][n$QYXinix5KR?Dc!bAQ碬b ۯq]SO*lj2 \XYgrrAeˌWTVz?R @-k+`ll׻v}t|Cm[vHpc/$0`C <P|54F%Y?4_Uv斆7[n7CA+Z B>3WX`u{ʒ\x/_XB fx,iDcD4;E =:T|l5[vXW*vrK{+CE. $^"*Kv1ڮ4l]oƨqZHXNeX#~=*Rbm**WUXl~:Xōh:( QM!\fT#x.nXh,ʽ8@>Kn-w qac7hZױ/ϩz@c/XK]g;x;lXSA{AmGYv?G%gP ax,Yi(=Q4ܨ0f~}vnP.{!;1K{ЅOuqrE#`ʳ)A e0J~U~OgMT2E݁e^kzżۮwgBx`HDZW: z[jVXHrw\]:آ*R;(6TEjU"+44- M[ZPm%GEYa`2(KIA4<< sV Q(KX&o:Igxh,yi!9mE%?\o%Rg,%@ebմFc7y8x{=`' q3*w%P{ ǽ#Q.ڙ{uWֽ4HOKuMk)pgG^(3.@F$(Ψ,kTfP%z 4@vѿʨ]-w;9Y |l_VjB8ԱLU:V`o?"ڌx*RԎ@Y#PĠ׎X%ODZ\7B[B 3ʒ٥S%[JXrn\ߍPɇ6w֯$25P]sXr.<xkԟU=, _akgDcK٨LwgW-GcKG_O gԭ75D5u5.|[}O, WuAA(P&[`ߢw]0ACOg 't@}yz'pK`58ձR1|è/E0u-#AZz2`5|2  |AD 3@nj,?p 5gTUm[])iڮ7f/ %F:cN Lfw_740̢EH$TrU,Q1(KujlSg.3|B>w0^PgB>r!څ|X^/tBzRÝBgg8oE^(3Wg;:k9\@C[u ̸B>GF9V_;hs{}χSx? qߐ$I٨k Lm!پPg|fe}OBY{@8~ܷ}^qN3_@JUd2q&vr* BA2Mb \~Eke7XvbY=gZ+m =(D\cKl=n`gKPHhs斆;h4@;?vsKëu81iY̏-aW]:ӪXrh4\,HS_XV]vd O| {pdeå>-k4EcɩR|EZڻe l_g/3Ng })A[krWkl[,h]XP1Nz4&e AHRA]p#= 99'$>]:T! lȱhsCGFX[y0vC˼媷 .V+mʱ_D̊VUC;di+Q_TEjϥ-+m*R{*i0|sKCXMFΏhQypV4|%3K(P-Vz8Di=.NJ>%"L*X+`{ghS\ڻZ/lh,yd!+ ƒ'A% ze(=]'xƄ'OӣU9kهUBLo2 \Pg "AJX?U]j .[lڮw6pi)˟z -..Npӎoy4]m޳e~nؿl׫F%;FG Ø2qVTf5c^V hV7z&mnTEjY?,\[ LPE'͆O%>ӋƒfV&h,iKˢ\'W}'A ]#\DOX "Amldh ']oo28c9qTFcl{e 솚7 T_[% 0^Gwخgi'*y{/ `zP^a%mu[44TBr9T jʪHS- ߔs cTI}pj/%rHtnL+~-3OkW쏊 rQ!GRf+ } FY'wFw-3Ic/?. u8^K8A߯_mQXI. EbAJ nJzl:QQ@e*3Q<]?]nA3^r4Q.@%EU|po<էEoF3nۡ? Ӭ\GXfo w^WM!ϜZgVCYNC܇JZAeQg}%ΠF9ZJrr{]!9e 2W~=Wg(3оe8J8}IZvcֿόw+NڤvDTi,^e" dB(BWx(5()l)BqoT9Z &k1 z;:s3m׻Gbg9YXTX+:3P{OS^FTᕔXNu,[,TEj'H斆\OIC%/썳kw1=>o - R.3۞2E>.ׇgwƒ=e Qŵ%KL[Ox(KbAS}|?{^t1uMTkl5}iRz}x6K.r?^Uf`>2 c¬#Q~s@ xQ>D&$;w=U$~XX槶MDr{ 7ێƒ#QbL`B>er=)|=<=)Q8Z < %# W. Gṕ( 6 2goסR_yI2|oni]AY>Kei %wHl4 øzQ}^!9eJJy`B>L/x8 IDAT/se<U,ʸ'F=~U:r=^vwC՛*y  AP˨ ] Ʊ̿G;cv%W[;-4;;^rg{HQIhjmXTv9[`|Ko[2Sb܆Xr/X/TocXrB>'jxl k`@C9>ANaz M(U_ [~Qq<@]cӁ/E˥̕&l9鉞P1`6_A2b!!(ǣ2Jn%,za+vspN[Q%[ .}s<}?^Oe^Q= @PTvӾ9k @VNh,yuƤ_l=neH-6tCbeTlB>f!}w`du0?ϥ95gb[7EeV_ScQ AuNϧoQ֩*v)}̬߭u;>n([ F, beZJ,+UGqevk\R\DZF[m^X%۱)elj>XNbç L,3GcQI4XrB>SqE4vѾ@}PVú,w,e埣A@,m!IݻhCV"#B>58~=J} ޷ Kr>$aAXAoTvI;BZUn *+ٮg}Jv}߿v`C|a(pu<-?6פ}Lx=s然9w]n($@G:dm=%w K'exZ+ZTM_*Q3|v IB&ϡ5lb\gGcɇiomh]%s:KwDTE,.^-)KQNh,*M]˳4^妻^wԒl,G`,>s*}?{ꞔ(h4%?FlD|-? , ˨ and[RKRNP~cQ WڮW#)cSusgtboT T8[ibҨ4 ;q;%h U/:;`|$K*1PoƒvhyqEވƒՙ;KL4!K U %[9T ̌h,WT[qQ(Xr& wE?}Gc ՟%?{TɄ*:,ZaXYɝ0RTӮXUr4*uMWWrgfzF!%Gnzvr[%<A:BfAhǤqf 7i99RK[N)>n.3e~RB5,>9x"/bCy?*w~|L{ -.q^QS?Tv}C%ʼnY#BS Bbt=3఩ n\)/-% uDwXPXQ1BA@XF2;tb>x*{4pC`tbrK.+1 Ukפֿ,I+4Z+XSxǵ颱 (׼ߠ }}iA!QkohT\]b裬𹶞{*@}棬{B>m/lrlF >S0Ӻ(i*pj&p`}MseQ C[MyZ5՟8Dl%>wqy=a/T]|_8ф B?B, ,cy>EդVf[<GukTă xkiouYIV@ 'kr^\ez?ʹKsO=_iD?iJz_"CY?҉oׅזïa?2f}o@ l__S]VꆺƦmp^FO_XثQQ x5A֕LAnK' # PTE* ^U|uqzClkީZ9v)e=2خ$%#g*cnoJ.쌪i[-ʥ?v+tўo(àx*pi.W':ʮJ{{qEm>FiޔK'dr$wVt>:Q\:1;\1_56]\WPJjQxM4lB*3v9$^n AA tA8n´&cj^Zbz(@k.geq,Av 6m{ͱP)ZUp_o1@a^́ )]c1HTTR\:҃^ K/ѷQYbw?S#r=MPeDvz?S{rD؊ 'Z\tj7%]~r_zن|f!zCE\:)wAeTRlvCl[MLCŇR f9G/܂y2P.p6(z+_#ӊrY;ޱ;\ Oe7;9 pW<ݻ9DA T7T*`F9l+hRd*T)#P]on?ˣ\3*ڕAPN1xTzf؟rs*c꬛[,7ݵ.fb+rzwjQb <7t,szCXKOhyJg*6%ޞ;qu}ܺ^҉<'1_Cs~\ Urx*ͥ+wE*0xlUbST"bvΕ'㩬K'XZ;UڍmQeLini艗Bzѽ$E}OCG:9E?cghAJ\AD X# l TƍP9=S|vKmPBm޵e~lyG n®riqSTv``2ozk*\4'Smvel2N<;H ppm.w϶̒f`H}^g'Xآ48ՀG_N'砒3-Oe҉2!^l2*R{fsKC/bXkllwƯ T"3/_e3jTv5x-<,~ܗK'^A .Xy@}`U+ mjxoٮ7vm;vU8:t NvYb2g¦!j#ux*;1W/Ne+PRa1*Q.1@.x>Nl wS-zq|tbP If:Bggr}unH >҉۴p!09sk<~)O`Wy*R`56y{͕PqMh2Qpl׳l[QO.-Bs0>odzree1ߢ2NT~]L.)lA2ٮwc7cvQ3ao]op GXPFb-$smڣioEe13ޮG\:tϔ.,OPfP}vK>n8*6QH\i^ 8󦱣|2_]A,TkWKh.cs-줭V_K'>~r%,GYʡع kE_^ µ87psN ǣtGHUvUTPt~Ǹ*R{ϭ=sT]4X}}űi]Qv'`rx*{;jBKA Gh `eT~{h,_}ѓ P.EAkQ:@|_҉~N҉(GL=z9m9\:e/^hy.? ܓ'x*{% G{(uFOdcs}MrEiԤ ѯC^z^ P昚m׻8* ^>ʂ*&iI)?}D2f`@`x*{J.mZ~ NP/okQuˆ^iniU`|ςlJkkNzˢGe$AA(¯^ڮ 0Ʊ`  tTu Q);VΨr}|҉x*[FUfpMʥrg  ElY,2?v ~h'bp8 2u̥wbV_OeΥeLhyv.h^DwًZ2uŸZhyFz|2m]o=fHC=wۡ<tb~.p  E!Rա HÄS&rKqʄ1<#2~~=yK'nP.PdXhC)93ܿ)tPشS]c]>/ AR=9϶pTBQu1>{U BAQ80,q56*|Zw,UA`PkwtQS&iO1D Y'zД ǗlTlSI݈[l:yBtNUP эM\]]| {>~α]X5/(#Ur#6@<=#N\\x*-*yT9t\:_3AA(R' q|{|Z1)z4~n LTO%pF]?\:N<}0{]Mg/ng7 ]_X ܶ]ىƦxjN?H|c9z :R5A%jZ[x*;-N4HɄʻBAB\FAE}tzl׻vz8cMP3CQP@ͪѱَe#˼}2a7(w?'a$.Ӱ ԃE:/`Fhyx*_]l= ѝڀx't]E͐-=ؿ8 6*T,s.x0NԠbg0>\JHg+PŽxuA0b!(Ԗ ӫ]ֱ-N]3T"JM%*CpPpSqaUv2aL3j_?zR>'x|'ZZ,D.i[_ 斆rkl]o(pЄJslt)҉I h,9 ~q\g(,K ڮ&p*/mqWm{8ű̏lc7Q|9v:.C]%rV'ϸ8vµC=x*{J.87W!Axh<=;Nkd7B0R; R_SN]c樄ME?uMck?klط;X|}MeeIdUخp,34 x}AA'C(K%O>nGYvXrh,~o>vgVڮWJ~$p BYWrmec>i赢\ Vlyn k!ҖF #K5](6[?oP:.]7<0r,K-zPF~v,2enXN'غԇi%ʵS&y3UZނr\su%Eaܸ$}<]QG>~i9Tm!˟i pe.j}ѥzsn֦ɚ^h۟DG{[߄&]mg[hni x,oĚ4'me?R_l:Ŵ Mk'.W?7x*{ƂPe|EyP\OgU AD P6k,}!U!dfG[VE%nXűMYi.~q=u,n= rzapmA g\oZT bpʄ1>z.V_P g콄rz"`TsDI}@;-?FzؗC=(0҉(w)=T:haמTvb9%&]zjZS2z *)5;inrk8}jmçlȩBM]K'ϥw҉D$ P%Rz0q`!;P@Yɺ7*NDs,bVQ2E-νE&-X>V -@:im Y(wO11j0)|;㗀Y(|WVހS52TBT]}g>NV/mfx*;;Z=IKm@pgwHSE͓MrƊXU5" s:|6T__S}Y?V },p~BM]K'Dėa#N<=&_8A5eTV.3mR =:v=NWأT=2gΨ ߡRwt`;PTR;t[M띅y/9z׃ܒL0f3\?~ Ls#㏟e˜`;CBĈ0Ԍ  Xah?I1B FM1PmC0̰b2ľ?#|h\r|;t^<nq*E@` DˁK[H wԬԫ2u+EJ_^oH7Z Vg{Ꮠחjĩ~@J hs@x~օb4Ru`:L]}}c@4]oo (&E|2o0a&KO<?ZȰ `V CR^s Ư)o~n}Af'Z>4DaT/J?W˅'vv 3A"7O[1d#uk;S| IS=PXSMsǮu3W> Hug. Q{ ߉}h9 89M]nH U},S/oSh o |LT*84#3>9b3rxN^'n$e6FVRX182@xGn͓>m FH~]zg3a4}m ^{lŒ损$9'vJ06W0"Mu#H5#iZ*g + .En}gG}=@:/ ']YnHз8?gsӯצHз7>HMln@1oLO'}_Kt=VrOFc.l38m{-keZsw>os6ɲ5b&jh*((MFVγim abÐu{-VqAvy:.4wɣVdYY CrgHe)fk]e2{g x;)1  /ATlxAtD ^\/"8 򾽄uG .m"@xDlcQ5I}0yiLe: F#C6= <+: nRU,2|VYm.r%$ع>pz;\쩑jhhh:=ACc5܉Xh~C:};% ݗc;i݄αvHdSX7al6!keY? '&]+095ZuW4w!pP# @إ5 Qsi.!{˄N$ T$c$=rxR2Ǔ-]؜'?jwFDxk]dj d2|544VujD,4߃%9S6m3Q\ʀ݅nc8 EmNW54?39alEYg&ɠHd R B^ó}d'N[JoԍԓGV}q[Q`tt?%%u 8@s][j"T.R*%O[Ls.*jh&p#5E!D,4G-!t aX(g ک/4/B+>Wmb̻'R *!)N[Ʀc'Df]T2VXl]F<7m$ Ǔo4A$Z?F+0GA Q}8 4@}ڭן푨dUع.Ű̈́_y 0r؊kJGCDeT ."NjhhHdD,d`7hCEes TNE~!މiMVޟ6H#-8LV2/2B6{ƓN]oܻ8^aa#N}M%~s_D,c͑HDvx2jMںjO@Sj G:)>+f06 5Գ&x2Z0khJa"D>>&6.a EvAxc諐IO.0flj~bga{4w 6l:D"k7Ɠ }zm6}osk")VÅoZCP,F%bKاDjwDDf'qr,k{R(zY@scuԉ n88d؊K#iEY K40%g_${KihhhBp 2LӉ((l1I R_N[e).)i ڊ^QA]AlX]y?2= HM$ڽDcݥ>o \3~#*HЗ,b[ V ,M%K#W#Uۥ/'/tlVaeT45VgU8?H +v` cK3 CX;-ںxᑈPDRCCC m;/ܳ+or ̾ۿB}|NEґ?*T4%xፐtCDWejḇVfJ,ۑ/e47V4o. m]Hц1埮Ely>4444lL7*nojz]6ZXT}NBpO<~bglΌW7O Vy݀u-Gh:Jt{gZdYW~!"v1Ӳv.'y7x2:$et?CmoF+}TǜnnSLX-;dBίX]ZmeX]>5OFzzჀb+DH* l /F!)}>t#騻:mP-CS(^?s<"βpD[RڦCHdj-R?/G:ڬk _ D%\15B7[`8*fh$hs\rxލ'o8̀?!>W.>r{$zi }@ n=r|G#!""LU}78.gx2:F>Kjrx rxΎ'3{1L^1]o |9J$[ftѧ5ЄPCC([u1!B w!i~`#Un0VF&Vr멺jƴgRU~jpW4wu]6H:P'C+tg$"ǓQ[dYs0EpyflJ$zj[r?. ut7UD+^NBDr[>u6!LHē-u)p<H?xQj= Jwdֶ(v' W`T x\d_S^3)HDu=D y`7fr}g7 _CCC6t ƯNʞ;]0,*pP=z?N[ G_zF\ƦH&Iצ.B$Y>!(Zd`H7 "#I)? 3yj48!jb"5J0alŬ;A<Dza=alB;@j F{KwUM +giz80&dHa9RW\lt]H `6D)B?H$ [%nDkaq' =PsLK~_ClȥʱW%:ğ3\ρa=vBЛ~OC[h1ƭ7q:89j9zF @lJK ?#i'bsc!?u?"AJЄPCCc9!'3s!UO峔Xk"*6f؊tz08laoO[1ii"W)aUmӫ R_N$d:zhMsuy xzwkTW#a='Ӡ^[mx2X;e쐐(]fI;P 8T k͊-ND,44b9UM|\ELmt7t|y<]t}tݝ6V/hh:Av/ihZDo6:Le.,ߪsX8X,m%S aMs0!utSk;\H -AH7I?_%dا:(SDR_‰X? -R"o9^Ajr`LZea.?jUEhvu9<ƓE<˳\u ,+q9<œ]w6)'5Vu+Xx0#³엀U<M("rȡ;=_c*óe<^̾5Dőoy,W$+xK5}${ M54~u0^DR~L\dz <6GBE !͑;{&R$p SՆ*b<%`yv(Pԯ"Ao <I=\ M~jI;Hi4?M{\^!{xa(KO!y9G|=.gH<G %#_ KY>e!S?F_1A.HF.'z(PLB hk+ NNA,b*{{cuu'!0N'.Mo4(J; <8>6 GXȹ& kadTK͒_tO/`Ñ}' 7ل)6FO¿_-UMほ[zUΩix ISUܱPx[f"ǟT{\ FR}{n2o |`${Ӳ ElIpRY?j"ҳ"yB=?nT5Q@ ߶].g}dtbڢ+Ԅkzrx/ ;5 'bo,E2;bh2Ky4 ٫էY/._:hhZNX;ä|51k}H0<VpA٭Y1fBWr։rK j ⛖ >g;Q@xH[^SU۴#GEW6"wYz B&]ՠr#FcY:PszTJE]Cp1xrmyEDn' >pY"etCHƴ)yB"va_,f{D{Ia2:f@O<&߃^l<9ǤhPൎŲx>P5<;x jpLEI j uz4nv/ӑIH2?83P)jhh,?| _]Wq~2>yDOSnmeXӤb[1ذrFڹ _Dnògᑠ=.9Dp0q95CvP~`c|_Ĝ7(PC[(P%HF>y&Az ۫7l|dB;}"Ý~i":3 ND,4 M544j@7Pr5` Fd2ND,+jEj>1Ox{ zvC;30HHXCb+o /"QoƽaFR~(NETT7Cj<. %.@TE";cE˄tzYV)C8@օ9?Kq9<_2̻z02{4oԹyg/ 6MV(Y32>Ά7GMxں6R}$zg7I/1-ƑL}M<}W=7Xy!4OO:JQUv("T|$8I!_Sϛ#E M544VT]TƍXh\!Nz q#i۪x2:A2OV絞"Ѕ> 1mSg N$yp%5\OFeI-&{7ٙ{yJa 2Χ@\wmHL(UZj*6Q`>Gx0f'Smhtݝ&"k~HmɋHבg':D,HBAb5۫m 6}l{D `z]Nđڦ[3ڔqusk;CRr*yὑZ!:/m\[,!Tp.p':Bm+T{+/n_x9ANGD7NNŌ/!>F 'ԯ횗|v /ϖ=f<YFmrJ& dιZm5xaL m]+.Q E`,I5OFw9rxHjy s Ǔó7WiNEi2i[B?x3}&BEMB9 A"OCRv$bi"K4j!3"Bi|㧙{jDROIw/h=riMsG+poMsيeƥ5bB< JgHœYȮLz>?-IiL)#ȓ:OFG]OY<Q#CC{O"\rx֋'?((J9{؉V7VدHER Ćvm(C.$|5x̡%S?BGY\ìFje 44V}n 8>z-\6BΙt^YMyn= Y{9xh3 ڦ۪jFI0m-Efj \\m@XND{uGՀi__I!|nnў?5mnq{\4JpWؘPbY-u0)R08Z~>Ъl6˟BjoU:)Co=! (i|Ly/+\zk%E21mN'WAG54V&bBC7#h)AEWw} ĉR\ȟo'"-U6 F@Nmjho)Ӿ[*|5t8+UpsֺʮB5-w# USU6D:C<f[̆xdM0${-]F.~ȲKl4xhX5O9έpWHjd"A'V`oA.gx2m' m]O#),^h.?]I}y=~_<,[<(Mzksa0;7!{>QCCCB _)vT 0 }t2Lf -ދ{-sjG? P{KUM?W65DUmӋ7_ZzLCE)/kpWo l$?rxVj"`M+|h,4Shh:1e}5u]X]ux2:-QG]^B_{hF6Ҟ7I"A_9ЄPC׉JEn?pe<%7vDd ;Jy?AwwUmSRC5D=kj&Uɴcs^ɓ_ZWigk$o <IVU ֏6.uYȠQYݩZQUmӧH-^.x? -twV? Ka?$&Ǔѹ믱Q6PDmDTgiB;TLi3ھTvn2L=s fѳRW,uY`9:>m<woNjںԝyڝ64K|a#.t9UMh!r&Qz!}y᳁۽ oHqjawXh)jhh4H~] *N"6`+ߖD[V6ݨG+}7ono%0 }kSdM üI+ 1O+r}9>+ ڦƪڦ-['!|Q@"kbpP"ʫJS|H ~D"6NN^Ns^,t"BFNsnEd$"ju"Ċ­MOvDeںH:dœy m]jg#A 'DlhuzSr2GTk8gD,dGYwQ:s9<| 'b 5Ͼ.n.owoeJ׎x$jr)~d6גcqóS<;XnsɪH*sd#ưXE.Tpq{f Q\[[2Ǻ&s rEnuFmt!df2Hp@1Dbi8e-Dsi$Mڜ^U@SŖ4wdzֺC${+З#ZsAho9}IUmHgfUmHVuF.q]l~ͻy_<d.! Vn~lV8KMl;sMǤHߢG;`ۿw":P IDATs9v6,Rrx'o 9᫷-_ 60!ww6.J MI9]MR8'iYAd~˄ӤBOB`\ߟ, M544/ЏN0$r *x.`UX(ܭH 8Y؅P4ԭM-p;x*<\ R;>E/ioŬEh ԯf\Ē /"A[[A[]O5r!;CcjF# [ئ Nͯg_ Os$y"^o& jXaN" ]TĄ@!8- MRdxVl;Bi?kDD,/o6cٌ:X6ݤߐtw/ %1w92N;QD~FH,js$20oaF2 [QϷYHf2"J Q#Pv8W$|/=5q`v:GUCc@CC.p%kr;pQ$[\)FR< }R5JTqgJ$27rsxI]5 6p9<+9/yUmӉ-)C>ܑC6Q;!RЫZ[,>HBrn +;zoPSce!!0= u9M߼J BQMOF?YYg.'eĢD ӈp_17Bt?׮dRk/$(dbm'u F&>(ķSCCCB Պey82"Ѓ2 >+|ª&⡵\Re&HtcZ{K}^N~_[*ʷ].FGq#A_Q)J^`!Lhty/^vPy 0^ XB9ʿџ}u glcs)z6gZ"h1b+a,%h"G3 z^" ]_>ƖTӿ<rmGoƓI.gAHᮡc0pYOFb5BjϽK i|Л]6ۜJBS&ugP3 l{൲w !Uw 3Bh-lS{Wy2j 5K73(x3!< ~jk]TQEc (r0{5OF?VU4^}[CUMkw!*im6- I=sg:7l TF <]1Dsa>w"z_mS fC\6D,t]>9 '{dY>4.Z.gbWL7ƪyB0̑9wp)2[aGH4D,tR"ibL 'whz HdIuxd0İz=D ԁ5 @%0{L&パ:B= ~\Ri&2hYI uuFz؏toc'$SC 2tc%Ğe A ?u#lXI)HdNWXZQx2ڊ}'Ic\x2>oř)}PjAG54V!$>stn!(@^to""!9PtE[$蛍xA]^RL#! "nZWyIMsǕֺʙ5; |g if7Lo |b${(\^[=-ڦ-cj.c{>=bmw>`G,4?H`!GP6Hⵝnc4GcO4 s eɠAIX˟.P ר\x2jn".$p9<"n;>61%^rx j?a3蓚7JT|a}ٳ_tkjhTnCSNX5@Kdc%h5ByD<0P.c}$_Z*ihfJd$ UC_cH/'^)p&{C+ȱBKli{^Ṉ%)6e;tG<* IH轹Ɠѷ]@ᙪl"Vx~<:'}S!ǹ3h9 x4eMsw<OFq9]!zM,! Q߳HJ]AؠVA% Sld{o Xw R\ry= \DKLڦ퐨zHM\ 2 è(M5G[4wEjN{|@ uML04 1x? Q ]QuL C`"CI.>j u3Tn~"12MHdJ#<2x̧ \,{ta'3\Hdz^00*j$t#[@rxx2 i0" R??E>.Am9K X7_En J@ߴKK $ʓs( g . ,Qh>: &UNp9<ƓtaTdCCs<ٴbZdk -p_çseգ%`7Hz 2LɚaHs "D{ j"2ɐ;+ۘtbpx&jhh,gُ{:6T D4R!}= 8n1")U4wVp7D{.6᭑zǐTԝ`_==ȳ/O"8 "!lrlno_RUA'ƛUM#k4ٮWt+`ݩ>ch= -qG|3Lߓ]z B<m(Y|nrx~OFHIj2H cy^OFK"w4VubRCW2zo j0O@Xm])y$LH> ݕֿ+e M544/RQ67Ca B{K,+.CR\LE}@xD2ntc;G{xMonih( 岗KE%AX_( ;6ؘ޾4'? Ζ}t0p$d"KF ygxߜ@#7#\OD#lǜJ߷瓖;\Y+((((B(ӴZ- `!WJJ8M+ȥ( zi |q杏 U?[+!UQ^D{EyՋ- ʉF|oEy՟}?N~Cry?%M2&G[qpu,< g91sk,@B5"\71,nCqCf*Bª/'ZBpD3S9ZRTԦC SjX"?#S&"Tؾw4ͲXhX; y?%gʁMTB8Bw-I%IBհ^Ю sH<'/96%'7$J}._yxͫ`?[]W M% "3,w[0 F^>\Is,bxMEy&qL+L j8I斆RN;?"zqo>] 7O sB_<% ]YS.y-i&O%9\VIªB*~]tt|I3C.72 ʴ^5Wu]SD]5x2T?>=!JAO Ze"#B^",54,(ѭ1xܕ 0 \&!Ҩ,BWp˽UBpK*ΥڈphCU/M%m8ԧ9\.&.rL'`DʇQcodpsYzayk!}Q$PW5<(N)Wσ~N8+uz斆K[mniس斆.Ӧo`crwbW/'@?y)3#_Zyϒ[\q/4WPP(eTAa$)+ݭo ?"1xrO z("67X;yUmVV5-DX "..}/g\f.m@tZ,} ܘA^|Ŷ[ IDAT1qb54$KuΖeݣiP, xĿ8 >yJZu|) z0--VMXJcb#]F pF$֢T"ܙT"]ֲGD^5ta"\L #V?斆Q3sFc:' Rߠɖ{8#^ddXQ+%ch;0k D,!'Ku;o6&D+B#leȜ9s{RwWH!,SL!TPP[p1mM,/*!uMA42g) =臈;=]4XțD@OX-jZjUfN aJ28 GvBOՁ&T"E̷I+_vF g:\/<[FS./_Yj^sK.@ v( gUϱc)DꂶXhniHٵUO44tٱvl#).U/"f`cZ3maLO.-ؘL ,{ԺI/@tX;-E$?c 74q_E]pPVv_jYA*((ըkڻ)T]4gt"bJw}Mem.2 D+=wTpx8< ygL(p9. ET64jOL#Irn$ڐA/ > ?';m~D7Z֛wwer1aw=!Nܧyٔr3Vem,2`flQ`c_4kcNy3 !^8~Lc2m9~{0`crWr]1ɴY_#=w֓ϖp':<yЄ7UY}w B<9(p˷z{((9PB5Ofm'dMi7`ʄ{B<=DiM; f'!,䳿']Om'^YBC{Z$WBmB-p?b)+WuG7$.M{mpY*PΩDx$5G9\UgXG 5r| bڧ$[gE?Ionixuʄ"D8wZ DlaTW=ft-Г 6&o./<#kֺ˂sw}4Zsq1y@9ق yzѻC`M8 DFuk|ͲS+Ynw| v|ٸ)+(((BZ˷pD .p[ž y_^)dgO J!Մ .C̆W]הkk*{8TS o A*'8\h+tΟhni01_(F44\SKòVCM~WWKR-2 @م\1y,BPI\N,I}^lL>Sv&jw'\VTKk\R\W0VYrڬieB}`C-;>" &2J|>Ve}= |򶮦&[Lal)m7+K i D_Ώsl~a8GspUWsA1"*Yˀ7t<K|B7Yw:`B*^VBSJ7au^"_NN%¿:S]? !ouдm_Ϸ`O d7+ʫNkw"GeS }cE/ϛ.nng=lLryΪu;n] D@XEڬ\yl.9o$8\T"QoaEV/<B1`}F=5 D yWQ}MQDEXkzAr94a9='55nTW]p;;_D^YQ^,pV)tЬll|z!\^M%s{ DxcG_5wR #\DkS {K^'H{+/tL7}9\x;u. >i^F*ʫIKDEy - r^H:UQ^bsKSYs0b-l |]v.I9W!]6k_ɑDEKb!t!S=h@BRNq_$.ߡ=3MDsuq*^ *((:T#,5KR罹@$0nuJi!xğb$Myѭc!?E$t斆T /*2?!m|H'0łON s$ۙ! /.ʣpȗS: @fx?/k:e1Ʀ_7<(Mu Jtqd ]-C8q} 斆U~pKTWMmniȴ`ݝA_knix7lL#Ve\M` `cZCI 6&Q )tAzYT"< C "C`JYAABUt'KJDbq4իt!hX{wm'Hg%dlEy?`<$r(z aZwO8/-v($Ge91 \+g$ >Rk{8-S] .~K!\t?#I©DNv p;#MĦ^l&J{|<7H#b$]ʧ{R.Rѿ_]B"D*ʫfO!=t>W.\Q^uPsKCKEyՕ=.˓ ^HENZZwlL%'x*ɪ]%)?ؘ*@x\+a2/U<#@QoO2" =zj÷I/! f/-8%Sv94A~O >_pO zC,ͦjC!V;7]e6a5<a5 (zo5]BT"pᏠMjxah/JLlEX&ou|AkI%&[L8U rnJL*$iT4*I?LAKF[*(:؟ee.}$}?EF~ 0deYh1B.BpNCĪ~#" ƫwTN Z̥ ym5aX7;ܑdxQ0aM@l1T XQ^ "?(y`QzRA<p@>svX%DfM\Iib4'-O;*ʫZ-!_տyYò*MץB&D~(: ;@.>3k[ɧ1ӓ)ΗwQJT1"ؘ||m D.Il%Z5LW,]%q+YAoA%WPX3?9:±)Zo'NDXS2wa>ƛ/ b!QzX{O~]πcc!V斆+q`gdR:jlEy^=.5v\b)aHL])';ӄ lUWg߹RGt?%; - c&ٵn Ek7ؘ<.k ~`c$BJ4O zڇp{@{:] < P PAa @*^ph)]4O̽Hqi)Q#:C?@DJn# V=1ΕhnihAX4(a8M D8EyՇ 斆%{3;vFc?[_9aYL[4+l;tFsKU" \/F+^A/Z64 "na*.IL'=!db2I6E[C+;G_n-p9X;fD1pN͎rs{EyUpOsK7%#+Vma*>L ߴ2ML lȏ-esKC)]e/,y1y1"eN:cDnOILu7@ګ^ yk3 D"y$N}퍈.z+-pGQfGu*(]P kd R(zb=0x Ns lh1rGЬ>YKW贈u$¢r Cn.ktüx_ k7npPx{itwt2=~Km{8᱐.&xwY`b/ۃaT*Vq kPAa "fЦp#w瓯mN*jjkm|{)pXfo2rEyնl[ x"ؘܻ a?@=Ɏ J ! "xZ *((= d<"U=m*vXn-'_&' s Bdc[M_DNq1LC6ۊ}̍:놹 BtG ͌Q?el?,m;Rރi!f#Xjλɏ;#lK:S@ԃ 9 c{_YpQ;o꭬r3s`i#m@X;@[Ea:'Q=+hI[8֡Hxߐ-Spn u|x0GKDȉmֲa>f{]G/tN % ŻCVf=0ж sm|%U$i5q辝/aD'!PaBǸI6 s /in#w3!#pքa6UM77д]QyLEI>šF}]y 9(oﷻ8\e+ s:V#2ű=#'@X]'yڬI{.߻D TP(SMf:;Mp|OVb.!f3-zzk;J"pC0O2u|LZ{nt|!i},u|`{HjL S/uaMBۤ݇ a . Fc}[JC&nY xU7 {DӴhw5V|ѕkGm ߦgb\*k ]9\{̱䯈+2j#>k"et7t5Ée|nKgo 4NfwSHTb0ncA$e?VJtO!:bS07_d|fw˺94YVx."zLe]a՛&<̒ekl6T{~6vstxѿȿ)&v=p6yǬc=T"|_*V"5 }eTAa"# \vo&OXŤ5O : xT.zY^0O>1 IJ~I <' |IPEXF^0}nz#bDN{ Œ!IzΆW<9V&$I}~$pv Dz7W`N[@ )ljp7=sl0AtkEmx?jEG S.<:sҹ]g'_I G^;"ء蕽rnpy -i.2x"S yX1镉O.〯.$\an~=Rp1@ˁJA=7-ܼX}W#{wͲVkB GOFga/O|`Rot|88kUWJ,KPm!%Ο`mѨ:Xә '~ĉSϵ3__Y]A{q|&,VoK}ĸ~mX;gH B,ߓs|/~w[Ep+ *((RKŷ߯Z`*nr|_!\%KaڬbCL}j"gGZB/#)ݨOȶJG+TB̵nѵx_u!/ N%f|*bm=OY6Z,Eı9lR0.ULj'}C ͪ@iB޻Vձ.Ẻ 2PPPXcN((!Sҕ[dnm{VyyD7`D-+l<⟁F1oY ~Y^tj{q]V-6 ڰ9'JH}P0[E}"P |\Ƞše!TPX39ٸ7FX?D|޺+I ܺaϡBEV\LG%Ɲu \c1idfn3){f XwͲRWJPv=y#<>,K|jm2x)酰85?cqowBEzE"?qDx=C~/̭񇯯ax_u,7F{gbo9}yh|rN .6˾D)96k֯+r?vY6qbcҴ\ ߧ mo a<} M+nc^@u* ;VϿժ }з+Z0 c/ςTŒx&'ǦqY'E **`yH}9iU ݯfCSsQ/v1 nw/g,% HݺZ \ dG. 7ժ *(( 6}^; pS͛M-2r+a^.`[͹,{ĮuGqP X!-A;\\˻&6˒(8>+GY--9@aU2w pzvu|eEXOUK2ЇJ;5v="h(W>B{G*NxK\ DK5cqCvd.qIꓫѝRvmQt$QVA6J܎/p@G+$鳛z8Y MAXQrJCP38 kY\HT]v|7K~hw܎S!?nh'~2+v\R#@.WCr z|y Gד  ,WͲƿ3cDx/V*8 aaCSc\{B/z*(Y/iZ./-eJT9/m+]ܵ%>wTBgiJ[rl>'@m4w *(( v:2:  xiK< lL%vMЩX»0W 6˱|e%N$?nEֲ-JPkm=>Ptc:9 YW,C ^cI(((B˗-Ip|`iͩY;׏ߑ[Ysm B9j}Cv 쓵lR𙵤}gl#07Ҩ}YQj!TPX J" 0{q9val;07.Aul`V/mͲuX1n]D>ȵBg_eu(f~3+(((B9"aێHegDzi_]f O :R Xo{ z\*((%(Q5o"vV>0Dxj@t7`;!򞾖5y9`W4˲Roq&0J膹ͪzk#iavi,v"0?@!a^Wٗ6@Ff^>>YVKΆb^4n|{ !&'ͨ˨šCA)Af"ܿDd@'#R[| |,@ȾҮaimFBsn!TPXcZ=1qe,9k<裈xzѻb!>Ưˁo ly2$)G#_^7d;ܐ{/Gm56JwbR1m="^zB`crN$p=` ,G0:9qF*?e?u=C2V_u9QPPJ~l)l-VZѴ?c,W@ak%#YKճEp@<7;l~K-`ESvպZe~rrXy :_uGs3ggSjx$0!k՝a^ *(Yx X qUK[] y^^ڮ :#q3&kuc BEd<_IM2vuKo xx  7lTEβ\qk:i!b&w,klF`OĤKkAXYo kA{yeK醹zu*(( }Dx3.߉Dn;|Pw-E,7ԴWWݺQ" E$|J?ϋV5whp 56y=">؟1Hz%>/knW¦yS7AeaÂe9j_3mK>/n n9i'h.UoFXJM=>%V-ϳ LDrD^>sT(('W9 }I6&B嶇A&CāX-Ökz_GLn{s|n!'" }]u5!w.3K֘Jz@qd v|D׳T&n.KD<6꺦k*gwӪkY_Sej,`FNR5a9%W嬑2 8fg)]+Vn~I5DbxP?y(n20?G (_~S>!TPPXLr1薃[=h=pݹo$@tDί41Dby1Hs뚪k*뚞T]״#꺦vBXv#17iZ+.0.mg|k!҈@Dr Bxt1P7lVGV9/~Z-vbDaaV=7k!ؘ<̌1 <,& p9S ?B$6nP0hD<9QNi|Q7Lo<⟓gMa.놹s<⟡^ *((b,^]Ѓ[B4K{^ utNDӧ< z}.;#b'{̃s/#TNy\W]״+p$.+; @}M꺦?!,V5R_SwQu7UZcb ϰ \]Tphֲuü3Z{ `"KͲ_;Bji7I2pjۙ- 5B19`crZs@C$H_6&NgQʲZ3q+nHi[GtJrn; bBBF o$w9\>7Gq ji7g.mlSsLAAa-RUPP Y.fn|A-2b!I/F#܅VnG>RGu]ӏ2ܭ\*Xo!]#5#-$Kk*ȲY_Sju""cE:/b'RO5<8/exqodzHx?, >պK EOgԺt!LYKYֆ׹7Keߴt =r0p Š$ii]@TX܃~ 3Ⓐy`MnH1x?ʰn{,#E]9 k!PAAT8O! UG,@=:~9QFBVZ%P܍}YwV`DlΙuMo"\X"#+uM~D}Hj*Hy>dzcvh η]Ff 4B"q{Qk-B6f7, CMWd|>ؘtպMDlO<\v6#i_$>ue3ngdcj"H9ѳXig^NҔeƴO$riѓ n՝al߭qޗ}尬f{Ժe֭YJ#ҽoI0hc/nAgap!N[8yQ< *=$'&TPXQ@Aád}?g8\.ߍxׯǎ",Vrz4(-p`ʨ Gˁ=8|߼u!ߎ>zo6,qs?"okp mAXQ_STtSK#7d}Metu]zuMa1ޠw |R]s r^`?I^Yd<"sco~ scI/aG['2—j=^&,c!]IXnBL^ 6& 6hς}4a靈 \ 6&o NO˪LঌE׺_Ժ_`Yq|I-;#ɒk!¥rOٷ,`j6\M$[[up j0" \O3t|A7*g! *(((B._3+CMB\]pz9KD g Z=l90vB`fo1sq9/z}>ˊ-e{Z&k*",_90'y@}MTIDB鲏O~ ܇x鐮6Gqد#^6_hƽ?S׺nQnkiڐ[hPQvzjΡ>Waڐ1xڑnN]dwn'hvKuolu;u;?u;gc= mӘ>*M&d«anUVL쉃j`n7醹]=fD=BYp.Uk$IOȁ~ JS yߋ[ Bc!E7Ql !ZimٕmnWU5 %IO~D8M+` <7꺦5I$.AU-YzDYX8_*c6OV5m`FXTM> 8˭D&vz^GֺHљLR1Z2O/Iqn}׹3iY֑I i{|]sEigӨ|O]ރv4_S膹my?#x?:񟩉ɫ#i2p?Jȶamμ/ynzM*((A*(p|.S,-dpj*~ZdвVdc!oJzJ÷lEZF>-Q>w-gVRTP]$*DZy; Uf]R]4]^# f߭uMg"DSY#bfsj~ IDAT~~X8\/covdפpt+p?zx mv6,>i+3#}" 91 kJy.#I6 ̸%G۹2lL> #?o+` wֺoHي`cr$c(>dS h6Rڿ׺+`l7 kWc$㾺4񷋑[;0߰4@']ۺaGd¥e] >ppn#[SAAAB5^9K%¿*i2J/pS!% dK[͸SG>o"BUt)"ݩ/m 'Nд~T~&f^BXn3Bb:W 9^^òןmIf%"`#0iC%r?9 NnrKX̍O.,_[o@>,-`JC˙*edJ0?:}n٩Js4NF5s5bt9֧x?ef y \zӨpIF,"qCT~'At;T6V5EjAdYE'VS5?-k<uQ+6&AXIu;vB~nϓڵ9?SnkoIlLnpw>CX~T >d'` "Ҧ&گ?OI ! p~1O]K_4e](N߳ؑ63"v9Qu#{ x<>ow12m呒opM^.!TPX3v?ESBBOb!G>o 9̳4<|HT>W]t#p5m Zޙ7Uo{XD *Q#hqRw EP Vh]h׊ZZF+, AEޛ.)[rP;SmwBLP]RڜICD|oyشtT?m# 8@/X`^D"]`^c-:QgrD?gTe#l :G.)zQ>#hp:!O.?1g ]^!-Q'H!TPPXwHe*(.j_" M}A1\HG[w"jް;n]ׯd{ h}:"JAgC::3gX)_$yB"Il" BhˁhUSVh+tXZd _g[Jo9p/,p?qKjjy8erT5l]]R]nFj[]Reƺ$Y{wDƺoguIQ6!E4ܹƣ?t"!-PUv E!TPM״STbjpCPi5Xak#d{|X3=߆x(}G4Fg9qDʪ&LӿKcBib"6o![""3_@le?.&=0I.{Q]Rtm~'۷6d u@oM6E j$_\ W5^mP [ӪZ>.):fC&2hi5Kv-/ի f&p64—=tm:_uBwl'6(ac@^P906oǾPԎCX"LE{-J5Wgu,>0 T2V7x$byVdIn$'80"F_$鎏ܫ[P(.>92 o'UM-7W5`B,jj [jjY],mX?z RXtUSUM-ΪAUM-U5EweCn;EUM-}mHؖȨ42`ZL9"™vCUS6ǿMNN}Ӟ۶WsB3'.ʴqzWAAPBDmQ\. GqmOESGǘ!(!\kM$#$el$g}䁒m$WIB$zO{A)[ܺo_D-{՛!U=hpeW?tV1﩮UPPPPAᏍkF؇ʟ4tT`Q\~ "6 ]`HenQl);׸`He} PK/5e뻮192p?$Cܳ\>%hFTn fG{9e먏vʲ~0hv%忒LۿH"2 BRD V󪦖sUM-.)mіވ>a%E=%ӇlhIئx}$ĵ@[US|=Be>pFuI39NDkUUSˡKUd9! t#2M 'U5 (e!2J0Ĺ++%8e ""2 8!*ssuIQUuIѪ'otI%E?V5l&#Ti ; ?/xnڜ&Sjjy=T_Q:4b{~ <+I򪦖rI@Xʜ=իZFDQ;ԒgeSʪK^Roc{ģh,"7ǣs:XdbeUSDD T]R4#Dl.ᙙ&qWU!WU_-.@zKrc _b.]\#GZWr? ̬5>??P;M^hhY&)2s~<{ϧ#myv< *((.?8O%jks/ixk0kCMAigjʮ4 W:!׼_ \&_:T.kv l&[=,${I¶7ܯe69XiL39"FoBq9uq *cQs BP1u ɑuTض$e[,qW,.T5jjyheUSK!pЌi!kgILa?;@MGMU5=V-jjT5D k7yp/E)ɉosz3!Ƞfu p:6 Q =WCJ# =PE<l49r2*ԝPPPPPAALQa4h!\CDvB6$M':䊺7Ѹ-<ܕ&i#.E~+u9AG6 Wgf:SipLJk~7u!ylV И#DpܜMѴef#:]@4I<QzJEF_瀻&理Vl)I2_F\ ?QDmmt 5e ˍ)w2:G# 5eRTaXin=T7!^ީk?ވtq.;BteɮCqHҍl%@8(zX}!9>Qt];H @Xy*fFZ+<ΩUAˏoX'8Qߘ2_$ya,!dwX57.ltI:%8uEM,^gljj266.н X~d,~f _ǍP>x?tYHXZ]);JخЬ \aБc<9™vDFB]LP0VE!TPP GqĬ2laRڞRFd>7,Ǚk_pwfQوC|o{;C_$YEX;nPMNDlcsփvc *3'i֕@Ys3"`xm$ ~(p#Ago,y/ 9!j\p\dn~$f}/|ߊ% ʫۛ3rFQoȲ/ sRL=n}v%2E "'WjO޾rl}vE|M2x 8v5[FeZCX6G+z*[AAAB(1Y~qǸ)B8w!y6!NӴ*ꚯKYW|)u}$o6Ӵ^*i} H[]}mN:0Iu'hh>ǽ^K&SG5}^׌< G拵Ha1`Fzk5s"sLMk2ڴ>ȳz#)6Rd09戨qy Il~ޕ_Zȱd.MVfdA޾q{DEgKo5!d|"RF?t|pv9OgkKwIx[U((((B' Xԃ1FFvx﬚ZsxtözWuMkxa0GMўe4AP <$uV5{0`Nymme ortMa+iBtN5'˷}yX"I"xI 9.XG?ö}Qס9a+u%Y]o!jF /e.?֦Wm{#Rq3!CG!cd}x4Hgh̡N?49 .HtkB]>WYX! :Oh\f!TPP#D~^`$ѡ4 ~f𮊺7$1xgAvS;7twvޚHo0ZcԊו릣vi RY͘Yx"b|Iv}"FX^dp "Xюz߼s5Џ(bX+#r?TkH?U9!Բe0>1eADސ)36R,,܁!kÀ>rk78 K/mmk|I}*(lP> :CEEr3s gF҃,l^faj {]ׄ^a̰5> $pψܻ0:ӑvbJߚiz/Q_*3c W-Nq/pc^U>Y' }5~";|bW 65f;35i!~ B)6,&!l;FxkJ+ FDxx!XGۭ?uvm&& k-qql3x4 EA -Oi LCg$pSM} {E9 KDa70YXzOio6:BV4Ԕi|)B0swC*Ed֮v :C ߛnU16ڽI^(!]Zv$iϠűr^E]а$U5GR>:{]4o,߫t4:')d98F@_$9TNXQ{$%2ٯ^@IݳiW-";vx/l {?|^ IDAT%mys!Dtngbe !h8PGGmp愱:aK.Gg#EP״ i̓w"` E.Bgga驭m@E6R8:8w(.[MHluSze >(r]mQ?!p <&Da+>-u*$ eD %JFMF9{Y,,p? vI Tg!X}* X2`_+|䦈ԾLکI$/þ3 ?1 X7f?ÓlM !&y|!oY'U( N${bHa<L ,"D 闲ԇHcGk[[?omkqrk[Ef U\a!TPPc@qyoGq@= %d]MIG5]k7J1Ӧ-e̟eVuy},"gE3E L {].y^}RR(ea#\=)Ms,y": wȁ}f;/ 7f{03Ml sgHAGd _[=i/5cWG-G,TXuX2B_$Y/=m2HΦ#"eh IBG/ٳ!oz{ nZ padֶƟMwдoJA*(lDpGx.&)ML91@KlU i҃Ɇ~+LDF*ꚓWa봵m$2^Y>?u_Q׌|Iа8a@rMڝ"<_u/E!X;EqafiH^.єdUl$DeAKtڔ}ͱYxX 4Bx[l%7E4Ǯov)cud60x Sá4ayhR6]j !´ )=_m {wgDIܝja- ]87 ު(6:FHs8B(“JS17oD(. W}eh_T[E.AT]M {]c)rQEJp5Yvu{aƹV[*ɾHn_$/,$ 5ovڱ}jOEg.&s2Q/I>$u 6ۯafcр3m_%YtM~gaez/z>]NjXNx Чc*4Wv I!Bgq.C0ֶoi28֊ : K7w>,,=I}*((B;sBq T[[}8RtoM2J[3mHL?C* $Si<[o뺉BGW5'R-5pЃ[6qɾtDt0bt"d" M@ Qρ}b. ,vjS^3̵\Cg^$4]}D2lty<}V|~.ˆ-td,Dûf%F^kx4i zdLXldpW9Q7{º!Gq+kRG*%YDmNuGD퇈z"ԪL љT֟0~!!lv5Ԕ}[wE]&z),k&R؏M [0×stʹX!\PF{/2 3lwXm嗷~6{u +lFw2۾oIoQ748Li$#`x4X_$pIn#r6 N=tύzwȠ tԁ,,E91ZhhǸT5c/nQ Qh)KYzDtٞtZJ3*ꚋmH``r|R-Bwwy!f'\jx &beFZa:Scr_$v) l]#Iq6 !x7!E- 2Aid,U~ @ PgA$3ahpM[[Rj* mI&u .BTo܁t6O׼LD"I(ZB1ZoƼf8෈V5o'6x7 )#GRHe7`!2#~loIhbs@Ų?cN-ve9|Ā<39꾶0D<˸  -!|i1ss..ɬsѱz<|ha5Qρs̄gֆz^EhxrWX,5XztnA5ªA*(l@H%j2\C}:[†[u@e D'_h)3!k#L`[{rmxZXQ|"Z钤ו0B$z {]{ZH7=xbćgS 7" }mIj:S:Yxt]X/s&>Hr_SxR1^ED?luXTysfdc;]ܿG/9\݂@Gʳ· =Z? b }OYdZ4`Eӑ>xP*Q;7 PhpFX(LV2݁mzG5e+ 63'\ NXD.uNf&4[2 u6qv3-h'9˾FhhW +rm֕C[d! ۞Po͆DrD^HVZxo;@ KR.Y y)h!C"v[xh0eB1x45܄ @ ,,M{>| t7_iPPPPPAAaa:)z![uߞJ.7߯l'?S߂F7M;eY]o6hhIM 6(8{F2'^ENŤ}ov-4m~$-g3,}[5Mk"|"a#9KJo|0e;X7~EzGO &5$8I Q?4IFdn񇮦sc9pzaqa7qaw!5>l?9~92,,ݝv.,]}5+(lP2 4]Kӵ>I%jԆHi[:v=-϶\9\a,WLEiF܈:,~u_$y<qx?g U6Whz_$$U;5Œ~ˈI?2K)|-W=(.Q\.&3ncYZC\q.nތEљ dp2pumb m#[3>Jsm_ƃNO.:- )+J;N ^d@ s9aֶ9FD4MGk"L}3+(lT((lIRF һXqђX2Kg'IrrD}mhl5!5=׶; KG!_wb?yQm/o]E~p9;>˦sS6RwnmDİ7Z:<B7lDSR$[tj]apv,˱|O]M/tsCE,g߾diC\,g"»4WT{.ڼNR岡I.zzFi8K kyܕXM "mW6ϔ[H@}T.2m*Q{$#"h!:}DO6Dk7|{ vmw0=6R: &26pk |&tDm7%*"JԎI%jw/h}RZW*Q{\*Q;~#%;"Wdp5"u6ZӴ3 {] RӐD݊],1n;a8N lC χ "qZa$;SR2# %'W.13l:GCȠD\P *owMO5+jG v@J(.fl p;5"RڹTN4 |(.fBvC/! *%ygFEV&{msQ]dP-cC?5ga项ֶƱӀ7ֶQ *(lPB7ՅQgծ7!;!M0{t= \ C,\ak12#3SA Ԅk5"b`z辕D9# -(43j4V۴}_D+϶| ?G!DPpC,;##sz.m.}5UV$I>A 02<~IT,>ӰdLcpz X}|oIl6NHG g\pt*Q\J%j́Y0& A&Dx)f\+?t43U;" <,,=qZ [vnHd`V7ZulHJ$G[wGk \ qe XHF>Eg;L:vZ5C9T޷ls{Z4/A~ e>y?N@u,j$@,=Y@XJ.18l67& 6{"R3k̴vC-MyO2&&vLJ#uT6A.T ]!IǦ? SFGqpDeGqy:Rx|2!=5 ţ=е gϏQ?Nu[I>3 ;QL2(bֶƷZW|DTk["gatI*(((Bc"T@xpoJfRY? \`ggHe<)PSQwzTDu_<!!RFGz]au^ +r[[<\WQ\G"^92=WqXGxHɏ3ֲ7 gbˁ!z߀ ,@V ܁Ho.Q\~J*Q)L%jٗ swj:#YzAhp 'O<I.z‚ %d$BBE6^l/ƩDRGqy3"-r Di68naw7^W̎J28iF'2<:O wz֮7>6|P}d!"q*wjH`X*Q\ mDGq_RHa1|pjvmP?4[k@3DJO<W9!nD\WdYXz""s9ܟe2.\BE ֖>F)"eE 6dppu Vc-Skn4G'u#:"6V IDAT&$T}DWۄlbr `.5!2L= 8@ 5#C#"|J H@Xx+[[h6"-uAFճ[3 &RPAAAB_/ֺ΄ދh NtC}5,)v BC 국˓ GDq̌[iA57v]G^A " JNq7xT雷VJ d😧;2Iϡ!6_[#¾İl&ֶM _WpHk[WUPPPAAAa jʦajؒA Gilw,Ж󿄈ּ! ^ "'Y E :Tmә ITAAAB &pp ie]PQ|p7l,,ָ:h;qc-@ן<:K$fxg鏿 "#OC#+=p%-FOE]*wVgB Ax>(./K%j[2v?4xnyG [C Dox6 drwA)lc ~=L ?F#кU#`CёBDԠ % 2Cl,{9 Kosc9YXL720YX:YXo]qE]fug[ pʑ8,VKg MoCԐek`X,/ U =Хf.h" C} Bx:2 aӂ,C#y' l&[QCԌT?G?B IfQ\zWn[ߏXy:ƣ  {]ţƣpZBA!/?4L>WUejDx4 aO菮]/y͗8/pɵףwCxW{Nj#R![b9i2$ i" 93Ia&L%j-f2?0aھ-GQN4ҹ; dx48run-`t,!<x (ROY<'17 (.)B]G"҄8!8Qu fx4\B 2P)TPPPPATv!p}wHe(1o$@_D .TPSj5MVIL> q5Bĸlhv9h1Aߧ0"]\=imkYX:iJ+ѡN#S뚀PjMB,R)B?Z^ʆ$Nctj> `_<\S$wCxĈI!/!c9XhFtM" w CH`IMHa-PACxNI?ˑ6DQ)HqψGΈOoHֶ>7R8"<YXqGBPPPF7=]߶lxCMY 5e#j#껌Gc]b7/YX{e=DT-/C+א늺f'",}og%2{lmCFMI MvhNcghBDJr`2b2S*i<\<)#f}-p0 X4Ig32h$DW>Έ>g{x4xP<<:O:GNCߥm?>3Ҥ$!&[%^KAAAB5 PSVPSE!`^5~:j[5/,M/W$ϑDReZDZAm5CDOj~Ċ@\o;iw]-ช?zy늺. 4̔Yv+89IL"R GFitDNCT |hRsf[ H?pELBۈP:!* jk W[}%YQ f9@99ΊOj` puKGC`x<LH/h9AaL=]ŒI-gF hZRPPPPAAa1Xq$}h)[HRb#pxI~ } (ֶ55r: #bu0vOk[caиhd&aN 2 WG"MpztL47Њ5n4)x46P.< i00S ] d"dkmF\Tk3=ГVH"\bLM?4-@llܿQm" os:V[lUX}R,,xYXzVk[ct]H—| MK и!ʑ$`L< X67=oܶ]ɩ9]]b c&DaU8?lU<owlOYIa=#{q.ڐ3Dx?*"| <Ϝ8F£ui%9X~>ˉw YD-9R[ dZRgd!ɟH7dߓ$r)XNl yǷQ}Nq( 2Q@`1Pbfbc8J lC!-Z` ʱP,SAlb0 CB<ϊ$K}^~Yz<=;Ibp(2:KC D PA$X0ƪbj;enn+t g1\'bzvA%YeY| $UH 'P}DHfIz{/݌y( Q9X &w!wA%d&?,@Y@dHsB/5n][i$=}Q sh7Q_Мpaws.^^IE.HƣwJEϞk^4uU"P( "1T6tyD7 a ^_xyP4w<<[k1Un]2!pAFEcGmeIrd$,lfϚ`ޜ J+jӉ0&Qkm 4lĨlB̆#4w|&fHMsGe]8<1X'osoN2/_Q8ޥK!ӌ5-g3ϵLgȰ[(r1FS5Q1ͅgsĕ.:<0=8ܴ%.F{CGA %bXl mƋU*hic$ʵ֖ fK)qQ}ޅglJźIS%w#g(yG"KB-~^K ¼r:hOt4M,9݇3e M =ބ?;G//bsϣ:d2L\<} 2ϽM  嬁_L˹9ݻv "G<-ENLbnL AA("%x|"-e`eC.(flp*;5,4wRW~ `WZQ{Z2}`i<lڴ+meYڸ& GPrZ=6vT&9Qۻ ErԮ-KQIzLFhFscCPBRL" 8+JG_E'R "eT|xg1v}k/F>piE-c~vl+ZBpa'чP`%E[Fl5Bpi9cxjrǼ8-yk6E%.ca>8_ fgM|%)rN7 w]O3[T $Jk-EFϵ-'Ovi^ tɑQX*L aQ3Ua*[s mG7Vdvlh[Y`rƪ 8&Ӏg 7$$. zK|C]UkK+jLƣN9ަaqTوsuodե9s㡣h :ϵ1-gWfښpǙs. ri1_ϱ=vpVmL'q>`[u(7<8_,`Qx+q$ 0 AʆSP* ݉#'kŁ_kiج<\ǴuZ4IbVAYJϵ<9LCYZخ}crAGx@"e[+jQQ b!O.lh[ ~KC j6\MƣwVn h^#BKCȎ4*_iQ w4sdbI`pi9FH?=<`p=.꽴}׷o_BMl6 <~sbp}T @~co,;?t͉%;`Qb??ǤA T6r/lX`c[@ C?-}C1Pn?DHͺd|pg1z#-xv*ר̔/&Yi" .д?KMҴ%A B_ʆQś6F |w{c՛C7 ]K]yOѹWWǠ r~]gKlJf'"%Q}|o}Vgg]z% 4Г\(J+jO$! *ADDiEkdwPdl"YL'(G2UC7fn|,3-gϵ[MD ,4wBq`TfHƣ_V6 4o3k%xcR2e޿d< R+[W@ʍs@d1QYQt}1ӜTZQi2B>A?܊0-g]`s`uTP.`m odL˙4ڃIz[j &m?/ _AZ̀A+lܦG۴=~FfAA(4P D'm'Z;wb^pAYĠ \ë%^C4i \TB9|8;cZ6b)2 LboQnGd;d<|FOJ9[QgY1knA? pg,rv\bkZ(z'>o5!Ϗ7@y*"gwAG:UvwcUCs_cLA蹛&4r%p}K]` psK]Zx}-N>x>~LW+d< AYG&',zmiE*FK+j@ի rwP $ϒ豨;a>pB2%>|_d|G_KƣuYn;Iƣ(sӯϖ}ϵ\{CSo/e~y(G">KbTo}@)35 ."9 K#[*NT-u)T y}a /룬V f hìt?^&ѫu0KPV{b-&qlŸX6 <&M(¡E"-Pp(rn8Y;K׿=̃p(b; 3b ?_OubZrf BAyו3.Co-N|dS (,گ\BAA(fMsG~g#rEXdL'Kƣ'iAYr)2-# Tė}VdzxE~fţ [Mƣwr^D Kz.x\ϵۋȊ"òt ׇCC3D@M5Mt8!*16E^:BY].Ke<^WHAu"IeAX {|3Q-Ϧ'"m@"5ԧv8&9g=D, ,U4w i8cdFZj;N[Y/>8BvLiE?R_v~>`!&NB!h.883r\FCX kOe)4-g }.-х2-x i*h<.]5cOKá P1E6 .Ce= X?O10xL Fv3K?so#"Awi7 S g9hAwKm wm-`@SSuٜ<}CYҮv5φIs/Q@tyr4-XKϵʸpi9y=GnF.J1D*vm+4PLL@'_ En "°+]HjXe"2HOb dzZw]>wyrLY/ W0-v@|lA Bp~ˑA;TZl+Q_4Yq۳p'(kQBʊ/-3Kdߛ㚖[9Boe yӴLI (qw˃.b՟ _2zf&ѱBe5usxS«my_ ('-\*=~[~VA Redcbḣ tJ+jY8#x9e ri2C2-E!n-rq.{kЌ[ܻ^g|LؐaU|Ixkw{}" ?LA&-ۀu=!%wٗ2| E L X=m\12EzgOrg{}BT,cʓv`%XH!AD ,ix@Ms"dh1jvϼfsn=DPAf .^OշvN PڹR}kͨ6'ܸS1 㝗S̘qtyE."QFQVqkWs0)&@̴;QnƌJ2ؓ^pLQECަR]|=W 857WNr*Le8lQd\tϵ+=^s kvK4-Ϧ,'O "Ap9EcT2Qws {ݽj!.U!H lbvK+jK \ۚ$dET]OZ<%PJ+ OƣPnhA.)] l$`XK)P07r (̘Cϵ}xif=~zQ<,bpD*fj>,l*:,2{9i9gB:=7&cσ "ARWnK]yEY_>ǕV.[ZQaiEA7Wgt!3o,bֹKTySMe5U7UMl.ۯ좦\Eϧwq Ҋ1yֶ ]pI$Ҋډyj(KCLwʵJ+jrO# .F^ IFw32g{گz=kq"sfYK 4ݛs7PƢwsi9e p=wB  )݉c~# TB4$ X@t2W7fZ0 j+]prFe|̕d9ϵPqOǺuE!2*RZQ;jYELm ^OWSĜXwhY%?=׾6vw]3pϰ \rF P 2*Xe]ء,]4 X)]mj?Y:+4wk'KS:mʆUBpmrʺ9 xbCraZӖ)PϙM<HkpTtg|H~1$[~ArOo0\O7c1Pq&BQA|qv> e-OE.@3*c}Zlxf8{;^nmoXж-p>*^U`5*Ϙ>,so lh 7'>fי1J|lHžw5Tf1u~Z{W~A1_i!*6}3\vA DMe_+-*ohQa[K]ykn+LrGjF##xeQEWҿUN#"I-ǂ`ϵ2WB;dԅ:ʊL`/ϵ "O'RS;"bS<)V<c)u8p'gs*`#2oӢdϵ/o'AD n] 4w<l\RW~Z~ˢ l7ԕOC%E \K`&"Go2@y-yX{cmK_ڲӻd>Q8R8{ϵ9vV1'z&RrҖ>\K w"5Ƥ~Şk$-KUAM3Ux[AL$PAiWj.ї Zqa~[R?[ܱ[|e%A1pJnlCB[Z X=e_!, ہA1}z}hxҴ3'Ե@e|eb`bp3T4%RO8x:cȎPdA8MIߴBY45[謩-i*H wA!H}kH-B7uMe94w@4w셊{[۬o+)ݯTUS /4VuVz7Xuypʆg)x޸ʆ}}/fU6U2NoojX\Kg,[ϵu) =4PYPi6Av{,Q==1'R2 @ Uegۙsc}67,2fNKbX =׾^?o`|Tzݥi)f5eF&*`"BA!(wL@ꭗ/MŖ.-Z [ǵoǁcb00&܅ ;.BY͚V ~@ڝs>+3=nA%fRPrC9UcϵwGAAC, B-)T *'k;i*(=;JzdǦ$ߓjDacGVk.?#; IDATM^$BeCΨ|~:uI\\-}cاA. $RGQ1'RCmٻ7ݒgtmwPn`u9/wJ=s탳P؂>w{QrP7_%A AfSd?DYmihj+=( k;vaP1iGԕT̶+&lh[X]?8V]XXvR{cKE-rrr Q4Z IYE8k|8AOwٙL +gZP~\ϵx sv,sKOyג CXA [W-GF_߆*JMs5DW*T:Ԗ[_a~ʆM*6lhۊ%JQq[p0Jr Ͷ+nlh{mBgW6=Qv>`署V6-gB/Ip(22lEv "ۆC1|XGBoOu]#0 x-\Ѧls+-K=~TAJ$˨ ?[;WA%Y9Qܱ(rgԷvC>lۋsX zxhEMlh[8E?mcƪC3 B-NfjAq==r' W1x)pe!uá%P$KF)pw8Y) M_'?pi9ہ3> s[JE zeS\T]*cMsF(F(aEK]-rLmDQ3U3qUaUU6m<&7V mSnƪχiDT\-|ݕԴi:l/UkEPYZӼ8?2-P"J*0Pdx hKznD*Dtzg/-}mmm~|Z{ BAacT-•=[|s|(}jnF[KN3 nv>P p0~ҿJH*~ gsYy l-XYC6Qx "jA\w͜JwJ|lҿn^}}tP ,b_W*AoATeTAXes\xgI7ずj;Nitt188y0`@y%S j}<D6KfNvsT}?0WΜ󲟯sW*6CK3^E6ǟ8g: x8 0=S1S\D 4eTA]5Ux}^j;VBYA88x|g-Wh+nֹ}zjXPfʆ(tρQIV -Q%05:Qi^cN lƪSQ IpQ.5ǿP崢o{qsCQ1'}J_[Tl!xϣPGq$ ,ՈPAr6eA'Ӂ[;GkRRWrK]-u;4w0bl.Y7VAO zwb`ƪK[bfax8Go/(yO gbs<1O%%.)P,kZlTZS ,wO' XrV(p~)$hA.D/+fD*6SFA{z'I3zWϵ\t|CY:SAD K"#:4U˶ԕN_ܱGMsTEOK])32ktNvWHY)feNѵYr`ST2ooȘw^{c٨M }UUJ"i9W>q} \iZNV\|Ui r63ZLzi9\ x֏x4kUNHZQ.iv,Pxom*-l=W".{ڗk]%AA( ,n>EYrRڹ)0B P,haTrLQ4h)աCUloz*K ÷XK;vXz; +,EaZE`ί F7'!_r YC*oODLOXP7US0(c?` 5E ~r{=?0Nk?( x}| PAXR8sbZTT]^%0ԕ_2-0T|Jyj+RWRW>sL) @^ہ#Qqz2-gBפDXH`Zj9?r RxnZNi9'SRK^ܱPoʌ cʌ5eF׫Sft [Lu]3JN]{(EYbp:wxwb'g}Ex,x*ixtE\83ϐ,|UZd2=Q "+C¡Hup%p(Ro{Z@ijx.P R) .B c6Ue?M֚採*ʔ];@%*qT7mS/ U -zA=9eF X9T&y,efB~@ӡ[W-嬜C@v>67/߬$ϵK d[~ug¡HQ]f"hy1x7=Ov73n~}GS 7 K:R^A05!-G 0Pfz2/f,gs7HΝ:aܵFtpq7鶹@ WFծ 3Ӈ x<´کB &O;}Ls%w]۴CPVVLٽ/ UKQ_<+g>%,C&R9Pd_Na?T N>SzmߴCMuqMڷf7-Tb]oQaD, `$sQ0r9>^Ftm˻ӏ+]"!- w"ʾ"(h Ϙc|~]MS'&ߵ}mӕwo'z'd$S\bZNeSnZν]Y ,h ]nZcZΘBcb0(`".%, ?.GW܆H"ey $Sc1*IN0`Tɏ}*. PAXZD얺SZS|ѫSft2)3Ռ YW4- G Nւh_qz5=S$;9aZΡX!x}q7آp-D*vq"{11UbWнp*1Q& PYN7\maiCbA%͙2@?SftAu[6eF׷S'{ʌ#;ZUNc.'p0uqm},HT|X?F A1x ^ayy%?깂po&(D7-gK bm|SLwڋA!b0( áD ` QXlLa CXSƐc  Bu,ЍdZ&FsS*ҊXAEO8y}~ QaVځo>7uU cNG ݋r+r 8pq}sP4ҿQ`kϵ:Jw(eIϵD"M;}ĴsM)_R`P2x´(̬ 8/1oAqL\Vϵ\n ,HBAA$LyQ?}sYJR3A{"ˣ eSP1_ |7Mb*plޖOnZ MC bZӆ?W<^cz "AA(4<~'wKU#1(&ytG](Ġg&N*GT Epl(Rb^T"S'=Q^Ko1x QAAֳA=W+hNn{=s18hQAD*SBc4H8Y$>C 2[h!6rw A!(d{ $4i5-gw. 1gjᛎ\7,?@Q(` (,X`ڣRϵߓS]  di9ByݨX{k2Pdp(p(l80E "'Cc鴋? "Fa_ɖh&slRC!Fϵϐ\  dޅԉgG9Դ AE@=6P\|E-BU!>O_–ԯ #m-E PAby8٦,S(S Uq2-\E*B5W등H PBE~>AAD P4k*5fcE"LjbpTq/f2ufr\89E G.ۗ d0R 厚) T~PĠ "AAgd3L˱q&Bo ~D*JC̤4Qv9i=ĜRp> PĠ "AAk\h2L˙T4gC nV4OHb%RJ~Lb] ^"81tr8L%R0})E PAU=T _x֏,aD*67hm7 s+0?b0Nfi9NjA  %8ӻ ,';i9ikֺpL*: ~_MVJ1H[ W1(BAA[~jN!fZΤ sZ0-H@K-E6 4ݓH>k\">op(]8C} P%T B8BD PA `'zR}ȴ;L{@0Ry*[f5QY:IX\{^?6Y*B̼fx6L:K7d-] 8j gwAA( C{=s-l&_sܬe} "cypNfm@ļzb\ {AA"Ac.AEi9E% en\ۻ8GưVu$EC"("ABZE *E$EZT6P-2G㕠m-:|<~ssogd$v|dl _H/`Ʌ3`MO%DmKmg:Ξ\|}L 罚ьmV.GF`myw7ٿYܜNOKTmeg7 &Ime/ &IiOr~8. @\o%9iߘI_2< S/Ƶ9;?y!nJao ˬG HrWmE1V>ʟ`}Ȟm@,I]W'j+-aS#\(q@ Yme~H"As4N,XEix0/N'yrXVJoCIn:ٱ;c+X[QABj I`2l*՛쿐NwIQmB `]=I~Ok'ٛdO\gk+ BXa mJsIIRl;:ITAXH'$VW=QXa$,aɉ$j+ڱA `97{[Nr&#[ɡ$o$ck+*S7HIDAT82 \c5$S?;STZiMA[IENDB`calamares-extensions-3.3.12/branding/kaos_branding/pan-end-symbolic.svg000066400000000000000000000016001471772643300262070ustar00rootroot00000000000000 calamares-extensions-3.3.12/branding/kaos_branding/pan-start-symbolic.svg000066400000000000000000000016021471772643300266000ustar00rootroot00000000000000 calamares-extensions-3.3.12/branding/kaos_branding/pan-up-symbolic.svg000066400000000000000000000016061471772643300260730ustar00rootroot00000000000000 calamares-extensions-3.3.12/branding/kaos_branding/show.qml000066400000000000000000000126771471772643300240400ustar00rootroot00000000000000/* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac * Copyright 2015-2018, Anke Boersma * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Calamares 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 Calamares. If not, see . */ import QtQuick 2.0; import calamares.slideshow 1.0; Presentation { id: presentation Timer { interval: 5000 running: false repeat: true onTriggered: presentation.goToNextSlide() } Slide { anchors.fill: parent Image { id: background source: "1.svg" anchors.fill: parent Text { anchors.centerIn: parent anchors.verticalCenterOffset: 0 anchors.horizontalCenterOffset: -125 font.pixelSize: parent.width *.015 color: 'white' text: qsTr("Here the actual install of KaOS will start.
"+ "Use the left mouse button to go to the next slide, right for previous.
"+ "After creating your chosen disk setup in the first 10 %
"+ "the full copying of the ISO will take the longest of this install phase
"+ "and will run until approximately 30%.
") wrapMode: Text.WordWrap width: 500 horizontalAlignment: Text.AlignLeft } } } Slide { anchors.fill: parent Image { id: background1 source: "2.svg" anchors.fill: parent Text { anchors.centerIn: parent anchors.verticalCenterOffset: 0 anchors.horizontalCenterOffset: 250 font.pixelSize: parent.width *.015 color: 'white' text: qsTr("After the ISO is copied some 25 post-install modules will run.
"+ "This includes setting user specific options,
"+ "removing Live Session only packages
"+ "and adjusting hardware setup.
") wrapMode: Text.WordWrap width: 450 horizontalAlignment: Text.AlignLeft } } } Slide { anchors.fill: parent Image { id: background2 source: "3.svg" anchors.fill: parent Text { anchors.centerIn: parent anchors.verticalCenterOffset: 0 anchors.horizontalCenterOffset: -100 font.pixelSize: parent.width *.015 color: 'white' text: qsTr("The default Office Suite is LibreOffice.
"+ "Calligra is available in the repositories.
") wrapMode: Text.WordWrap width: 450 horizontalAlignment: Text.AlignLeft } } } Slide { anchors.fill: parent Image { id: background3 source: "4.svg" anchors.fill: parent Text { anchors.centerIn: parent anchors.verticalCenterOffset: 0 anchors.horizontalCenterOffset: 250 font.pixelSize: parent.width *.015 color: 'white' text: qsTr("Qt/KDE specific internet applications include the
"+ "Falkon web-browser and kde-telepathy for
"+ "chat and Instant Messaging.
") wrapMode: Text.WordWrap width: 450 horizontalAlignment: Text.AlignLeft } } } Slide { anchors.fill: parent Image { id: background4 source: "5.svg" anchors.fill: parent Text { anchors.centerIn: parent anchors.verticalCenterOffset: 0 anchors.horizontalCenterOffset: -200 font.pixelSize: parent.width *.015 color: 'white' text: qsTr("For package management Octopi is the GUI application.
") wrapMode: Text.WordWrap width: 450 horizontalAlignment: Text.Center } } } Slide { anchors.fill: parent Image { id: background5 source: "6.svg" anchors.fill: parent Text { anchors.centerIn: parent anchors.verticalCenterOffset: 0 anchors.horizontalCenterOffset: 250 font.pixelSize: parent.width *.015 color: 'white' text: qsTr("May using KaOS be a pleasant experience for you.") wrapMode: Text.WordWrap width: 450 horizontalAlignment: Text.Center } } } } calamares-extensions-3.3.12/branding/kaos_branding/squid.png000066400000000000000000004512511471772643300241730ustar00rootroot00000000000000PNG  IHDRdd=sBIT|d pHYs 45btEXtSoftwarewww.inkscape.org< IDATxwxTE߳J:{ェH,APĮ""S  F.$[cٚ,ɼÝs&=9B5DD`=p  |:h4&dXCD|  QJgh4&{[T~yFhib %R$FhdBDc @ԙ(,Ih4&ft`? ]1PCb,޾ Of@_)h4MЂL3ȵ|Aνsk<ƪtƶG>Z΢,nSSJ̣j4F1 "2!sw\M罎]]%]i,vjR(/Uh4&&;HP¾`Q| 2v3;>u۩qJ\Fh4D Mt}(-"#;KV/M۩"$Jh4&hA.2f4Ojދﵸu'e'h4&тL+t0ڥk 2ߡZL\F)H]MЂL+TU7 -joXHI۩"3+h4=dDdܒL 52:w F(Zz+NDw𖈔*5M@D6,K/<I̯i &Zi 3)%$u805?֧)hAJs9a,dv~RRs\)"YF)q,KVw{_2uXb8\Ox5MK9Ül(yzcTnbbнGwҒuXM$ЂL 8jQ7{/&o[УNotFSHĸ3&޺M~m@"lc^̲1 TXSXЂL 8Td+ و3Gf.zM!DD$f3[gyWu9^dLX4ۜDI$G{횂dX Be oĒu֑6Ux;5BgY^?1m *TV)EӗG~H*)FQ҆o2iWk4&p'} Jvk޺uFS0abr${3L0!g _eB)bGdp؛/;k.͛6G`fFeh 0=4pYn?xC+[͇6 "R=F`p[\Uy^kUVLY7*UrrvؙF\Ū5-'%9lL 8,d  :IɝouE ~ǀF fq^Ԟ;{ ǘ5o3"F#n` ^wi4&pXv߅j90ݖ RN&4CD"RR$DNKl5'4Ho;#Z]mY2{U[Uq i{b`6;tlבxWQ(Q&D -4BfZylρfo7: ibML#"E^Y""G,()"{Ed,xc %KHKtY wvm岞Q\y~\#]te͆5q֯{"%5APQz9dXm(j$%Kx;U x ͅ:q3PyF"x )"sEt~WyDjt1vip*]e̫K^o7c7,~LLIuR&ٶ~꨼ MG 2M,pιOA-$a\Ng\ "! "R"8x.s˘#gԏOѼ%.FM玝eݷ©ӧ|?̫6M,pԹQ;-G&1~^= Ft 1 $8UI5`4yQϚ,U<L?jUn:991MȈR4F)aD_&ȃ#iils#YuvWL=[VΞ? ڟ֒  `S8{M:GR4.2̚}k|u` 5LVt=4C:rb,Ӝj 1._L=~wtÛK'"C"J4DDpxi^-ࡃ.I`9̂/?UV1p{r0QKV |FDJۻi"=nܭ(VwLA]t?3`/0RB -4 |h3g2z !˿:0%5!#"Ed6$|l({l5a߂sN_q )~T F>i55[n7(6=Fib miC-o%KĖpTeD +REכ7W,\br{?Y5TYG-iXk^o1PóK)Eɖ012LՄ~hb , Z m7Ny='kjٜͯV`зU(2- xi)S۩8YPDR&,D$.}[[}. `2%:}4.xzs^d㖍^i&RhA<,dKw, pR`@d`{GliF?Ty~o\=2)ek~z# kb\"/]1xϘ!"8MbVWYӳ:΂oЦOxbLfGxg;k.cG@%ILL[nzn/q-dH&/7F͹ D߫n/6ܱ͆p aTRwͻZʥFe0dF12.yIsЖHא`~0o _ֱ'f*)+{|MiX!iii>o,F!|~j@y4*o?m)IµU/Y}7d4 &8prQ Fʯ㗸Y/nZ0a5WVl5eMF0(F(UY,\ "rsX "%h{o*xثV1H*݆uԩQwi"dXwođN Y?.ﳶ4 "+qJ:P6,?]Ȕxk>v ;:;}q _e!ێlce4} " 77ZDVZ!>\$%&r!l6\C D -46{|PKgP6}E$NIq-־j{VMg c?Nu'gZ^ǺcUV5+!82;S.ϥ=iEt` q1ֱ؂ Z}X*Țk8y9?8q8\;圛TM7&fPmO3 jxc|V)yyLC ) wq"oZDbkqk> #|҇)%"a P\c)+whRQ ԾysE$83mVsYUktެcY+7kcXf;ﻓ%˗0|*w\b2"@S(тLkxu[oAO +YϺ=(_ۋHoR@\) ){>ԟ9 2x1E: 2.>k ` o>^;ޯV+aێmx>-zYe9d$| Oѽww>.|1YlK3A&A4ί6~E9$oo'ӒT o< o_bqb|½t>V5e`'4Hoo6ۏd=y3[T`j | x / Y&E_sN/\n'"YJ/"L!r["Nֱ2,^їĔISnu:VL&`.%'aw=^s9@ 2MH!hb:bl\˲diȴ/=f_+NJԂor""Wxl^?C}cT= k[-+'L,J d`ݠ[l+yw>qKfpٴdW(2D< IqI}Ex4`+ĕwmg H/kGRBE6nS/<ʼn'x7Es[oaLYtx)E|׌oد{7)vj5JBo>^I*de}NtDn} moHu9j D*ߙPܖKצK.[sGIEw_&ǖL Nڭf7b ` 5yw÷?O>4mܔaԬ|ZԨCn=ۣ_1p9禶iBF 2M,2[n9%gv'*v{wzc\zZ:_]%%tnJ <],VKzeWA!LґcGػ/vb.RmnHo5-g&?6shOZ\ڂѷ濃.5@ЂLLwn<< qAǨ#}W%13WDU߼=j@g6h,SVeNV!MϽ\jR*"tる$zٵlXCU1}6o݌РN;7mĕr۹iߦ=?/knrݕЂLd[=shU$%>0^?ݺp b Iǖ|޼bsVN\ACsS|UUŵA])Bd) ) k6^k%m:{{C;W5@!αgXil#O>ӝmXXl U+UhjQ>~8Wt5 돿f쨱>wxkS@ 2MXhAYRAR8cL1:$"0ljY3۩K&"E#]v<'ʥnؘ~nweAfj=Eн[>ǎm7ɝ';w 𦈴qIADj`ۥکZ'+V*_#ǎw9>C//"w;u_wLԔTp=.KMXhAiR+I.|ȑ3X#fWѳΥݗ"RX Գuх7|O!WIEjdsXTtԄSzj\\+'w{nd3‚$֣v[#Ӭ^:S0: IDAT O{ěW>=r كw{=_X1k11-dЂL(^pc#XoMHs&%/T]>]HHulbڗo1 s=pRzrǪaW`  jǧ;Cq8}o=V׼O/E$N"teq9QyH;,_½˘cHG_ >VS^=*WsLR1hAZi.RSǜf7i [ b L5=@D8u)}տ/wRy. Sol?.9?f'+Y:=(Tў E_P&ťc3 G^~ܳnOܕJ)Lf#`Yl 7z#Ǝ? l:n^qM6;bΩ'&, \0(tsb < $'j$ut 5>cl`|:bADv:w* K0&pE6}᳇^Sdu=α?x @t-J<RHd6"!!y/q31[,duj Nlf>z(۶oÂ㽨c4aB)usߊ]+qVAxoweG "R[a͇D$no}SCǬb_.yLz7k:UAi =k{QZK.Ͽ X,2q|< \p(&$To6O-z*l,9lKV9"#el""%jFΰxmlqԲ\ʠPJ̙pYJ-]2##Z䯋  95r:Ǫ?Xfǹo~@2e0,DBd ԋ8m͔w^@r7&&t`,فL s%vf9o}}H)H,ydвl%[=l{O㊆W8w%Hua_pJOX\RԨ o#ܵ'︙%J" 8,h Zi.XR_`y7䝫ԇk? i>Vxc<:M:5BDO55a4O7|,[A k?6+J,Ja^*7 y cw?behݵ5/ΫoJ yWٲokEtBd lBbj߽7t n;L(g4Og7@I@rO<ük̝5Wg|ԨVeA/ȌGco*'h@ 2MC)5 s7#?<_\XRJ""r 𜽝ףAz?WκX?'B+i %q޿y|gsx T-Qչ9pKE 2'_-f8N]Ε,Q;&Aff&_u@ E,[ĭF*Zi $J߰=xf3\u!eOOjaE%8 QDDj? >}Vi0x2)e%!ϕJg?h)TyCr_">wX:f!OIMM_~^Ϸoc?0 cunЅM.hA)({˻=\(J0%ث,YA(dJMzO ++7,V ~tpXIfCEj3c] .N]K<x!dvX:wf![JXxq8qxos_9\/hD 2MF٘\$"XJ ln"Ee3kKQ8aZ4算R1pтLS(PJ-QJ55l;v/gѿCDr ?o:ͷXjeFJ-ycǮ妯UKTCag%-dIAG⫍_ĸD6}'"; +;,a! bz1nqߢ `Xey VF-4!rI1~ǹA͑%[NgbBՀ0bzZ:4䝎/C [䗅?5bO~yHχݻM(8z& *uVLY4%ʕ-G(o]/~*;$BZi J)k9xc-Ep3 z;vsKw*Vv1?RJQƃ~t}+!r2p yaEj.nS|Tz6)Bm*qiOaWT {L4J(̫,["׮QXn5A >E.ߥx >>G9w oMD 2Md1l倮qw[f3󫻜§JDn)m<72RpQVZh W Y .$%Ңb GǑv *u! #QbF{ 0Q7[/Ih֨}.3c/}J7h"@ 4ß@Y"_ql,30D.N)RSyw,nֱ-1.j]% cܽ%;`:i᳎*>aMH΁{&X'лJv]=oZ[)S 5'5%؇q!}ؠndM XsY k݊yEv]w{ ^?#iݕ]kt%%!i!}L~{p~ДM-A1`K#~Zp%+`R*MhFB=֒ĢC3c@K{cpbw{;p A+Yˊ-\b~^3(dl//ߧPm7ޟC1Ǚy'_r1_MժU\ϙQwpL9s !"Jd 8|0D2܇CQx}Zi4HĞ\܇ ˮS9ϴA ,Q]YTMꔩyB8NGVZ9ӹ̛i$W okV'[3-ZTS>lb^z_kFz2p+U&Vi%6We>f5-4'AHmAsjlX^wun52\G"ɲdt҈ݥFnjsWȅBǾ-oICv.EUXaKGOmm^44#F TJe4ЂL}=wh7,k\ ~p{e<?WD͇6H -<"1ʤq&"WE&>~ucי]\s5kbA/Xk^KZu(^uEPp & hA)d$NdSyq3A&"Iv!yCʵzp%'GJIaDB`LU%ĺS<8Hv禓@i?pvV^EHO8gGDMWoڼ`5тLۃm&0an5Ey,XȢAT[֠pf4+vћD-#[OZ۰ |^M,N8pلŏi4yd veEB&"qU=oCرsXk)w%@ Ee Сj{DZUYe/_D9%"R+7<9I<ے9zM[W(W7bz/?lV@oOz hl8s%Y^,ǩpS=I$hysv~\ ȢQE.ų#Nmk&Q*l Y2eyX,Lv:ii\7:s6c=|ɇ{w1Gԑ? MphApċ;w83xrqfh'vju~>ʺeRT1dQiU&9w "?(2#z6!~.-6@MfyyˬYsY|reAf˜33h`vCQxc1ϹVZyIu2odMЂL}JD錻j*C*%A8bƵGͣtYAyȢȜm}k+g{WM`<6w,lA|rAp߇Q'+?feqLst` $ԏH PQGhFcB{!weU݇Tv"R]rbjǢqj׎㔄蒏d*6'9>헨2c=u/>~VJ *L&v8"%1g|G .NRb$33x~]s5h4c4 Y =XW Y4x(bo &8 \?>JrBjaz|7o8Ǐ5*}iD(, ;-\Rꗭܕ vOCg]Rz4Fcåjbw Y53WwnBpX3BqWBt-dERX%G{U2nvYDbxϺX*hA]%%΂D.R}g\r 6 Z),/,d[X&'On9̏8?tZ[46Zi46\%xAPtmf+qh<攑c.vU_hrӡM$%!\KqnjAЂL s!8pƠW9]dq+T=@M%Z,V L0CDbeC 2r"RKDʋH\cȬǐć)tK)EZC*j8lSMTSBW~>2jҧrbz(E=tRڏ(Vޥb $';cGho,Rj]4Q9D/Eaaz p`f9O1peŒ IDAT+ls`_&j & 5t5֠ʳ?ݶ!Mx p/h@d⓹51wwG1ƞ`b] p kZi>➱PRمN*mܻ.<]DYW*5j&_)OPMXHU`)0*ū`'+_YJEA гnO~@]]DDx;'q+rx]L$n~4oYʭݻM;YRwutιM-_&^;# moOS4h-,0֪X6oXk-|;ڇ>)J~v1wve[+e39r83OkQF$%itn xN%2,+ȯ$}6gUKY`?P2j4F 2WD!!bͥu.߅ lE[Wn͏cdΥLv v0kEdR{Ӻ?qiV@F1Rhy2O \//c?8z(Wn|6q%2Hd.rqש]Dd0bl`ぬ}c^2,K&me鄥|O)|'"sE) {.X9?1.1,xr⢜*y<d"RCDqJ{azD"4m!Ӹ "S &0"`?TYyyUiNJ˙r6w~}((QJ9\8@9KU~_D+Cv!h]C5dTTbD 0hmLdJ\]oDr R(M8}g9d}9ǟzۖlӿ Jط*M̢ƁLʔBc.Ιy7[̌͘j=K\ˆFړV@Ԣ-Ȝ,d]]*9\s~2.1TK8ln$LJOM|QzCꗭ7Os&  6߬? 6pAoÍ6>4dρJ)S@ J "W/f3g\|^Յme ˒Er4Gi*8@ `ܠ s.x 8 ϫ@\#ʣDb9L)c;Wkب⭻d"\-4IEY'ulYJ$@2rv,͖J*mi[ŵ<ؑGX]- s<f;." =֖3;Zijdnj=rZCexhjR&x V&bUx-,f8\tc*wH<d>qWDar`պF0@뻝:9sNڋ[:4պj]ģ=gn+rsC" 6R…d~79YIQqK8V E)(v I4}ݛٸ틗;ߙvgyۓQmGEse"4CB?I$ {9VXf7ɋ̦.d nw֎RZ5wSUߠ}uEϝA2ϑnѭv7lr~+W\kYTJMƉXhA ,~Lu0EXsX# ,^\JKsfB@L!bY5<.cr4I#BE`qzH"MEѠTJ*hVYyG"KoT+RCⳖ?g1" v.{Y#\a[ꆉz0< RI@o۾;*k䑤t,_;>)쯳ALؼtՅ.0e:VRj6}&dT}^EkLgnqAV_8re\9_: ;+!t֑Ar{CHS$O(sΦǹu պSD*Yfp#~;>T]`6P _|L~ߙ|9 s3'ǧ/0dzfOD'X?6R7Ed ]p %le_^gDEDyz8ub_Y݀.%^bֶY6?ȇwH"!9(_>M6a& fƭdz Z!͒ULAEv-.P0gA/G;~rkҹRj1VOZ qtd}/ysxr dElU'dL0WOEy7pRj"\ ! lR!U;ЪBXz]'ދ o>rI$a"@)"ZEW ߰d>`~L;QQܰم4^Y*պ +d-rA\YfWCE,3 2᧝n vZ^' ^A㸫IțCyJZWyKKp/P4l,+ jYiۋ'?)ZĂb",i-.'^fֶY|,9{@" 7o0J\hFZE4- Kx>9ȓ _DGD;Zjh5w}׾/!53z۰،0lɋijxȯ@t|; yR*Zr?Ѣ|סl]Kd7QHz=5aѼ$h JYS"r,,Vݩj /.!5xɤ G70dPW痌dXIJx X%""] "r@D-}9a}%$s授0w\҄v3Y$sWEdhkT^4bxVdޘy{;ۥw߲}8g…e^R4lZd6\xy×3uTwoPc2zZjua~ Mlb|kYD5lof((% e4`OJ9٭Bky闗z|+h_SwyW59GBMj]3ɰ'E2\:M̵[׽ʴϥKzm0M&}q9r7݅˝hP-@!]>!TtyyȔR-f=\:Ǹp(#׿&62J*Qh .ҟ!TD"2EѢ| xl OU~NNc"2/5L lR*?BrClk>^Y*Kv/8|LK.3; OjKէ`fGx'.]#*TDN:-ݾ-^>Oͧhn %.w=BoəkVJNjX!_GhkKGhI/ABj'l8zyP3n8vۢj֗X~zh~VCλc, XDʿ <-`*8חNu6:/2Nl G (SKGǛ= kR%2{}a'le/]@OlNv+߰>nx0hzlE1^mC!Ğ{}Aeo_Cu YXj}PeOsnD2;ϝ16ݽ¦wD3^"B&cIMK%5-w.ɜĔ Sx}c"tzfHe"ZD"򘈼("Esi(("wH})Nha;+ߡT]Ϋެ\3<;4lve s6Ȳ V[9@HIKqkm<nV."Ã` dy^k*|In؆UՊTcrIn;t&wwp!8!edƐgRrGgrezNN '@]~ -,=!>%SI2'dN"̡ٜKJUAssi<^8 *[DD䈈|#"E*P4D;/d1T]earX돮-\^(ZXMC~gtwqǏ"pԤL͞k=B_U6`~E,4 h݋2 pc0z]twZ6'R߹˻=_oP_LY6!l9=JS[xlgpZN(_!lk.ra p-Lt 2"CDZDثYOoasC:jE`OϑJ!]H dهx(ܙ|l˙JEº sgh='G^?>mЗ:6+E""sD6v;»XL΄C7}GCfIcW8joDn(b K5O}=,inK\KF9u4-E]_(C9  Tƣq% =fdaB@LDZjCɫUIG%E A}(PPNuo|y&h\/"qe>Yؼ뢂bvɡFTؖ_ ҈̤LV(Ddt g;ǯgy,OuGֹx7K9d{厉mxk[>ihb}ܤt |xχ^%Y,bi`XóLnV-0OrvSfPJiyhlˁ}JgRn]VR}}o?uB^4)ۄ}WA{{H@ 2wRi49m2nȳ8~WX={lYqֵ57Qy|yVnK"}v7@Mn`|J{p!h6P&8'{!t[fź Bag/=xl TSNܓ>Ry~HODCC36 7ȔR!iL&%-Pu xk_F&>0I F qw{n>gdM$uaï~X m|}!>J'=dCf4L)T K5aS\;ÚCkZ\_'y s6RD#"˔RME@SWOarG>mFY\afO,ݻ`R% p2{`'!sgm;My32ȌxIVe'FszAITKoTY"""h9@nL\"+eZ$w+&ד3i$k@/c "2—1f;gtΔ {3o\9>^mK;|9,~QRoiXUk_w6.J:wGlyz3;_~-ՀMJ:Njn4?ǝS CTDMdO!0O  2WOw-oAco]K~-87*5g&X7.&^:i`FaBdR.;Ɏw7ݸhERu{xt'%㫏ǘym3(:d) 5,8ζݥVv ny)(τn_pab.] ~3 j ^盔mm^}*06Ȳ,=ds8~l#:0gI]虿!\y-7 >[t|o3t^NC:HH`tw.7-!;xᐑaЪʈD$Ў s;"Co}7NDNx!Kݟ 6¡=N)UV`5- 1gJ)g}꯻/_8#=@"כe<ҿgZ>n=OTJoni8SN8Fne]o:&"[X[J kJ^z7Vvfuս ,u.yzk/ PIDZ\{lvwH_ks[p=n 2QN11;y\F{,%%O2Y4/ܶkRFDUHc4g߷;"M~{ ^loݕR3=\醮̈́J7W^]}[)eRJ5UJoIx-?]uֲ&8>F)h м|scqpG,wՓ詓습S"dhK 3]j}2Rvv%g ^= eH,8\uH,7@޽8+@lT vvwV3  G7> ;F20JO]Gc"cxp7WEUD)f\;sgR|ww!OƟ-a1LC} p1?MOo7HS$:¹/Jswl5ƊѲt~DӒ`?o@7}ʅ*38!4eAV2oI_<""l?eYƣ˕ I1Qq{jD.41;}.,|ʣ0i$z>/rXǝ kS7N uYTDT@a޻=/ -&>\']cYa{kPRݱ1mܷ.2[o-:;0֐ӷL7tѰeYBxS_֟ei[}?iX Id)tdJr刊M+ǹl_ #ESCILM/vЌh!X37g;TR4+,㬕 b wtT`3@UWH dه+]xyŠ0Ex}j[VQ, 2ol^3ݨw,5-wtɦlj צe#JB[}`5J<4+^OΟG \Ւ33.P\$#p!~sP+?yxj._O >e϶8 t6"2MDu/"Ed(P z M8'/Y~n^&U/t0JI;߶ׄ7_ =ל"ox爊wUsmɧh;"M;EGz&ua>?6t>DТ| @3WX2tҵZw!&kcj &&e('#9sC>7ϾF6E>jW|KxpHF ^<> O7haX\OΤ3:T;65;0!leT-PD]QJ~M(v퇏Sdޱ30z{]X\W& g"L m`>aBC >]wׁQ& &e;Gw)ZjÚ 8ިwեq-!zl4k)[zrkmOvrg |7+i ^Oɠirv82CfzrS"O C9|~1f"@z.ڵe[~l6V0gJdyd4z$RܝnjY篇L)'ZӲMZ~W%WAPJUAp>Cz6Ĭfw]EJ()f(NC?nrj U)\[>[*pGjZe|YKxR)Et3hZ,h  2@\,`(Yr e\WqUUm\.CG]5]cPaRyKҪB$4ojg_O >؟Mٓ(7;\T(+dA*,ªm0dC#1Xxvp7D䌧c-TJSJDگJjZ*vɐbR&n)QOgי]>FjR'7L\7+p ԇ3hC/Zh٭4'n9r8dg1zu#3s_"";ԭX{Gyj6 M6HÚ }{y& Yn%sv_+|e]*e P*D3h Oz4e\)C)J)5J);ZfP#A2x͋s鍋l/j0_ÖK1k9Kp7d%q{sNg<֤4G #<1yxK7ȼx txoɿ *6J)噎b{q7o{AlYߋ T}sK)a"le7fn(0:"VkȪ:T/AwUTa6-@3&u&b;v9s/@TWXz‰hWQՋTf3y?;oDˑ:fG;ȏm0hM7S♰n֡;VX,2@sv>aw1dfA@gvqנO6R+M>V_fنXNصqZȅ"-#Lo?M&宀O-a,p]W JLjhbhλ !C)U 0 CƘQ[+vC8 ChDEGDөZ'&uȉQ5b't{kko:;̌J}mPc  G7K1Gqz˘;~rd2 wn 9Ъw~.ӛFB]cr7Cj%%Ҽ];>դ{>t}K)/ڵpRȹ5.vq-mt<͒݋Zd0& = Da\d*J"f8c̝1jTJr]'@M3C7K#ޱ63uXki@ ۋXb5D ?b"cR3SW9۽[] 8ޯ5㝅(/3l+]TQRR?).߯O:OM-wld.29dZc(ͤL|Lmb_/DЮ-F~"{U?5Rʰd;J-IeR9}0a,{ eTޙhCIc {zU)J)5R)UpUV741Z4„_2ƌx8wiW{H" j4ŏ,kg,z!^85FWitR"!@)5|v>|xCeeؕc<~EseJ,~dՊT3z<h=F3xs|ո1C *]7=0kHڲ(gYoP*F0m:UhCiԉ d kDg<tOB11EC)29S#ߠ? />m嶆321y()fvƄuXkmR&|9ʅ+ T^c7=d.ڼ瀒"2@D\6 !svQAfcNJZJzlb{Z[P#o{˷SWOy&l"pl13z[KʈVv;h]L>W̗j]a1{O;qX-+}Ydٓv!O*$')I\tÿ\1\Wǚ>8i{wfp܆r9x# n<*ܓbNeי]5}[ whΝ yK,aCV, A"PQD`@oFC;2(}v>/'6c(?wͩ^~ר c7Ȏ]9 Zۚ ^g቟}dⲵE]em=acX?̟ mw4*ӘHShQٍA + }oޠiY\m+/͎o Q9YOF\ūX9s9RfqIUP%#1z-,~l c"r k/_Y/;O?=a0~x:ފy"M|p]Rz N Њyzϼ9Ӫb+ۦ=EwTrվem9ҟ${螳{߳ mw䈊v@a|6Ȳ/Ӏ ~xЅ*]3rcetXіDחB#*<0ӐZ|ެ'lOB`VⰶeĤ 2L"+>g]מ"r]DwEy""D,dRqg[>2WrmYsmo3lL%8 5 DaY khO[fb[\; svM?mƮ3Zk]Y4`v$=*co;;ʶҞۿԜpFP彪2mo)fL4.@~QfxBeHgvڿ!sV<67r79m&*^3eZd :x\– @\+,i>';z춽7lle•m^I cGD\lGַ1†hY {b{!#$<6p>:$Wo&O/ޯQqt%6kp yujp\-?Z3 <bR?dL 2S™m/ݧ̽/~|71*f)|s τH(Oe=dpJLMW1JM?mf(462H՗]jua/P޶K)5B)yϯӣzᶆeW Zi+}zE6 AvawV(&@YX/[b rv3|maSOMKŤL|s^lbkT3zh}5|!=w9_c?>N7KptD`.(""}%PۀǛ=p!z2 tg3Y𐉈>wL@D>&*"gtNIfͣӹzgۮhR*ln t-ޜқmOyr(+J<>ۉ&T'%N]}An 2̩k;Q3! A+"QDXn>/iWߏf2P^# /G/eA^z%y܎7¹s|+MN iJg>s{J Z4#[Xm_ x=B#u]Vg? v.pvCv Y/ (r!CIEskhƁA'/hOn|SǂU}Y=D|z4Es!ds2}fuɗ#b癝u4>kN׋4~A7*"",xKNbu{ŬaZ)vʉf=rYJZJ? 7Ȭ,iqM?mzM#iJ)3-a?9눕G3|Z1Aѷr#kU~1+@R&h)O8JWO=hi OJk,~ `?:Xoa|6B45@Z9'?I=PKLM侯eҩZ+)54/rAYJ)f?]ԴTV+QڼE֦hb(( [MCdsW%[g0xKU.t[g{~m'cpy5`1PRDڈ$rR'eŻ٨2Ȗs(h% }c|i 'KjY|J|Nl89Rf"M u۟Wڎr6vbn~-%o[Z)F)Q) bK.,ydV;ơ`[aG3 +e8d7zanN}RoW_eZuKemź <˲|2gIMKZX<`>gדWO&6c||3= h^_Ѽa[H} FR2Ye~=F+tƲ@J@Vh I ">%!KzD$Y):mӴRu׾tҌ)Ym,b!GT΀0edLjZ*m'\rt։[J֣aT*TS-ʷз#YuЪ3{``x0Kl1,t2[<> ѶTDZI!cWJBa$l  =!>|0_¾?g~lR ZA[CWk -ʷШL#|Uxx]Sp%`,tܱvoa4ZaƉNM daBWJ}VPX-V ];,b!1ID4w0G.K`)ǯLEf`؟*iX+:f}^G}K7,b)t56)&@, O޸rMoe)c̆,PJ} Ȉ{꒲Rxc&eZN%wMUodU[{PYb EPDȒ LQ!P@P=2 tM$MSZy=ܓ6tܑ*@\rO秣{aowi :$aID^uRGbjĝ_VURhyhܤ9M73\gzJX|ṡ!xr[]ȗ3aa8(-L@1̇K![c̑rbn=㥔ퟙ!K[ 7o>A$Ү%?Zew $@Xp)!<>BoI&*Bh#D]RTvXmz'l P)m%&揽|XSufc`w:d9/E|B,Q],[᠈^?r=G^dr u_Y䱛v6nEԍ7praFj RV YgÖ!a%.iUhɽ^/0JܕZj}CY5Ʈ޻FEXj}@L2@j鐥Cd>BP61; bb鼼SeKQ~E!#G&H4i5j=i!ުl8#b=:bONMw Lʖ[BӒ}-O4ה#׏Zx9g"T >E|Cm1V W^pVCݹz3xّ^F J"?Th1wL6oliZOhXa%ON=d#XcЀ3Bb6bH)Fp:4mE8~]jSmz.|>?%6>0I)҇p3s9d+(} Y Bz Lxv “BBlʟ~[JGB(-DBn57QCK7} Ly y'n,%g1l~>2g(^+Ƙ# /d%óAoӠxMw,)5I&6q[6[,!Uh[@XXwsCRVeTQTCI ~0sLj̬KMØ(]8yf!Kw?fl a!s()J>UvyQG**o÷ ģDa.0Lqs8\n>i؜!ikV[GÕYO{ ,~<(}|vDJyUJxf:c Y4ZqoK#Q>yȵ#ne& Q@)G,&צYd>2DQ}-,8Ln(![w.㇞!JLe[Mˌ{- K.^i.<-O⭵U/Xx7 l;% oK3mM)i)f}r5,9&d^S\buh/BpW1y*MQL>E|! UjZQ6ϕf;?!%חwT |ʓB`nV{{`oӹ|߰9^JyDQ>}uެů~S' !<׎ )|(,$u'G9 (;vv\\IIֿ7 PfrY]7#׎Xb0jgC >&!L=_/KBD1ƌ߽hRϕMIJI8}tXtDy{6‚,صX({ Eا@yS7Ns@Y+](o2og}03(w. D)1vퟠV5 ՠzj;)ƿv7Op2$'Or;jv*prKo4s0Sl`~ a&ƶ.5<%JmL&DMdtåYBHrs42v,p;6qRLKB4r݆dnyWB3_Yʴ&X$Jh8R tB<H6c7q1LzJux-\s{*\ϗk3hx턏L`>* T%: w.pO>E]]J.^1S/m|9d>!kY&{\i6[q߲|=`,bLJ}i!>04=GЭ3@H@ssgR~jeB !RʿH)^GxA""cTR>+ 102C:ӂ+E|2!^B]~?Vm)i)6_o%e"]:J)m2 !DgӱO=zTY { <;!€got|\Y=K‚rS+5Qߣ^=i@J @()@ S*@XHᔋ(GrTԘQ5 E[f/ctCw!sA!Dc;!9-7 We푦KIզZkb\@|i:V`u>hY94VcvmFm1=舾g9zm !W6NBYA%3~|ME̚'ks^My ] yo^呅,-}BO8B:¯`&Q,mCpɄـS+Nu[R/MPg:g@e^Zq轓>X$>%{Yݩiɦtth);bfgUܩ6I_e|ӳx  $LxZķk9dFA*2sw RI>cꏯ2l4dr%@`f\2N3$kCfW|^``L ~*uRRSl&ー6mF&s̴J>]1>ytiv'%3d[{];4)8.SΙdai04{␗@|짦CӲ B@a;?jx4梽.O3Ȟ@y g{Ỽ;tVcYKw/}F)#t,g4BiW `i}ް9X(mPe=)bL|Λ/Ddgd6zgcbJ{;nZJw?;A憇̢*!sAoK=@ $_Q_F; י5a&O<8\rh ^Ӱ9BJycp cؙ3ĞjkgOU=d4w+2显u@/3$h18d‚)yQď]b3\g=Y|"SDB5rrU֟XϤݓ,RζBQ4kOӦ|:+z?_ZYlKsHv#+-O6s&} *W/1%xY}NpEӱJ+fwƸ1yA xe;nwr.{X^_c#0:yJզ,z00|@ i'՛]Nڰ$XLh@h7O9t+qWnX)zYm 4bK۝ktjf6AYRTX.xCI)> @Q 0&<]Xͫr.{Mo'IԘ]:I)bpq(mY|)Σ:Evl؜ r&MռԤ-tRg#?&V>L_j񵦡t}+ *h̋Ei,,DBNO⎟$zd9B`%z%~JmIGIJX5UJް7H:H)Te.0tRJȳ^dOI h;L"DJRR,vZ__zwןXs ?B!,̢Wh͉xM-WO!.mhPWNjl .@),E(vfߏ/;h{*\YRwJJ9r w/0ϛnww^=6JS+3x`nܿaZ=;ף'}-#l>DNi72e P0}SQn:La˺tdWE<uwF tOX;>~OQ_V{H$ ]Go;Zjl^jbB1LvccRJRztiXɑkGN5JT5 $ 2w!5 դUVtԁEj[aӒjyd\$&1r([Mjz#/̑RE'|@J113CCR ` SO￴FsnCf3!D/I#SN͓5~9 /asPVNd׮>10 cAed]LoX$od5cLϗW1p&'%;g]1h(7_~v;w8tb 4/՜#hYK' $M%1cJzm)l`&j-? [CGJbcb2J]jvɰZbbv3 BlRZe2M7Esк '!ՇB0lUP;6pTmjaDM"/ۦñ(mBtz!x6cHIKq(uq&649 KLMp݋$|zZمQ˺;iJ T9b03콰nm4 T3%@A0hc(-Հe!'B<&'3_7mEfOZ6X&P8!^.:msXJY' Y>! zC?NHXv@dV́WBm5t#Hӥj1Mq `/,+hb4zbaŸ8.]f,>wT1_E=?+yS=f4Y#)59 ;' ; yo̿7eк ±\TXjժADDᤦKll,߿7nd`04 ,'OZsR!m볕VZ95xM轪HB*+ Y>f!cbuAvgiӸb$Kc hMﹲyIM}6Sf0vNT0O.jjP "ncK/c쎱ke#Zʠ2tԉ6mIp'OsN֮]ˮ]L_ E)yE2ʝ Y OϸŒ w"Z>BlRf,h]ژniZӓSa p1dy.;^>cc`ُ7H[H)="/X(O.O(祔cR1Es{L9v0nߔR~"7 %rp|9ѠxZ$t$e#ʦ^=~GVfM<_tfDRjW4Rfng=g|S[l6F]q0ϠA62L:UVf(gAf!舾9{*NR% s@NWz0p)߆ͽ79=Fq\bBICZ)e''3'-_ Ûgb ?ۉ'\Ҳ. hoB2(s+g: a$AXb m:)&q8jhkAIBP) E~m1kuZh ʼnntUpe.JJ`xh8GCJM烍CՋ3f+W LIIʕ+\zZM}=zp@:YU!~GiK.,.SeZU'7 -Ru}?ܩLx"Usiqg=F!+_V=NH$ZUp󚙪6╪HU  hR ZHfr̰ f8SN>nx& XUJڐ!Tk(mhZVɗ/'O<ܾ}hAn IzdmV.: a͆1V7dxEg>Q׿FVh -"""Xp!;=ǧ+~(X W^V*-- &0vXKoOJ[&!DC^!8ثHXtrK{!:+(7>a-5 T[cU^e !ޥ|>A;fbZy2mG^0K{ԷU.x舒%9#Z/gUWI[xXB ]0grvH)IѦhRS4I'Ozޡ5ovS ')t)5׫N=p4ȵ#XI.Mɴ!Jˁz1JEÆ i޼9͛7^zf\޽{ٵkQQQ:t(>9s2P~VlYrҨ8KӒ9/VuojI.ڳ &C^Z~x9WEg/nwΝ;rJn뤰m6:vHJYj݃kQC,Ӓ_bN߿̚6oU2!JQWoݾ,|yKŧĻXMXxzRʿ\3PJC?q-oϬ!QJZÁWdP\VWWRJD͟~3Err}HNK,>gs6 QйFgFbauLJ-IzjhUNŜ Bf9BCCիC D u 9r)SO?Yzixګ,4{S>}SI/Fq]Ҷ3So@S9=.ݽDI$PHvMɒҨQ#~w?~J*Y}͒͛7K/јRJ qFxs6p*ӪrMZ)'.bZlw^z1>4߂CWUaR8'3,˟GFdl<=7ܠgHH1k)46BQ t9G~+t*k_/Q&{`H6N'OXqxUgTHgwNԑ谆֘_?gڞih԰,:x轍m '|SOٗjT._СCYjxbEԚU׌evA/;cs{R/01k[No!G>|2eؚƌŋs%EEEѼysҥP,PAJy;C+ Q^:zz+m5j!>&U.BJZ 6MJ' 0džC>hG'Rjc!1&('\C<SWڔo緷;:ISȐ~aOH@~tݫ3חмTs4Z M/J6CVR*r cbޙhuJƘ荱EsNfΜ1&]vTRܹsOhh(+Vdt2(F-O?IJeȓab\В3q+N9^MSu~7tU?-2޽kNչsgsO IDAT^|L-ISBGa?к|k_ !{cqSb!ӧNo'sG\]d!DaL*kS!N'UDbp1EVZS/Rli*xtN' ERӱrGֿ=P& O=VJJKrX'%-2\I)B (;5kƿk͛9~8+Uh:uʦAfk׮;veJa\s f*\ .q\0Ý׆Wb WE^z;Nk5Y ૯"wܦC=)R( CrSM6 |nϙ4DpA.OÈ tFi@:<:Nȿ:ŝB (׫Qa%*Lgk&%<2# XdY&?1}Fh`(nf Rs65nxĞb 7B hذ!6m)`й)BTTJ29M]x@@ ;6(=1ȶzXV}E!Ü> ĉmTd-߷) `CDٗ-w/2vQRSƀ=nK~ 2O3Ȳ?ƋeB55.ek_z~ƼIJY0 ؎;8BT] jd;U_FJɼ?QeZU^?pJ_fҾ[VBAijM͚5ٲe k scSP!(Xq,\T"B#Hզ)z\&|pCהOA,ӯD4m:xCУGK[F>nH) wN^=*\O5+j\Q3,tIdbRj>gecPfe,~KIK0#0ǩ411k +)9a ?0sW&*ȥh13Ȳ)z9cz2ڼ9l~s{T|a?(ӯ^_# @@~ l8uo%g`Nn-#l^8WJ2Db裏>ؖ½{?̘1Llvɍt|rfdoe~U:Q݇REz=dzꚞ~~DKJMޕzeBnJ8#[srW"13Ȳ/0Hm`bby{@Z.z#׎_W׏ ݒ,FJM QF+Š1tYjE1h{܍1RjзEЭ[7j?R0"""h׮qV-cV8ՇO&_;cNo3L=,O!{ 2dɡ%ΰC%cW#|t!ta񆴫ve3 C Q_۱wMe1&/3hAA|}n}N]e*%@وD Iµrj ~TE-GȚN@ݝoR ڼfnKpQMw'lfbJPDCCCu$!d[XH_f%RʝvPZaLlv-ٽ{F/t{A>A1&(X3>NyM#'7)߆C3Tz=f'Tv]lsQZ̏tiݿƘ_?HzI)=3(_<ʕUen,ly5r(ŖT7\yKǾ(Qb74Ow.Ӡ,W^ʸ|#6pl<"B#XצC]9sb}>hӱ[ӸDcgIG.ޕ[l1[J7|3Ȳ/FvZh`s=n3S5=V&J>Xlj 7`uK;z*{aħLR:h ojYJBDh^bnx\5Ⱦkc8bި/_vi~odVd?c(`Whpm[-뙉7>}jMZ/WL뎛 pZ 7 C's$vPt3=^=i3)[cus.>,{R'jq6LՌ@ "ㄢ쐞UzvW?H)e>r\@s)ҭf7ZkE&)`7/Z_.Ddl,hZ)UJwyg+W:={^2WA}vn4+H't-0lY99PH>n9thª{ `IѦp92\ 15}# W4 Wqk2dA14*vIwiyf>8fKsYs-Oo5[F:e%s[k6z헡kͮ!HIIoq<a͝R'y̐R1~NqqQ[(|++) xW18 42=VPoN}?├XБ93:S*rm]#MKzueBJ;0dgeOI 5 pox6,ugP@7 }dZvHO߫ B|bG07|[Nҥyr3 9=^2QaN꜒wulY@} /V&%0f(6V^͛MtE_fWAɵgC餎sJ՗M?kuhuP ]XFq*;?LhVo3L/I)}+= ˞)vRov}C Wlb><JP 9X"X|#9YǏlycc"e9T~*~춒~Q6v ofdԷԙسtE૟z'#>>}ofug~wa㤔'=F?SSL5K03}~Ո\” MOZvY?6![GQlBq6ڜuw+ן0 Wuk2Vy|<o2Gfs>dvyLi7٭vO"A:Ȫ2%aa9 +1Zv⢔r3 @2pҥ=xCdyWn?ǂN`|S6ĜgSHtPPj+ʇq'Q dyetua`}6+cƌOkPxqΞ=d)))t2O0<,*ǧcl.ܹ[rz+0|XSyR>UXX1#"4¸m 4 &dI<yϧ3xukU+R/Cpdٓ9MØf?s_u:*M2XX|~gC$rF&,.RʻB=F98֭[gjkl{~,Oԟ݀;ҧNoZke#?4]jlztR {gL7ѴdSX{|-W]>ߟQF?(VvG#SbFh4:uM%OJ[1CJB 6s[lgubahVK5yƼG{!2{.WUdNǜ% 15/׾H,l#)Y~wkBVd G=0~~cj]W{UJ !DK)]ly^>w_~%v`oxȆNbC^!ƃ̩Sw k]C[z=%g}f QYW!|ԩSnݺ<>..]e˗K)p<!r@.ԥ3F~XEJT /(DyICA}nOI3JWJh)V+!!AճgOonGTZ-u{6 ac uЧNo]ȆKRԣD~4-Ք^[nNwF%umRػw/ժUcرՋPr &Mbܹ²c}CQkԴzח^{6:i4ϸ37/ p?\OX˭ }dC Ba& ]=o~"{Qf\{VU:KL>b:Jڴiڵk Ν;<›7o/۷iѢǎ=Z WN}xAx?^qnǡ8tgbp'wK#^ת@ɟ3?URT[&%'8CpS1貼+G? o߾ 8V`̙ZʚJΘ xE-k*?m+e@$zsu 2Ig1VJ }geC@(NH)s?Xl+txL[듈N\vxѷ "B>" h߾=?AAHrʕ.W,443x`n`PF-!MfCnHoju΋UR%"##iٲ%ժU#""`#::cv3:]f)BHC,6,8Mz(H/X"lx%DS!o5hݸl<+y*<>l3Ȳ!E//OVl; *v6ER4hmt]wC}r^o !P*TOZlKjj*:"Vɟ?C͛ӧY?~~c*upjΨm}򀜁9b$_gS 44pRSSuCaIO [ҕU!3f 6!><>*cJɔ[Nr%-G lRք>l3Ȳ!B@9m&0yS凗9]L&AFI+1$?( <(Qaذa9۷1bTXe9V{9R\V'W.i9Z=ÔSY ~P|  giV"\R|l(=ktxG[?fc՘n*e"c|]Gۚ5Uz h?1^ޫẑlg=wߕS|'NH)c&(1f-'|BLLzrg81/˟3?[{oqLզln9׍\D9~ew?Ä=y` !c *875ƪʊ.934dsXE|Iۭf6t71}|lbJjʲJߋw/Rzf<~Zfp5*{xMYB!t"rbqd2tRGI8a'JS@8"-t1CF !FI)ɌgTHVhkhsyo~p`u0CeXNd(eazI *tٍ S8wa8[Tdޫы{TJ3Ȳ!BpPr|vߴgj۝tbUi4[oNr zt]yϛla[St:&~9~5jRX طj7fiC]OBBB(,C"ЦrRN/3l^ G03`[G͇jW=b!0%G@oNb \ ?JBc &mWRCUB^+aU TaN4)䑮K091Iֿ~\e5j؜T^4YJ }8O6{bCߦc5 K1X Oظx3|^Ri-vMZZ=7 IDAT1C.JeB$iy{:sf}Ext:'@ޮU;vɫ7nݹE 7a<{?1vi^sjY+V`U\zUdst1؅i}XV 6rB@l R4Րr3,0deZHA3;B)-7R:.Xb쿹?E㌭;Ofk!4c!\@k/*}kP;V7!?N%(3,;Z*!h^9Hô,ҮthmʊiDa1 g/$ߕ܉8 `Y;Cn~i]PoYf9FiJ=>?ا5qcyӘ}t6oúikQs^|/ J)aC֞#"Q)%%p`RwUbMlCj rjԎk,nx~y469qcM)n:m$I)ky!؃!˕оdT+蹺w^WQ=*`tQdb,m֋[TbKI>A!X k!S*ˏ!lK3w}ۑ"+Sm BvtߞCYB *fK#~~o=}eH ڋVMHj15QL9]v嫪_7]CwаnV;:< ,4ҏ51zm /#^2ow"IcJ$A ƛ:-}1(t||}@`q}ΆC mTttt[I IHdIbMUf9Bʎ+ȝ!7?iah$3.J=2z:!4CY%0nX1So\kٮlmnDd~G)+wR#:@SqGQ:S>f_[}n57lZ+ W\>1ﶏ;SK[Nɉ 8 Px_9pm3(]|&[MBs6`AZlwơ K掙blJ|8%'bM괼zVTђ̀9y1 >fŴܚG%gzUZ)e& {x4E2aaDFE2h7 cE l6ʄb{m0B9fvX@ _~\tuיg}щʕP'* q**2J||ufE|VKjwKQ1QDDGV GJM)]d/yWwWw\G_ ݼ4q6ζ))5/ڜFE FæudWONGSFYLs~ZSۄ圏B!\à|or3P߃Lo6-^;d]-w5%$Y 2!Dֱ 6HșGf$^~qS%p|l!܁`-mZرZ]Vt52n'%cէ=˔ɉ|8 O~l81^M,]?-KzE#J`VYɬfُ7͜otvCJgjG l|Ѩ`#r#(:O&ρ?~eM] v)iZf?؜ :JʕupfiNJ}WjtYշ2.r.ȟGf$?_N:]noBurLb@::v㥍ldA䝉=vS8SxmAӤOskz`q3 Dr͉<8 4"?fr> HA5ًfQ4(Vgڼim[a?  XDtDfr]g 3F^o+[.KgԤQ|6sC&#`brs<]< 81w3? !f*' !b19|skdž{cž}MtY`'Z6EFBd~#zϷz?G}Cz?_~vnI}g#G`vz~c~k(]pW'K<6WtW_)٣|@4 %+kXO0dz=Sg4W_}/_z2ygbpu (AL19BɾV<5$ [+ۻoV0^v$B5%2IM6帺cruv{uza]=|pYڥ3 }m[Csp6 0^Oe~[3 %IbRȓ>OL?0XMʍ"'xzѹtgk/|ItY^xA׎]qqyK$`̰1Dļcߑ}Vg8T .J8B07^֨P x|\BB B_8 ,yӄt,ՑC0HՉhm4-SgtcR(uaqļyG =*0ϟaB1BT'!DplZbpXo_ '_@$Βh9\&F$ќ8Av15hV*Tc~PV,㎜:B*-0hiuԪi=虆U$It+׍Wݔ5]Vo^Hm;bCZ7j~k@{ w ͏m"ph5BaS/mbs|{?o$p]crB"_B)$(*-'-8(xAa>1#WL*:^צHrZ]8 Z֝_W6nJ@gI.57'!uDNlf~}m*Z>gȩTjh5l{7n2aVn? [EaR*V0T]$:L.JF2ogy,G!Co툄~c+.oY{P{hyF`ss8Y#6ݤ#U*{ɫ}zJjW=R]]BjPxq?y{wiӬ-_`!hTVt* 0xM*.ecRs2e}Yts'>AfUZ&J"H#nxy'R,^' 3Ʀ4N;x>굲=qe{1T ueア@@zWH/4: vN=Wwn dw;~>|y)Jh0)>V#vߘ{o.uZ֮ӫObQKŘbnRjZNR K{"zwHo;fjzطnj5rfȁ# )``] IDAT>YOHUon*7$If9yc3M:5s6:C38}4^AޟqҬ'NCk Z6M#1.Z,l1 jݨ{sj'Cnɍ&6fb$ذ`VSOQ&\ZFSôO$?Ϋ;yu/os}:-* ZMF"/^+|`tDPk8 $ɮ\}v&6EEξ [[9@GXK#ۖh[r$}?ĔSL=VxǸ݈"(gf%/la!! ܖs(;oᨔ*6D5pQǙG%BEF1X] pQX|ndcp\7{F_lZCd[W+.oKs5dI,P>;D|eQqcnC㵃~$I{Ǽ]ѷ|2Bd+˛38jnʚ.]detQpy&̱Rq 2#JM冗j\.(2F!^.^\-N=Ay &v3O|]Ɋ=!P %BrŖT0lasum/#d6x6th:@L\5,>]t^2,!(":BC?67Q ^~ a͕>pY;3f8Yާ:CV,K1ҹE v^)4Q^Dk|U7|^zllc{O 4W4 K[ 2 avM EDq&vˢ-| Be<;eC gGl9| Ug/vt4ˑG>FӣXhhst~av'/oWF9dq+BI 3z-Nl4_؂/l.,BFLBvSv8 +kGɐ[ytz^<ًg}po߇o4\.6WJVU)M~6m_}zkp=2ygb[q`㞍 TSWw$RcHCpQɼUQݓVϑ[F?<}!( Af0E\+E%}O?qӾfEDCk !K:B: cY'4BŹVޚN \%Ib 4؈ͫSyu2U*ʕk5cN-|V3zWmھ:fUΫ;v^d.kL%sWe܌qrtI>X<|T [K5D2zeXK&{? =d`[2@~d+i -aletٍ$ kY"MIoqh,׉$OңKԚ[K/u*݉UVZɰow wqdiyk=RYBޱ3&2_nQFm"Fo(j7Tf_~_oM d&fV'eP淞g9{OO966KZx<ﲎe\{"\ibPE>8+{Z\0 6d O,ٿMH۰f8\iW?(7Sz RfXva=* ^f yNRAv(i:D$}f+hts\-la•:aڤiyR;O-b62BhXi_0ͬ7S<[X#[/\L;{X<,="50Vb*#dž¶EIB 9v)l0z.=$$T2]xMzLrŘ'v̸]i읙}үR?tad滆!:ɇi _xxP)T' g΢̜2 XZ5FBI,%I)&26jmP7]Ӿ;PmVu{_d k{!zqJ98agܰ =*F䔺Kz£íx*UدK\>GyƆN/5f6TZFkl&d gJ<{汓7vyj eIBu5%/$IJ]\v^>l  Gz>&ak^Ab-Y{~fqk|aKkam#ņãÙGKz"5 똴wgװ]zz)מ]FT k2"qQI' K;s?9Lkn4hPAAtz?{:qQ %nj\2Ư^`^C#ܒBP_epGihcwM9ȍFò>2bhp(z%w2/`>8K^놥Tb(k]{ou'@8's5jBY z3OBJ4ӫԚ[qƛ/D́`̏6ҖaA(qppdiA7Vr%$=>yD, (zzZCPlX/bڧk鵦7_opu#BòKM?v͒;HM$M4cۖhkhK/e7Ȯ?N&PW {\~rY<"!mvЌ>njz=<' d*ﶍz\\JKzfAߪp).e%IZ %{չU\||цOP0]_ !/s";N,`zZ_ϊAųOquIR]^'g c/jڪabYi%+Z쟲 ,l.>PrhW7 w%'aӥMI6x:8j `Y6ɉ=Ë ˄ːcz%s-S;_mN?đT$E\'p^v1Ea/hGC=uдOO &Sl*^+{o+SǔQBΫ [c*ފv&J y qcٽd }W `D¶/~k.08!3*ra@I:Hwu9X/ٚkBյH#H~ 'i ,b)e$93N@8XbXܪ+Sx=tZTb]vbg)7|\׿CqUC9QSŧqt&/l跩6pm*VΚj]*})C/aT]%c<V7:9l7'E2aM|YޔW ( `h/̲xX={} ƯzW$Iez$ľNa՚0s"+N,m`aeIϮQ0]iո5/gcׯY"Ҧtb .J2PSoP:b02zeFϡXwa=~#}TqKO.S*Z^^llK}ؾI%=N\@ŠGsNڪg21ydۮSTA"Ou:5v촲칾|k@IHTh@NgcBȟfY k*,2ʖ(CۦmYa צN:jRe+tLj1 ;lŞ}+eA?-BhKmRC/2*6=razwMFM8pl?ۄ4^o!H)n*7``F0aƯhZagQ ŧ`?e+gf[wʹ*kyx&2~x"46/laQR_7]MF5R^GDLlaJ^~/%qhILR9WdӴpz-{nI`Oزal [ZUl"AI#k0-^7\כ0ܢ (+R:02}T\wz>,N,m`$INm$̅+ʶuޥ;{gDFG2yO&oK Tnv=<XeB1|YsΧ;[<;Ħ?NC&BCȌ|i#B OKX8. 6B!{Zb[ږAebt|^yv k$8W3Z`)P\!V,"Vlq;%d6)!8 rУOAL5鑗%S]Zh4$I"mfRw]FB(:]7ksάF͘z`*fٙeGGE(2(cw:MvImRkZ)>Ϝɒ. <(>0966Yf]G9N|a >Y]y{]+VO'KuiLޙ(<έ[@\ ۿ["},>$#mC!IVdz\{,IRGIuBa0quG ~kY-eSsb/N,m L ^K#ޮR.]z C^ aQP%W;Hhp~^Ƌq 5Ԣò -3KVСT鹋`TQ5'#JzpmU7]FZ&(6$1`@Mdž?+rlP?q :sv߅eV"4=[hZ /"^c iW-+ήݘNx럗fEaE$I,UUټ%  A6!+tAG뽮3=]Փ^'@~|RbxZFaSbG>`Ińnxx2n|{~V9u-",:(Y9C:+?cꁩ}.Jw:g[Kzż3olGfԜ[ˢxr58ӇMc?뙺d3@6_X7) [*RJ<"JU,h@r=n#!?w>VK4]X{%_<}|oݽw˻wDBIJ\s>v;&`PAl|sD~|]k. :ϱGY'>nBgӛM7ѽ|w\.?:/Bމyxf>_Xxri_:tl7vCӤ8y`AoBu-D5cՔl"EشwCZeHb} ?/[/o q,4Zopcc}vƴ@$] p_f3t! :3$I 4n>g9A6$+ % dUik6!S@fr;="}_. -EM+VpC :R7?)e},<&\1Ց$Ry6}74?o&G[.zrg͓OhaGHM4DٓGV>gyv)'m(-m:) lXAݷ*`  _R'_le' KXiZ]dN!n*7ɹ)=_owz IDAT eKKֱ٘wX7wߖ#F$-l,H~e;5Ԣf^@TҶA[N:H~~uiWqwsgEܱZsT ?''({=^".+iLfo̢Sge0l" 1݃}"L :Bb=s\>_, 2~&cN5mKІ Ba+6 a_oDPhhU/.Rҹo=L`g s2&IӰbL-K]9=!Mk4C?Cn\Aφ<~J dȶÖKN/qHs# @)ll^w*Ű|y0_N-Rn{Xn]=G~x9BfI=d_0՟Ev}&˹FelV^GfW[3c&FY0“K@km@ TY9L6lvK|z-w^֋[|q[/¸&Gǎ=1uFv~WzI4&hmt1 K悱*A1P6GY?f8Hek$I;lj<8 4"'`3jvYe{U4x$I>G!^8VRRrۛߡKv]EM⪮*W6tYOuS}.:(mT=GQ~w~;4{VH-9RJ%:f|BqХY:-yr{xlE5stm25$$FSJܹ`IV!\R@H쟊@Tו %YHNINIa_jȿ8qu`x=ez}]Ӣ$)l%zx݅u:/R+vs$Ied+u 5k{&ak@Ir 4BoTn{m6 T;2& 2G1lٵlY Dh"Gi1ێO}s.OTls$[q<2:2~z 5E'9ieK^}Jbąk;aur1*LœǣbK[D\:C6= /ȁ03h%BP惛 7^\4zCVMr_DL_&BcGqbYƋv~wQzsxrX} D~l%9=]㼉zC ޶$gNib+䏸|ڬ&yBŊj $I"R,ă7vp:jbysKUNֵmYƗ? :&Jy-kV˷.s{X|mWxr.=Ģ TckmN\?u$=Nx!w\Z|4dDɬ%)%d֒ N*'|&Bzv]^lqӥg;,`,}/IR*NA<u^K"m#9I4B'@׶b]+).њh511k_ "F/JkXU]=v\{v*38U*,m6ۤ>9?+§N_R0cA. ̖*D)QX}  P,K1{Ⱦ{J"e ysFv_H6fM6i;.I:BjWN`CAb-oj}:8-Vuw! ۰!c``];E˰VHK=MۄM$MXz_k^;Ҽy#<9CL6ʎFc!ZVgw<\"c_gs1q'8&(mm˽ȓ#맯\r&M^4@c Xâ _ΰ:rPr5i5mo^'(v T66d/CʽhQ[joOo=?vdɹzt] 2kޫ:U}Ș<@!x)CM)K!L`{мdsD sN/* !*J)$u]*Cr08uWk1kuUּ.OhXIX*4*k{ؤm褎v+s þ=b֠im ~aфŽk;b1^xѦi[9ןg=|/'@]NjZseZgŞ`"J'5ZMe~oOolw>UJGU~켱/:a~J˴ M|;  YyMLNL HRIT,px 0 dhh8u\/yx[{rI&FŮ }e`15f:'}'iiݬ5?Kpww7Z5Sv&FÏqh'"PL[fEBONDT7bШh#ʵߡR}3L8ًPZ 2dHΕP4殞KNtT^|ZEkCJ_#eMk.2';[Z~x7P^OGL-{bt13zCѬE?NMȑ.Q,>n UYMg}&wn!z;&/;65Z>CArQX&B\qݺz}2{~T:gޝ/[PBa*5`s!fmݜR`̠֞-[n!GrMIFaٔ N-'X;Gn挚ߺi؆GO9HׯYz9|oG6U9C*)K`P;/X7TEJI R:*5;H"&׎k;8nՓ''3uEC&**3. ྄26DU8x ٽV&6]R[n1lR٩\lR^r}V'PTQ@R},Rd-‰)]ܮY'.jk6F2BƇ EJy0M=M8Y" KY#2Cy&i8#'+BԱ_!IUՀɓ+,:ka m-h 7p}uRG&\_Wbqcڬh헦]g/M tig'Scnz\q{PϞ;Km8wAǪ6o*^ݹ:o'NfNG '{&5m9 g-aޕzT u0TQIJ9Ib(}9oOoZRv~~!U}S!g@L7'CNYZa^OXꋫ R:ңR\ + ![I$ KYdYه,֣mpw?'ݛiѽ93JR/X%__;G斊Y~7#w2l7.ޘ5;ZN"8"Q}v 9lr^֌Yd.mH/{lH޶+3ddꬩk\oGI&܊wnӾe;mǺȓ!{{ K,\>0d==mʴ/s-i\IO΋멕'G&Ow^ kW kC̝˿purʷTS)!DMJp{4Yi^$̝%3Y#?"c":7>ajJ.\9m90_dĐ,\5[ 3qҐ+^O?--xh:dH ~_Z*UO?Mjmr~9k"#BEϿYϑ;Gz/[WEbXGXt.7'7B"CXv~u6R_vnu8q"wrH%9x~{Y$nB0h])6Oa!ۥ`˓R'/싈@fҦI[b U@7)fkS گxu"4|4A˪w1[qew5ᬾmȷNj'z^3YxO`hW5OUf7ͺެK>CՒ/S>|Oi0"_ilaH¢vNHVCpGx8{8l~$2&C~G<|ȘHBZ~3>RB 'cRUX~~9żW2wY8[u˱A&ӽ5q~&W! Jl \@J=&.ѡRdJQ}H)mHń)? ˁyō|2̙9+ggBvg@Ы Ҹfr6`j*V5g|ssQr/B_0Adՙ:g/Osi=yHTt4JGI&ms#"|&ӗ ,BRʚ6+SMSN6y@j!|n0MUH5]nMLr?鸳ڙ֥[2&O:dnSOs ݥB-v&_|\P1Ҳ(?l˹*oNxZV*TBeUzMOdL${nicy2P߃Ԛ[o/I)/&4fBH)cOy| >>WR4l|ROj2aG&do^/n^)*QT*_(kalY%|\?!۾sx߀?x6yTU˜!3/bǼGO2t0굪• t2oͧ\upUWQEYϟ@XD*P{#FD|I w+d䡓:£ÑHoB I3%^Ŝ\l [=jY{c3hz٘|~efߣs*{cx okۘvd}6y|IsBuȶ>&aϋ~nx"rr˩Bj'~pڪVeLta8Tj<5 sr{,[I)4miCB!p>yZiIUȓ;O΃;: &xi1}YmE{D˲'+zW7*}].hRCi黱 O{nT*-ZYch3i$J.ɑG{>Ei!WZ$swr}7*ʅDPtJ1^EbB di ׄ[uۇh7v!j鈩%J6I&1~F@6hbU +UDRm]?0bwy=oՅU[i/ZVQ؅4~ehC1@5]oȝ"LI&R <}df/5{ɑ5gϞ'Kf.IȞE{ꅏ\,ܣs|Gc"4?ﶿ{^}\cc1\˒! ~#cZ' kǮ c+ .鍓``Hfcw1/%Q%Th<c1PZ(|xMNV3`_{6>Jk~#FƘxH)GJ)RI)/J)J)K);I)+K)3Ӡّ;GhKh 9VxÇ &þekp|1TJ8qyM<^]{%x@p JK) IN3Ty%!y}tQ Ǿm2CW垸9& SyZX!=bEt/>ȢPI>_WsmGRRRʷ ]hb+ m1fccXZ.<>JM뀹b$ea% / [ ޥ-T4W^!DbǩX@A2wGDy%9^gLDR'ONگbΑ{P2[IgԜScw3VdɜcWV*bj?#].Vg z1$r,R*mI gIvף3YluD(n 5fv&4* ?<}TUUJiH)O\}auZ@Icmh,5GCEcWtIJM 2> HňT,er;/XRK>jUouy (DJy&ރlu\lc3 Un1%D9p7.E zo1<@ϫ0v8t OĚ;,Y8*C?jG[P`.K1=G%TkCfmDW'W|9g3AaA\ 1 jR21W?|hmG{YWvh X#SO%znl%QDbZl&Vz.x5sH%>Y DJcaª VxɞnZ;/XMRUVR-@os][[IFwQa{{pM8AXx(C|g9$ujՋq ''/p|+nҶk[4њ0x:)QoA}oz_vEFI\85@kTTR]pj^sloY*[)b&M,[bi괬غ,&.ol-yd50NY E11ƅS I+ί`~!\m!DMoSIT,/lZ˿$L -c? jXV_FC.8.4"5R.F;6 ~3ƚ5a/%W%z'4Z g Fjزf L3g̐+g.o[OXy%жk[Kxx8~qƼzVk$IYHd.l%ncͥ^*¦P:ߡ*{BX%הY 2# <|H)/^$;<2g3s(%`YfeڪRSĆk#YyCP4 `D4H5R.{xrט=UBQ>& -\ 7[nq/ȑ9>c턥w SMv'^-֮<|WRhqb1S|V!\|ȕ{WRGKz E*(V5e٥B]|D?؟}xC?xz g)lA"@'msV֥[2=dAVY|ܝ .xsC Se~O׉&]ML %^){G.8.$>uB]T"o n!›" -N/ʜIb."s)pٝe;n% gSe|H5R6d/hө?wێ6yp [wEY%TpG㳎Ϣͬn!b esk/eڑiB*j0tu:'Ϝ3'kt2;`ۡm]RfF(aقr/6e9 d܈$zͮnQԬl |l-G&. rзJ_6o_W؎-d*v=ˁ8+Hl  dB yK[bb5BdJ\sH)owF]?nXBɤT̐jld/_eWG`""99}IMqLަ)e4 `kۨ1濺RhT(/7lU~ޱkϯ}]T_www41 llXCz\i1u{aQ$ K)}!#Fk yyPV*ˡۇ:1NL?Wr:hA7T]J"mw`"]w,GQo`rb,W̥x i5ʚSgMaŎk;lJ)T,#|jSOY)& aNj'wy"P m[o!D6G LE<?\})0 >cv'Nx"씝Q:|e37_Lyhre^᥸t[P8>1GOeȨ!ymO9'O<[IeH ZJ)z5;YA5K,s:>1[nˤPd璁Rdy1EZoV&8<KiX2iӯʼؖدdKN8,j a\yD%[;.= Yl^2-` v\reNp/v6<-NBBtB)6ئ $4*orV_]#i9cxYg(8Y& K牜m9,b]l ~Ĉ#M)[,5ԤDoR[7Ѹ~c,XCtiM[N_6*RJ IbpED^41hΐc_Gbt1vY̘?p92?aru؟W2{(9K2fc^`mL4xȞ8ِOrb..,ONʞ 70R *T)^-;ggZO:¡*H)YBQ`'~eCV1b-樂DHٝ&ś)~&0$Yy rI slnq7r(^2[$m55di%Ɵ!D[!"":.Dz4/nчmH":iʱSlK!s_ aYIsQ! sϓ>AJV0ILlh- PpR;Q|efgΕR`a΁+x>QQ/.@K+Jbpx/SrW3mU f.bMk&/os+^" \ܣsp3pAҭpJ$َ!B|4[1$^;F+9u:^?fCnd`^-U7^vm;7[ݷ z"c"Kg Q1Q <9^.N.Dh"lbӶL[V]\Ϋ;Cn<0iU/_2p 52yBJKq_?RڽT;y{ S ^PoM5l1TBEt9< W\I__˸Byo,^'%!K뚖j$`aT=yfB=2hCܝ-X)/5">Rpq~777z˦=Q zwx7gZykW[ͭoerndLhT(C}sϙ4+ь9l(;bW3OgP ƒ GJsA4,",ğ%龋ri&Bwތykr_>;o KGbD$+esjrU**ه.hRIWF&ʐjͭ헷s.Iyx:qI Q .w' ! `@z =kbqc9̪+iSƲNSya}|NJiQ[ {a4: v+۳ABz8!m@W,=gk0 U&Yl9֮ㆍM6Pt%NNz7O(c!fuUz6 s1ʊALn4Ox#4LJ')%7RvF9Z,Ilxå'S?1mk51N2cXcLJ16Izc Gc06ڔiön[S1bL?2Ϯh 9զD8䞮jzyj< > *ȅ mv@Qu~6@b"}bhy孬ɑKoɛ1ɦ7Mސ&IzFT 6rc3Ͳ81U)Zn0"#Sky8{0lvA6rc{Nx^agk1 }T[IiJ(^Yab[!DR.["T罆aʇo,/Vʚ6+͌B"cxCrˑIk>&V?Rs>$`F곫칹O [P %#Btiٓ 6M6wQ%ӭb7IOܬ=|T]*c,MK<56 ]EV6gOg.}_ˋ@dO$Q9\\\岶KER^Q1Qo~EһgsMt1z*jvڕp- 7`Tݑ;P _јWѴDS̱A\oΌ3 ashq#[6Kiys}~{ msk,@YnJ^ B[-WmʴJ_dAluy23C|$ ̝e}d^&6Xr} &?LV BAL(X"#hhj.LXit}Li4^)b o4lB9b<;boBXtXFپ}4_BCJɧ,?b;;nXhbqwq̥3To_3GcesWXvk˘?Z^{( 4sNIָ>c兕t[ )28I~ JT01^|A!}hߪ7l盁_3dueсX`#FX_HQƘNKRJI 3h\1v2{ysϦTwb1:L\2ydbRÉ6k6z7N;sމ$t~t {͸לxi_B-Lׅ1jaP$ʉ *0`wZс ӣRsRiT\%#Gl:EbI IDAT; BS 'xnRb4&Q^$ RL+%~Kyڲ!PTfŶN*'VHЛӦ +Ln4mݶSiI]&@6o`⁉t[۝U#4\ԈG蟤!\ى' k1o]O}PG-R`)BYt출h2.SӅqD+bkŵrά/2zdd^|I s,[m!2.gX'ٽ3_x<^O ?П6'o>!,eF3OR \8}%Ne wg785&i !Һ:J3@ܕS%DRԀtLO9os ׄ}c7Vڝk}Žsay~m2øݿ s>Bjɜ ==wө\xcbo,VƁ!XclTLTIP9 [s$5i+TR (}bNɼSOM\J4Ԁ,]}=w^@yh=`&`ФPd0ˀKlBgWo^%sf1=!o߂<<!<kQ2r7S)/oWZ#=yLB9ָYMg m׶1z{]cY s6wdFE'ꬺ.I20\zsIK] wc?Auu|AW+T%mְf-j8v &oc1z,<ڤ6AEZ!DN(Êf(],Ed& RjQrCYdȘH:Ȑm>XB~: ֛>! @9U漖 QڂJI)J)J^rC*`9t:7n^HvBJҠaiO5@'u異2BAx)[-DFkӁL%\ l!s"BA}eE<]=S'h<yk|tR;y&wBnʲsˬMkQQb a,NMB!D3ghmAVә34bR j}Npa\~#Q j̮ɊżܼfF`+jgP~!KfQ/ rC2 hL6lܼu_Ξ"Y ie B(TB%'5(wvzRE"D8<_JI }"C M\hJۏ첦+Wڳ;&7d rck-f?'SMѢ-NO.9dPAwǣ1o_'h7YⷄN;c\N\c9YNX!K@OM={ɇ_ނ=3+b_8|)g9xz;L@-xI)R.R&0!dܘ J+3fPVm5Vi)9MC}ujGj"ߋtemʴ&$k,ehT(Mljyqʮ,(%8מ_3s_~賟OX|oB:bן_gٴX%Bie辶sOó&=Y[<Y*SXr>PmEc[khJهĄL;<' ?5)ٮ[.gNT@\/@ s韤kWDGL&V5)WTfMc톜;wЭ_7n޺@ !8yP$-zW+oJ)Dk-j Lbꡩ4+ьem&;,#s6lyy$jW=5M˾^{fcATYW6~֐%MzV.x9&O1x>.q:q92.Ư8#(;fs#c"mzO㭵fq2%F&%Ɛ VX#hV+/!,٘t&UF0PA~`Ku}$Bq'/:\"EPk=]=C3+[oz_d?S>3;XO6li@{fWVH)N%V~;td5aϏmasmU}8U+Zhk OC̵72/!(^ 4]o]o*%K/%0a쪲~eV^Xi[/sN p#VÀMmLxZbȘHnɽWzu+7XbM疎7\5!ݨ+X=w%zϯZK]m4ԃD yOhthN_mϲ^6I [~4ZU-O5vތ1)ؽ^~p@.&Jۧrh}j>Ur‰ڙxؒJ7ǧbl(NHl_ܕ  2!..,l2bZdB"ՖB -]N\2㓱/%̄JxfɚvoyniH-{r.i\S2TN]Jvf^˘',[ž{b^HpsrtRV&{˅DD81/sAv헷5N [Igx@Cy'9~8_%8O>6Z֢#C|R=d8B@ΩzͮTf9/`쾱w_U@ɉWu%!1_6%)0y3%GdN!u\4ZEÎ;7KGzao=dNc 1?:O1L?:ø<{r~rR^R|r˩)Y[[ELO$S Vأljg5V ,"]%dBϖ=q !02qs E&{{T<6ѻdYJ;.M;Z gE>&3Lo`^h{9M?.uSYo'7)?-~iu_o1vur)to}Ӭ鰚uGe/)>>.]nl3%R 70rV;:vRMpd0L=CJ%%׬N\Z,mQtRgӪL T4ϔ&Sz>B|bp/9btLhV,#V'a _!j!cQ]4[̓{r?I&-f](%Sw-鋫+1fs\WUbPwQgs:\YGquq8 .݂w/"m)-.-p-RC.B.I.f!y'ّaw̹~j{\]P]WG_RJ6{o&|pm_nZnZiJ>*y2e'q ކSl}1}!Mh5j&V4"qYjͭO{~&LF]ps4OU["lfoORSK Ѩc~n~) ."'/ Rz l=!gɘg !h9㓜__4'LZcsOcq΁?-SԛbLb k1A1Z&-ѢD ӲAs6&aJpw1Iʌ [z{VRzg\N:s?%#ӢLwc&gƀ,]>C\;r7yoBo?<'I >~&^z1DG38t4ӫ89F|5V]ȳ;"딒)S)eW೛oV(0]XuTv1gu͚<¦WskO|bUƽXFCr(U j>R$KD-ׅ'yStΘ]S(O!.;@l3Cz $Ǧ'xTBŚn)iޠzmk^{}f;/=Apyfɒs Mbx+ϯ4-9%X#2yRد%)e2A̿k}!_+m;F]'c {3DHD2^ږn (~|YǔF[R5@y.֝7 a8T; :nb+~GNaܴq7fLCQB;I; [SߜTo&jP}DgEGo3lp~;%sr lL24^O:W\I:Qtz-fIz.!v !hW^ߝeNٔQv{nF(SOE$GLhZF?YǕ6\S:x?d,\o] (:.qc94 M#E xY93# >5Mg2lp @yo[^H{2YRX!D.@fa?=.i^AfK=~x Ңl 5P⒅g??M[1X9/A57/2dPx-ףbv4q҉K BZכ7wӠZښSvaCl)0Uiۏ..NU9sdͲ5ԨR777J,M e w7_1:KJSp]xcw_ޥ\@)$̛›~rlٻrpAaYrapkTS1iޠ^,?g`"2+S=}U\vP 'jÝb9>g}+Y\nȕ>@3}t6+ǡShZ_.:$9ۮmVlʟj4%)ͳ{ptgtl^AK)X"JD${*b$?Fv*;p8j`tsNeɼ2~{sy1c$9t> zƄ6.;9E-ys?hZ}#/^'`aC?X-J`wۄJAo >Y&QOXm67bE>V4J0ĸܤXzWcc>?9%g:갢]L4"ŧ0W3BԖRގAR !ǯ 'oPҮL;Hx*RӁӎLI&~)^zx]y)8KZhՆ&{:w w&xBQ/}g,Ah޸k{":\]]R⨉CLB:C%MyI)z@zm,%!v"pH H)1X3h֢mce IDAT+lm׶CTAO?Q|Gؔp8ѷJ_$* N><Ȓ9SUg 7KFٳ02d-"LkJ[[{Jd+ޞثܠh3׆_6 'ț)`:ly> &@8z,#\A@.PBv)sӟ`, ]3d̐D N9b-^}֩[p(C+uѽj;ެL;2-JFG#g\]H+..8iLNj{ENeZF-Ԕ]M'= oƽfgjׅ\)-o#f_Y%$ qc'eR0Cf:V_Yo~͛/\o}\ 5ҾL{ f*mcOs @t9$1$O琎#oD?V>"%}A6Z+}lU1-\]¥R`T2HEDKtmRH .~w_C"$DlXpx0=dϝS\ԛٴm!wζGɑ-Gh4lݾ/_F=˻I~S`mv~ded~d?R! ;{9qIㄳg{%sWNR B;9KC.2H,CV׬&NΑӧr6͑7;'s$}? Ȯ`2+I6f[@X ϫ[̃E@ӈBGp޸|z)O B1&>΁Q)O$/ppt@9)e@ B(vnPO)%"bnjٱNI)=c9wv!Qks/^Bן]g캹˴YĦw+0A$T@36nM5ݹY3d5  }\~c[Q{GiE{}?}m:%Ktс?C"MdунCXڒmڵ_dž?&S3a0\_ByEfY?kh&$ЈN>8Iu}x|/ʵvKr&-C`ʎ(P#I1!ۇ&5@Vy!D߭"/F6B l\Kf/i|Ѻ([s?%c2d^dz(Xr]5&k1AGHDHc[mz~2 8z<%K֎+W0)V1嫒>]z-Ǎ7Yq-Nmk(dn,/:뱭V qڟlh瘢D-JZ)&5Rƴz-Lу1Pf9N !,Hi!DN,`C&i[};y-QF;Yol_ǟœ;S&8 ITN'jFyr5>p P933[6\ά㳘x`a$WcFT_-ӥzb\&Aϸ}2Lv= ;иKcSD)J+8w*'зii6w\]/Z9q#o|=/ *Y4aJ]ΌV\;.[g}Z֚0]Ԛveڱ_&Π|9kثy9ENYzus&iȆ+Ϥ;m12d- eg0HBgټ^+蔁'{ƥ'sC ![Z .^{ƶjag|1 0 0,wdu W6PbJIFe d,k8ɏ>3%W02%me汙dɘ}Kgߐ#[.\G ߼-9<-ñcCƔ`s'MkVeOS8iJ-NCcdӾ#vQGO:mĖޞf_ |!){=(]YcZW6RevUU`QF\vuײF&7`^ ?FZ#@ r*C  5taTWV<[q)켱SjYkh?udWd#8wץ}6 zcO:>:8G*v- ZwLgeaxp´ڃM3]/v<=/yʲe'?Zsb#y5 &`N#4< `?JZt9<\S죳_“=;]'0$$_m/*W3[cXE`.1r\ZK-.YӟQP/_6<|и5PEJ'*}&JSRN@9%;io~ytfW7cj/ɝQUoԿ"3s%W0ן4^?:~ґ_o%\Fȟ'1P2RJV1;;;T*3J4)T[ /X|~G58 isxM-JHūEs'ScNMjͭsc31D|c`es䙀mB7HiT={wl*NjZs~Q j^iYe:n{@6]LjZ (TBwAm CC}L=2UFJ5QכkԖSb4pؐR K6I0]C cՅU߿bhuZøs<>H=(@ 6x@ssdetc { `gEkI6W8^^\ĥǗx8C}\{pkzEyu79a4OS/mKykRj %AOU]9A䭒бƋC. y(V& BRJۊqÔa@Bqxb~P1ːG+YN@5-ޔ#mf굊 g­軡/ߟEhم`P%8KA4v"(T M`s4u ե|nIFw<630]Wu/KOv,Bҳ-zT쁔2εi BW< z_?}98??c:ҾL{zV쁇GQ+̲ό: !*K)$%iT:P/\?mc]w{+;\R|.Y95$mj&)AA^Ct-Nǁy9hodI&U\(huC.(%ӰpMrgŤ,8B.KF&QP1f:Ğ{(PO.B!Z; 1b5fźZoapڻFzwL`B"BV~׆$5C:.O<*-JHN^U]Xyqqӈ,#(@AQ8>@Qkn7-D!͑Ryh䪖i'Q,E8 dI{OxӞJyV L&I)}fC}yýnFqǞu|1^J99(^IBք;F?f@@rgզ8s/|6 ETo@/Co^Pk ^~v4/ќ-fd}|q,ْפ J)3./% /_&X;7_sWbR$ɻ齟xSnFy]MJy&IO!m2uclP!` UJ`g߅3=RB&[;/lis۝$Jqelñ9==".m.q<|Gb"?rW8^#}B6gŞ<P׷Sw;>Ntٓu,V#ZS0*Z<7vrUrW'G#yb\8Eģg+Nmɸ;3iTb+ `avG晐7XogA I)Mv!Dm`тʲ^X=%+=˪O;=}fSmC# SKx!]D~ޅ1ӓ}\PvT]rլc|;w\̟B]i޸9YdիWL1gNҧzhGO< Zx?Q*BJd;vJf/iiLl UFÃ)?IM6xzd!e3iڏE&Ϡp]8S93)eʤ~ed!S ;ɛ!b[s׈\./h.[%2J!Il90`?ܢw%?W=v_#"D]) Ŏhp%A)4B)%/bFpC\x|p1VU29<\KRm2۬k1'%>콽ٻg!R{7 [8S8 0~}|^yͷ#eρ=:r_hm^ż(Y}RSI]ɖ`o}:h3%,jc5HÌꏍ+ӎL3- *>zp)@|<r+a0u䛘@⑂iă,"<9maSWA YkRʳ1@* vKV#eϵ.n b7^k=J>3 `=}wY >4NOrmXC" W_Mo )%dB"B{y-3k^o/' ;7h޽9+VuKW_Qne2ǧe^د#{!wd{V~VЬtB{=c~=wjnra+nᛇT_eS7|581ФiRy+S9O%*Lpz.Vц7鼪)9ԋ|ax<|X|f^k<ɘ1) jW{fuvwznp׃VZ= zkItk6Ww-^9~$~-Ŋ#BAxDTImܔgR, 2u]I:DW桂=9G^l蹞|>Vt]Y~=٫LE~x_ݗw.k.nɖ%[4-gZjdU,)^L{bӽyN0{MQmvuqw#9r?=)~~9jlV _KJ4c5>rӷC&YiIsǩ:qc~?;%ʬ,8QMsw. 9|^i2H~.Ye,D#W,ij ƴ(&朘Sǭ N䈢q!<W_|e*B#޼JVNYRϵk B^%-$ve1 [PL}t3*hӰB\;̶kLc1@iUgYS]`>p+AAv+ړlt34r3ʛ|WP0H`Lo/LJXq)`귡f(%&})eKJ9OJGJYE,g qfΉ9qL ;[(Wi) - KD fM'(4wo4ĸq H)mP*mYfw=@Jɖ[(?Wv0ec*h>m %Bl߶}K-GcM_#"/bb۵mJL)y&Lf+,>H:J^N[\y=Ƈ㧎3c iHƭ5"v6{l:!^ϔMaiT=:0m3t0>Iv*;6@l~ GX#wԙWA[]{KU 'GMk z~,d5o\)M)R@)@$Ǡ-R7dnF ȢwƧ\BcHo^cw20ƍm ܉"!:kZskst׶RafEڮhgc]6;!Z6FJh#ix`uKj^d T]ØiѡL*I)/Z'2(c֋[UsyI-T\̜Esl0Xlzv"s̚0u{Pxi,È#p7n`Ƶ֞yQJ-+r)EoCfK$czv~n&q6G`3JƲ4 40JO+Þ[{Rt[u[{n"qQ,k1&5vtK#{~)u)( Fٝ$ ͖6Ajc$٤ ⃖|ՐBr0Ʉ|oVu柳I]ԖR&ZQE<֪Z%o`lRMdv~; /JYf?Y/57M`">b٬|1^3p)t!DO`:f6`Fʄu'0Σ56oB#VwNr]tk#.3+\0Zvd`]cx0VJM*ˎ˯dUmx}ĵwx&Kr9P 0+8/| ǦjӤ&&uAOi 7 sf 匯Ʋ20dk V9Yl ѿͲ6;dB'cijAF=+ꍤHW7$ _nZnoվALc!f9{;o<'Q2!D/#H?SZLc[ |2 QaahQvPST;k}HeM&:J)MQ$,_Xs "KMC?"埭L"WW8@引~};VO y ߎ{fw\\R@`Xox $ 4?헷c˶l|NkzJyLa-)dqSN>쾵 N$Tl81bq\ۂ'>}_ C,d}#(ҁY|} yn^ $;PHJɰ0:K^czy@#ˑ.G\#E̓"91aۇx 3I琎{]S&-KVMv䞠4>ڗnRqOx6>rWo^ёB 1bjUy~pT$f˵WIk:YskbzJ Y*t={.ׅzFeR⒅EҶt[~+gguɊg|.>H첂{X=OB>?FmƩAbig5.֐R(I RBb(dq/-'u齮ޛWݭnDvM!Zu\Ѩ5Z29P:{)29gb?9wj9ojF"?Od\RruQx͑%u*s_UKVE|x _3^g @~&&#asιu% %Su˙0cիVGrɵטd>o2vX>9~Ssޅ(_V%yqx 7%z^u&Y/-lZ)vZJt96D^=֑/R mP c$imZO~WG. Y\zl*"ˤd!D7`@|cE/?{l)e"^T=k|Ŝ6sRtGjya9Q ~iMEiu+סXb<}-eԫa۷oiY|}}_y^ȗIgkO(%VmX % @l֕1X)^ޠᣇ4iV'qqVzlZezsO(>|@>Q~O:tVيS<[1fWFAФXWFqOڞb;kXwy=;c*_̲D4.֘e|^lCYtL:ӏN7Ij?㾋xg5_⏒<45R>Hd! "k`&6c,YbL?eHUIS)H(FQʎ]Yy ]TAuh TWQw>G- }]\]6 ?13?ͣ[n|M*uċ,ogߍBLXp!HR^zGW;e1Q:0i6Gg ei̜7Ӥ2d)%;lΉJmt̅vg1>&._bf6^7nQk* 7ATWdȝR;kX{iI :ChSk%Z-kͣ&"&t z VUƪ%{eUWzT.+tD @A رH# &QZ!i>iT| H&);`b.E% pċr&%RJ-:.ۇU+?9ݗw`@թ_ 7rʦ=^KpD,Iߑ7g^Ttc@֤Q2f۷o?>h@& B Z\W99&WҌ"4""10V1{=9[!3v65$4,W>k,3ZMrrQ.W97ϮF6yoʓ+mz-7{jEW%L4Lƍg7~};/֋?jv1Pe-W}MTFaZ˩tc)p8bq}jR 3&Mt@h gh^0^c'- K%DvC,mQyz{mdbГH&OSQ%0kGTu jSQ#LkЦw8} էWL)Uj*D" ^jQkb ^݃tكH"T*[R@́Ey Ro:0b{|5QrgqɒAuB6SYlnCVӦEjg/1}T1|o ? YgѭgLM^O~9ʱ9s,J@̞[{LBrI,E(0S8sad)B yѨ5O@X7P~4(B> 6_Z|-SFl%u Zg|ږiTF8iцDyo*Al7q>No>4ՍҰIåJ @,O5[w5^/سkw #*f!u01(֠ >: n7T[4(ҀQ`x);; ,lȭ0#<@ώ=YjuOm+)b!mboBߔ=!Wf-ρ@8r Dcgi8>6nHy\| {rE w[sb`Ǜ PbzV w9v)@&JJ?mRKQp={P׽nMP+ϿOR=g?K4O1R!)SfTd v 1;< zb%,`zܭ f6?+2̚E)Ni1%bxaWgСk?q794G|L7D iQ{Dy ک =SoA}ݧ:{ fƜ 4bx_x#<"R_ BQĔ/8p{ݒIz$tȝ4u=ǡ?RڦVcd})'dt)%I暍eӾL{@) ޫ{}y{|^AAojf'[Nr$[.rA%pStam{=VvYAz1& _:4߷ds͆]͜DŽJp8Zt ChiYH RYFhm|n=Do PsI>dFQ !viO?^ FjZ._Sw{|)(,0l<?`StoC&ڞ ߴ/f,ֽZ#``+YOB"LRJ!Du̔ ҐcA=e]ez*1 .+7n`}4(:sf0sL5hƗ=$9VoЯV?_Lz3rHE1vRWyVzx27(0%2߅;/pн9Ë}"2B(O)3TT*U3k,Csd89Rʸ } _1So^}I(tzFy2Wquq~󮟛*uzaCr|2_Qe͆5'V]=T0Ŝ6/N\;JYZw%ЪK.,06HO"rfO+UYsd`N<2uW(CR9Z=[h0Y gcBѤ~tUɉXVV+C7x߷?S~> O5y*Ps/.|4x=Ԫf]5vŐC{&WD)ZWmʄ2@^o5}_˚fWI7A0^pBD*<,peݒuulu*H5S8<%SV) xݒu YW%ǚk+z㙍/5j#mkEĢZ|hq}Ȗ#35fhP(TRL|Gŝcޛ5SWS4hGlgQhU2u;wHCSj׏U(^T,Co?iJJj Msγ`|@v8s&8w>mt3 kGl&2o<+Zi_h}C)UMz6Zo#?n&Lg> rn(b>/tʞ9$J9d{O*:}+UW,-'D$}lRm%hot)ˌ1D1ѭbufH2%˒CK. 3pűΕ;…JE7|@~i)"oȒ@c6D:`|pzC 1ܖk gvYS W/gD_RRm=AD4\tb}ǔvƙA \Ŧ)$89SyvIxK(;Vi5'c|J~1n+3vh1MDΉ"2FDG+JWԛf&l@q.λؚk쏛Vhѓ-$?r cBS27bN+re^lxeVKSO$ŔФjNYyl>ʇWwfR /u=zn;/PNDJHOJDoWL "[V3Zµ r(Ͻdbǁ<7ykVI2)E(!"].ŔR'UD)h>mB6"f,۴8?[{r}ZCyq/.|TJ1068cjM"K2,fh蕶w^_coqJ 3[^z(ƿ"J\, G!fN9+޾Nw#M7]_w`I0&K35l;s _]ql߉2uZZ-n ( "uEE%"Y9~3ewKByb~maXE5)fH?Ael veE\ϯ3~ŊfԘ=i;Q, IDATzrA=2F!*O'GH׳2H2&lQ"e "2hIj%#2h}[gXv]xCoC1>pe=-FsBj"3T& ^j bmePd11aӄe>,{/ڇ*V[9%"]DS|'ADR@>idJ)~|,bw%)EsS"d~*ꮔzO)RRZ9B"-t Qf[ZiGxѾqF_T1'k>R|H;M|[|Xg \9GCL‚X>hGӢ%Dž[Ed2lCI'G=ƾSBBynsq9d} *u2Pyvj Z]8PJU_ojfFm+)L5rF֜Zr`x*ecDR,?qa(߽ސ;B !钘gZ_yǶp}1o*SV)UTD蹈@G>>ZVZDyYDt.V*T?'nVg^5v]q}ŁC8y$=b4=nsDc"[:_{eS7s'\Or ڵ)<Ĭ~3nDzyq-܊\UJF xg,?)XeZb)GnCˎeRGGJVZ.оiE$oF"jN6(F.Pjչ7ϵ"YB)9$Su3Uyt&KDe;{6fеovwZDwMZrqؼ#yBR@Onw1ԱJ%D!H |&LQT pl6xb`;4T94#@!R 8aZZ9fEiڠÇ D^:gG͕/n~,UW7||cxp |<Q(&zh1j e!f,{G$mBHPOM4ة7NR2돰'!X Bm<# ((2$?1嵕{hc;ho߲t@wb{׭ᑮd>YclIG-}#b,V1]y~nXa|u¯'f2̔R%Ъj3-!)*ҟNDhݿ ;kPM5aMgbbwVscw]; vIϻcxDcpR0JhҾZ.Dc:It|{F.ls1"JVhsJ/u[j^E3JUU,+"g J0`P6o,:gvDcb*~~WVߙϿ Ty u4+_]B9۱^jYtĜi752x͛G}i)bcwCvϪi}hp3fJBrtQ;eŀ/oݷٷgA:}rZĪ7XHlrzq*FQ|7\(qDZu;&"}N8SxEDTI/{BuvR)kPkܽ4Nճk Mv&'b)4(^Kub2JUN߼݌1XhPڏiedѵk~긯͏p5 1 ~/X\g‚X2l Of8vjl:^3LKnt@cuSS%O-TR{J˭Ѽw&-ܤPp؅lKC{ҹΨ)ߊjf<=w/N:cbvYq'=c_ 21>c`4{}+Fr@""`C0'Mg7ۍa͇?ܞ PڟdwꡪB7$w]u i܅R*xӶCkFR-s7m*T5m<<)pl}<ޯ QѻbTE^i FߪJ‚ö^x|;m駔*X>SN=οuǬ~3UJ;mnڡq9L@tk=SrJẘc+3}ԁ)ۧ+_<#[d7|/j  9mP~xH8츰CU~ ~F)MWJ=E &߮_!e^kdw{eJm(}Y<ұT(;*ެ9^1YL>닥S?bgDEzsU_{7Ne>{c@)-!9TRpT|%5L޽uRNkPHBЌ^u%Z:a\AWrL2Ҿڒl:鼕z3"MNg,Lj#6N:'>vΗ{Sc0)딬3{+;໬E@p¶ c+,@sq2tI@?CW޹\>w擙)ǀUyC'Ѩoc*D:}[U W%;s.OodMl8~%".ݲe G݃s-t܉XEc3˨Rsl>0QDE C})L)B WDҕ4-ReЪB~=u?pe9cr)YzLyp5shW2{ؼdwbS}:גˋ^mOD>a>o+N_}jbE#ҠtVdrGyyjZ5.ߺ̕[W 7/pa^9h=}L,&_NbUVpQf/U/8|bu=ўK{L-'X-@S =( P Z~g bгvO o o 䳱guTsjn4-y~ Zy#"fjAH2&_oo]m=KE?JN뤻^U xGWޕ;'a3TX£l۩q-V[c,:!To* LlTJ$>yRPe_|T.TyqJmndJbYZ*Jt ̝̖[6oS|j3KLDR J7⵶n48` |='6 zm(NKSH2X-D'F_sG=c,VJtX-< Iu[KM_⫮_3ZLZLhy+՜ _X,yjGc b_=؍J\W:*ZTY-+c?֜Xᰙ[7|LwU?qqwVRcelS(jwlxLQJAk%|܁]w]ƠߞXtpQ{+;ϑ .l84VjtJj(jID CÙ=yZyzhxY{C%n"2JDڠ5 he4bFS߅/;xͧODʊH."?OƘ/xoeoٍ;뇿X-z(\I6%nR[7nDSEd_'0{+z0{y"rU&l@!=Jk:6fTnI -LV"mN \U}t+bPq2Rͩ4٩qˣ)bhSZLW|U+}qwU43"b "pZ$'O<ҿ7/`| sfTsjT=jN ezx0[ʹͩ+D:r;ZRJUSJUPJ~T^w/+pOY|۳l'x|"c,"gE3ڢ!%ɘ:O#K}="BXpUYǝtV/Ƞ &DgPАP^쎞3z4](sۅb߬,;xzX)X(*UR#wf}Ҕ3YL>u9x 'woi>Jß{:¶g/1 J ejwj6_e[]~Dd<0# {LB7G ZR'<,{$#E#z٠țZQi0Z<1IYFXp:nF KJR͕R33RRZ`o#jWY4pG1k 37t|3«{he6&OK4*ȶBAvg؏`_V+x\,;+kvPg-\ܶi;ےH@7^QJ-Ck M/hԮ `p ,!RgTb=>Oc<˹svb%ɤi&M V׊A?FTV3m\iߟ<ࢀe\ه75 z`}/нvfRo[$v߫{Wq<cT|G'4+]724*(R[[+bJGR "hzLb\|2|M_rh u߾nQ3Nw:?^n5lr ;Hy k^y%n0'mK!o"q}}ќ ۊ紞h7ź#KPJ={΢O_r[-e Z`guG_n{/95Jph @Ᵹ˱IrٍQhNƙmӘf#f7/NYy`zڣPLRL|Z#P0AzӺ 7|od+`fُeG;$7>f囑+8Ca 8:o=Pa+\RRjRjRjRXJE*qe`>Z=LnPVi˪t߻Ŀjh^[^ \HXs>Đ rd/J@~i6J2.jJlV=*VaĒbcK&@Tk}ms /UbQ0<ܑ /dx$ yqp.8<>Vl,>kJ~Aa IDATwonhJu(hR* Щz'oR$잹sqRSK=pn*V{-g^"hFtTTo`j.&ێ~4c O֒2G[/Ul߳LhB~bo3{;RIRK];|O S^S)їUWE*>U WaLy{?f:]?jO[.} 1-R%{)rX6/J":@|%hX![ma)~9ٝu!OӷI_.%\z몭-;+C;$ C[LX-$0mt[7"r<cPJ5C3Z:>;$7Kקq4*ېeS$ocH"x \m<6hyP)&a;IQ.aw4[jOdrf;LmXAeO㥘S9wh.===m GA?/rk3pս;?>ཕoy;b_`P A ?ETRM6WZUFe%R݁ɑᑗ3kDM6{Fo֜XC\,֕Z{-*m1I1l9gfS1G )LhWzaq /#׎|| [z4|5@ [hi 9 rzYRuNR?lͪVAdLi-q[.u/CQ,ض\%#|bh3R>Sdk4М`C֯Wge=%"+|:Jk@}V-rE-+8Iݍwcwy߽@eđ&TPF= EW(-"|=y*TV/Z=S!k>Y;79dnDcvYR=G\"/>"/1uT>Y))%eJY+@}x=8nKJkPPūru<{:81VX7Э1f4V ,֍݁0t&gV,$(k;BBH5\PZ^8{- bl^lNYe'O'4(O 1b/EAÔ{.aop,)'P'ٔ~w+JS %hޢ\M ZIbRS-w)?WWr毞)fA<K&SlY]JwXa C \x<w{ǍW7ڼ׏1 ʠJ6vAaWA]v;n YhUόU @!!5z/,E#|,&R-NύZm͔{N9cz|;V EG!TЊg[-^+<#x2ƒIt1֟^OHP=>N;efw ƘU| L|016-W3wx.*:nD89Y_ ufK[-VOjVu94Nwb憞g wfRJViѪb+ F=6ɽ[IMd+;iUh 7)UJeWfʓymx(R(йFgK"VG+ `c\N՜.Wn])&glG+`၅M<̌ %k0lI8X@imyfתb .{2Ss A?ۧCF;clt܉+s,hA"bF[㫸pXy|%c,kP%ِ'4SB1eG7;w'Y%%{/ﵭe&X)U K,4(:ʪS@@L5˨]6b)Y.wFTVLۃũS9i\j]ռ`nVXE˾m!N gj]>-|Y'TRzdS͈qg(]KS/m9d{Ʈa;iWhRU3Jjh"D=紽E]S76չv]ek =,SWh~xxagbui;.L왲hΕ'fxȜ̛>Q {=(3,)!@[\ =x2Ƣy=Yu|t{xr^3B)1%.%WΗuk&O-D䌋!gx [*\ b7r ,@)i7jI*Vs?o;TpD HoݩuWC),J͒s_1;Ndx$K־ A)2O^@WV2_Vnmr[2yp-qa1 2Ta40o?j}liϓbNa쁶|D*Q&Gi0v[3:[~ihӸaBxFϙEw%TA!ߞK2  2iOw!Ea<'mۃzV?lJvlGYDbZ Hyt= Y^K*hn+Rah7+_;P,Wp.ϦU/ukWcb i@7_os"^ xKMR)x'HY?Gp-Fسr2{\Dhv_fMS{E?q_śwolgBjvNVЊ_wh&"D䨗cG׾s*fqىًbs!|]G>$Eǧ'~nmRDx©[W}@!Ì FI؏t1U켰S7NHHM$,8{עvT(X!>uPH5:ORRJn"VZϢ ,OJmꖬKŨYaZH6'saV[c&w]'"o&fb%>8~o;}؏GmTE`Hߙ}H.1)KOƜ]/ @ ^ ErULGyz݄ J\h v)fy;&-r_OןZcnЌ~"2վznVg.t-ˏ.gM#G⵩[.M|%I\I\H5r1];8x ;MR^hIEd'r큧?T(Xj299YUz{:W~+7tlKåwR=86,zB`4kӄPA >io+"R+0יgvy]Bk~@=[lbәM|kzכ[fiO7ՋTAKiC[*"_UJAImH!ٍIaa{h㐈xJP/ qPTK)1!81| j8N}RL)np=.fa0ܲK)ofnZ $x@V]l_u^\nDXij6\ɖq~~}Tn&4f4cgD2J4Cv">% 7c Kdx$ s 7Snr3&7SnGtb/r3FKȟ!32;kg9Yefti~f٫!&)f)]@wvƩ⍤ XOiPJuEKT}Vcъ.bmyħ1ol`')=]xxl5O5gйzg>)U 3z?xhRs Ts]rbZ6IMx*2w\PO^ wh6ێwDWs ۷K-Ҳr v a@DcbwƸmx`C0E$B-c1VyZI)U9b}A)Ux.ʓ#kpz=$cB3o>bO!QJ?uv:˔`}4ڢ/`^ (x2|Ҷ L_ԟIRyE ?x-<`4)d+%"4լC#i uhꧠѼ=eIHM ٔbB\;BZ9@E*"^D*"Eda6 =b~ߌ]=N>ѢB >>2+I|'_|,xr>yB=ۼMeW0Ӽ AfZ +TJU~B.x2Ǝ\;BY^RD6;@!"ǀoƮ[fMlaKo4 n?"8ɖ>oih}’ӐXyl%}c"rZD"IDJŀhs5hޫhXS;XP(*"}EdZ1}5&z9;iz_di12-?ohj*V  t[e0>p2q눫ӤS`kjO(=':՜U9Ů'^_O[Dn"rBDO6UK.me(\>۶5*Ky[L칸WŰ EeH--+|ADnBa#^w-MꐐjN YZ>;32@pQ5(F;n#e`'ޓ1"K)fv[p\eDoi-"uEDNGkvWj@;B$Z3"򰈼!"3Ed_;bw\s]K/K92d CPC#FvCgޅ٬#0|sYrD|)5t])9]5bǹp~IT@QfMOz)!8۴ L}`G)ZSuF#5:/7OpCs8: `.W ;Oшۂ~noMt)FJGˎ.kt)5n5imɶs T@U9^VK.gKŔ{f3`@ux9'"{u"5ODVV9""gnAj,ddi12R`ȺkJ(  '.?؃CEp&8%ZǢѨl#/&]msN5X2g<vzkLItaݒq m-]z-o, Q}[T)~gƷvt7-@K7+.^YJ}^?mMDImEq\]yu4@c`M` .M98r?_磈&\n37`P`K[US -VPM\R&蜭PJE*^kŭ:IIKZe**():{zˑO8Õnk[ь14rǐe&•I{]cR*]n{ik`Cץm'۲~)LA +uG厲%jU?gojԝw+]uS ]-/qĒ켐:;q)qv4,89g3wQߖ8֜;mw3`@|U}džS6e c-_s X1( Jg8챊7_ꋗnnd|ecnt!E&*Zb =%zɛ*sbJqy<}GnKc,0S +mXlw@A;?M?*-]ovn[c}3k[qb͵ꀄ- nJ Gh{%w7#׎}jϓ /'-FzN3R9sRKut܅vmk1"⯦2uֻ\ˏ-NbBK_@vid1]x'7e:]"H)UH# hZ5eG&Cr9/!oX^(ÚcSpV3q IDAT6>ZB O.)6+F)jٯ;Zo^k}Z\#Sda0=elF{펛_&  s7(FDc[Wn7=&oaH:k_F:w뿸6VHuRK] 1 SE27QrbN1gC4 o&FZdAlx㟷wOm֭~DSgّœF;RZև~Mg6WG8-F-slbUٌm@kJP8`;*K臭{,uҊ0ĞIZaoW,6Ӥ\~m]C,#Zp2lo MG#RRsT ܱBy 1ǥd1\%m꣎J_g^'ޢy9Qua6ґދ w vA*;6" >:JU{[10ɦmyt~LnBsyO9P{ܬ&ot"/T4]@Ly;YԨOoSЙQZx!;jr[o凗t Ȓ'  wVLUU9qSG.y._XM65jKW`Ɖ;Y9f_4w݅8eCO t`H1W x2y;- 'UcA5ǣ #G[>1i\1a0"C#]Q0Q|[ tRv<BĠLD`t=r"<$n۳^̴eӊM\ IϺ={ǡ2X:V6R xX4~Xvݧ2{(/@~^ 8hU=jNHd^$_Qwmз63JZ?c t/|bvE5;sn>R <$r<7_=ӕW;2Z3\BJ0߹ܿ>?p'tEb)Zw|t#1YM|oh.\p~*ܕB!K,i垙3JWvMɆGp#pXF"C# "<$Dz5nnw?2V)"Dm ֫^/76%bqU=;'|Tv><)YStm^"k^ͅ3).K-{>)%6f-” xPZj T%1#\AvytAQZW01A%E0iwi#@ۂ앗Gd]/x1o?bPivhR\% aNAw+$Pxm}^0 !zVZ]=jx=恦lJf޾yYz=0mnY-U[sپZ{9IZL6W{m_8WP_W:{/6ڬ}/RI^'*tb6,i~b|V%b0j[Tj~ & TrNbzgdǿ3)t3IMN|r ~.bO?x &t䥅/c ^iFk8T)buLUfKo/]{N);8isHF|t,;)f'iʥ(xo7vQD5 {Ӗdan}Ms=(SEk^gNq #=s/~_c 2ߌ֮(Y%p !#!v,<eP$nQ2)eG+>\6PddK(BQx}׻kPdBmSNM kYjhr_~|S|ԕѲrKyn;v}[NX|$N_{ÿ>BbˡbryV_gyUVZkx旉͜熷Fu/:|v BዠLjRC2Р},=F |>;Lg՛Pc(Z#_O3/9Os*3)eB:A!Z I皝ݞN͓M ]yAmZ k@[;9 .W=#w)Up9ScWFb"e4s#k>s?b^X6ljESsݢڤtBB>TǠTpwcFǖ\=~xAtBPMஸIooUUPPMVNNJ)Ǭe̪13[A"h'/2$.q' _LXοu.`iÊfahrX./BKP FwA6N ϰ/Ƭ?tR->Dr_e Ul*nt*րX얀Os;t8c[AI<|SPNXĨ//~LY>ZZ\5ï}VHc#bi^9-*E洨g!_cMCIxT;YqdMD),RQB܃b9bMԠDR59~*@ӞVX)9.pe΋,~jNeFyӝT/YۮqH&)̝39E{%&lR %]AO5<b){F+0n ;aÄ+.z|JFy洭ږӦjEti~X )%f^kl+~TaX}t5-Cى %_i>0S !C5xCJQ^,p(0rPetsTR\u.<Btk֚|M!D5ne[Hz5LI6Ϟ'ߤQ{,fŃ3[: RnqXPBk Šxpo.3d՟߮T7Ϫw&U>|g+݊fvg玐 /t  RhP(ЄӀD:[P} F3"D|oa퇵z;VO7j6 ->NbcR =td5—xs|~GV$͜}wH偟y@3i[Xut-`H8oXQ0B10E1txqPJ ^Sdu|-:frjce9SJ{ZGdc9a -kńǘق#7m])*&n5hVUGW7aޣs1jt,ݒNqHp%]EhAi}@]S!s~⮆hGoSsΌ=:V ۅ l>=7~dJd3]GEQ6,bQ.*ҬbSZUn"-7H,6 })R,)Y1KiR)JդI&y:N݂f;-DD:ݔ]!."1//|\zi@{+QIҭ~ &,(t]HQ>f>8#>V5SČD|z)&ez5!v҃KY~dkWXP t[ْPQ[EFA˾D(ǭ?2bsCO5}" !LP[Wi'df5:ݦxq(1>޳%'H)~/qq>;yrkUCVlJ!I١~~,Er1V[Mo:ӣNo׿=9bnozMv+f63&Ѳr<Ǡ\@L6agʶ)^#!=.9%\Dh tM(yrc*.ϽcW]lZiЂ̛)6S\ާEHca0jr 7e7;4*߈F1(,v Nl`,;z 0pgCPnR<7,ݚ΁\QuG@J>+ƠqWFLHK 2)n&exRF_RK].t)eZ!p}ћl^{>2ئJla0B^0Cz]7󎟙g>7hNhz?kww**Jإ՜9F.^XHM+6ePĄ}NO>"\3 * \wtՖ5: NCd_>ԴbӠ/G1Ú yEVa[l4n h4ӤBM!F]R {G)UGWr^}?-E HRag9B]ѫPc(׿6; 2!Dy!OM7;=ٰG=y~  Ah^ytRʽB![GtKsX+\K|lyFuŨΣXsl _=s}:ӷOLTi|oE*m('ias5c>tp!LVaQDFPd hr?b$uWOڒםqWE]նwv f-ϵ51#1d՜fnV>iYs|͵5`,U%β؈Xhpw4sXyd%Nmf<[(E4 J!C,Zn,G[{1@ד!Ė[hY!VH=xJ +ތGfɬ]-=L'BA f sx-unqm3 #y_$Ŝ†Xs|-ka魘mf+SvѮZ[UmG2u 2+v_=Cb[ v:4Ԝ VS& -vxYUXTBBZ9t]jvzh `RSlટWmh6Rfb/_>DҵܞRjq^G1g:0܎"|2QD57πi]u5L8M'7DZ"O,(ZvE:$gZ= ū0c:[[q2$ ?mw7>[iqqO蠭fZJ9 /S=W8Jgp:N*] b@>_n>N*m뙭l6!UG_ϰ׺y&S )NfVүAmk9l]OqevOY+R76𯏰&F|eawر;1c8YDHktslN<͙3I<ӜI<˞ {Xrp gO!% "24(h0DV)tk:Fa$BtX4%#K^[ltYjAjZjm Vmffkpm:*xohֺn\^fj\ 5eMմ+Lɡ+*bc/^d݉uU32_RQ=+\t:4_/~Io؟ӱz<,qH'ृr璃.<'7A9m٦jQjPR|YꏏWъ1 .ƲN׹nR~L97NdrSgmt(v `Vf IDAT(B1TB^KVWK;RJҁDp\{,$JȒĆgN V[q|kΧ>eޒR^. Au谨 2my?!훧N]+HJiAq_ziuEgwp><_Mryӝ h؟.5wAyťS݄ڡKOwEƓ2H6'9v\:i]Kuم׺mo8OWrg^PN!R|˵j:v-:L(?}lFϰcQKy# ab^inV&f$zsRy:؂%K2YLDlЃ t}~6qQ|Lp 5BA KJ+?x&nč)U~7c@t5ϊyVjw?ͬ4U%?vDmY ] 诃D4#t?I9::^R~j%S kxa<`.^|;tk:)ҭmf&:T\YHnMjcR.ƒ7!nRv(y@Zoe""4KńEf 3Jmb;?ZlhWfv) )(S}yiaC/ʿWas款\N2*]fqs͛yf)T+QLbL㎳;ݭڈw"=9MtASH)Wz{6>k,ǬC5#KV%@:Au kԀSNocgii#ƯO%y(r-cWޔelDl,SU5k=\l5@-b)LVi4RͩD]iN͊63T2~ ]Sr헴ߚӶ/6RʻkNp0MoJx k?Ą=/BvʱsvjEmy\2_0WT*"^J_@' )4H)Bd p>6g8n߇K^yMbN!ݒjb`s\ 3hbYaj2o<~/7ϛKE70J~`m) )?K "ݠ]]=*߿@}эP%RpJoak} 3-k gβRE Af/ 0aigh/ RСPB"2E^ F撷}VD:gwסXx`;J`WZTjA\DSB"VZޛDz )H)ߠ;YҘe2LM6<ns+%"KXA:G P^Am6Zw ,Ke7rw92/X~x9Wҽ*Ai2&T)(f |o^%Bl&OF.5h/~-j|PX@CteBFBr%j%w3Bx[ԋ(R^ƣCfӡKxs[tցArw㻉@ 5RT ]:QX3BvƆW;w{Kii>& )H)O !>AI &6ڄ`uZ'ֽze"Q`*YOζ3Xvx9vKN~IR !V,ڿ[?njYw{]8+[/>+Ǯp&͕RF&*=M{aOu!(6Q|bY{|-keg lֽ5n,{F)3wۙK rT)^w|{`j̫L <* < <ag l8MUw+m!2,a %c칰eѕ*ɬ(TӀqYSXXr#*0xx;"dwzԭSKkV=`vq `%r X%xe@!cJG&1=LJ\ ԯ "RIv+1eOsسR%KdBd:E5oS!g(xr2$6MbҦIeҴbSUlJ MiXaPE k'~{.u*`2%O{}Mز˰ڭ~#'է|ly' P`f Vנ%S[YҜ ŏLI.As6BT7sm h4 q>>Ʉ˱+DzfF-m*r)a!av9ҵ?G l cWu>*ȄH[ڦZ0cp8| q2\F|)h1e/7q?f*]y* q=.Y>kՄ]*cXs|4Rʂ+) 2)9& !"PDYș?M@;u~gӉuh*QXq"+GlxGLDL`0L$]K9S2fu=#)%TkR܊.t;鄅1cK)xE)w|උBã CLRJחbJ o6Iv4n)ec! sQԹ26qΡ 6CJ9F)y;f]_j|\Go4Jj4].]f3P"_QF.]ZkQtm*VtiE[|j S.u8rgx+JӬ~f23B4R |owq֗kSXzp}+Ktx[_k-BdS/r1"^8 LJ)L?oB]HYy<.)(*UR\% ner.fwbp !Fȗkd}nCJN @?.52t剄g/^t (f×K)̗RH}(e]"`hܹx1̰fl.=tW+ X<*\LGH۩.BʣL7icܒ, h DҊN;C\DXW~ZA\NLnT) <)ﮓoLvc\ϝ#O~zǹ5 㮛̋_o*?zXk3ő+G]vSJբltYg$'%Jv6W5D!D%~uZRyJE]K]Is3t l= / )%4FE|9(S~l=JJk:2Qm4k+o8rŔYxf^ٵX .pz9Pb#<'8TrjWAfҁn1sLS7Yۅ(Ur;xTYjr^pk>OJ&Okut ! h׹Fg~;w7M6}cۙmJ)?͕Q/U-+Voy*|Eau,Rnvs6l9=`JQۭz<SBJ*'"\Dٛ6y8tA"{Vm˂}6\ i4?+(|='3Q=? xжC"6VwA6zhmQn9b.c&iʺh= h6ͭGU4B.ttUMi^9_DtxΫ'7Y|`1(:6MrN3[nn]$ꖭ{6*,*`aSp!ty`A.s컨E!+YRf$`R\%Vm ČDN'=Y@d::yW 7'6_埳QRN.#\ ,r>L6kOTu|E>^9f NRz/%ާfI!z){DBM"J-GXhvsM= C~+[eO;^F 9x #A)NayLSZlzlFw0:&unnw4,:0yL^ VZ`59n s༽scP:9Gd::ycj|2F xL 'F) Ru )n/zuӷڭϵJfly6ɋGm9lN>*ԉQjTׅ@`Ԥ F0\˛ju5-%kx9lo邬 2<@.rUY1t9beI)~!b[Sۥyᬮ $ˤM2ݜ_JP'V]dJJiOT@i o${>bt5{2QePpA 氹 9fx;NCd::u X>dUW x?6DϚۿ:I)Pu nsqk|& z>]76ͫؓR:?RfFy%nEDz״>BbQRx疷E{?n2.ttr!(eY>d5K x/?78p6M;rg:QP:-'^74KJe/o%_|`|40!GRas]>gL[:8W􂬖,!B)@dJ-^隸H)Zc[ҙ-l&:E]BRX+[/:r&u%o`s,(mOzcΏN>qY~+_cQϳC3"wԆD`[K.;--i w}u/2eE7}Lx΍sWJډ&\]/ܐcB9Bo"X1t9*j̘chNR8\Bb)p (Wӯ.؇;܅f4u V_*o?а v !z"Rr(F+nuo>xHi3: B0Cz>͒暞N6%sӧ } {:G!ch<8blő41o4 hϹDIlD,&H)&? \[FA15qI))~|Pc .ogDM]B 9^nb _VXCd::9@1.24R,<6Udg2p MΡKN놎 g=1*y9"3r֝Xwc-R?3T0< \xrcKpx14S[=N/h7uv!:H !Mw~p趏v ?Ώq. &B)!ᆹ̡sY:ti3rzMY@})^B1pCڵVWw|Ep:aR]{b!*,-[敛l?nV!ܔZQFaBl|KgZ'&biZ!vLP>BJ:@q ."ńl\Pj`܎қ;)#Fa_- see)^{l gʾR4 x뫼Ldd3l=2&>X6LSn (FB !I; ?Q}B5t}RtNUO+v{s;rx~gmRzS2Hn4V^\BhڟF PU鵙`ky3^9\/B*Vtݍinb6E^Z2OmUQQ/H?e3 h C)IqՋ+]R̜aکJ B푪SDN!=a;>Ge掙1kZҮFoy1@O=ėCȹ؈e˦!4#FQB` A 1`E|J|)hT2;b/u*sh̝@|УF>F*%;EO}f;vDS;%}-p8S%Qz|f9^|͇7QP3s1c $:E]i`B~.\ෝ1cLyb!.{]!A넻0CE]W1n:BNIDAT4.(AZhb 2'O8x:d‰ 'ͧN:$χ]NbN)asʠ%#KoxCän6R疲vҭ.;LQkB}  o?q}i_t`DԋG~: )|LJfu \j!D1EAK]9iAel:e뵢jĬ's{RjjtAu:PF|g cM>3>Nfo~?0T2;&䞘nnlxlt'1d@MsUҭ]RFɄvVT"eJt hT>4O/.'6 fj[oK,eUħWQ|( /YYdzwT=5RapfA>nA{=NCd::B܅rqh"`n= ֡C@-e{^>okf թâa#Ú(Qyu=rj W hB:6@dh$ehۡXVv+v/*V]ź봾]FU=0tݍm QtA!D;m I{1HJ v hCɷH_Η@d7z%͒CI3X+4fð|)[r/0,anvnkX!įC:\/3Vr2$gp6gr*'Nr% ap[#a ."%kPTMjA55)QDgʁsH_s^t} 2 BTEiגIN ~r4 !I?IȒ8cC6U۰Eh {Jfjc(bs{zg,xÎD"3§D2.y~3/5 xTJGAQ'oN#A1|B$螝۬xOfI']E=`#s :9[~S/ ջ`j`Onw==Xڭmf$KilL<3*vǭ:Ed:::2z;@\5s3\E,v _聾/Bj%=-?ъ9xARy3G{;؈X^*#*,E$ՄajU\7I&nIW`2OLGG'B~JCO4oo\* vc"R\%;m x©ۦogEÉ"Hq4 mն m;{C0nJ&l&)u%iN ONF3~@Iܷ~m#:<۶U$}Ƨ|:6͒@(|!DwmBm,#:bN嗭8xsKRqy+ jN(bb#-Oy§Y~!d뙭?&mnOPpΐRڼB:Fd:::yb<0p;kXSad5]dJjy*%8FJBt@*o;:N|/wnJ*K)wԊPn*jWk.5;ӹFgFuR),;x" &jGi4)Wg_ 3TS?}ClQc*l8ñLhKiy1 RLBJ(}jѿaxJVؕc|qa#RʟrW*!(S݀Lj֣-!kw \sUjˢX|`\{|6ͳSCr}NGd:::yEˌFjIM%>,!#!*єXYJQ4e:rrUBc+R1A6EuJ Q]:K,tC r1Dr\L9Q>ᆘBo)V.\n%>5x.O%J;x|6R%cBzBf47_3SA jZ,iis9ŜjN1'[M$S5ٔdK2%ۓLIs#͒F% ktafa36l36jkn K{asHGC:bQf4vAS"h ܅S)kY=Z[b~ 3 E|9}zNN tAш-@r19湦jbs9Ճ^saOҞ {Ls+W-vKa ;RbY ɋqd`f Rf2j;A@5F!/t)x !D,Jw]4NAd:::u}!DWU-Q|nl?wyl?-n/jNBTpxE]]E68{6Z\R@b:::oc8?WjPh u֣RWL(hRT   2ƬqKlFlm lvȄRC*dA^ɱﷴW^|~yo^oIE$we~O{EF׿i۾;qK=}=_${f TT2񍙽ܜ7.^ѷ65n}8TDlC&"0Brn^91~lӗEd46+ۢOu,0ȱ#tqw7:upsn4+"2hLD<3L>ee8\'hp4csA""#y9 [6Z7`o7__S3B3̝x;{w""#xbfA dqRַy_3ԡ@&"^_-^p9=͞H|r2B\1x53)\6- Zr֕H Q fdX 'CBsw|JD$(W3JCǒ;%,,6BLD̲U'=0\.JOKoK8ЯDDRx1S KSrJ K2()!c2l'o|lR²&dQJLD8u *UU]Zf|ca/YDDRxIOI-_Qb`(ltnx"2hιρf?I/6Ǘa퉈 2j@M^,-9 t{I]e95VCD$(~ DW} {yyx7skJe_(h@&"9*{NF"~}/U}|0DdQ _8^VE{W]_;ٯjoxbޚFxӌ2mtS8/W5kf?!Dd41p "ƬwQw_}yi@&XTD$)Ȑ09S*֮ʀ|~`oᲀz`B:22fؒxï'QwwC7򦼘M~,qQ[Dd8(Ȑ2SJ5XuKzz衏fl,F{SFLDR\fv=̮rvƅ᫽<}x5?k/a HLD.(3xXn[UأU74VT(T@&"2ͬxfAk[KC I/zþsw E""CELD]|`f^wu+N+/ɚ4./#737373'sBpBVƘOZmom(|9C""IR .f0d> k=!@&"#e_ʀˁˀ/'΄w:G""/}IENDB`calamares-extensions-3.3.12/branding/samegame/000077500000000000000000000000001471772643300213065ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/samegame/Block.qml000066400000000000000000000054271471772643300230630ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ //![0] import QtQuick 2.0 Item { id: block property int type: 0 Image { id: img anchors.fill: parent source: { if (type == 0) return "img/redStone.png"; else if (type == 1) return "img/blueStone.png"; else return "img/greenStone.png"; } } } //![0] calamares-extensions-3.3.12/branding/samegame/Button.qml000066400000000000000000000064631471772643300233050ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.0 Rectangle { id: container property string text: "Button" signal clicked width: buttonLabel.width + 20; height: buttonLabel.height + 5 border { width: 1; color: Qt.darker(activePalette.button) } antialiasing: true radius: 8 // color the button with a gradient gradient: Gradient { GradientStop { position: 0.0 color: { if (mouseArea.pressed) return activePalette.dark else return activePalette.light } } GradientStop { position: 1.0; color: activePalette.button } } MouseArea { id: mouseArea anchors.fill: parent onClicked: container.clicked(); } Text { id: buttonLabel anchors.centerIn: container color: activePalette.buttonText text: container.text } } calamares-extensions-3.3.12/branding/samegame/Dialog.qml000066400000000000000000000055631471772643300232310ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ //![0] import QtQuick 2.0 Rectangle { id: container function show(text) { dialogText.text = text; container.opacity = 1; } function hide() { container.opacity = 0; } width: dialogText.width + 20 height: dialogText.height + 20 opacity: 0 Text { id: dialogText anchors.centerIn: parent text: "" } MouseArea { anchors.fill: parent onClicked: hide(); } } //![0] calamares-extensions-3.3.12/branding/samegame/background.jpg000066400000000000000000001071711471772643300241360ustar00rootroot00000000000000JFIFHHC     C   X! }*T̤I@ '/-Ljkt@ā&z@cHHHs%)!hL!Cg9qWH^e$B!!!@#AzUYHg͛T-L@Ā{#F!.>w$!T)!4 C:1(c4]i}$BR$ Hb߽ʀH. Z: bL  I'0ڗWIQrBQȵ'4nK3~}~M}G$@! 0@@fՐYqΦ $$ znx)m&S*چ@̗)CVz)6ֻ[}:ZsmCHRPDCd/XwjD^H׿#@$  @ !!Uջ䧜V1$ LK\,}HTi]Zi8NtB<޹4z7CGV@'gUӒQ & B B=P,uUjyT6$nOK0ZcGWzXU|t9?ZIJΡgFfzΣ0N"z$19fBQ$LuU%ʡ4BzVm ]4o'>ck'~#Qt&.Erojx7~e1\zt.&Ա+ffsO|!zQ[LI#mT/GLKJ%4(`Đ -RU 9uҞOyt<:z,33G. OQsй9r%+as&F:#2e%<}S.))Mt4 Пʴa _f>&fW47:=ɂIq"vMgߤZ|n.]9u:aU9H$'*Sf*/\&&]$R?cv6C<l@@ {J<<3+N56"ſuf5/J @ m II4FO=s]J92e!˅̽f]$RoY$Nr/ypM$xs2c .6yH6R}# $bM!iVt,w8kB)Bz8I,9T2"P~ʹ@*btH(mHM/C<JIsyY:jiep)it 1FMX`:hj^) 6XN-9Hg#N’Ň_v0 MJI)K U #D,E`H$B/B( .V{<>s}uJ)) Js%)!idN _EW&x1).H\XWf$)^lb UB&(]M/b@$DrlHHtJHd2" m_F\V5BSf T؝۵eA.ECR!I!nOXs^~ʞq,Ρ@-;'je(ˑs*HjSRIB ;@c`4.=kqɐ*죢B4btD8j<31$Ms pUNT8t,8RH@Ou%J*QB ;@ lmlUaR,RI ^unL^Js%BJR%Vo"9!nwR>cj'x9!!$r)*Qr 16 lBbb&$H$I$ b5ՓTER癠I!JA $Vv9q{ `,&Sgc{ǃGgۘ$cd*H Hbo:m8oG R%' (BRIi Ѯ*v֣]yХ4t]HKȞ3(HS]<'~ͮUБ@1 hhhKF oun @Yx $0LX6ZqtC1 J^W<q\%i0y $ JOd 1M]M6; P@LQ~w2Q)& &:znvڳJd1HᔀmLJ eW<-.9.yaMeyyߢ}5c66 #1 Q0>h$:kshKd3Τ;2(^yx#D!0}&,oXg8hN8 $ 퀀4`>i>g)BL$s!!!bRL2J$m^@JTsYjtZYu(iUre},H @w` :/@clO9 qD2(L BBCV4seFS4R S@@$TcI6 ѭvZd!&)A'gfR$Q#>yӗo"ŕxҰ({(YGo7܂HHU[.&bv_ߓ,D(}BC_=oXd$E`խtG5D$dH)=7r% 2k*wT-cYt)s)5_-w`0w{ ,l7M]=^Ξ )9Q1gŌ $0lNz9JZ[i,P'+N:xsZ8q gsF\KT+?2D]{=53Uƫ!! @i3OO]{s =ѩGᇅ̳ ^iMۚi-z&~(/̕%Y52Ul\M,>8=i) _!]' Cm !lm5qDwDd% 8H@ @kK[.TM1S%a )W/7s&r@$ע˶i--Y̔'DI8o/SG/eou=MS)6y)I 顶 kM)iNy&IOIΧ؃NCg=k|,WDwBԞRłKʊR C+KnmWGr ]7e7(zצL!3uV+?.S^%JveJ=H@*̠97Py`J9&@/CuTN\s>usLLLL̤IMjkM*_A)}3aU{f-ˢ*kUĵS~ ׎ bR5iz<`>͍t @@_UM2/Vud51Dgq2S:[WZJP]7U7oOyk?.I[gN:BWmv)5Sާc}rѝ0k}ճmoSqмSs"S2R&,b]hM"VhUhB@ ),tlerL8Hpz3-fYa^Wt4Ӧ6כ\"Q Qs=-nvY31^nMw޴LR8"|%̦fsFrP$$ ^Usb "YKqM 0>ltZUt}_g{Z::s Ϟ2?r㉉@>JjҜH?:ffTfq$H E2ώ   * BqLzX0tWUGi{ںo όǜ&'23Ϗ50>[M@#$J"Vp$z^ft?>I:`9f!W8O:^a}X [umO~mN(#, 2b2>L325{[$yeJQQ-ts~vw5ɗ$! @Zb1GBiy`0kj|xU2C0<0?dqyI!]C! 0 zDG <ÿg_p_=,~V۫n[ggxpChO: eǔʙTg*&TJ р)>zfp`I$tY)i!+p4gz<n4aK*zIǟ()JSHU?oktTyg.9,bg89QPvzG:kY/7,$ !@IM)`W2a@ M[z]y<|^pFcMnꪆ4Je$$lUL)oqwig36Sp$@&L؀"R(@@4bBH`Py]T4f2m$!$&Tti.ERSqc 9R*qD NmPKHJQ2A) I :FO mlm 1[/J.}vZjbg<292ɪ&X$PNR 0#F]GHɇ0 cmbeh˪:ӕ91(TF"CbۚiЄS * Sai x6Q wr3`0`02)`1/J;kF(SDcsL$(`UbҜݹbDB*IH̐HF%dQ  w@ |pY @lb6'LYl9Q9 hdKZh֛T飋DHJ)yBq)$ @ $J'}F&< uUN` `*ՖS;̪gkYs? )oiZS[3e&p`꣟UE$C/0@n$@%1 !ġLD:&zAe牼TN⨑*TdY% $~BqĎHI?* 01!@2"AP3#`](NcTړ&s;+W݇DM.wMb@iG-H.؎;@WD]Tq 2lC&d%'>muJΚTR[ҥ[ǀZô$!yym~CRJ*\mxJX+z$ۗ,L:iRH2"1G+4|R>(F3zC6D#،mr\%sNuV+ċ1ڸZF, VP(Ee/:((@Vm涰{1oDi[JR[FG YX~w`3x!сErwA4^2Exʬ(a |}[飦}TtTCmQ-jC< (̹}]d{Ճ>YQ5bv`@$xCgKnAC7ph@r'+Zױ7_bMK*g}va7u{A:pf>B;Nml cDRyg귭'J}: (I8|n9cuk{iM(!(YQGgxGΥ$pν7]Z;pA4 -+ɽ4B~li #(N9oM=+ZQA5_KA+UH-MnK[XNߧԍjU0x&S N7ކ]K6^hیċGOKP+W*].ϵ?l+VGKVk^=ED\5{mJ;4bR4.!q^0S -D*U:xĶPv-ZkӝBGuV6jJIN@kPqEzAJ#^$a.?JBtd"3! xCӥ Rj 5 rԵmAR#Iヌk-q F=@V;5/j|!m7Fc&@\Mҵ~٫;JB{xrr.h=y5rFDd(Ӹ4":T_Kt4Y@҆\KkmD'EDqiҠܦr\5ycw?q~4\11I~j":oaթJUgj:}@ߊ>ZI~Xmo/ ;Nm-?FB_bDZG Zq 230rO#PZd3崀;7}FvZsx 8çU[> $~3QJc:oCyZ%`M-LG $Нנmqlbg_LtBwxӳ٘Mu($(A2`k/EKQ:&`0:Q5o7M1:tLŪxP67~ ?C'@y E1m#]ŧիAɳ+DHJGATN7*Uę.N5Sd] d(lM)jիVZ}BrQ\NJ8#Z`dMԸ/ݔ\VZj@AE{+鷷W+A.:%@bQEU|TWkOcщp3"(w =d6 (MuRjߊUts'{^QGg.KZ R,T*؄PrK?N7q8J;, lV4B!:r\%YqBP:[(zdIB!![܋H({ҤB!Ni#ha39&F)5QMM7aJQE< z xOɰAHHdӍҭV s(IG`aErJ*TVԩVյa (=^ȻoF7s? uziRJ&\/N*TR[I[\[<eO0w7nA:(J*T1ma4xҥ( 1!0@AP2"Q3B?)W@EJ/ gONq6C>C<`{Bh8@q,2:f~FJR͡51)( Pfʞzlݢ7R(_B=IȘ^E7T0k(wASqg2foSvy#J(A F0XB'n-W(Z0h T=#^8]gD`&xF!<]Nݚ9DB,mP݂ zoA@FjxB{a5(!A3yy;ܲPd#a>"8>TfG`:_DM(8eQL Nc"(P @GC2=‹QE:YX.S(A`&wbEhPAٺ!BvѱD(Xv47;P:E XٵSEwyڻ6*z1 /4y*:K`#?VgM Xp1a s!1ש`/"!1m[a*S]#gF4^/OHķjߍik`lBs}"Z[4u1 #)ڽ=`/YQgqs6"զ*S41Xɣ}bq)Aɼ2CڠNv71`DE1G'2gEE1_~L^t/2nn3`eFڧ y8ݛu %x ?%;ئ\]q*V&ݚdu 1zgEjMݥ~CF߈3M,J |6)J=Wo6m4OjQ7k\r-&u*owf mUM`z2lqHULsػiQ` & :SłoQ®0sc|B"Qcǫ^A66)ܜMv5f ugS* e`#uvݽGr,i~׭T&94zAiTΜ™GBD*73y4 ̟J} זT.ÓB j-dށɻ9n>zK7z87qD(k3#!r}074% 01@P!2A"`?RVFQ%9:s;c=ʌA,vCq4=#xP"p2s4Sa> X`B᰻yѨ  P]o8v7nsgፕ 퍃4ȫ0|̓4c#0,|"Laa>1~Eݴ|`a"&rI^T*7E!G*7[A/Oӎ;pV$)>PHDYg|>h7G+>hy;#yذ; l#cg:n `>&Zv#htR,w~ُNSş(\ŝɡ볋;QjPɡP"DFB/VBs%9v Mh0PpNl]_Z2SLO9ri ᨔS4@ п0hQZhp O2qM+?50@òq4ԩrq40rrqtJ-v"T@n^igqG(Z8"g/2i͟a]hA3Q*r7B?lr잮έ&64wv]gέƤ/N|ݦ3S5ȕ8' 8 -ENO}ESrzo9r㌸6]6PzlÄ4\x%?:F5+ !1P`0@a2Q"ApBq?UTC dL療䩋6YljUq0R6'cUvE1#p`9m"㮿jE)2<>F8%PB 2l' MKUUzԮ ͊sTT^9؄CݯS07/sW@K;>JEN/[x >G L,aL:DFzSKЛDaU/e9{3 gRVl_tT*9ayhˇهնW:ra~Tsfx%! 10A@QaqP?!Ye!-,Xj-#8-mN3'׉ kC 2lͿ l&{n!='m,3k1t6{C ?O$~i3mm$վYeey3XNy {=] pIVmmaYg1' ۳33LJ8Lp+ݎ׎mg",\dɿ\qV D;]AeĒI'3<'ѨOp,?W^xȿBAYe[$L척EŎOߜ\$,x ~7!+):԰F#!AeddI$!L f[iuȟ(lgg$CGF@A$r# 㗇a6}%D![6u$!3:Bf|p[>PW|qg9xmM2I{Y?|e=~8$|9mv?WJGyyϗُg ob:r57}6 ́ fLgxlY<縗^?'_3@`#@Giv !Cf&S~{|;g׆Ye,, \fx/Fa Lxgv~s0<w|Hɏ6l٠,,,}/v| H <3BnvIᴵ>/i{c|0"2?qF ǿ" Beqp d̈LKt0O5+jy#f|O ,%Ye{}$ĵZؾ^_-a#U]q3^]H~{GB ,=/o ${L6O{3#`ACCjY>"˫I%}xo8'0'm_ȿWu&|'Aٷa$1*Ս}-ZG?d!ñ*_ii$83 {X)lgŏ 3> 3w.avfd~ݶ [yL69_pl9nfߘB!| B`L> {b@oߒaƽYm1O}Dw=)hZH}!xrud۷Sx6GoZKqwWj=za!|\[ sԐz>Q&( 9*}"<`8߿Vf\ g(O 9_]_>Kcs~]{Y5v]t3˵V&\m?mٽ?]NS3AǍ08zdp86Yetf]o ӉpDr+ݟ|}G\mg/՟Y=Gwgr)ol wuГSm$\tw Ko9gיgM:eYd0䈔0&-$p-m.ܲR#}Kl{ ';ބ܎}uWrPhχM~pqYY&1$>"P[-6mS6me:h%mbik8ϾK />cK,DC(l}em\ gxoEnԶ^}^y?DrDL==Gz,f1$I=y͜O}6'0`zxu׮c:~h3p27#F6ϣIHR7<׆/΢"!,<6O B͌wc&gUՐIi)x,1emFE4G'dWݿ a&Gq~vٰ|2]3Ŏ 8W`wAD12,m95 mr[|~>y^^؋wM ;A!_ݾp2,x2x8|[,N-ߋ|:"ELFng9 By.˕YeX<"~fn|/\k_#@d#:]Lތ{>RbXGffeOݕV~/*wH0ȏ\*m`&y,PR ,3 ᙙTXY=?:}w' 0c{>,:fx8. }Z"9 .3333ɚh!n<_YeYe!?m-Wa! Q>,ŗ,N{,Np%sW`>c@g-uoOLn0eYeY|G;_~>eDDL_ocv 2aS? ,,=ޟ_Ea> ߄1N_wyaAdp,$}| z/|Mwmmadrπ\g ,ĒOȟsmm) 0mYe)JP xy]AdYeYdI$ĸ[?s5Ͽ >BaR,+m ,8$Ē0ܴ-1p| 6 YJ\t5w" ?W'vYeLcbFls,:iO6]o Ye. ޳DD8aY8l&h $$&ۖĿ}HӧpDG˳m,lYd> e|Yg!em6ӽ9"8,Aegdr~ YeYeYYeeYDD~330l-6>#Abϻ /mB[$K,,,,3Z,fxZyGEqY$բ_Ա$,L8eYe]{?k/t]?B ,K,3YipGXwKc0!@A 33eY60{nTgmm[=y 3|<`tq ,vYe l3VI o2+|ݓgc[x%I23|&rJ9!>1#HcSd~ſ`>ݟSe' YOo&W7ӷ#sGѮ{:kH؂-VLκ ﺤUb9&׊:Ҩ^yq*Orvtp Z0X¥!KMՋijo #w/V+N\T'oZtc "7J\zմT_#3A5:ai_7jݴ=L"34{}2J3*ߦED`#2+ӢXv\>Mq0#?y֑B[*#aL#3tūJxX9M݆q;AX27|k6!-9RH|뇟"#"72ˮf! N&|M_&<3dŤ.T}4t[՜_?3y2ZkҨAEѾ@22'oގ5$fr336\os"ф{{-nz՜m" 33H4Dfh2bEځV|NkQ2^=%sPA ;G$ݲKv20TVRl6ebFՎsK34y]L\ :ao?{%7gcۆ)Uʽ:͌N2H/tG:pEXLH$L/7ݗ(s3 |ulG[F2̺ȣE{#3S& 3-2A5M'4]7332" +T 28+L-+" !1A0Q@aq?fg6{ݑ|309!mȈap33g?ffx0 fdYgFaGȈc}S|3f3>[v$N'fmaBJ|Sd~ٙzvI$̶ 0^_M9r|gG~> 7 |9[m:J"80ɟ7ze#ˆz6#S9r{N|f #dž>DXG\> Hw66g<>4 xiiݸrp''¿f ͽѤz33$rt4fZGY7zǾϔAá 3=gmg3 RYԖk0 y -lD.=c~̈""<[㟜fgř| ]i]ɻ#Dy%׍&xLfcςO6{ qEGϳ3׌Y!I~I,bWٍ'"FIZx3* $9'){٭ɌDDG^/ffaNjm{$>#N j;g6}=LN]:D`zǧe =xye[tw\ YV|CxLY_fff|Wǀ}O,6 #xffff8X}&x!oF #fKG3331f iIe#7_-KBz30zܛlEa}Zlm8?S3$ xσ333g>"/d2/8G>'0L<Yd3/oG2#|x$2LǏ330Ls/( ٺE|LLc 1bҡb^ $)3$'݇bIo<:of#FC:aoӚ5'׻lݙ!8&ozFȎ,}v/0s,ޤMoffI&>"8zN ]}Yz sk z`zkӐEolן>$3ǯ$/pD|K,ԸlKy#DLlsԐd}[,N {<825 1u$<2F/f>2``9ӷY{&ϋnj͜ɓIOf^Ix|XSDka{otO^$Hl݀!W_S׶k9:ބلV&x$9ߘwlLA\|jLCH/Sm3PRf, &gx90AMS$!fx5>eg> ,w^W-3|p=LLIBLXm^YE1d8fd'F%ΓpfoS3$3Pao0xВ~|>=YjݘI$M2f ?}x>b񟰎 97ի>+oHk>?f{ qo ,ϐv$gw?|FkSdm>33O2=[kz=m,σe |dαfff|^&xm>g 7>7ɞ/q$<[ 2gݷJlP8{}o/llOGa/OKi(rm}_T!η(xٱ>Zl@3m:kcG<.?m)c=xSkcM&L{ňؖrlcЦț J+&dM}c,sf6(y4/1cȼ(~A!t}Yc˜ՐcP`Șϻb%zlTc_0yϰ`sqbd:)1A|O#?#h]Vω1LzI+5cD(Q]#p-̌cid(0}/ξXדi-ᷖJ(z?\4l42dG_oᧃE_Dػck&LD:yba?}ɼ-1&pY+O4?g8y}-v>roLm포;y}}V13}8i|!,>X"K,rׁKzټ(`M/@L!Eg>Fz05|v>bv,F5E4[y3l~6|F#c՟>ڸ 'm-c}F :?'F1>E&|x'Ǵ 95}g-፳cocW44)/,}Ml=-3:>ǃxc ]C`яE&<F.xm "ٰ}#$W;Od"p0H dc3brM|4 (W"G!Mi<1|hβ$c>pW/>=M&LuDAW}qco q +H'dH8/űoYOB&Cs7$!ZfiEȻMׇX)8<ٿ!lHdczlٽ<1!p gj_[ǰ=|!6i> S7MYLcODci&G0v10i8ֈWɀɃƾ46c}d"65#=)6B?|196>&BZc~2ekgHc@^2[ƾR&_ƃ\V4#E7}64ƞbɔ)hg^AdqcxcKyYHc49_0g4Y1jg ʘƇ=a緇,92##f0B9a㰉'ͷ b3fD3#F{Y|HnQdf(&l#s<<>:!|1i[1r/ e'b7b[;cav}g4Wż?QciTB|vƟ!1`D q cd!7OmBG9i1fҾc#v1B~gyRl!kb|k$8cFs&!1A Qa0q@?;%,ᗾy7lHD.z apw$^atx^8bxx~0߁xџu|?LI1'$ rH鿬m[Y1m\1 Izn9u,&"lN9a >aX:z }H]FH Ǯ!4$5q&NR|Xa;3 < h#WD=%] /VlcQx̎NS E۩:)JF4mz0qc׀IlΡ=7A o)afl.ŷ'}Gt}A>H#k&~< y B)= .s@|O,%ݼD{ے3r#5l. ΋F s  DN y< D(m!B}O/1r:/{}i?WЛ! g6.ŗ&sY%$G! I' Ǚm2~qA >yox x6|z!n60<&o#nUm $83ďf!OMd-x?Vb(t>Gc̵,;)ַP#e aI,L۟#|:Go(q 2,$ `k?Wr~pDy|r;,OCACj+P̝'sJkOyI9rYrpՐj,OkEu'>l /,QFE $$" SW(&> Qwoo3>8-3Ü< ^{ձ{nj5:탓,p 8K}I]~pR&opxOo8"xypOA8`'\ /Ãփ?HC7>! 2 ,;^70#ȏ/'ē\{[)lGL8@: Y2 7,Nd$jAqtxp$8#AxOH}7o~ 녉o?|y߶v<?/'wcp[o>q0_ ;;/Oܽ@ET%="2; ,.},/WԢHO|78.=ӴJ6O| ͒=,P,6ω{ɗf?Qa[۰쳸=p ov<`/.6*Ig|mIxK )vN-}Y.kh41~L1fa|y+Ա/ @;|_}G^/3d/ t;)]OS++F,eبC<2k>mO/tgx=Me-'x^F,wS>ˇy lOÓ|ļ؈09"[ mIR^_W]WHap 7I$ė~ f#{xWs#{T_ɟ3L!#'z9cՕcڞY- _rZ^WOS^K(~low>wiی'Zsǻ="\vX"l^ |'I$zcm?n ӏ.2/k<]"'-p{(/Ma ew';>:bs')vemq|^~$7,Yo5A|V=7o9.̀=oRI "Q>b_RIuϊ!Oy>8m/ 輳?NT&O6y/qz^ ~eȎ]xH &r$,gB(u:~YrZF牷)KY>gxO;烀px< ^2v\C?AgtCxX8NOj^xyC[v냮$Ȟ'v&Y~MtKvi~fYy<w>'浱ztA7`{>ɇ#$%||G/ͧ=O.r;j(j@?o9!1 ,ٲ$Ϗ^:騏wÒOI:{)6YxYxS|I/'!jDIwx>'u|=0~mce_ӓ,p+O Iw?lׯ6dw֌;ZBJ|Lޔ;>D${yKo{p%> <2,w ``CIir"a{tw:gz^H?8e3v/{xxR\9$3!&x`6^ϙviv]!av 3~AnD=O8J^{)aH K.K[NqCl<1;_b/. UsOwuYe6,,?Fcaaa$:kIգ}L[r]ez%~G9ą7pewgpǘ*2H3z%U_axͼh= :t1s]JkcO X?kݒy?R}vY~yoc!!/Wo|oV[z.8<|4`/7?5gw×2M<HB0|6hrSCiݹ㍷%ɚLe%6a^iwԲ۲eYx||ǎȉ^2v?GχrNB<_sb&Pa 0곥:]^W->/xx/%{ٗ-&,n_엗l3"Cc}P<ŘH>cωhW҅3՘>/0GŖ/QǸI};iUՒZ]^ &87_gN,tHڞ]O  }G^o/ n 3?f܂ XI36qb G/m$_2 tdx=|O _LE}G Cܾ'Ru,5:Ԉ>xb_フ˂ A&πOCru+ǾPv|&Z^`_ >0җ߳16¦[r҇VN?%x(-^pT~JxA,S8Ovlg]LӦyR8b #X1 $4X7"s88wB) 7ޚBh7?l9mg؍}ln6Qb}۸~}vl8A6 Cc#x)ugc HLDx'9J}I8Ai,cT^Q33b!T|pgwrubL g=Æl66X|X~EͰEƍ ;4e/W6wgit,6ˀI7A>?E<|g,'Qtydk,`wf2de>ϸ#M_NxߋmϾ;wݘǏ+_2Ϟ>}f#XtAq!Fa烧 i+:1p .i"2H;D!$t?fYO&Ehh{K$k.N'7yig%|u{Gea[>erۓ0AaB̈́|y'<͡'ޜ̈\ rR?E,է2~L8 2DAa;6DD.h< $Kc5jܲ0sb? _dZ#oi FS]o1|O'LdGtg1<s&޲@{ΦάI=]{@M1$hvCt| IZ"îwkXŗeCP"w0m Zߐu?5u>!L,ѳc>kݮAcNAWc;,{D: ssB%xDC3C)K81xly?p?=BxL r?'qSYӻy NπSGz-az3Sw uYd,"}3vǸl/ o,uߛ6"eԾCWùr%<';$E=c#$I)+!e>'.1 {n΅$,?Ě,!X>9ρe0GDv030 <߬͡"a%)m~C';yqO+߃Z}|Ly}9^eeFHtIX/!nccTmg?K%;pn&cCb:wN3vING8mRx_Lb)q  '-&gĠaY]&ÔҜ bAf[_ P?E ]3nȫ*yr<h'64a+W}n &C 3WK@x!$ hhYx=aAc$X<Se&Fd |O|SCQ,s?|&ɖ|d^v.$g:x>V y>@ny HSdWMg_i|Fkh|7 E}dxeYdI <%, m6\1DP &jTO.J)\%EvK: iN8ěנ7rH^h=DM![G~0Ձ~Lyp5'xHAω4m_|:ؕ}ec襉#1l~e΋1/i,A k " E| 2}O}IQ.s{.)A'z}ńv =0>J1$cᗜ:| G Bypԓb`@ ݙa?qֱ7#zWE,q^VLsvcʇD-s/9y^g;k6G5|~1$dw^vCb f?R>Oàͱ=CC qqyc{p6">? N/?̀OB"aR;a,%,܀Ȍ|,iV^eH|EJqL~pI?Og'9HpAC Dx38r|8;lKyKgxFqHg|I>CÖgē @DCk[m!x~ x#5"/YHC.<D|g|"'fI$gvIeY mR=G Rې6אa8g>8y wm)J Hpi;=LL>N]_x;(~Iw@RS|^W;vqI.CfIYǓ\>p< ض-9>ź0y}_ȽII#y;%p ygC:-1Lǃ,uy|P"d^ .+BS.׀ G~ 觠~ȅ)XҀF{F'nW꾹zz ^Ux8Lbpϙ:pC#+r^R}::>DG/xF =Xژseׇ1 /G7}/&n5xp|kZ1<#x89UfYq@;v8'|"8@vpr/B x_!xȰx~>98yEyE'e]9z,}}{@S73ټd7/8o/'{x!ӯǙtͩcA?􈏁=^g a}1.1v14Ori& O6;xF,O$S8b ssbcalamares-extensions-3.3.12/branding/samegame/branding.desc000066400000000000000000000063661471772643300237450ustar00rootroot00000000000000--- componentName: samegame # This selects between different welcome texts. When false, uses # the traditional "Welcome to the %1 installer.", and when true, # uses "Welcome to the Calamares installer for %1." This allows # to distinguish this installer from other installers for the # same distribution. welcomeStyleCalamares: false # These are strings shown to the user in the user interface. # There is no provision for translating them -- since they # are names, the string is included as-is. # # The four Url strings are the Urls used by the buttons in # the welcome screen, and are not shown to the user. Clicking # on the "Support" button, for instance, opens the link supportUrl. # If a Url is empty, the corresponding button is not shown. # # bootloaderEntryName is how this installation / distro is named # in the boot loader (e.g. in the GRUB menu). strings: productName: Generic GNU/Linux shortProductName: Generic version: 2018.1 LTS shortVersion: 2018.1 versionedName: Generic GNU/Linux 2018.1 LTS "Tasseled Tambourine" shortVersionedName: Generic 2018.1 bootloaderEntryName: Generic productUrl: https://calamares.io/ supportUrl: https://github.com/calamares/calamares/issues knownIssuesUrl: https://calamares.io/about/ releaseNotesUrl: https://calamares.io/about/ # Should the welcome image (productWelcome, below) be scaled # up beyond its natural size? If false, the image does not grow # with the window but remains the same size throughout (this # may have surprising effects on HiDPI monitors). welcomeExpandingLogo: true # These images are loaded from the branding module directory. # # productIcon is used as the window icon, and will (usually) be used # by the window manager to represent the application. This image # should be square, and may be displayed by the window manager # as small as 16x16 (but possibly larger). # productLogo is used as the logo at the top of the left-hand column # which shows the steps to be taken. The image should be square, # and is displayed at 80x80 pixels (also on HiDPI). # productWelcome is shown on the welcome page of the application in # the middle of the window, below the welcome text. It can be # any size and proportion, and will be scaled to fit inside # the window. Use `welcomeExpandingLogo` to make it non-scaled. # Recommended size is 320x150. images: productLogo: "squidball.png" productIcon: "squidball.png" productWelcome: "languages.png" # The slideshow is displayed during execution steps (e.g. when the # installer is actually writing to disk and doing other slow things). slideshow: "samegame.qml" slideshowAPI: 1 # Colors for text and background components. # # - sidebarBackground is the background of the sidebar # - sidebarText is the (foreground) text color # - sidebarTextHighlight sets the background of the selected (current) step. # Optional, and defaults to the application palette. # - sidebarSelect is the text color of the selected step. # style: sidebarBackground: "#292F34" sidebarText: "#FFFFFF" sidebarTextSelect: "#292F34" sidebarTextHighlight: "#D35400" calamares-extensions-3.3.12/branding/samegame/img/000077500000000000000000000000001471772643300220625ustar00rootroot00000000000000calamares-extensions-3.3.12/branding/samegame/img/blueStar.png000066400000000000000000000002251471772643300243500ustar00rootroot00000000000000PNG  IHDRa\IDAT8c`` ҔAf6 vbM:@:DTĦPĖ%&P|P@G Xppt@QZ CLa(ǢIENDB`calamares-extensions-3.3.12/branding/samegame/img/blueStone.png000066400000000000000000000057561471772643300245450ustar00rootroot00000000000000PNG  IHDR((mtEXtSoftwareAdobe ImageReadyqe< IDATXÝ[]Y_k}3cǎ8&I r hD%^ڗyHH TPD("MPHB&&4gu_Z?{tiH↓hK XKjk~! lllzOt j7Ĺ>ƃ>wm7o%>.x ؾg2x|~W^}㫫ˈp8~pmc;O>o@~ɇ7n>k7[ӧ#gx̝q--cW9~m!kM.,vP?$`y1gkk|CwrMifF$Fͭ1oqy[^`g[8W@@''n g|~N_cee@R6Ӵ482kG aF>nz! az +_,}؉3SguK2AJF3UV,2&L̎bUce2(ixk_[]S?|(CT;ufZe&h.Y&'B5t^qKx-r׆p>|iYlxz'n[?r+K˸P Jfgԍ1Yb4 '-qe4lNk#b=:-69;<퓃VF;;8z \ q3h413k2*1%FI9g42&f$aV M핳"w}޾dbn-bdd\."TU&9t*3Ik̒܀bu?X#R]({1tQ܂;p€:+ڐ"c>$ZX414Y*13ƘE`a =6ӕSW-OK8HLOA[C U&D+BmBhnvSթ̴LZcUZP,#u=NX͂@k)Vu\! a!\&ђ)"xn;v\72fUfZƨQ'hM0_ *Aڍ;Өvn^,9=?\Jq< ݻyHbfd8.Rʴ1S7Fva1FΐD0b )?$_y`-_*J!&,h#BÛ6M:Bk D2ҥۋBl /;)mM $ P]4R2b[P6wM(8dòHXjغ^ w[FʓM.x|*!Y@`"`l=EA ̈fXΐa<=b.wl^%a,纉<>8|}A߬M,]_0QЌ2߿E 4/Nu.}rOb Bjׅ<do/ð 1gbTZMHoՑ|M !7X;¬:ū{N3Dnv>i*Y ^w-t|^(ژi\gg"BwmfuGʴx\s^-7_Lߴ0 :uPcPv,:@t7ϺČjv‰a"fېsKkO=?]qB9VG- s|W(ePBA}NufpMkXܶB bHtc>myfݙe߅xnWoxpՑ6)x'xAs|W(dW޲.Έƿ?^o} Vo$Cb0`id0(XJ`B){Xߕo};aGf61brWT7V|џ+B`)K߁bo4oĔiD]7Tӊpp{+g{O·~ e\d=ןu1bkg]4( kk^o?b^muK5NƌpykK:җpxe/%/Р`,Ϫp=ߍ| qxg85Tr_14MK]7fɄp?x/? _vν?A@ݴW/oiGM5=+8/`XNmKUfpĥK\8z~O+O}e6^e4m[48[U&"űۗ׎߳zΓ{tmB,u]t⻳wm\ޛ^ݸ\Fz)`Vq=w =>3Yc3m3gx{a5=\`\}PaV׀u[ af{lnkCͭ-aE`vom1~y7n7ܲǪ[y{Pt~`]زZ^}^A> ?dl>L$)wIENDB`calamares-extensions-3.3.12/branding/samegame/img/greenStar.png000066400000000000000000000002251471772643300245210ustar00rootroot00000000000000PNG  IHDRa\IDAT8c``ҔAf6 vbM:@:DTĦPĖ%&P|P@G Xppt@QZ CXVa@&GIENDB`calamares-extensions-3.3.12/branding/samegame/img/greenStone.png000066400000000000000000000055641471772643300247130ustar00rootroot00000000000000PNG  IHDR((mtEXtSoftwareAdobe ImageReadyqe< IDATXÕ[]Y/%v-:&ԐTTP+*Txk^H Hx@PD+J"T HU&nqc{3ok̙ؤGZ霙~y"P+BO:~ۋW~O֕3.4 5Ͼ鳯?~'׿Ɓ^pz0|9g7˗>/Oq_FO;"c^|w>rG'NW\>O޷Acr׏-xg},O=S\8}(lU#~+ׯr+q*{m_ # ?B`?A0-[xc|ɟC)ɌCQ1n'O6߸ʥW^}[obó t?{Z?qs܉>sO?y4GWY,d4ࣧttDɇ9kd9cO7AV|'#}/YȾz\|9ڡ"#ZD  hцi)0a:2̲e5T[O3Jw3L,*/8pfuk yZ:&a(cÈQQIE̕PFFtg SOXsA p#8q0f D x:Fq̶یq0;OuLhxi\_h"Af83` Å VQ6Ԛ:cFaĶf+l3 ca8N1ִlƧ z\>{ᔌ?,%[35,b@c L) 3V, 5P3S:eL̔P5S&hRP}>ɂ' V3e:Ӏ'ĆVjPk#P>-ulbҩMMt lٳT(; @2pXtE4 xT;6tBr22X G*:TҚLPKCZXP8,p[9"^S؏f`Q:x#QhF3IQ#^=~XPiMEC 4%3d >NwW+bfp\nȭ#3'+##mFU0D]O5 }*/}$O * 7W؜fƑlU%6/.Zzw=5\K`3jkD=(ƀ53363)LFf22ؽhNΗED&AFQ )X5htw0${ .0{hN{!:t)y FfreFwi@<18rn`Nn>nw:^<&L0k hD++,nǓSE1 +-{Iu.{CԧikFwL߭>M(; .i/~!33p%+(]Wq o.y~2uo&IENDB`calamares-extensions-3.3.12/branding/samegame/img/redStar.png000066400000000000000000000002241471772643300241720ustar00rootroot00000000000000PNG  IHDRa[IDAT8c`w4hP X&Gg@ц)Te(e T3T1P(!7a#;Pzr^XIENDB`calamares-extensions-3.3.12/branding/samegame/img/redStone.png000066400000000000000000000055261471772643300243630ustar00rootroot00000000000000PNG  IHDR((mtEXtSoftwareAdobe ImageReadyqe< IDATXÝ[]YZks=Mm&nܚ)@_!U B< /U "@ @B'uvLꦾ9}e9>[gswYuS^ ǨPz,4>|^G\΍ڕKy>տSc/*F}g/?~O|+o/~7^qi.cz> ?r1nq?_{;|ׯ}yK>|0{;򣣏~?'_}tmιzGy} .\ !]9tW^LǟX?œgSgY=vA@7{ׯ^ޤu%_޹ưS[7< /8bu~y]XuA+tMo^ݷ/p79p}Mɀv}/{es6?{"_{gyq'?B`l#4hSBS!ME #?惜<~UYrq B)c!6Rl}yjMnM3[%zXy(6o|o[gN,aqCSA=E :-lxMl5e 5~/=`|'ϭY[9̒a"1oz -Z:7aۘrL'V℩W,,_۫O<WG ߜXƞ9뒩`` M (FP a{hƛh16R 1A)#l֜EFdeGX21b`0u@ }p9 iJ #SS1:pc]/v2BP@ K<҅ Bfifp@b30_HkhJLU@5j#l97%M<'B\;f:+=j\J%;jc][l7khU=NЎ,rkwKm5w ,5;޺tydYmMRV+(tBSN'&c[W¥mȷR0o!*ؿzhRee|T|Tӂ3yllW~×~\y{Z5n%/B>0gzI%`J@/;}N]:>wW{=;'dm&.+%h6-`cl<3r *Uc¡Ld*Q7nzۂ [1Pp՜༊=kwߪzXV9>1*T-9Zjڼr bWsvׂgbR{b=p1ܲS7fvVtjT j^-fpaL4y@oF3MIENDB`calamares-extensions-3.3.12/branding/samegame/img/yellowStone.png000066400000000000000000000057601471772643300251240ustar00rootroot00000000000000PNG  IHDR((mtEXtSoftwareAdobe ImageReadyqe< IDATXÕY%YwNU{{f쉗3'cʼnm'F!"$kl !&!"E@!! x!yHc;f$!1c؞Lz[9u;cJ*TUW-'~|C7PV,֨;#/}).]8йsgn|o~綺WA?ѳO'޳ gƹy!x'?7=e9o}?~S?}ͽ;r|qa~w_x䍥?qǝ|}g?_`tz z++G?v䳹;>zQ휸X\@{i<,?Υͫ~PVŝ-+(8VUsa0Nݨ|wz>އ8H1EۼFS>ƿc[x6ʃ33Py~N^_6ei~3'瞏3p/οG):i1kXaVb!EFzͷ_l9kTr.@hlv=gSӷQE4Q \O{G\={xW'Tp7\|n?|i~n~rSF8"=DrD3djJb$]BM;İKhkf}84w©^8EwOɷ+(@냧o*Yn,Ez$C[v=B[]̆yMhdF#[wA-krwMorģ.Că("K$6:>1iۊ2*jgL`) `FVUǎǎzL@P fArqc&>!T=zN\1oo0 Qi<"Ե_d\uwcy3;uz:~ds 1 I頇XS7%adTF:b̌X[~l'cmy../{v>)3gՖYaPm0;o ue͈00eiԍ0?Yv\B#'!O/-baAbLp. 2BՀX SVlؕJ*0*S4#8'z¼cafӀf`*r2SLPZPh[i "b8,)h *:R6Fh!sǧ0lmq{6ǏN*x/87,`uLĥ[JMq!s=2;8/4cEU6Mk2rc Y^2!ϻstlIa6$1$Y$˺gu!eaTՠlЩSL(r(`'~bbuݽn3$Ӕh:/f^pWtaɤb*PBQhw(Rsi`W"*JFT[R,Fb ?^0cNe X)ǐE WYPɺ'> :5ifImPa, !BB &--i\ɅҌqJE2߅#Z R uM\ aR<*5ifmM[EU·hM\NIQ`rdR}/NBؚ#J@A|˸41Ddg\66 _ "m;.?5Kp3Φc2ݗ^,D3E` 8湆űӃ bscG=!t}3Ehu*AZL.9`0"d1E67Umy=,r/N,;VWL?~,8rW\pɋ`M%+cZƲ&lm/7j>WVfoϾT"x-ͯ?vuŹ@\wٜja`ujwDhq ,VŖo=s/?ttzR9=f~^Y\Pͣ:,fR{)E kbcاi9Wk?_;Њ_4G]>`:;QC$9l,Cb!묯يtoZ6 Q%h./f奦Wp ,[JU0L B6.̙Wۏ{EH)+*\􀹽x7 a <3|wRx0r@U7ӱWţ.$jJfJp@-;ļr.S M`GNIENDB`calamares-extensions-3.3.12/branding/samegame/languages.png000066400000000000000000002477621471772643300240040ustar00rootroot00000000000000PNG  IHDR@)#bKGD pHYs+tIMEeiTXtCommentCreated with GIMPd.e IDATx]gX>=y!$ A,9,&Qלb 5cB J sɡWWa癇:U *$Ii`9ݑT $P@j.WA^}h}Ch]B5*P8-V?ݱo+k+4$֪TE5*@6\y67 LT&VZ\Es^ME;Da4R_T Z07rm,NϘŠFNˊI~8N ik.2u $ad< @T ˩GJeo=C/氦Je%7}#+eӃ#3$"UŸL~_jT<䛉%:! pq e兜) 6wgi0&eN hv&Clf/k.D,_!щMGN<.s<×/V\H7]͙7d{$I3yPCxI0zmTAE*JS9Až~1)Uy\&ycsk5OXYG (&IdFL-cct>g1v򘨩bqQ`[9%UM{ N,'.td |~yDyjkw*P4> [@$UI]; `p;Ĭz`sII(dL U-i,6m5w]X_Cܗ-22%=Ә k:>;{FdwnK2TZU>p¿HHHy/"~erzW%(L'Jki&l]+d2Xk 2yA.(ߣ ըB4Wo72'ſ+'0.zwfon7IT?u.0 $٥uaTQ*KJ2eTWR1Z|!qDH\Q "IKL6 vG9й+Z+ ޑkW 6Iz$ٖ֖ S *sxr' FѪkp4Dck35ef'DܱX zZrl 4h om jֵJ)eb S0U!iE u;d]x*˴v"5-u;n;|,oZ~2q6W=A`!P$IA3f=p?O_"!Q=ɩ"8zV, ғJAYkqk*MtXUk7&$m*ʹ84=5R]S[O3'2^.Soޗ[Dt8`w^u %vmJVM#N.75eKٹsꁪ + OfFy5tGsD|sP;,?=8Mz0n?r@pdFUrA$I I ݑČ-.:Z=uܾΐP$#Vr%5!֡q"r]fE2B;w>a}7ӺL>3U¢ Xx2eB؛o[z4Pj3;M y)/5DXx!ͬESV{}}#nj5i]cHB^#<|*ݨnܨo7QMBNwA$}Ѷw |W6jw2m-RЬ>FJvq괭726dOdl9emSq`ڝ|c.xx.ydwޜ8\ ?fcmg^CO.jYVU>sI? C#z:4@j_ $DE*C.k7a“}/(N (T7̬I#`6Dc$Ka&moO0AT>E,fsԴK&JtN2KVQcQ6v 3*@J^}p}<]{ ^2A@P]Ä+r?rE%*Tya#$ILhT aN uWZ+"hh_WA(d" /1M6 ,kk5$ UUU= 4YgaT?X+)j,tS=\.95h[!$  [6]]ҴoWT ⡵-j1*c߼/[g CƈR6$^aTԺV)sԃ#3}fNzlf-kɬu?=|"d}~TzK uq7X:Ejjj7fEn[VgsIqOϧyґ7-`1)6V15b uSG5 E${[R1$p"!!tŹ^zL5fҕ$8S%v̟BJG[ Iqrnyr4+x^;xѡqJÓ%ĸ+L-3ӱA0$_">0Poeb,rHOadȤf{w7`I1(V[j`D`fɸ8L8A|LmKDv$ 3!^!w>$IdktJ$8v-LFZeT8 rW,nZ-M <DZR U32WD+( N4C^{楗夋nMPXA0) 4 :)F/%uR~(BAGuռ !H }^IF\Vj jI[ޙmje+ebEKI00*TREiL*_Gho: ~='1AE,XoC'h I?زAZ9b9P'% [? Hj@_5)A2L$\Sux׋yAbۮɔP\@C-9+|C(_^RݦRtHHSM38H̭SzT.)O[hU4qAn-ãބNr.yYT28D2!,jH|FaqG8QgﱾV}Z^)̰ kŨ%qѠc:c\Vp w4)d;oz|?t8P &;~+%reK招 1^TIF9BP ۤTtySk<;ILUy ՖqJ1qTF֋ҌP"0 2)NfQl[B)G2F42r鎚ƶ{{j?4&59`l /w_tל~GV Sb&$% cp(ۦ>&bξҠrSҶz%1*SX)  +-oIdCsz5|&#Dșwޗ6PHq`G?Ϯp!+dI:6z;[N?TٲsJBPʩ:C)4Dp`{-Pb7ίh;--?'(;h橫kG.t-~z>8;cn+9 "#S杽QCt e0z'=)n.t4gDGWӥhm6=S JTᏆ߬\62p:.2+ss -*9z2xN.3/Z+sqe :"i[}&1zCckT&v$߈a(x,GӇJ}0iT:G֒-;N=m|w 3'Q|!,Hx cVr}uM+*//VFgfDglK|(kjTͿI*B˧r10dZZjO=)tu ٹ-!A$FgN1 -ꗣ2*JU fxs FNt!_~?.NDqPB)GjFJ`U4DtGVmK,i~8;[,B6a^8M=+zlK)0o;G orhzBRha@Hua6DHVO\zӑξ$/3[k:HR[FPYLDi#YkvR)Ju}}hIIEJT &9F|ﬔ =֦fPĽl%--:8W&]8;[ ~&H6Iјbȯ.l8m;fU}3$@6) uʇb e(fv?FoB؛\-݀ |*Ce.+(GkmYfa}ṽG/KB&Q4W3VX89/bh(6;<ܡV{NصNV6zG۬ 4I.nUVߘ rvӣ4o|.I!VX ^am㵭sva!ǠaJABӷ1kA.Rn58N -矗vkڗPJ1=xOχYc8N, qS\NFP#VuQi_\L/3)hlR! \9L)R*܁ HlVI/R+AVuSp;S3Qc)2r>Q v3 b塘#B}Hj> z1ûbFA,w]FmkKp`\ԧfћ=:ﶀPꏷ,Lc]` v)V@`Pܒ ZZ%R1t6_&-#Vr~f.*4)rt|WUP 2 (wxVy6H[L#qr iv_.jɯM?U]<\.WH9WuME_['sMv{oF(d\@P\$(@t|DZ,e|WYcN="&+!엂>?-&2moϾ9yp:+d& a>I9Cߌ LW, :UgܚeB1eArRMe/`>*/6Guݕ@ { 7֊/_r RR!%"@ K:0B׽LK3b&/ZR8iߥ.s{I-%o㜽=52ۍY-Ov\PMe71 !WځzFwSn.G«ӌ`!b7Wݠ|ė=cX~7bTfӯ9 +H@REV:*`lnWg߭}|-$Q%&^9qO?HQ'ko:QX۴Ci+-~϶5?Ap\.i_~ۼHKEyW?jnwZ$ *—:N"e9L'}\r$qZ IvIƙ֕a,WTڀ#X76]xH9aۼxwtm [Z*JӲwEz~SzP\3[smU ԕ4]ݞܱB=c ՞B1i\.94a3| ^-So'S¥i{,]*l)~{`b۫ IKNgґ4SCkr!43 k5a2dc6J>vI.0ٗ'j,-DB̟Rмkm_$l(Dq'Z&4 bTG/7MP*R"Pg$/ėBc1۲e fdm҈ؿcf5y͋Ǐ r4s>n_VVUUAO;sU~P鸺I_0?jtU-[."\}O6>ML%Pip o3kۧ8nAY kY_ >FօoK~#-@-|,4l,jAr 5'b W715r"5[Z+g08)LR$M='sHw-2)zY;葝Ud} ( X4Sit4ɒ]Nil)bJR)+tyi*>.nE oOH0s~k5^v^?!*cങTL˺ĵ8P-魼K~ ~kQk P.ʨ- r2$уk7cP)XfdޭXLʯGudzL\؊й$|}d\FEM=6ک1AOѤuү ,"a@BU!@ڴ̟S~4bvػ`;kw >f~U^IyҥksN5ʳo[Xr1QsI=>;踠V2>#qe1GS"@fdL^|?ca'GOeӨ6抧G}+1_FN[ç/RUVRxߞ򐟼`'L\Eލ95?ј s0aGØ1rBRF0@.5_#HK}|pĪu/K~|{NM_2+325X.[q.nTIIɬ`cW/n.msA(R=0eјi,W_ cx($}uY)^'.ٗ"ޅf'5S)SU7&'|b$FcG)t/궆Fcip[kpoW瞶C64~x*aZ56$ld1DGu'v&/f>_kuşYvb9TPr,?z @aSPJ*]4fڗon>SڛJuw߯qswns٫i'Yf"\,-}BoO@ \ymYg\&:}t6e.K- *K}sSR^}Y~.QP%RX#psvU8NP0:K K)ͦ+Zt$mv㇗#u Yg:r$ UFT\!A+?j{eg蓦*q ut&SŊUzc6+:G M^yk.j8"(b 0jw2cRh[hMLdm$zkP)4pNGfٿJy1sA"Y{}ATLK!3LN$A$ghEKuuHJ LMc]*K=hrmqv8TLh~u˙l<.hy/e]l[|otaB)?$Ics"p]~ip9.2:YW>5(/;?359zU\k\v^ٻۮfW,>$I뵝k"0L )aWPWo~rqK$ /A =ZJ?&8KFr؉+$y"˝b-(Fщ)nhTXscYi A7Q şMoKrM#%|`}>I& |3IA vhzʅugf'MAh &qEubnX$9kŝ6SrgO}'2&P7sBaMGS԰pvJ12M'EVm=z0i%1.քaP|`hV{2Aˇ켙n :`~aciÈʃ _c9e@k0kifbl7t_pS./j]Y_!6U?yv ɭSOw˅,ms5*K]a;Dyz (3&mPot8:/\KSψ} e+rze]w&?KWJ)tK/[ ]sKj",|z;6uԲzUw|@1;!Rh*wjCEyC.lErbm3[}lηci tG"x (&j*[]06&ut#Py)nޣI"A"$I(F8ELxvF~/zϿ0_40hF_5:cS[UN7:|BꚚ w[^3_y2iR.vz0!Ѹz*{›u,(tHs]P' uelfw^f.6O^7#*rʓ`Ø.%p"2JSar.QKU _\^Zވ_bn].~UE<-Ǒ?]@i˪F9xe;8ϔ]~as$`䩀 PIT$IJ4I&=e Wҳ ɺqD/OpEȩgCȚ|𘟾<ۜ;x}#5Ha7( [\+ll_QF.[ҡfN2ԪViXTBP&zh=[zB̷{u/ $JC*sQ!Z2 xkOriv6n>(fk斢6C8THB,"Ulf-G.lk~sШL^ jO~AZKggn3hqBZaP)>= N410$pϹ@ 13,Hq$\ |+C45$5ɜ ([pA1 ltqQ ى%u.g_d{jxu;#XfjsV3>'/KZڦlSVT9M sI}$Gޠ}@)bn̊ m96/+5qZPjo$:GIۘ{V1 H_PWcdQ/2n=6WhZ.^l2"Ըf]m66״Cs*;O%^u糵'٥%n`)zr%[2Wb_I'yB)Y9y,5bbjF4M. g$RMf ׸fnN 85\pY{~/#pCiE %<?'/,|Nm&j.(4MLtTT>Bc0*~8y`JEWy᳏[֎4kD2L\P7WJKyKIwa ^-oM KsN;= C`Ǵm9Z8\7ξu]MKD5}}֪"gAkf纏]cCMe(R^&vB+ivvchsku<}ayZ} 6mfGo~_X_%n{Mh Se̓Cw3 DZ4vb[[2r~_UM \v.9{ͪYW4C^or'?"{snZ( ?9)c7xl.s*i<W$ 9.8M=a6C4-{E宲iDc)UINe%Z.~~'N=)tz .]1@ģ65/)P[y>vO?\R~od7kq7;ge??co=6/r3f^S\+#A)ƽǩѹzȸ})7]3XtUw7n[}bxk5a,ʩbO9vԜ/62- KYue]TJܰ$ ={ڂ cCg=Oygw} NMٌ.]+< S=zSÈï/ _~0*|6 j%HF A5Z4 bk*p`nܝs{T~҇yol `kv·+L _4z^WYصN=ލ{3Kz{;8^8K3i ؚ8km #o5!}kq_4ЇݽW3qq8͸/e};7"rw Xt*K1q^[8|gf B9@MHYR'B1jRq~V#Qq_LtHrw6eȩ'$У/.2+f؄zm']$rӟRS)LlnKf:CF=d2ױHB,SJ54'v=ݦ JJ<'oI xQ,,M+xmVVti϶Bi&ʈŠQ]/ZPn1qBmvD 0LY{ùSY<ԦEP*rqE \z'5b- mEAPr1n"rqw{R*Ak* iHM"fþeFm}?Q0s?8g*S qjD +0![jI%U$)Jͼ$[*ld_(},=:]Os_5AgLq@\fzRyٗCeUAW{, g{m+ϾQ~E\[Y0e7FYsPIg)UyZͅWB~{{nԄo=wM? "O9 _LZElݗ_;wk^2w^Qk'*r_!ۓz}bn1x6`ڔsu67gv/lY<Ԧ iݝz-8rS宀n..gguАᘕ1qVօ3O.r~gϵԓf tYlTP'5Wa8ahBas{wvc]n ޜ|`hӬ-ߑ}1ri7bS>[0o7 m#])kQreɈs5SI~NLWʲ+c`[(nv"NN\2d;%J w#M': 5U< [~8$ 1B"pZrɞ@ׄ %\0tm^?EP-hݼ;}5(+>+(J Q_}%Ƒ$I/EG 1?I#I8OrC_6SLuX@eSJE6kJ`P=]s7owܥ͍PηFl4i?|. ֶ3ؚhD9oCc;{k< V3LN,f q͓ "q>vwjͳ~l,/s:xcg* pyy[Mobj-w@u=r1Od3i|/EMew/rFol>~e}fFtHOǪ{gX=s|WS^πPΐ{kawaє8}3un.Ი 1 (F(t9P UbckE(a}W\Kt4,\^t7SԴ\ 1 ܒnI^Sjr @bmKob羙IKٗC X7|SsӦy?=-j.oT7 vxh֪KFРPT޴@Z}"'w ٲmTTVֱ1կ6ilu'|ZK}NE#5VKjM?ό7/f oHh ɝ#8Neh(IBi$w l= /ZCW!.\߰mwc IDAT:,$6#qr=@ЅZۧw&mu,VwqC~uoFq;eVxah1 re ɯԶJLՕ[9V{vS֒gOn'It[`*b7> &_/x)GGʲ7!j(>+:)ʕzv<n m޹ m4~W@Яc< Fn>݌Դe1$J rdė {GElû'2 9'dČ9bN"&}xwR Xx4= ޲Tɍ/8n?S.u~LWw_%)k/m5!yd~H~lc%h|8ݰUHKCPw =v`d  ʾ>9 0i~@Rmdol]˷y`8An aZ%܄ݷ7T9XS Md9z_UFI)C~Iv}KP-}5<)BnIei>pn3 C8d8%|(F%HWbJ0y;MeQ*=GP 8+q-HI AgփQ4&@<h[Q$\SgBPBǦqè 1 { ݆W~=eohۮsoKn8ND--u TGM4$u94&Τ:\Ahˬ4šį[%; AwZ}.Y11w=o]@!CVCdb-EG{梓hƱo~vzzU0Љo\⡒z3mP쥒I YR궞|9:@&pj"FjZm\%ghY jc\F#6!Hr+;hLK/V6 M:ʗڊ+xʜ3<=D,XP2Tų_ԫ S]fȵ2~8I5e.-_S9Y%/'T wfc;}$;%GVu9^'s.[ʯ[%k]fRK Tm qQ=.]peys-*-j'hMb4H=@-g/oPR#3HLIH Hطk._珢hh)׊b4L :קeԢjz1wPP(m$[54ڸrݖeraÃi5$(J SǨIҘ'сIDСB)@EQ^9okVASWy$!Fg- u{yaϲ?e *Qy>`$I,I89`ٹŐJͅ$şéĔq^WW~, ^cepuetuۧ9uB] ]t%UxL\y@gP"V\qbsJ;T~]XWTPh+Nnx{h,dpw@Q}Csr"ηIL7V*l T)?]'$G|n>;gI_yy pfա|3y6Fs-{6e:rq3?/5B;c|tSs{ރߥ}yhR"XdKPE6.jpeU'yRG_gd88ǵ 𶥰|rXP0}\w۲ jy 'L8-{SXq|v -Α}]U.l"(%;=ļzrk黷pi>h[y֐E~|u|_nK 61Aw+q|j)1V[#-P*JD T ˀ]vz@u&^/v>!N3,+^Q 7yMsqs٦i6ǝo=p0>ōmހ H0j [Z%x-ʺg~u E+4#E+f0m@ 3WSʜGM]xX.ly Tv/.-ꢺO?BgK׿2 _gTƯl]RZ3*9@щ]PR~dA۷oqynY{]bK[x); $͕ƍ/Jjo$s0g?8N .Sw$㌴Y:>I/,\ͧZ?wߝK7=߀&KG`TWOō>T5nPGkʴ#O9jE8*[E~() Lj' Մmf 1Iz7jQ!pP%TTH]E25e b5:ERT8An%!j4m61rP77Ni9@%}V/q/RfLaC)_( =ra[X➥x;^n Z1Ҙ'Zֲgc(tR~_ƧaV_oQ: IyuqBQ qCЙF&8NE(4dB K_y;SR v $TR)UVz6C.RNV7PHXU5)RRh*xAb9,\5i⦲(vPQ @I+Z_n ]teݛzQ7}VKesoc5a"Aiuj7@Eft4Ҳ <9s@Bg}Tf'w,ɰ6iO N|v⨋6,w}4HﻙZM8Oui;[q7b/nDzIyg_ۄh4c ( ݚ*tkrKhC3K(i0Cgѵ{#U.SXg5w}i'XWWL|&^? N]Kj"fjs,T$ӧ{o2tzt?I&]{\ e^[Y!)kwny8~[Ho*68yM%&.s-"$qp\1 Y`?jSy,-Iz \hA:OKڏTRl1I}a gpj^Jvxd݈#^-[ߍo`wt,|yllKHr{Wzf:jk#ɦ4e{ojuj"5oz_:cF,zJ~N_ )yQ{94]U6{"n,ѱ U;N?j ߾gg>1Ou祧(:geV{]gp[Ur#W QݗCrбo,}H 0(.%Tg`ʭZַIakʳf9Z:JXKMfD[ b,iԢVǙ3/,>r~!.fZ7&;jٹ[#uҤf:q݂!Vv*{ O<-3QJ0i}:=ulMank6(Wf{>}m^fgaCC[.eB2քqS_{5;\5jŭԵg+>r5⦲wžs|R*4w2$'H:AԴH64i&¶ q]9M-8_o q\3D?gr4SgyjZ(SӨn` GS._ƕ #tַlչO܌B &}|5ѣ/f T{ jX77}8Ħ `OK݂cz8C'GKa2QC[ϒjc'[̂.@>RYM5ZDg9׊i1i&NF,CRMMivkF?ݷkE,tY\8 6Mw=Nh'VJ-Q}_s }?F|:Z%S~ͤq7d>g rAj7bHkIz~-=?Lٯ2vhI CI7WdYzf{yyKq@0 %nO(d~t]~t] ݚ<2r$ $!C1z%ŕ# %]sYnl\!AP Vzs U*E\S-j( WɄJAxM)'T %Fc,m'|=o$e6<8&}CH\!Ĩ  3){CLWw-Ik"(RhIkN*iZ$+=cCh,Mk"'>g}Ta cmѓ:C. G"|;6*T&+4Jfzhm;:~O pug*.,-܏b>$ITnVi~նj[Ot?'[#5,:dCS,+A9~+ ٻ\-4Bzkb3)sg3ap8QwVX7~le3(LM(8'Y)wޫxs*Us`xV!m!Ut4݋y\++oS)huC),{dGϛ=2N9wza?%0vk1i;q&2>M׌|tēҿ9Y.9=,̓fJ+j yRl{OVx;}$- TDw3 (,^y_RPvI\BH|9hZ&jf#8?U):욋'.@SZԓVhZx˚%/ޡcT& t6OwpG;t IDATCS 3ڶ|x.v}2ʎ6ƷrKu^kR \X;Lu}+3ǨU2MЈ1$FҙJ`skȡ^)8E\Ofߚ:BlBn%Z5* 8yVɱq=EG('!I?A13Au򲲕sfQLOyp4׫O gTfR0P I0EeTR$!+*"bUɎ*h7Qw_'}7e+ 'g`RTe~2iK/\},R^{ܩ;}t|ld~MtE䘻-w:wڏV_o퀂 kLi:8uS3EW+j\P1=9W&~5? šehW*[ =dm(-O Y:#NJ}1Ȓ7ҭevI_ )(Qtv3ʼ.lQF1XM/1h4mH}U[/YWZa4/ͷψz7 1'Ĩ h:hK,IAEWV5vK;ݫij^/ֱ@rq۫Ӝn:WH@)/>v`!y Qxryzn+B؏v6^+wc@m1;GނMWX9W׸E?8ֱRaB:JhR~cڐDB?XRf;vy2=bTA:Gw3j&Wʄ#9'D-+/IrmPRl\}L@){(7 s挖Y\d+_~KUr1\ Qje(f'i']\6~S{jIk#j+6cs~ØZΓblmI2.d-UO3Kڒ9LJ#5?Y{:vWUMCc󆗽9uZ/c惧]Vn?NzVSP 1s6ǜSvY IڤUn#~]Է'8A{4K{c*+Ҍ3EG"ì:fq\.fRT$neRH2d]]oz(5#n 7;93?=ʛb\=ɞ j'wJ4umˉRhVd>ί0 $ xw >t-nH|-_;H\F@M3#}X0Yq@!njVdb]P9:Ip/H:5oѽ^# [oQ{k;^][Ve4K:/81 P9W*hGж=+{ʄSw\p8|I,;p{keKTЎ;LMcVZYGnu?躹 ΋(^ IĞę .dʿRѰ~rͭ)'6E&?|IK6M [2~e_YtSΏ 8NP|]]~=+*PH'}?;)bUv80?~tg0*tMJע6WpiJ*Cci]6l8|YZgj֪5pU<^!njmһ7~ǁw";K)h1қ t .MvfcD9PILWryNà ;c"JSD3gFZj2Bg7H*.k.|/'F=L-XpW*KNVkNau{I79ֵw4WLROsg7c`фh^p[TErǹ,V DlmۀU+N C`m{ݬI"H\69zs]R=G3.$rmD0,o A:hCd Q X`Tj"@Uʄ@Bc %оHkS{2e~.V8=v`^_MO AG>˰gBB1'\.l=\'e1 mAէJxP /ӕZzfU q1W^gP)eo3ТE^ŭ (OSJ~tP[q@)+: n#& &6.Uz1Q}j7\&F\%[ADJ.8pg*m>ELQKk_yKH 'r6kbUIXlg;݆9JA8N »@;ڸ'y@m~n1)_fovrҶFnQh -8rO c4κ|AHm,$M9>W9˹lߐm0y)JCT_rI4C0wxal $I.IhQ pe>ԱW[ ' O2QUB[$iJ<4#[ CӠBgg:~-aSv I‹5]ZT:9djf$X;dЮJ.j7nyr/>9x8N0Mϥo'N8 oH訌OF>G~ (/HWajʊjό5_,~zæS촪>硢f)Jd@_vmԬ"4_$JqN[[5O 5*ovvv*C o/>y)'pX_;+Y͉y5݈R#2fs^Ҩ6Jy\hwK ,ع-JeJI$؏XoCr\>\lDd_qT`B6l&t%QhI$޽lҲ]PB'%軄PCLv}b\чO|"ډa(qńuEH<kQCv(u}b6Fm͓tQ %vȳϝ w6=5RA^G!pU.|tյJTrq T8hl^Į +[njfɛJbk<3u𜁖9 bٜ0qC(M6{w$GHǨj\K 4W&U@!뛡] C2p_q٨E'. %_mg((FeYg}TXSpRI&Iq5^)/%;K&hx;j9ot,{S2$p0x[{KI֧Ϟe%JZ81 9 (EM˴TO)Z0[w[$$ꔜ= H5>6! AP0mYn~=\.$ RF[KrwY_~$s"Q7$Tʢ[">][=顁1-u\F܄qxJO\ \ 5|kq@ö[IZpM]9!n,#I uE*9 QMb\)5 Yh +5%#)pÕ+gw=]]nxaϧ~*JHߤO׏Ӳb*訋s39aٝ& wO%2[K h \Dwb;ӘH`pzd h(?v.B\S;t%s\9v+ILpA<80Y3GM4Fahz;}+|hRAֲv~<$ qOV'nu8sXP)H0]QvTiQL(tvC'&mD&M Tj!oH\Ԋ{_MRQYyv Fc !eYs/9Rx:O]4q'U8inBj=RK'*e_,~}K1 %:b-oI|S`%lʜyv᷷GDNSӜwqAQ(:gvc1;S0j<::Z Ƿ~S0kZX.?PlK~^sO>Ѷ 0A4WYz!iX׏J)lq@P6~J~X^/b* 5D;.ōc7W#p~خEN$ 6>FKb':$d}HM˔ 03eP$gŘ2~ ݚ3?r*$r-5oD]i#%zLc$(vImۧ9)t LR U=;bR88bDr$!U%O2Q0D _傪O x/U|_ҭwV9 Tw+MRCW\ןI<G~Q>[>in/X\[ajdfykg_#_ 3sl Gg2-f'%#h> BƯozpn݉k/oadd*?,Z~4n6U8:q" E^ug,IT5-SΪLkд|qbnVY\}CQ o|Y5/u|]'$m HBgszbRkdf 닙tm=@)Sn/j: -7tŞqx;/-J=Ĺ^/P6 7 <*LOX: tA%&v޺zFcǜK<Ή|r\!(+i~ȑSwLw*+ )˘ םu^E]_] bp 27"bU1yקe/Xھ+掉πVmº#as/_MC g4|~2([.,e~RP71K/F?K8N`8N`ݢ~77!xo3<h;O=$IBw?`et~%weGK١p>䟶 0سq«[0e@\~{q)[/>/`M{59T&gO8L-sndz m`ҰAi_1d%t,&]'(%,O7z7L0TQyhci:`Ӌ=,hB+% 6 sCLMstu q[qSIšG
I`'5qst<ӗ1CV̢2 _-uenZ| Snt?䝗[}w7<!n(Y ) qAaM);B1jqi &Ø-*>Xk81iݥq}T{╸2AM#uBKOsHke}&D₲n?[s7tMI_ Q^}޼ >Z8~mPpըT 'zV#C:ڍܞX[R):^~tTwP։A:ޡ TC7YW6=~L̲ IDATƅWBKS ͅgz{@GHePI.C TݓeߨgF9M0$ s~*}FV;>FDkooI3q2nhLc{|֩Y¢[RIlDM70ڑ)W~F@& ԓmKv`>S :m< :-Iō͎| C!vH% z>q VԂȕ8'Hݚ)A[T_,P1b6G ]f, u8`G+gsy-jۤػ/mvCuNfܪC{+ŬJ-*B1۰v[rYw)TZ9r{ c86e0#ļ>cӨsZViZZ")hUV=3混oYq+&΁9WZ'n(Q:1O~eN2,+C-ũ6r./<1]8O/[~h:x+sX1VL<8Un!KϺxw:J6ލK6nㄉLj"뎊"'3Ðs1 渠9'0'sƜs5 Hstaݧo>]U]uAr6,s;;;2\+ kd'{{LرШ83R$&%v Ǥ}4 ^wBVLoW"R$p!Lؗ{~(+{玅$l'8j7~5w?G|{?{-ѕUhdBnK Ev1wau%ˬ * !Jx![ !̛n.]MSļve逍5XXoylUA@Ж\ +CVLYæS"*-Q|Ǥay [1{CleZjQ{*E}S&Os@CAQF%n%R1}M|ԍ7cQwc(caۮjJ|Z=x|y*\`а+~-{ZRT''sLv\d(o(EjDjʏ@-c m`{GZy[uR$ܞJAH={?k\0k_Ă1vXq(6cP *ҹ:$oKH?ݓ|,!*ѹ*u#\c̫KV/i_Ȭ1R u e(Eϭ$  (pAt? mW(t61x1L=s0~䂇;'>ӄRDvj/isH xX821uוk^'淸m `w-Pl'ȿ~.k7'^B G({WuBu6*ozpoE{ a9¯YjNZ.ѥ6!] i5Ț;c܁6E>AR݇O.àe#46az=~2mHb 'd~ׂ8s_\yY1Eaj]@#9%\~llιxɊdJ&:Xn'u8`ģ3}l: JK]b::Ŏ[ U"IZrϕ*~SfYqkOoMN ݐKu$IXs%;Րx`}Q6H- :vAEm7p-ﴗ|,еfm>B-k_5WrҨ8 QKt,Tip9undť,L%l뚶aJ{ hJgקs}Gw4 Zm W^b2H$gJOA_r:S(c**EɛYgHGPJ,;AuHd3.L8$ůrkMu zܩٷ9T+=,r7C S+fx8s~fE 58)1dI{&{XOfNA7*"iԍUg ) +.fg*+;#Y/'Hw3|;èqgl1yC`͜+.\ӗMfu/GsJK(Uo>Y~?9o.m.*/0Mqc CW_:Q|}{G;M]&߼DT&3:iPx#r/s|WcCڳh9xsY# +U9VAZ:OoA48iT㤅;>Ir3<d]H!>d|5WqPɗFGE\d0A6= I>"j$M A%ҩX٬6{;s8F0ÞWYuQ5m 饗_$kX յ+0'XQqV cJQ2Ў9qR*r>=6R 33yPCmPQZ6{vZ'`ѪdOK483>#4gʞݻh\~[:Zqmh@!NeMs ن| ɥGxoPs*\&˫jR:-΁ۅYQzv"(NarJ(]C*I I67&>d9{Jt*ZC)5ă5W;7yK}2?'=#o[]O be{X(7r>8eRSJp:fLabPyT%48"4Is 8t@w# )Aؼ bbNYeQ8aM"0oRA,P>gJbv 9U8N&> iPw+dR5ڐT6ن7AYx|yE7M83Թs&qx˫8$s5!(J]pjʖ_\7hxa C 'f=C)Qj9:L& cȕZԘGy|ϲ@pdиC᱅ǢJE׭Yϥ9=|kYz$e#~+R卾F. (V ]֪4'PA{) 1qmyD"a!$-*+)؁Zo:Ћ p_I)(FgQI ImϷթg7HYצ(Që9LJ%I ȡ^@ gKJc/=aNgؚA (Ё}oZA m/I "*#NƗR۫)LܠM%S$SoePEu{pMTt :4Ue¶s-"U"<[cv;&|u#"&ޖBca*o+58Ҁp4(fPѯ >Ign+ԸݎOo 6^6}G9mw2T94H)s;C7>bfAUΗ% kۤjw EPb(Y̓A7Y $I4h-N^TrykT׳9SFۤDMdƑ,޵ b@klst.~jo2k^LVi'pͭj]EޖwAkbI\{DPyՕGo-9] l-R+D\[qٓc캝)AeZaUoE7z{{@YS=gGED_G_OX5܆'TiIOm{QSKPX*Qs QM5_,CԒ6˪19}^g׫[K=,Z0yQXH̛MBeN(A"UjkK$$F\h$IRtoyt0M=U!BkIZ=S*ȣ"| GjbZP : a?8Lk03 nĻum|(u28CTf׎:j[ʷV~I#pmm?N 1uR3Ϲ6J%$%܎4wش*qK&TCf֘ Y;Υ>2bPY$8r=3i؂vzniL G-2ѻ`S }̔:L/Ad -l .zzcm)7H99qNU|%r¨oSf(ոS $I.SΥu_ZuŊ> /ɽCW^;g3' Oik mkdZ&\d؂℣ X]o7YG\~;f`ʩIܜ ўSƨOf λ-7QOI0_'֜JwiVƟ0h~Qq#+CVI$1JaP 2ykZS]fUܕ#tgs'BKA;& kQ^=B 4`5B:Ijp5>c(jhW,[=KŐ卒ӑ A]gXϕظ\ фV͸Jڿ۪=hl]IYz4O,T"a3<ɪpc(ڪSYNqCpZ{߅&6+=ƔϸPe*W  XLQ0(r.BVțe*m.#D$ J'HkׯvE+EflZ咳;z+S0d "$@O{ݧ fI7sRNWA@%m5&Zy2hcJV}ķ;J"Ә=~jQHơFmy6R| ssײjul[zΎZ~*E\$518ԪE8Aj=.jUrFev,R A)nbElxfMj)- &MqIs[ ΤbhóP.!7K.*Rire!N NCgP$|6U-P2D "wls& @lģ/q΀P?m18icSuQXe T/AqQxB@ 1}+.f3c$M{;=>8^ Iؾf u֬T6wc Ϫw]"&* JUx|â55K;F&ܲ2?1F rrb>g^8o @7wTma@6 @1@Ӄpro@;]񮟍]?Ɵ {SZ>; `p'x 5C&r1 O=-~&xB_^ġqAP[\;EW:־E]t.c QkI? JLZ Sn`Lp}۲3,\ M$Ibsâu׾ vUο;^ EpCԪP3hwWIptXN 2(VⅠ j:QM$4,}s*Hhl=L#XK cZkN=Sk k;:א1:n̈UeYTX!@1*U[% ũBg=tT.ґtpյH k U!},j*~zI翯k'nP^ ? ;~votgU[9"V^r*D2umS܋;AӒ7-{o@퇮muactU/E}s\[A 5?Xԑ['%~ Mlc;`EhK:Bs@)xCw |= C}WzNj v-dұ&Ӛ7Pؼ=mM7s[eKZ1CweE⻼nO{ 'n Wi9Ͷ޶YX[c TIJl /{=JWJjӜ*aٙ k~8zdgmvt0km'ŧ_4Yw5{xi7g?Jm 8t !lΙ[$;syyUe,Vdgl^ "(`i%.(.᭏OMkˠi]J~y l#dA3b8A5خC$>IG6r͢τaICP$J2ljIS *J;>e<66͝CQ}n/ie|һ'Sʽ#ön;wpQq \@01 ҵl:p(\s7y )TRN;7o`z9^BP@oi-=#ȟl}U qxbe鏁Ctm4ا>ۉa̧Rͻ_.yTtbGl/Nf:/Mv[OlHlmĦqP_\/(P 5NVfu\Ûv${u+CP] D\~IP7MU5X}!TY'k6mx 'P&B8CkdwO|ӵ AZdD],TmHj3<l::-kA0e슘:ȴ-Dž8~Ϋc]mg Dih_;& mҀA8 w4 9gm30)`g #J /G;gӱ <OR8H~Ctp8! IDATw+p\Sc*w+h\s=mxc-J-{vA68AHۥyj-'?K֙k :]GVm5!a`H&UY^3t>20wF%xՃgՒCw V;z[_`.Z|;U3sN笗Ca߸xr_<#J7t{nց1KѹFsmզ^:,l/q4'dJeg) c|i,-~gl`*Ymy+gDž'a|N\ B()~'0' \<:g)ħH+ixh/ I`b:j_߫Ը+ttq?eZR C]&W8l;6f-JULT:_Z 2|^W,;KT>@zXdqeFM+=jخ4xkhL:5tۡso%049$881v[4ިY SjpAƈ4yf#aҭ6:-Y- 5.`0Mm1b3 y!*OτZZP٨JWBeq[kQ+ϬvrOw-64)j~\k*+}9'xbߣq o~ÇBv%/݄Җ$IlF1D٬g:Rٺt m|=1 ų+D͹/VΚ?mgcNHv&o៿^8jw4:~v64\<-:6>>~"S v~Hdi:o߿0ę0po곛Wnu0{u_eFC{@R(Sۥ)[Q h-x[:e'^2u(9q7[`HL4]*yvf2O_Ȭ~t82j[kãt+'qao:7wh)]8`ĝ A F_;y(<ݎ[<^W̉\ԥ%U^iINk!VhU%)Em[=n 1!5P5mRBm+/r0 %CE| 4ݺ=zQY ܥM[v3PL}Ǡ~j+M=Q%gRs]zȭSO|, 'U_8 Z/:7Q]PuR }mk #k)3rёG:n8 6\Tqat 3e/G'_>Ro_dB'1_H8N =py]q"IRQJ9RR޶6K*d24U8,uZFeZѹ$u< :z kJqWfV%i3V^;>__oR~srs `X8KzR?`ӘCdn=NhyTO36~+ª~K{}Ughbnc}^%iM_+L{eңz6{i#aq_j/K%p+>mg'];Pj ' s' |isΛf.߶'_d$-J[kt)Qjf"^tIo$in[C9<*B F_Aev`ҋ0wR5UO_g2sMTT|?GHچ٧"g)箼УQBcK GlsitHRo=GqC5B>R1T&7H@BgnEոZQt`dh?$5U({quףTB@)4)V JP~!S5VC x$=dm5gNZBNɸXu[sU}yq 7n68|z:N%m-ztc@+;~,K+E^ GYvS^>G; ܣ<#0 mI=lJo}qxHVQM@PM燭gY mh|xtѶ)BrDOG:z{N2*9d+^cehdQ *˗;\ɸx;za.BO9}Xa0e13GnO\>>Ұs+6=kC$/^r%@y]C7oyjΪ1N}n $ZQ Oc!l=ѫR ]XB~DÛx>ŹzXgߧ܍^puɭQu&@}f˘Mۼgq;H@2Uڂ;tRQKc%|*Z~lWgxSiQ_x ƴ)JKoۺy`GZ)CYxLIuoI|AȑGE:=瞏,I?&>{ޙIB) O7d'8ZFA@MI㒪=zn~¤aЙ?`Ev2dК+S6Te*}Uge#]7~)ut#gʡESn40<?/ByGEn>]ci=>9PT',ox/h} 0tݺ:T*e>AI19`-cQ[$q5Pks?kvYq3ϸ"\\UI<tm \b/ݥ7ziTLDc,=kau&c[e:Fvf1q 뫨,]?+99>Zz+]l;pb&R!`]]q}+Ư0TUigoJJ#pSv$@s*)++ ȸNj-Q~=Yx}-Q9o&tU}gl-^)RuPZ˳e٤@_2ܸd>u5]bͤy I^{٧-#~KbrJ]t,}Rq\m{(pk]ZFN֛L#3PT-i}gQ5V^j?= ['h!X9_K݋zz|q2 gZbZAcP* k:'xyjUR& {1W0})߶Zhf܆NaJ=K_ k*7X8eO&Ms{8\jG?T0-Ǎ֪ӎ14$3gje$kOIX_J=eK+i.Uǔ7ɢ*/\N~:ؼ+.f~x_~G,|i̫Emp.(P[/P0iXtVVb~kʦ9g<*b <6EVӱKv)Kzë*'2a#]ܗ;%lhij5  I hA5YgP{qt!=K\M9/Lҵ6ǟASҹfQ:AaVSP k.$97}ǀфV݇5 C>4̅d[QZL^۳&LI7W}0<1Kz?i2薸`V)}WFR:TJ'sC kQx [$\dkɇvRrWs5ra&(Z$$w6*q1{ +m/ODarz~N|e&nG|6PFB2H&%Tnx[1QoD>_Z)/|M{;I#59Gep +31yKYxd4 @)j.ot0P\;%wyUag<>+k.wfpr6 cEۋ$k8Q2Qno#v KMVpI#Gy9#C V!5rB cVU#.oyk2)I3K򔬥^Xӟ W;Ҷ9dB@cwitgQP N" FP:P*o2xc-~YO^=k~ԑ֫tE#樂pYFU:ഁsF[IֱE>+]n﹝oO=~N Z}/ޯAƛ~饂d Ng%w3؝ZSm_Lbuʣ~~y/(KR$-nbP19E4 N1wNqLlhOh=F(6z `g@gc:<_ce:3sj;l?at[>߭( ^q"quaE[q= .RtPMNA ]z ~ȦW?y|xMa(sLzܻ7vD=6p1^XQ>1L-z(\0ycQr\Sk! ^/@_N8N檏1[n}G0t%4x4v2Q=|oP"xgRAa-ĵ6?egz*>7JچhVS)D%nQ: _A1La)w{Na/7xQmTJwr?n *>1M-h N?g׫ѧţj*QϦ*;ACA+77vksx0$I;P~ $B1eS,|,?dHs= IyT4W?ƩlB_+8]޻e(aU*Uhyos[wK.fǢ.Ӱ:63LO.IA)0TL@!(z%"6z."HrG\rՒ[L\rYhgn:G G0cuZ.lɫM4x$*Fa̋ Z(vL`~|K$ ':G}߳b& \ 7schf?c{G]+w;g|U;xkQL^C, 1uL|s~uw%wuzl I\)ndccn(DQ\ yieպ#^S)LyKYAfC@JZl*9_Xw?Мo1omdw,eO1K*M䭤;\\29bĄ#,?mZ~Uda3xSC/ew Պ"&{N5WXIvW&73ɳk S&oճis$]Ij;81Q@qY2Bd ^tp4]o{&L]XJ4^X#('oERv.À$ s0Aeʌo&,T)mn=_G/]Vr e4*xQ$5wv A5KүQlwWzg9O奞gU8;s=lUJ<=EZ>T.5}(6,tOC3O}&{܏3p]?sk#(ӎ]/nmM' FEFǥތ>:(h[9vNwԛ#){S?d;NoRZ_meqJ ZϢmC 1kzͼ{xY{i<&P3Fq`݅5I(p`%x-0ӟkU$=]dS w6$8IJm4Mg9& FYEqfSbon!Gdu6,ECGu)+ O>װSV!IUoHsNBpyi fM`ɴ[e1;_{F5MeWVZRHk gԦ(biiV+ٝ;w ?ߜ}f~8\deiY%H4U>:?cZv؀mQN\?5&k[vZ+voK.IRe> m vR0 GYʚ,6lkwMH5ŏ\FIn1 m*Q-VN HgEZ sYeR'Ӥ}CFZvh'}QIXdSKIÅ\e}aN#Or.W7j-;j+WWM𠾶7j:dr`jJWw%^Yܝ$)G~Svz:aKV\Ht~gs7r. zfVg_9X`/9;v6@3w5enD% \-#XDweg9hWPzY'N5J/ay mQ%4K+<)#|V-9-xFG&XfUĖ%0Xm_3]N`Z CUj-GV^Lrsr "Yefj\T*Qdfy  9"o>c]?F ԌiRnJJQ .?nX96,m7u)o_C$"T!`X4SoFK($88+RB3IQ@ДljPh];fλ:qՔ.4MQ S=:;;l5GlԩMӳLx/9g1dy (XLKPIg ݗ^ӵsTeaz֕Q (:f+8&e-T:}JM)ot)u3G>Vk姞筒L#n'*J52J 6HBdɻVI(ľˮzJ24A4M8 TjQ*-DĖV*pX):f\jzuAyA|GٽFvX=lJan ߾ǪY pwGU?MuU-6 f܊*FLG.?*䤄/μ. rkkS~rE Z~*bvm%+X/co?pjrf"3*$H/qYVWEZp-A#~&j؅7àGsM@q;2vkoPhT\ݨFxI @~bﭨ3o8,%){GYL@G˅ݍ[Io#*$`c/%T4FPZ[aXD[6}78e0IR =@@Uԫ\}W= MFj|91眳`XapqVLkDߧT?-\}W8Ub#@LV/cɘ:V7h[VT_K=4n>nHf:vNxc@_#M4 撡!MKIbW*Fv4` ??AP!̒8;Z,ZڵLUC/r2La#nF9hՔai_e*BٙhcJ.KTzMLMcaL=@#10VGR+p IU8%V\٠aa)ڏ(uFuKCnRKoPu@\GR7*bbEs+Qv=TifjD<&TU|6~pSϵ/`h 0~_tY^AѺ2m!IR6^OUZjbEI/|P٠b_|]GT)LPVdy^P7񂷝 cˍԕ>7*'N5gk KꤚɅ\Ml:hcG! m\Mz# )mJz8Y=9)ìM%!)+UD}7*)uC@ΫLN@?"icrѮNֳ&I ױZ^wQ;?FljNx1 X18[~!iv~ՙy va#x.WJ?wzoEXR O&tghc`(~ kxLy&fxSL U*~Q#՜6Mr;fT36XBrVQY{!}SEq,"JK<7*8Nǿ)V^Il C Cy6ݙGNN0YH5/1&T6#l/u,֬FYlөe)ΦH]]sDo3}vjF~"+x"#F|SVJ5`"dY>)-[LE^e}?OSzR`;f31`hf٪0uQ!͊k?6HO>zb=j)ŕSjgP[aWv7u* SF4ٖ>7WvUjY'vHS֗$/F_Ա'mdy@л եg]S;R}=L(ߥ|SlWxWSvTXצ#:穽mnX/d\-u=4ppA6Ye2,Pj_/ӎ47YVȷy׾A=w{{t׵l /)5d$wݖC\ 4`3P~xJCYrN^g:bS o<29]z3?WC,xqŀ(z,a'MSRrS/D81 UuXz5蚎 <3Hȓ[V}čɅ;Q~r\-"sNEgij%@RNTT#f`uPbH0p(QfL"8g^\30 (R$,}RUyú-vqҁN}܍(uȈ2߰$I ).H ߈ Ќ e;E$%)b%<}7C>)n!["/'{,t0/cnuvSR̛;$I &}{(,1%pK~z%ts.aI~vLx8ڶ$t}uR~f,tǭ?Uwgkl*fyڊvaJp)E(lom ,vE蓜)$I HM(EH:C'9 8h~>sEEdP_iFGmzo8#k[iy9#$N#j9g7$LVPM(zo?6fM\^ʍ/5m( YG"+n.IрIRZ"ZqG hPo5n@;z5 lV&VP#}<%!Ӆ@hޣ].ʥ2Q&~PRa^El7qR5ۧ}zT6M$ -a(IړiEՊj5Δ߽e,ޡ0h+Ι o XxJ'G} Rgd/lܢNz$a(!W\MJQR{Z,QqX,j-١K9-RhwK& 4Qw>:SA2<~V_NU] ~L#U84L53ӯᩴMh>u;CV3-t#Jɔ 6MPy{S՗ T1>K`Б0y8Xg1}lMxxۉ\!a Na\"2"Qj``H_<G5ZReav• ,TF0pBIN7;rx,L̲\702M%QdqLr3%(LlMxŝ7koq7pqHbkKpV5~x]Į cǿ e\ZV6B#x/WS$r a4E 0yT(旤|8rpG}Dr[z#fg +".@ WK=<*wuX IDATsz!Q8|>MӅ{{UhH*0fHkZZM1ѡ LVj":ǻ:A|D0ٹakyӛ]2tZ5f@4h>MALER/]n= kcy!C~+ObYeu 9xyEz0k-lPjiq!(z)?(T6CZќP#tNb^^ɷrfY|A]ck[m"b-7ol`?W\ƱELla# E;L~_icᆽݍcf׏1uGVp_}Ύ5cB'wv4|lPܗbBgu]tKv7XmhlYW[{X ^)'FEtǒpyEuTʈ;"s#v~f`2;k$lkGߍb>cG\RfULF==>!@˵[+pHt녬2?~gx5ʡnN,hHZёKnEJ+?T~tY:ej+ShC3Kq M.WK+,1\, *LޫQ|H0qǭH ZKVք71&j€3Th長OT8kٻqŵJ6E&rqeǧgk_Q"~Y<}5{K^}WLe QDNptIc?#SNa`yVPԩS7)x- m7]aT?n?󼵂=& ~~/v(1 %=':ނ~S'k~Ԅⷿăo?/@ s7}Pd _q1#eʢ^O4~ϯWuΪKz-z.EǞ ҭldoV\x<]>X,ʀPPoݩyC4ӓDQ_ PR9J Ư|*O.lS%ѐݍo|CQjVGnjsIr1G,)Dfb)/*R֒\QHLE 4mԐz\F(cFm?Y&`o;ڊ|iW5f,Nh81_{v^q{/sn~bpAuez{![ߥ7 kŷfS4b MqgҤFqmD÷*k 6 u,F1Ƣzʗ0.gP`jI]IXxӋk>Z<&)wwWmD3$U=/.,pƘK>x'2j¼yv(ע;d8Ycp1 [8+]-b&]&QhG,hbL' \'-K71qP l^6]eg`9ЮN }WyFZ56w]WG⇠_ǦMok1=f]0wRUu.78g&}<0l_VZ%i`3pHFI [MowQjH+EMI`pyJƫ'u#bk]un_sH(R?uƝn&ωo$?y jߔ\fܲOwc\qgo V~j3y]& kBK7eغ9(# ;הh s &8&$n(`{u4s!G_˦XrEk! Lϋ.݆̍{)9~_a~=wVV{X_?-O7!M6& a;4=bkoW0BV)aMq<έˍ[帏ZwwdsUCZvΧopT}o]+^ӎ!TYNڸY <'Эƞp,cJ|oXX4+1}-sO&a{..'A0 %kP-)']_oⰙoxuYpC4a gPqLιhluUMS0<+<weZӂ*y+֠m]YovmLų _w~_FN[;(-7Rv[nt r2|.n ]JzR03@q@~Ԗ۞fk[ 0tJ-Iy^>ڴ[(&sݺzA$I7cpB>vϷ.v#~IN=PyuFV5ckW!6׼؀dv=\ s3.{|2Uvs1;5==uWiE;i)%Rַ=ᙞo apn݂׽a7ߺ|1=k~} z-g+q[xğqM#L7\ѣ0%/kШz=+++;a(>C8E-ҳ~wNH3,ijb9 UF]~@n`L9peߓ,o{Hp8JS$&N|˽X,rHXj杌1.d:S`h5lPT;4|xr}-޽Sa3:E aIRϴ+inJJRhA#,A1| bb6pծsnmAZ2qZUA"I蔒pA4M1wJ ߶۳qqX6J} J&j'(t[~tJ'~Yo?CϢ=nGOK!Qd U6*4: EI϶WQ2cBzPNJm7S:a-jKK֗7Ğ(Vn;uٮW?7Vԫ{nRyOgy$8LamD^nFde{3["nK4;VzeYRs*>۫d /~N|xg{ w\­ßz |no}t㨴Zy-]  EٗSsʞ i3"ɄZ:D-dw]VP$ѕP|(^c{X%F^p"-,t-oٽP7M;շz5гrED [d6_}U5V,yj?Zs 1]!h?Nk3|8/{q$E &fq t4yF4;w$I1=&wkve3}sqܳ kq'mߴƂ$-n].%`U}>MSttyׅaM3+ @Ө8Y=d+&쏱i\Ck"o$I#6??oׅeYyʒcN3 A"W^ދ+ra6zʗ}-ŝ~]t|YYm`GxCC ܻs33<{3t]t5##}/U(+ Ͼx=E돣6}?1'^9JNwΥY$Eiz"M@i0hԯPK cٌ~?D0//OtřuF*#.U*sfd*!AYQp#-:Oj0t=q97Tɇ*k>Mٙy EuE~%{N92rYq4ãqEY8%I =<+Ґ/[Jjp 14z CNs#}@µ_s)"I TE0|WL^iYEj,8s[BbR IRfawaL~/yc`T PV)%00BPc dƸsbynAʝ-Sh=PdŬ^uήwn֡s 5XJH2,z's۪ѽS_sBqc7[س9;8I _=^h١Mom{̬g3B$)6IR3ӿ5r]a:}PgyZUԯGkC?ٞk1{>X7Jԣeڒӝ\DŽgbe{BY[l[-BA]["4Ov$jъmp/yC?u/t$)ZZ cpNĝѥXooJy1?aLWBC˜Met6PI918}6wDPl)ͣӵ:ñ3Nmт`8ב<&<7&t-`6':m0SAoZt# ow Zkc>\7q}Ӛ8 nGϳZy~B-?qкM=\ߣj90axtͧiOwV5:Mµ{=eFL`PI(j *?PAZz4Ѡ+HjU,m݊`Xۻ~QT1;Nl3'VJ#* | X#ݣ{]wMD`.I!WP-𵶲:p@#c־ZQ'FezjQ y>fN$Jt'5 姣c#n{noL^iMQ:%bT+1";{g޿t(P˫Y˭'9TjJ8<$z:NG db_Y׀ΔZj,/>W0MFX:R$g-V^Lh`AQTFw Aj4@q_4$v걋?upC`Y $s裣+Oh_27<)E1 &DXKo2lqyP"uo$="ys|eR>X{PDDń܌i4f]%t=g%,6*_biXj';Z~V4&bN)&\Z0P [E%$A7`U#voz=\QMQS0.`$QT)Pc+PbNU:G _)ake|` kj2#GhUIX+,kقL+p)qN"gqcHEKP~T3TUfeUTy]9>II7Vؾ<UmFCSrSLx#ͥirUYͬ1no4VIc8C--Oo4F)EΜ>a՟+ Y2*Z;>^].: ms4 h/xD3 ON]hU c$*C#Gm841eyTu$jJr:|9i[]Sf9xaw͍ !GW+fS_)53纴sfLFZǹƥDUJau*wj[53~^@bZ ꩷Nxly{bbr Ҭ쮬׷ʨズK;?++l<)Qlة0 H ZrAR*QE{^1h: C)ZB%^t|< C) qL7>*tM*dCFeJ~iRJ"Xˠ($O)[S5 xeʁq0:3ǡ\ţt삍'֌ gQhic4X?b]9~wbG(n 9Tm5Ux}iy'A~>3xz~О&<"pj[)')TQ,&.+Js0ܸQE,#:Dr@=DjA`TMoҶQ3eV~ڇf}o}3J,"n.Ǚ\mmWT+൶`jAimROɖSRѮ [Sm-~EQ{ %z @1ﵮ"sN Ics;X*gksY)j*9IG| xՐP3q"ߟG}z+t; [D ;þÖ(x< i\RRud$z- O%#;g?ݦ1ѫ"00aJEY!Y~*yZrqQ S"X1{)n[97h$%l7eJ  ] G5:9ZM=e`g wE 3z[ Ǐ^g l_2ۧQNFJglYtس`1ݸ x=)woS(7]ʋrlCۮe'_}Y=D$G'Vv{KD$IoVWׄ_Ljtz vv3WV{IW2w}m=f$xl5@yOpLُ]˞1ⓛD#KN}|:*n`_R/R7bY95sM.NzWݱG i,:Z¦g۪{^]}S [N,cu Ѱ6|"BTfsAR#̩Щj$)JUG )j3zhG7l}'C o*8Z:dcR\Wґλ(>Z5-r1ƎuяxQ̗9i0>=U%mbn8ӑ&zgiwE.!\l|nKz_awm-0zCg%kvTB4e71pWrgٖ_ ,GdMi@% !IFe71p\*?ﲙw!O ?E?`1XZnٟz{triXF˓4C;vo6~+]c2<~:a͑r |c|[Mm 3FN]sQ,?>\{3~>,n&NX%GJ 6ı^_G^:) >*(!Iɫ[o'2ZKR77!ޜ eF5WTѷ+<ʋrrz5z#@JjiՎݝcJW# H\B.YH;79"jkn?˒7Z`(PH䄵@8"O)[f}t͎,MT m 'VpbQwmM+ZVSbSKm5e5{B:üfUG0hs CwWMP&? )jAVvrޥ#-r/V(*mTWfo쐵ŊwCzigAC8LLAr0gJln2^`xa(37Li  I e竛 Z FW>`eol,.g1twZfFW嫺 gzsǥ=1O{jz`L-O=xz7y).oh0 G>L.M} 3^OfrUuϾ]g)&KO~ɻv\)mWZҫ{c[ mEkl‡K,3ƒx.<+vX>vwQs#Z=WFmO~g]Pӡq}uǏk7T335BiSתRodN'd6۽DwlP>ѹg?bwR6#- mGc3@@X!AR rr_vY479M̍PDH‚af1"soL%3qvP_!Zc4( iE@Kǽ{g07ԬCGww[o^`t"(ԏg;, JAբ("#)BQd$ۗk'ؔkzB@P>](|.:4q(g|61i2.>/[CQ>ꩳ'զǞJ99cNʉ1b둋6U {h 9f/VcgCW~uqkƜO`OŠz~c,pZI ' 'nKGU3U[KR'}X4cqtT6`(x[g}%4-i.L\Y]hus,UݷIL1é#V;#`E0; ;0wG?fNAiLLDnUQS׹Z_owGxbMS~)n[j)"oo#EMe)Bʓr PH[+?S}f.H:jMyƽ1AzR~}B&9xԹJjbZ 󅍥Z[% 2a\Q4 Ѱ1Pi (U?͈ $eT5Y H͚w=Q6 H_*I+i\[ZuҢ5vi$/7؍6n~+L<I:FR!8Y8Pס{L/X#6ݾzlDN4$Iy:VeUOt_cȗTv'GY Cq2u(_pBq!R"~f`JA]C&W34LW_sf$ڕbN&(t$I >p1l%`?7h0$!^fZ$I!;K|5˃UUMFgFMbm [MMI,U3%M)k)I~SE53级9aCyhr3+6Et1-2F.j[a6'߉˝ j\}7rymۅmw7[4/űs2RX$.Qk$/*!dbm q_CʣK\ ACc )hEPLjWG:.LV;Fg8ޱGa6SR!bZ ?(RAӾ9&,.ِ95:[لc xkcV[iZo9G)X405ٽ'˄# ;Oe{0CXW4-jg-2IQlG퐠6ߊՈ=E.\TўVR\H$Qpj2 NPr UY@hlôT2{jP8zأM' ]gx˜ `Vܦ(CWPj׺, 5B)>0:vxeuԳsD$Xʲmbֽ>(-͡q/Q {֣<D^!_\ErmdKZ Rb Nrײ0.J ЙO˪ZSONFsSt+4?ZwM2b~Jʳ(|psamtJM_w/ݏEr:[PBR0TTAWL<"N@ .ː?~Qh[=bL/!S6_#2cM#&W ; ޳#ʚ;;y2"*aCoR$Y:7ҕTٱn4O\1ߒ+RΏD,=(䬹 j[3@M`lɈEjʣbGd \6=F)(*yZasgc5؂C\$ l4{2iȐɏVT74{mMzqIuxwwBc  {TW(%l&6+n=ѹ-}-Hd A@](ŕ,%&"\S߲}aN'69kpRIִHTG;m䬰GE $WAP4ms&0D7)/ZISےO op4gR3zQܫQ;7hX ߼7Yukڞrq[3s$I!sQOp ֤"`޽ Qu3)qF5-y z⹃ڏD5AV!cM=~}p?u^{hn׌^c4S9kFAm㧽;h=nggVbbײXpzA4((r4{b.CP L%R:Jg Rb SCWI!ooio *M FP.'l($213ťrg"w=9 p]2NYۂ&#Ucu .5~U3KU}֚ eo2E TW +) Jg}@iڦ7&`RPjloۤEۭeNP"8,N8a&ڜU :z8W+FY|\:Jۅ_zlpTXe)Cwmj&1OW3~<`#X2A$u~h=]R .TdRX>{ɛc -*/ڞSku0JqAqqDXm dА98AQT+ti%Zi:JqJ ݹ8`;"XJa㗺+f0}u ,)4`ԾϣBGvEߺOqj&}Z7կ@ݝrj̦@/u4b <.㔖$j, lAiG=={)[Tv#A_r0ZݫAoVCd` K db>ϰǜw{5ٌpQµ"-qq_uk_c?8NrSNڋF5 ү[rEq,;&T.:]R\֏TVȅ!FAa(kAd}I*Kh|*DZeiMLLEQnRAS_Iu3ȕ, Elx=B,6yUYSv+k+Y)Ǘx̺&hTъ_1}^QjһP"{W}ڎј[4mFȅI͸k&O0԰Kq#յf!(e:xOSO!}4EF2ayA1 :ZZ1IխLeM-B.9e@W&v|b{ۛOj-C*-l,(k!+VGӊZ$I!f^rYϹ&^7LJ Ş~XZc;f-}խcǧDƨ$;y/JuuY5?׳+. ;i/~hv-[?eso߳";$Y" ?}=U^Kphu:;: hd^Hu. ixux-7i*|g=uղK&<4>G"ߨi2ίkX"^䔚r'Zm %mʅ^Y*u87KmfO:²3TɨmJϽ)D ɲYy>~o3UIcW(wgR`i1r.K)桴[SϸK"'lzWC[^WNWRE`C)ܒ⢹R~k/wjڐ"GusĐQ&W~ٛ);[b&E[ -ȸЀRH)+-immrm눟=G$zUšV|"IS_us1Agjo 69f9􋋷8rxCYN[d_e#>bcQp0a' C3Bk[g*CZue,gxo]{UvKE^v]m_>^n~$.%0ґ?ͬ&Id30gI24ʴ{W,_6ԿSc1' Ħ&6Qwܮ ?scr?5p@wkNXʣ;jrXv~ǡ 1A4tumY] ^o}uИ y{c*QYCTA-XK0Vi{؝Gl2;ԴH-Ӎ˱DVM~3n1+!kxyTȝohFsqK%oG?Prv! $Ejܞ$tz ӯo'KpLvMIBFtИU'G(ګ/%2BCasz[鴞Xԉ yBʆ|}pGƼ:oxENvV35yd=wAsxQ028߿Ey#v[/'PH:;rE@W7X ]6FK1 -;p\7' okK}suaXڅ 9*AQ5-$T'3NmIY}-q!~/wN$PB0:7:עPˣ,5W$E (V^ EGYs³iL0< ̨I;RqGqV(N`\ lmFUvz8 1K:!NԲ8ߏ9w 6u8b?8/`ȓrQMQ9IYl9ƺ`0?qPK0Ƕ ZP\PUQ F&R"דp*kZH wwRIߋGG`T/2H3`iX4LEG6rܪ? *kA2&&nL 'Oq7T~]z˲ CP_t՚u0p5]YjJc2RQYBghύ $f Ph_cxݷEO-c RUIM/G?e2E˽ qy +iǒOy+$%2AsA֍ k-]M0,wa] @$CJA՗N<}KjI\[)GTLh E੢g4ӶrQqaC~QVƘ  )7T (CI=V.<Η;W? *Z9 )vrx~eZNc)cMCtWmidc [.>*zN:Wpo(-tgzS@@F;;Ĭֺ;y7~ q~w%]߂krW^]^x.O{*w[MAYB˰~Vԕ.3]n+]-ߌKbrcm!F;uicE#p#{EcoZGM沀T8"d5%:N p+?ʡWFLR@BmË=Q4R! =]^e}` 7+?8w6Bc$.n@fdG|0W2~.?6v|N\񢼰A{F9aԐ\]39`˗V I@`ӳBRdwZ=e9U_3(@g o47_KQrZ>D!PY66T{{dq~uq +)-Ygþ;|O5AjhsyfNe>P0pʐ؂szQ}!kAأ]Ϩ&`aQ!4`ƒSE TtzzCiqşŨ:{o,4$woLClgJ3ˋ> |[ձNMZXG^|Kbo@VU.^|Ra.[KS:{ୀY=PR{PZ?ͥǬOK6xڷvŰhiٚ}> +*\* :rq Gˌ|{՞:A/\BP(6UޮU A(4hl/SdqI! 9 Ae=R7HC=Q4]#_sO*"}MM8iXE!.\fk21Q9yYR\*DI\N'sNEARaI:(m$:UbxMR.2f{gF{<#b>1<3N^_õ#wɠ!u *<6ɕe]V#[F9z $=mml7[4Gø* v_W 4 5+bV uN:AI(PA٣yb[mQKNa )2JEJ^Z6}¬e학*ZP,+hĥB!-](vAƛB``^eB1:V7e؏ԳYBdt%գLgH>\~oPZ:n>')$/lެʺց /(Zp4M'vDe(i3ru4 ͥz A,1%}mGMNmhQKBr4 I(B!M)#,4g+T!\8cFf{8' ')hP2l"^h؋1[kܪGɦIM$ͅNE(@;XИJu5o$Hu`3:=#fO|pxkˊ~VPk P,i!̯*j*LlJ I[2W޵'ZЌM}I\vC BPXbwa3˱ӳ6>ӫWd nlP.4f:J4A:M CFf-AC dL_M]+~t%@bNSm)yՂ 6Q,xۤzAŖٙViQexatbh5-[I ԥ.5aRI<(n}Av.k0{ |k{34c֟ |V@͗o∜ԥ<;Wxwg냾>^>p17tiAnQ5'?\Z~bЂӱIE3<7=SJE('N"18 Q7H@ɼ2kCuSAO/6L((2#m]8;kk]ozMsN!n\jȄU/of'Q(p 'L-rX'mZvH'][9LvIM{$[w2hV< h֫ٽ [TE2\̢i:n6=7&˻I Wٍ^- ZrӠ 6k{ʡoCgX*3f15^E9vs6PJ/72Bc hk'~0AF@C).sm eq՚y=> z`26=/L5wJ_MqGKTeY] (2t]> WeU : gRZ!{sg90k+Oٴ3dJăT!E$.i8M7) O5@z=>kh_xvt@$ PK7߼Qc}fU^džOV14Еd;(A)\V310v* BtBz}ĭ>;{PYbY;d@=C Ϣc S Zg?-f 8MU<0 )*Y5ly`ﮢ^w"H~Kpq0Jpл[~fn)pkKV(T =ܾFK{oj 5R V~v!qy-LV{t!+&dmཻϒ: jEDmUpb4s}5?01ixwZ ^C^~$`*%rۀ 5_i,tawmO;IDAT3?Hf`9 v9ab&<}E!I",P]cJQ^sz #Gqj4 o* )8ɯl"9Ų9sәUm.=2^i"#?{q;L:m I$.W44j_? ~.ԌdV֣e dm<* j:BflmC*,1RSNhqYiښ~yUH$6t^0T>g\Vzl2•luJZf zЙʨBvN`,3>׈$5׊ } +2{"g(ڴr?ueS6V<7A/~\{,UL)@x| Thl+-9A< `dzC_SZ`tE'?$K}lrI>zE'?v-J`dՆ3*^&ʘ}憕:lI;NE\[Ӽӌ/nvߞY,:6âo$\G_>_nOApWxbOcG\9MD2O]w)sk޳j'f_ݗY_,6Y'mUD@dXAX1C]Lx|ٻ,Z=W#rdw/JZc-NW+X_*Y ?Ԕ[r賊V<ACLMa:=T#mv[5V&l>.hɽK4Z%;:@!<\EΣ:rbjFV~Q7KHB> _ }=60PVcz%16=3emrQ5CRΉzP[Më'o:AոLXkd6 q\)aeFr{ޕ㟆g$|j1hmXo]w-mj# z aϠv:ƫҧLq?7#H)nȾ QF (<1dT?^Hf)J`-IⶃBwta3c 5+oᣡxʊpTj^ ) bjZ$29 8 B ĤsJ t ~KX&έqRWx% IQc8 qA8|`aX7]1} G>KqIG\Ԛ|y-rd$1y }{MUU6CYJ!j;s݉yꇕ4M = M.Y\Fb>&Ws KU7P!U2D.l݉Tt.0<-a}Z im^jʌqO34 |,nyf;,n^`2ИJ""Qmf 0~*_+voOraqLJ] (;) #;(,>极0\"`(""(Ѹ1&+&R&Zx.h0$FŨ1D4QFԉ*r) s=} ƨ1Uf+[~~hNQZw7 ri{>LH6gŬ~^,P7׺Mm)C73#f j16XKG.ſn+e~u7`X0d/}B`]wsz-yp+ Sv1zKO 5\ W_<7vĴlJt(>@sXwpT;y} dպĄ3\h4E\t\VMsFҠ@'@Cჟv@y;byN],k>{J+kXdqz;E| WLJ)B(+Ew M|^,yl[foCgyGEH?_AtM4P w\D]aTs#&Aq9Q  8j%J}< hGhou{jX' c%c$-fIHQ|-ֶ֖m_ piBLOM4b`hϱ}7dh^p櫓+su?ªf?S;޸ l:ך-11U[EqPDLGS&}vI~{'G{d;ro3:5[WA6?H%YvsT! aYE0QG)/]T+ II:Leh&y' jYp,~ɳ#($@0 XZ$Ꭾ,1%-+|f\p3 ύRl_: ̲v$c(Ÿ!1re凞M\sjۢhoP@!FG^e3<;`-pVn[DDvMQoV: oKxIC8S*ksrD0qGO8B͹Cv%o0jN$UZ8\[am<$JQDVHLK rm9Xw\~j6_s5v8XT,OlMCTF9X3ҍNtƈs?to\QKL׿bU`bZR%ܾ o+Fw߉0 "~;b:/qMٛ/$Vk,7vKTɲTaVv)$4!kG17Jin0S(x{g=w˼upCkzm8Crl Yo% TE,ȍ$aKCmaR.lEm |_iٗ-%C{\_JZC{GL@(x̊У,&]/ǩuoV}5 mF'Y]Z3$v ;g!q+cJ}>-eܕ+t:cirZ;-HKx&h~uݷqfRH~ƌa72rIyG+ NE$o:磟N>.K.z[ d 5h'5w5[8CGϧ=eϏb٦od委j2 Ǩ2j9fJ!P/įgzy+ҧx;Qe?n9(@7ryKVVU~# $/?$(SGu"P%6gdzGaz`YNxוAjiÜ:\u\2$*PnpKok]a7 *i]*Yizb喢rd̢^̱_%]07{lK~[A!OfIENDB`calamares-extensions-3.3.12/branding/samegame/samegame.js000066400000000000000000000133051471772643300234250ustar00rootroot00000000000000/* This script file handles the game logic */ var maxColumn = 10; var maxRow = 15; var maxIndex = maxColumn * maxRow; var board = new Array(maxIndex); var component; //Index function used instead of a 2D array function index(column, row) { return column + (row * maxColumn); } function startNewGame() { //Calculate board size maxColumn = Math.floor(gameCanvas.width / gameCanvas.blockSize); maxRow = Math.floor(gameCanvas.height / gameCanvas.blockSize); maxIndex = maxRow * maxColumn; //Close dialogs dialog.hide(); //Initialize Board board = new Array(maxIndex); gameCanvas.score = 0; for (var column = 0; column < maxColumn; column++) { for (var row = 0; row < maxRow; row++) { board[index(column, row)] = null; createBlock(column, row); } } } function createBlock(column, row) { if (component == null) component = Qt.createComponent("Block.qml"); // Note that if Block.qml was not a local file, component.status would be // Loading and we should wait for the component's statusChanged() signal to // know when the file is downloaded and ready before calling createObject(). if (component.status == Component.Ready) { var dynamicObject = component.createObject(gameCanvas); if (dynamicObject == null) { console.log("error creating block"); console.log(component.errorString()); return false; } dynamicObject.type = Math.floor(Math.random() * 3); dynamicObject.x = column * gameCanvas.blockSize; dynamicObject.y = row * gameCanvas.blockSize; dynamicObject.width = gameCanvas.blockSize; dynamicObject.height = gameCanvas.blockSize; board[index(column, row)] = dynamicObject; } else { console.log("error loading block component"); console.log(component.errorString()); return false; } return true; } var fillFound; //Set after a floodFill call to the number of blocks found var floodBoard; //Set to 1 if the floodFill reaches off that node //![1] function handleClick(xPos, yPos) { var column = Math.floor(xPos / gameCanvas.blockSize); var row = Math.floor(yPos / gameCanvas.blockSize); if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) return; if (board[index(column, row)] == null) return; //If it's a valid block, remove it and all connected (does nothing if it's not connected) floodFill(column, row, -1); if (fillFound <= 0) return; gameCanvas.score += (fillFound - 1) * (fillFound - 1); shuffleDown(); victoryCheck(); } //![1] function floodFill(column, row, type) { if (board[index(column, row)] == null) return; var first = false; if (type == -1) { first = true; type = board[index(column, row)].type; //Flood fill initialization fillFound = 0; floodBoard = new Array(maxIndex); } if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) return; if (floodBoard[index(column, row)] == 1 || (!first && type != board[index(column, row)].type)) return; floodBoard[index(column, row)] = 1; floodFill(column + 1, row, type); floodFill(column - 1, row, type); floodFill(column, row + 1, type); floodFill(column, row - 1, type); if (first == true && fillFound == 0) return; //Can't remove single blocks board[index(column, row)].opacity = 0; board[index(column, row)] = null; fillFound += 1; } function shuffleDown() { //Fall down for (var column = 0; column < maxColumn; column++) { var fallDist = 0; for (var row = maxRow - 1; row >= 0; row--) { if (board[index(column, row)] == null) { fallDist += 1; } else { if (fallDist > 0) { var obj = board[index(column, row)]; obj.y += fallDist * gameCanvas.blockSize; board[index(column, row + fallDist)] = obj; board[index(column, row)] = null; } } } } //Fall to the left var fallDist = 0; for (var column = 0; column < maxColumn; column++) { if (board[index(column, maxRow - 1)] == null) { fallDist += 1; } else { if (fallDist > 0) { for (var row = 0; row < maxRow; row++) { var obj = board[index(column, row)]; if (obj == null) continue; obj.x -= fallDist * gameCanvas.blockSize; board[index(column - fallDist, row)] = obj; board[index(column, row)] = null; } } } } } //![2] function victoryCheck() { //Award bonus points if no blocks left var deservesBonus = true; for (var column = maxColumn - 1; column >= 0; column--) if (board[index(column, maxRow - 1)] != null) deservesBonus = false; if (deservesBonus) gameCanvas.score += 500; //Check whether game has finished if (deservesBonus || !(floodMoveCheck(0, maxRow - 1, -1))) dialog.show("Game Over. Your score is " + gameCanvas.score); } //![2] //only floods up and right, to see if it can find adjacent same-typed blocks function floodMoveCheck(column, row, type) { if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) return false; if (board[index(column, row)] == null) return false; var myType = board[index(column, row)].type; if (type == myType) return true; return floodMoveCheck(column + 1, row, myType) || floodMoveCheck(column, row - 1, board[index(column, row)].type); } calamares-extensions-3.3.12/branding/samegame/samegame.qml000066400000000000000000000073101471772643300236010ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ //![0] import QtQuick 2.0 import "samegame.js" as SameGame Rectangle { id: screen width: 490; height: 720 SystemPalette { id: activePalette } Item { width: parent.width anchors { top: parent.top; bottom: toolBar.top } Image { id: background anchors.fill: parent source: "background.jpg" fillMode: Image.PreserveAspectCrop } //![1] Item { id: gameCanvas property int score: 0 property int blockSize: 40 width: parent.width - (parent.width % blockSize) height: parent.height - (parent.height % blockSize) anchors.centerIn: parent MouseArea { anchors.fill: parent onClicked: SameGame.handleClick(mouse.x, mouse.y) } } //![1] } //![2] Dialog { id: dialog anchors.centerIn: parent z: 100 } //![2] Rectangle { id: toolBar width: parent.width; height: 30 color: activePalette.window anchors.bottom: screen.bottom Button { anchors { left: parent.left; verticalCenter: parent.verticalCenter } text: "New Game" onClicked: SameGame.startNewGame() } } } //![0] calamares-extensions-3.3.12/branding/samegame/squidball.png000066400000000000000000000132501471772643300237750ustar00rootroot00000000000000PNG  IHDR\rf pHYsXXm7tEXtSoftwarewww.inkscape.org<5IDATxM5Iy|H (&C>!.DAԅ:E~jf$~, (:FA!L , N Ed0b*>>]TS}{Nwuww=Tu5@!B!B!B!B!B!B!B!B!B!B!B!B!B!B!Bd]֟!K`}PR>^5/Th /EQa[O*/ND'd <̀uM!(naoAw x,|͢_BO~=ߒ',^-~/ŸC Ox9vߣ]0Y28&aD_]pJ?oFoecaY{( Y_ (~7'3/oCۗN*42$H8L$FGɴH2I  y @+dn C ~h Jư\M@fQ幩"#מ0%9s?2 k#+gDWP *;`@`n_blKCL'KSZa*l}1  HmKnc.0@E*d띲:9\@4x[`nP<BZ(aO$Rl AC$c˖ D.>G44rJ5!h[  @)19şS,d0 kܗ4Zʡ@"+XLqt<>srQBj>&4_c@Ѱ> D(\@-0$GF27Roj#zɯ}6U K-FO_j7"mA[X- k%/D۲I^N 8%r2}[$.Q dk)(Ly+J2: Sah^#7t8Nʱ#~}0 @!NchBt "m부+RC$&|CPi<"LN_8<1?vYU0jVnrl.@~@f2U +\K fœz3z,ҡ3 W9HYscw `}8[.<%U!H5pᙖcP\'h/ t7FTX(kSTԕ ts  )Db8.A[Gbo-kJ W!h^?8 \;Zc^a?6? %#}Ĕɑl>tɞ) [[>LD3 ӱ[$dI~JfMjmEOKQ@$2᫞1;Bȸ3 pNM}|9f욍=P] -*{QՠZTUZR+aJ|osԯfn!$貐0Z j, m_/U$eF-G- R[[%rٴzZ4{:!7BG5%0P?"Т>HcNΛuB&Ӫt|rZhn %ݜC[K9+`NmQڂpSb+Yv|[n)&DLI5㌸ZO@OIaр!CQBZ?/E[e1&V3REh 3rLj% fpN&8Ƕ#Õ̦O];?gsMiQ#L7knP#u^M7bǾxR?{8{2;!];]tm%>;.IxsXHqf3;abm_0ǰ2e'@*|0ooZ$q4IJ}6jwFhl`vgNa>>ⱙ _~3V'QƆ|mq4CeVcPIt׵ş/hͷ{/p^Q^n2SOd[Gmvo/_o6? +]NF| |/i^ dIoרp@b$hxO2;!w߮P?!O^j\CPK(8&Mc!hegV #^Věב0̈EnϜ. V?a}?̋8=\G"Lg8֌x`Aź)>$`$)wCaoxf)~a#o `Fh9tBEwG܎L_-Y<&o 0 #^wL B2?!4 ߛn*ym:K|Wt^kk$6 P`~6'.M?n=3Ouk#>ùG[=_6(p:i 8޾|Y \MOrGhy>D M@H)O ͓e_ck~o lֲ 0/07[ {$3OԄ̽њ\YGYРIi.0_ikn[ziA.h'yX arTyGZ^7/aob>CHȯ̞eh7&9X ߏxZOh T7@ ]%Go%A6Ych. vağe@< A7_. hf mEvTQ1KMT. 5'Rאz\GJu43&4FOܲ܀vCCA솃>Faģwg|GK߸+YvDVh7cWm&usCKtܲog{]>lIu4B.Z0#1%{1[SaiMɡDQGZUIV `Ŗ=o낎3Pf(|"~ixȀ2-mȒil?/рeޡM֞!xoTYZZs5Mj4U?Ж' rVE0%1޷S=DIcfgJsBF|E }~݊PKq)Y{:4.7;[93< ţyɬ=!;F %:,衿-iڍVQ$|S.c@5O`~)IZwY9Rdr}2RifKSJdl"ρHHeE;ुn3՟ p@{TP#x)J] _ 8w|S~#i˦a1%sjů0lxv O ek;O|z0p^@37*Pbt57=+ޥyI6#z?ЗXDFla ԜƮl}.jlw͉hw"[rE{|yХfՔ! cIa;Օ}?$}5+~P-\7x奌kb<ɡeh6״Д9 !5~AdNAB,ӄ?KXR[USts ;d %c#\am]u$nݢLX.x܊ֽC--Y؎b8&n,]Ԍ,[1R^hH˶WlyWڜQ@@|7_`FYjWE;摀,:Jz7;8}qL74nQ{אg §?sy%).B|@1f*TE˙h j8iO=ܜIuޓ|*Ky%^%lݜ^\dg .?vԧmAXeKl36>g2 51<,K0Psq$ [.?0 '~.abuoQE?0[n⣳0ak⌥D|W/g4Bֶr@)<VxL1pW~\y^[eƤ=9ڜQ%rQ:ExYrg8>$!K L(Dj+V6\B~A s;5X}0Ll p:YpήKzG, gU9L@ص|>KpG#{^(p懭>]( >F3?cϊl$Cp@!_]vq1cA,w{x%(Z j K<\cG~ChW0=Vyu@ 1#HaH4+  MqYo"!QJ|_n )i;/<O˕@}>IݬE)p˦ (yL=;̷fEj:o7`?NeeLrCXZ>&&#x~VM#X0|SY𽐚l 5-{&#){f0  ͘Ր=l }?^c] y!Qow\^of&d4%LQo7E!/ NЂie)n81u~ O/N/0<1&҅'e\k·t^ 5 "xS` '~:E$i7 dsn(n=4xhyXi)G!B!B!\Dv%|IENDB`calamares-extensions-3.3.12/branding/samegame/star.png000066400000000000000000000004061471772643300227650ustar00rootroot00000000000000PNG  IHDRabKGDC pHYs  tIME %[!G(IDAT8ݑAEe# ?J_A-QռBdgƶs'g`c{Y3*ʴOmI^8cۧ.H`4_V5  $=8<$%^~mg՜p2=T&IENDB`calamares-extensions-3.3.12/ci/000077500000000000000000000000001471772643300163365ustar00rootroot00000000000000calamares-extensions-3.3.12/ci/RELEASE.sh000077500000000000000000000142031471772643300177550ustar00rootroot00000000000000#! /bin/sh # # SPDX-FileCopyrightText: 2018 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # ### USAGE # # Release script for Calamares-Extensions # # NOTE: this is largely a copy of the release script for Calamares, # with not-applicable parts (such as translation-freeze) either # commented-out, or skipped with if(false). # NOTE: this script may contain Linuxisms # # This attempts to perform the different steps of the RELEASE.md # document automatically. It's not tested on other machines or # setups other than [ade]'s development VM. # # Assumes that the version in CMakeLists.txt has been bumped, # and that a release of that version is desired. # # None of the "update stuff" is done by this script; in preparation # for the release, you should have already done: # * updating the version # * pulling translations # * updating the language list # * switching to the right branch # The release can fail for various reasons: doesn't build, tests fail, # or the string freeze has been violated. # # You can influence the script a little with these options: # * `-B` do not build (before tagging) # * `-P` do not package (tag, sign, tarball) # * `-T` do not respect string freeze # * `-C ` set extra arguments to pass to CMake # # The build / package settings can be influenced via environment variables: # * BUILD_DEFAULT set to `false` to avoid first build with gcc # * BUILD_CLANG set to `false` to avoid second build with clang # * BUILD_ONLY set to `true` to break after building # ### END USAGE PROJECT_NAME=calamares-extensions # Directory to check for EXPECTED_SOURCEDIR=modules # If non-empty, set string-freeze to this regardless of -T FORCE_STRING_FREEZE=false # Run tests? MAKE_TEST=false # (prefix) of the tarball name TARBALL_PREFIX="$PROJECT_NAME" # Extra arguments to CMake CMAKE_ARGS="" test -d .git || { echo "Not at top-level." ; exit 1 ; } test -d "$EXPECTED_SOURCEDIR" || { echo "No ${EXPECTED_SOURCEDIR}." ; exit 1 ; } which cmake > /dev/null 2>&1 || { echo "No cmake(1) available." ; exit 1 ; } test -z "$BUILD_DEFAULT" && BUILD_DEFAULT=true test -z "$BUILD_CLANG" && BUILD_CLANG=true test -z "$BUILD_ONLY" && BUILD_ONLY=false STRING_FREEZE=true while getopts "hBPTC:" opt ; do case "$opt" in h|\?) sed -e '1,/USAGE/d' -e '/END.USAGE/,$d' < "$0" return 0 ;; B) BUILD_DEFAULT=false BUILD_CLANG=false ;; P) BUILD_ONLY=true ;; T) STRING_FREEZE=false ;; C) CMAKE_ARGS="$OPTARG" ;; esac done test -n "$FORCE_STRING_FREEZE" && STRING_FREEZE="$FORCE_STRING_FREEZE" if $STRING_FREEZE ; then sh ci/txcheck.sh || { echo "! String freeze failed." ; exit 1 ; } fi ### Setup # # BUILDDIR=$(mktemp -d -p . -t cala-tmp-XXXXX) ### Build with default compiler # # if test "x$BUILD_DEFAULT" = "xtrue" ; then rm -rf "$BUILDDIR" mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; } ( cd "$BUILDDIR" && cmake .. $CMAKE_ARGS && make -j4 ) || { echo "Could not perform test-build in $BUILDDIR." ; exit 1 ; } if $MAKE_TEST ; then ( cd "$BUILDDIR" && make test ) || { echo "Tests failed in $BUILDDIR ." ; exit 1 ; } fi fi ### Build with clang # # if test "x$BUILD_CLANG" = "xtrue" ; then if which clang++ > /dev/null 2>&1 ; then # Do build again with clang rm -rf "$BUILDDIR" mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; } ( cd "$BUILDDIR" && CC=clang CXX=clang++ cmake .. $CMAKE_ARGS && make -j4 ) || { echo "Could not perform test-build in $BUILDDIR." ; exit 1 ; } if $MAKE_TEST ; then ( cd "$BUILDDIR" && make test ) || { echo "Tests failed in $BUILDDIR (clang)." ; exit 1 ; } fi fi fi if test "x$BUILD_ONLY" = "xtrue" ; then echo "Builds completed, release stopped. Build remains in $BUILDDIR ." exit 1 fi if test -f "$BUILDDIR/CMakeCache.txt" ; then # Some build has created it, so that's good : else # Presumably -B was given; just do the cmake part rm -rf "$BUILDDIR" mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; } ( cd "$BUILDDIR" && cmake .. $CMAKE_ARGS ) || { echo "Could not run cmake in $BUILDDIR ." ; exit 1 ; } fi ### Get version number for this release # # V=$( cmake -DVERSION_STYLE=short -P CMakeLists.txt 2>&1 ) test -n "$V" || { echo "Could not obtain version in $BUILDDIR ." ; exit 1 ; } ### Create signed tag # # This is the signing key ID associated with the GitHub account adriaandegroot, # which is used to create all "verified" tags in the Calamares repo. # KEY_ID="328D742D8807A435" git tag -u "$KEY_ID" -m "Release v$V" "v$V" || { echo "Could not sign tag v$V." ; exit 1 ; } ### Create the tarball # # Create the tarball, compute SHA256 for later reporting, and # sign the tarball so the signature can be uploaded separately. # TAR_V="$TARBALL_PREFIX-$V" TAR_FILE="$TAR_V.tar.gz" git archive -o "$TAR_FILE" --prefix "$TAR_V/" "v$V" || { echo "Could not create tarball." ; exit 1 ; } test -f "$TAR_FILE" || { echo "Tarball was not created." ; exit 1 ; } SHA256=$(sha256sum "$TAR_FILE" | cut -d" " -f1) gpg -s -u $KEY_ID --detach --armor $TAR_FILE # Sign the tarball ### Build the tarball # # D=$(date +%Y%m%d-%H%M%S) TMPDIR=$(mktemp -d -p . -t calamares.XXXXX) test -d "$TMPDIR" || { echo "Could not create tarball-build directory." ; exit 1 ; } tar xzf "$TAR_FILE" -C "$TMPDIR" || { echo "Could not unpack tarball." ; exit 1 ; } test -d "$TMPDIR/$TAR_V" || { echo "Tarball did not contain source directory." ; exit 1 ; } ( cd "$TMPDIR/$TAR_V" && cmake . $CMAKE_ARGS && make -j4 ) || { echo "Tarball build failed in $TMPDIR ." ; exit 1 ; } if $MAKE_TEST ; then ( cd "$TMPDIR/$TAR_V" && make test ) || { echo "Tarball test failed in $TMPDIR ." ; exit 1 ; } fi ### Cleanup # rm -rf "$BUILDDIR" # From test-builds rm -rf "$TMPDIR" # From tarball ### Print subsequent instructions # # cat < # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # Do not create a backup file suffix=none indent=spaces=4 # Brackets style=break add-brackets # Spaces pad-paren-in pad-header align-pointer=type calamares-extensions-3.3.12/ci/calamaresstyle000077500000000000000000000055671471772643300213120ustar00rootroot00000000000000#!/bin/sh # # SPDX-FileCopyrightText: 2014 Aurélien Gâteau # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # # Apply Calamares-style formatting to sources. Requires clang-format-15. # # You can pass in directory names, in which case the files # in that directory (NOT below it) are processed. # # If the environment variable CLANG_FORMAT is set to a (full path) and # that path is executable, it will be used if possible. # LANG=C LC_ALL=C LC_NUMERIC=C export LANG LC_ALL LC_NUMERIC BASEDIR=$(dirname $0) TOPDIR=$( cd $BASEDIR/.. && pwd -P ) test -d "$BASEDIR" || { echo "! Could not determine base for $0" ; exit 1 ; } test -d "$TOPDIR" || { echo "! Cound not determine top-level source dir" ; exit 1 ; } test -f "$TOPDIR/.clang-format" || { echo "! No .clang-format support files in $TOPDIR" ; exit 1 ; } # Start with CLANG_FORMAT, if it is specified CF_VERSIONS="" if test -n "$CLANG_FORMAT" && test -x "$CLANG_FORMAT" ; then CF_VERSIONS="$CLANG_FORMAT" fi # And a bunch of other potential known versions of clang-format, newest first CF_VERSIONS="$CF_VERSIONS clang-format-17" CF_VERSIONS="$CF_VERSIONS clang-format-16 clang-format-16.0.6 " CF_VERSIONS="$CF_VERSIONS clang-format15 clang-format-15 " # Generic name of clang-format CF_VERSIONS="$CF_VERSIONS clang-format" for _cf in $CF_VERSIONS do # Not an error if this particular clang-format isn't found CF=$( which $_cf 2> /dev/null || true ) test -n "$CF" && break done test -n "$CF" || { echo "! No clang-format ($CF_VERSIONS) found in PATH"; exit 1 ; } test -x "$CF" || { echo "! $CF is not executable."; exit 1 ; } ### CLANG-FORMAT-WRANGLING # # Version 7 and earlier doesn't understand all the options we would like. # Version 12 handled lambdas nicely and was the norm for Calamares 3.2. # Version 13 was also ok. # Version 14 behaves differently with short-functions-in-class, # spreading functions out that 13 keeps on one line. To avoid # ping-pong commits, forbid 14. # Version 15 is available on recent-ish Ubuntus and FreeBSD, pick it. # It also supports inserting braces, which is the one thing we kept # astyle around for. # Version 16 is available on openSUSE and is ok as well. # Version 17 is available on FreeBSD and KaOS and is ok as well. format_version=`"$CF" --version | tr -dc '[^.0-9]' | cut -d . -f 1` case "$format_version" in 15|16|17 ) : ;; * ) echo "! Clang-format version '$format_version' unsupported, versions 15-17 are ok." exit 1 ;; esac ### FILE PROCESSING # # set -e any_dirs=no for d in "$@" do test -d "$d" && any_dirs=yes done style_some() { if test -n "$*" ; then $CF -i -style=file "$@" fi } if test "x$any_dirs" = "xyes" ; then for d in "$@" do if test -d "$d" ; then style_some $( find "$d" -maxdepth 1 -type f -name '*.cpp' -o -name '*.h' ) else style_some "$d" fi done else style_some "$@" fi calamares-extensions-3.3.12/modules/000077500000000000000000000000001471772643300174135ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/flatpakinfo/000077500000000000000000000000001471772643300217115ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/flatpakinfo/CMakeLists.txt000066400000000000000000000006621471772643300244550ustar00rootroot00000000000000# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # calamares_add_plugin(flatpakInfo TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES FlatpakInfoJob.h ItemFlatpak.h PackagePool.h FlatpakInfoJob.cpp ItemFlatpak.cpp PackagePool.cpp SHARED_LIB ) calamares-extensions-3.3.12/modules/flatpakinfo/FlatpakInfoJob.cpp000066400000000000000000000023221471772643300252450ustar00rootroot00000000000000/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2023 Sławomir Lach * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is Free Software: see the License-Identifier above. * */ #include "FlatpakInfoJob.h" #include "utils/Runner.h" #include "utils/Logger.h" #include "utils/Variant.h" #include "GlobalStorage.h" #include "JobQueue.h" #include "Settings.h" #include #include #include "ItemFlatpak.h" #include "PackagePool.h" FlatpakInfoJob::FlatpakInfoJob( QObject* parent ) : Calamares::CppJob( parent ) { } FlatpakInfoJob::~FlatpakInfoJob() { ItemFlatpak_freeMem(); } QString FlatpakInfoJob::prettyName() const { return tr( "Fill netinstall with flatpak packages" ); } Calamares::JobResult FlatpakInfoJob::exec() { QVariantList partitions; Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); downloadPackagesInfo(); serializePackagesInfo(); return Calamares::JobResult::ok(); } void FlatpakInfoJob::setConfigurationMap( const QVariantMap& map ) { } CALAMARES_PLUGIN_FACTORY_DEFINITION( FlatpakInfoJobFactory, registerPlugin< FlatpakInfoJob >(); ) calamares-extensions-3.3.12/modules/flatpakinfo/FlatpakInfoJob.h000066400000000000000000000016521471772643300247170ustar00rootroot00000000000000/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2023 Sławomir Lach * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is Free Software: see the License-Identifier above. * */ #ifndef FLATPAKINFOJOB_H #define FLATPAKINFOJOB_H #include #include #include #include "CppJob.h" #include "utils/PluginFactory.h" #include "DllMacro.h" /** @brief Create zpools and zfs datasets * */ class PLUGINDLLEXPORT FlatpakInfoJob : public Calamares::CppJob { Q_OBJECT public: explicit FlatpakInfoJob( QObject* parent = nullptr ); ~FlatpakInfoJob() override; QString prettyName() const override; Calamares::JobResult exec() override; void setConfigurationMap( const QVariantMap& configurationMap ) override; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( FlatpakInfoJobFactory ) #endif // ZFSJOB_H calamares-extensions-3.3.12/modules/flatpakinfo/ItemFlatpak.cpp000066400000000000000000000031701471772643300246170ustar00rootroot00000000000000/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2023 Sławomir Lach * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is Free Software: see the License-Identifier above. * */ /* Qt */ #include /* CPP */ #include #include /* Calamares */ #include "utils/Runner.h" /* Module */ #include "ItemFlatpak.h" #include "utils/Logger.h" #include "utils/Variant.h" PackageItem fromFlatpak( const QVariantMap& itemMap, InstalledList &installed ) { // check if it is installed PackageItem item( Calamares::getString( itemMap, "appstream" ) ); item.setInstalled( false ); item.setInstalled( installed.contains( Calamares::getString( itemMap, "appstream" ) ) ); return item; } InstalledList::InstalledList() { long long int prev_pos; long long int pos = 0; QString line; auto process = Calamares::System::instance()->targetEnvCommand( QStringList { QString::fromLatin1( "flatpak" ), QString::fromLatin1( "list" ), QString::fromLatin1( "--app" ), QString::fromLatin1( "--columns=application" ) } ); auto outputStr = process.second; do { prev_pos = pos; pos = outputStr.indexOf('\n', prev_pos); QString line = outputStr.mid(prev_pos, pos); installed.append(line); /* Increase by 1 to not stuck on newline */ ++pos; /* QString::indexOf returns -1 since no occurences. 0 = -1 + 1.*/ } while (0 != pos); } InstalledList::~InstalledList() { installed.clear(); } calamares-extensions-3.3.12/modules/flatpakinfo/ItemFlatpak.h000066400000000000000000000000001471772643300242510ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/flatpakinfo/PackagePool.cpp000066400000000000000000000065461471772643300246150ustar00rootroot00000000000000/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2023 Sławomir Lach * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is Free Software: see the License-Identifier above. */ #include #include #include #include #include #include #include #include #include "GlobalStorage.h" #include "JobQueue.h" #include "utils/Logger.h" #include "utils/Variant.h" #include "ItemFlatpak.h" #include "PackagePool.h" #include "utils/System.h" void PackagePool::downloadPackagesInfo(InstalledList &list) { QHash addedPackages; QString line; auto process = Calamares::System::instance()->targetEnvCommand( QStringList { QString::fromStdString( "flatpak" ), QString::fromStdString( "remotes" ), QString::fromStdString( "--columns=name" ) }); auto outputStr = process.second; QTextStream output(&outputStr); while (output.readLineInto(&line)) { QString line2; auto process2 = Calamares::System::instance()->targetEnvCommand( QStringList { QString::fromStdString( "flatpak" ), QString::fromStdString( "remote-ls" ), QString::fromStdString( "--app" ), QString::fromStdString( "--columns=application" ), line } ); auto output2Str = process2.second; QTextStream output2( &output2Str ); while ( output2.readLineInto( &line2 ) ) { if ( line2 == "" ) { continue; } QVariantMap itemMap; if ( addedPackages.contains( line2 ) ) { continue; } addedPackages.insert( line2, true ); itemMap.insert( "appstream", QVariant( line2 ) ); itemMap.insert( "id", QVariant( line2 ) ); PackageItem item = fromFlatpak( itemMap, list ); packages.append( item ); } } serializePackagesInfo(); } void PackagePool::serializePackagesInfo() { QList changedValue; auto* gs = Calamares::JobQueue::instance()->globalStorage(); // If an earlier packagechooser instance added this data to global storage, combine them if ( gs->contains( "netinstallAdd" ) ) { auto selectedOrig = gs->value( "netinstallAdd" ); changedValue = selectedOrig.toList(); for (auto current: packages) { QStringList selfInstall; QVariantMap newValue; newValue.insert("name", current.getAppStreamId()); if (current.getInstalled()) { newValue.insert("selected", true); newValue.insert("immutable", true); newValue.insert("description", "[Already installed; cannot be uninstalled]"); } else { newValue.insert("selected", false); } selfInstall.append(current.getAppStreamId()); newValue.insert("packages", selfInstall); changedValue.append(newValue); } gs->remove( "netinstallAdd" ); } gs->insert( "netinstallAdd", changedValue ); } calamares-extensions-3.3.12/modules/flatpakinfo/PackagePool.h000066400000000000000000000000001471772643300242350ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/flatpakinfo/flatpakInfo.conf000066400000000000000000000002441471772643300250160ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # # The flatpakinfo module will collect package list from configured flatpak repositories # # # --- calamares-extensions-3.3.12/modules/flatpakinfo/module.desc000066400000000000000000000002611471772643300240350ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "flatpakinfo" interface: "qtplugin" load: "libcalamares_job_flatpakInfo.so" calamares-extensions-3.3.12/modules/freebsddisk/000077500000000000000000000000001471772643300217005ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/freebsddisk/CMakeLists.txt000066400000000000000000000006071471772643300244430ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # if( NOT Calamares_WITH_QML ) calamares_skip_module( "freebsddisk (QML is not supported in this build)" ) return() endif() calamares_add_plugin( freebsddisk TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES FreeBSDDiskViewStep.cpp RESOURCES freebsddisk.qrc SHARED_LIB ) calamares-extensions-3.3.12/modules/freebsddisk/FreeBSDDiskViewStep.cpp000066400000000000000000000026741471772643300261310ustar00rootroot00000000000000/* === This file is part of Calamares - === * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Calamares 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 Calamares. If not, see . * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * License-Filename: LICENSES/GPL-3.0 */ #include "FreeBSDDiskViewStep.h" FreeBSDDiskViewStep::FreeBSDDiskViewStep( QObject* parent ) : Calamares::QmlViewStep( parent ) { } FreeBSDDiskViewStep::~FreeBSDDiskViewStep() {} QString FreeBSDDiskViewStep::prettyName() const { return tr( "Disk Setup" ); } void FreeBSDDiskViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last } CALAMARES_PLUGIN_FACTORY_DEFINITION( FreeBSDDiskViewStepFactory, registerPlugin< FreeBSDDiskViewStep >(); ) calamares-extensions-3.3.12/modules/freebsddisk/FreeBSDDiskViewStep.h000066400000000000000000000026451471772643300255740ustar00rootroot00000000000000/* === This file is part of Calamares - === * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Calamares 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 Calamares. If not, see . * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * License-Filename: LICENSES/GPL-3.0 */ #ifndef FREEBSDDISKVIEWSTEP_H #define FREEBSDDISKVIEWSTEP_H #include "DllMacro.h" #include "utils/PluginFactory.h" #include "viewpages/QmlViewStep.h" class PLUGINDLLEXPORT FreeBSDDiskViewStep : public Calamares::QmlViewStep { Q_OBJECT public: FreeBSDDiskViewStep( QObject* parent = nullptr ); virtual ~FreeBSDDiskViewStep() override; QString prettyName() const override; void setConfigurationMap( const QVariantMap& configurationMap ) override; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( FreeBSDDiskViewStepFactory ) #endif calamares-extensions-3.3.12/modules/freebsddisk/freebsddisk.conf000066400000000000000000000003701471772643300250340ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # # The *freebsddisk* module can be used to pick a disk # as an installer step. This module supports ZFSroot # on one whole disk, and UFSroot on one whole disk. # --- qmlSearch: both calamares-extensions-3.3.12/modules/freebsddisk/freebsddisk.qml000066400000000000000000000022711471772643300247020ustar00rootroot00000000000000/* === This file is part of Calamares - === * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Calamares 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 Calamares. If not, see . * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * License-Filename: LICENSES/GPL-3.0 */ import io.calamares.ui 1.0 import QtQuick 2.7 import QtQuick.Controls 2.2 import QtQuick.Window 2.2 import QtQuick.Layouts 1.3 import QtQuick.Controls.Material 2.1 Item { Text { anchors.top: parent.top anchors.topMargin: 10 text: "Select a disk on which to install FreeBSD." } } calamares-extensions-3.3.12/modules/freebsddisk/freebsddisk.qrc000066400000000000000000000001711471772643300246730ustar00rootroot00000000000000 freebsddisk.qml calamares-extensions-3.3.12/modules/mobile/000077500000000000000000000000001471772643300206625ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/mobile/CMakeLists.txt000066400000000000000000000005551471772643300234270ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2020 Oliver Smith # SPDX-License-Identifier: GPL-3.0-or-later calamares_add_plugin( mobile TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES Config.cpp MobileQmlViewStep.cpp PartitionJob.cpp UsersJob.cpp RESOURCES mobile.qrc SHARED_LIB ) calamares-extensions-3.3.12/modules/mobile/Config.cpp000066400000000000000000000164071471772643300226030ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #include "Config.h" #include "PartitionJob.h" #include "UsersJob.h" #include "ViewManager.h" #include "utils/Logger.h" #include "utils/Variant.h" #include Config::Config( QObject* parent ) : QObject( parent ) { } void Config::setConfigurationMap( const QVariantMap& cfgMap ) { using namespace Calamares; if ( getBool( cfgMap, "bogus", false ) ) { cWarning() << "Configuration key \"bogus\" is still set for *mobile*"; } m_osName = getString( cfgMap, "osName", "(unknown)" ); m_arch = getString( cfgMap, "arch", "(unknown)" ); m_device = getString( cfgMap, "device", "(unknown)" ); m_userInterface = getString( cfgMap, "userInterface", "(unknown)" ); m_version = getString( cfgMap, "version", "(unknown)" ); m_reservedUsernames = getStringList( cfgMap, "reservedUsernames", QStringList { "adm", "at ", "bin", "colord", "cron", "cyrus", "daemon", "ftp", "games", "geoclue", "guest", "halt", "lightdm", "lp", "mail", "man", "messagebus", "news", "nobody", "ntp", "operator", "polkitd", "postmaster", "pulse", "root", "shutdown", "smmsp", "squid", "sshd", "sync", "uucp", "vpopmail", "xfs" } ); // ensure m_cmdUsermod matches m_username m_username = getString( cfgMap, "username", "user" ); m_userPasswordNumeric = getBool( cfgMap, "userPasswordNumeric", true ); m_builtinVirtualKeyboard = getBool( cfgMap, "builtinVirtualKeyboard", true ); m_featureSshd = getBool( cfgMap, "featureSshd", true ); m_featureFsType = getBool( cfgMap, "featureFsType", false ); m_cmdLuksFormat = getString( cfgMap, "cmdLuksFormat", "cryptsetup luksFormat --use-random" ); m_cmdLuksOpen = getString( cfgMap, "cmdLuksOpen", "cryptsetup luksOpen" ); m_cmdMount = getString( cfgMap, "cmdMount", "mount" ); m_targetDeviceRoot = getString( cfgMap, "targetDeviceRoot", "/dev/unknown" ); m_targetDeviceRootInternal = getString( cfgMap, "targetDeviceRootInternal", "" ); m_cmdMkfsRootBtrfs = getString( cfgMap, "cmdMkfsRootBtrfs", "mkfs.btrfs -L 'unknownOS_root'" ); m_cmdMkfsRootExt4 = getString( cfgMap, "cmdMkfsRootExt4", "mkfs.ext4 -L 'unknownOS_root'" ); m_cmdMkfsRootF2fs = getString( cfgMap, "cmdMkfsRootF2fs", "mkfs.f2fs -l 'unknownOS_root'" ); m_fsList = getStringList( cfgMap, "fsModel", QStringList { "ext4", "f2fs", "btrfs" } ); m_defaultFs = getString( cfgMap, "defaultFs", "ext4" ); m_fsIndex = m_fsList.indexOf( m_defaultFs ); m_fsType = m_defaultFs; m_cmdInternalStoragePrepare = getString( cfgMap, "cmdInternalStoragePrepare", "ondev-internal-storage-prepare" ); m_cmdPasswd = getString( cfgMap, "cmdPasswd", "passwd" ); m_cmdUsermod = getString( cfgMap, "cmdUsermod", "xargs -I{} -n1 usermod -m -d /home/{} -l {} -c {} user"); m_cmdSshdEnable = getString( cfgMap, "cmdSshdEnable", "systemctl enable sshd.service" ); m_cmdSshdDisable = getString( cfgMap, "cmdSshdDisable", "systemctl disable sshd.service" ); m_cmdSshdUseradd = getString( cfgMap, "cmdSshdUseradd", "useradd -G wheel -m" ); } Calamares::JobList Config::createJobs() { QList< Calamares::job_ptr > list; QString cmdSshd = m_isSshEnabled ? m_cmdSshdEnable : m_cmdSshdDisable; /* Put users job in queue (should run after unpackfs) */ Calamares::Job* j = new UsersJob( m_featureSshd, m_cmdPasswd, m_cmdUsermod, cmdSshd, m_cmdSshdUseradd, m_isSshEnabled, m_username, m_userPassword, m_sshdUsername, m_sshdPassword ); list.append( Calamares::job_ptr( j ) ); return list; } void Config::runPartitionJobThenLeave( bool b ) { Calamares::ViewManager* v = Calamares::ViewManager::instance(); QString cmdMkfsRoot; if ( m_fsType == QStringLiteral( "btrfs" ) ) { cmdMkfsRoot = m_cmdMkfsRootBtrfs; } else if ( m_fsType == QStringLiteral( "f2fs" ) ) { cmdMkfsRoot = m_cmdMkfsRootF2fs; } else if ( m_fsType == QStringLiteral( "ext4" ) ) { cmdMkfsRoot = m_cmdMkfsRootExt4; } else { v->onInstallationFailed( "Unknown filesystem: '" + m_fsType + "'", "" ); } /* HACK: run partition job * The "mobile" module has two jobs, the partition job and the users job. * If we added both of them in Config::createJobs(), Calamares would run * them right after each other. But we need the "unpackfs" module to run * inbetween, that's why as workaround, the partition job is started here. * To solve this properly, we would need to place the partition job in an * own module and pass everything via globalstorage. But then we might as * well refactor everything so we can unify the mobile's partition job with * the proper partition job from Calamares. */ Calamares::Job* j = new PartitionJob( m_cmdInternalStoragePrepare, m_cmdLuksFormat, m_cmdLuksOpen, cmdMkfsRoot, m_cmdMount, m_targetDeviceRoot, m_targetDeviceRootInternal, m_installFromExternalToInternal, m_isFdeEnabled, m_fdePassword ); Calamares::JobResult res = j->exec(); if ( res ) { v->next(); } else { v->onInstallationFailed( res.message(), res.details() ); } } void Config::setUsername( const QString& username ) { m_username = username; emit usernameChanged( m_username ); } void Config::setUserPassword( const QString& userPassword ) { m_userPassword = userPassword; emit userPasswordChanged( m_userPassword ); } void Config::setSshdUsername( const QString& sshdUsername ) { m_sshdUsername = sshdUsername; emit sshdUsernameChanged( m_sshdUsername ); } void Config::setSshdPassword( const QString& sshdPassword ) { m_sshdPassword = sshdPassword; emit sshdPasswordChanged( m_sshdPassword ); } void Config::setIsSshEnabled( const bool isSshEnabled ) { m_isSshEnabled = isSshEnabled; } void Config::setFdePassword( const QString& fdePassword ) { m_fdePassword = fdePassword; emit fdePasswordChanged( m_fdePassword ); } void Config::setIsFdeEnabled( const bool isFdeEnabled ) { m_isFdeEnabled = isFdeEnabled; } void Config::setInstallFromExternalToInternal( const bool val ) { m_installFromExternalToInternal = val; } void Config::setFsType( int idx ) { if ( idx >= 0 && idx < m_fsList.length() ) { setFsType( m_fsList[ idx ] ); } } void Config::setFsType( const QString& fsType ) { if ( fsType != m_fsType ) { m_fsType = fsType; emit fsTypeChanged( m_fsType ); } } void Config::setFsIndex( const int fsIndex ) { m_fsIndex = fsIndex; emit fsIndexChanged( m_fsIndex ); } calamares-extensions-3.3.12/modules/mobile/Config.h000066400000000000000000000200101471772643300222310ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include "Job.h" #include #include class Config : public QObject { Q_OBJECT /* installer UI */ Q_PROPERTY( bool builtinVirtualKeyboard READ builtinVirtualKeyboard CONSTANT FINAL ) /* welcome */ Q_PROPERTY( QString osName READ osName CONSTANT FINAL ) Q_PROPERTY( QString arch READ arch CONSTANT FINAL ) Q_PROPERTY( QString device READ device CONSTANT FINAL ) Q_PROPERTY( QString userInterface READ userInterface CONSTANT FINAL ) Q_PROPERTY( QString version READ version CONSTANT FINAL ) /* reserved usernames (user_pass, ssh_credentials )*/ Q_PROPERTY( QStringList reservedUsernames READ reservedUsernames CONSTANT FINAL ) /* default user */ Q_PROPERTY( QString username READ username WRITE setUsername NOTIFY usernameChanged ) Q_PROPERTY( QString userPassword READ userPassword WRITE setUserPassword NOTIFY userPasswordChanged ) Q_PROPERTY( bool userPasswordNumeric READ userPasswordNumeric CONSTANT FINAL ) /* ssh server + credentials */ Q_PROPERTY( bool featureSshd READ featureSshd CONSTANT FINAL ) Q_PROPERTY( QString sshdUsername READ sshdUsername WRITE setSshdUsername NOTIFY sshdUsernameChanged ) Q_PROPERTY( QString sshdPassword READ sshdPassword WRITE setSshdPassword NOTIFY sshdPasswordChanged ) Q_PROPERTY( bool isSshEnabled READ isSshEnabled WRITE setIsSshEnabled ) /* full disk encryption */ Q_PROPERTY( QString fdePassword READ fdePassword WRITE setFdePassword NOTIFY fdePasswordChanged ) Q_PROPERTY( bool isFdeEnabled READ isFdeEnabled WRITE setIsFdeEnabled ) /* filesystem selection */ Q_PROPERTY( QString fsType READ fsType WRITE setFsType NOTIFY fsTypeChanged ) Q_PROPERTY( bool featureFsType READ featureFsType CONSTANT FINAL ) Q_PROPERTY( QStringList fsList READ fsList CONSTANT FINAL ) Q_PROPERTY( QString defaultFs READ defaultFs CONSTANT FINAL ) Q_PROPERTY( int fsIndex READ fsIndex WRITE setFsIndex NOTIFY fsIndexChanged ) /* partition job */ Q_PROPERTY( bool runPartitionJobThenLeave READ runPartitionJobThenLeaveDummy WRITE runPartitionJobThenLeave ) Q_PROPERTY( QString cmdInternalStoragePrepare READ cmdInternalStoragePrepare CONSTANT FINAL ) Q_PROPERTY( QString cmdLuksFormat READ cmdLuksFormat CONSTANT FINAL ) Q_PROPERTY( QString cmdLuksOpen READ cmdLuksOpen CONSTANT FINAL ) Q_PROPERTY( QString cmdMount READ cmdMount CONSTANT FINAL ) Q_PROPERTY( QString targetDeviceRoot READ targetDeviceRoot CONSTANT FINAL ) Q_PROPERTY( QString targetDeviceRootInternal READ targetDeviceRootInternal CONSTANT FINAL ) Q_PROPERTY( bool installFromExternalToInternal READ installFromExternalToInternal WRITE setInstallFromExternalToInternal ) /* users job */ Q_PROPERTY( QString cmdSshdEnable READ cmdSshdEnable CONSTANT FINAL ) Q_PROPERTY( QString cmdSshdDisable READ cmdSshdDisable CONSTANT FINAL ) public: Config( QObject* parent = nullptr ); void setConfigurationMap( const QVariantMap& ); Calamares::JobList createJobs(); /* installer UI */ bool builtinVirtualKeyboard() { return m_builtinVirtualKeyboard; } /* welcome */ QString osName() const { return m_osName; } QString arch() const { return m_arch; } QString device() const { return m_device; } QString userInterface() const { return m_userInterface; } QString version() const { return m_version; } /* reserved usernames (user_pass, ssh_credentials) */ QStringList reservedUsernames() const { return m_reservedUsernames; }; /* user */ QString username() const { return m_username; } QString userPassword() const { return m_userPassword; } void setUsername( const QString& username ); void setUserPassword( const QString& userPassword ); bool userPasswordNumeric() const { return m_userPasswordNumeric; } /* ssh server + credentials */ bool featureSshd() { return m_featureSshd; } QString sshdUsername() const { return m_sshdUsername; } QString sshdPassword() const { return m_sshdPassword; } bool isSshEnabled() { return m_isSshEnabled; } void setSshdUsername( const QString& sshdUsername ); void setSshdPassword( const QString& sshdPassword ); void setIsSshEnabled( bool isSshEnabled ); /* full disk encryption */ QString fdePassword() const { return m_fdePassword; } bool isFdeEnabled() { return m_isFdeEnabled; } void setFdePassword( const QString& fdePassword ); void setIsFdeEnabled( bool isFdeEnabled ); /* filesystem selection */ bool featureFsType() { return m_featureFsType; }; QString fsType() const { return m_fsType; }; void setFsType( int idx ); void setFsType( const QString& fsType ); QStringList fsList() const { return m_fsList; }; int fsIndex() const { return m_fsIndex; }; void setFsIndex( const int fsIndex ); QString defaultFs() const { return m_defaultFs; }; /* partition job */ bool runPartitionJobThenLeaveDummy() { return 0; } void runPartitionJobThenLeave( bool b ); QString cmdInternalStoragePrepare() const { return m_cmdInternalStoragePrepare; } QString cmdLuksFormat() const { return m_cmdLuksFormat; } QString cmdLuksOpen() const { return m_cmdLuksOpen; } QString cmdMkfsRootBtrfs() const { return m_cmdMkfsRootBtrfs; } QString cmdMkfsRootExt4() const { return m_cmdMkfsRootExt4; } QString cmdMkfsRootF2fs() const { return m_cmdMkfsRootF2fs; } QString cmdMount() const { return m_cmdMount; } QString targetDeviceRoot() const { return m_targetDeviceRoot; } QString targetDeviceRootInternal() const { return m_targetDeviceRootInternal; } bool installFromExternalToInternal() { return m_installFromExternalToInternal; } void setInstallFromExternalToInternal( const bool val ); /* users job */ QString cmdPasswd() const { return m_cmdPasswd; } QString cmdUsermod() const { return m_cmdUsermod; } QString cmdSshdEnable() const { return m_cmdSshdEnable; } QString cmdSshdDisable() const { return m_cmdSshdDisable; } QString cmdSshdUseradd() const { return m_cmdSshdUseradd; } private: /* installer UI */ bool m_builtinVirtualKeyboard; /* welcome */ QString m_osName; QString m_arch; QString m_device; QString m_userInterface; QString m_version; /* reserved usernames (user_pass, ssh_credentials) */ QStringList m_reservedUsernames; /* default user */ QString m_username; QString m_userPassword; bool m_userPasswordNumeric; /* ssh server + credentials */ bool m_featureSshd = false; QString m_sshdUsername; QString m_sshdPassword; bool m_isSshEnabled = false; /* full disk encryption */ QString m_fdePassword; bool m_isFdeEnabled = false; /* filesystem selection */ bool m_featureFsType = false; QString m_defaultFs; QString m_fsType; // Index of the currently selected filesystem in UI. int m_fsIndex = -1; QStringList m_fsList; /* partition job */ QString m_cmdInternalStoragePrepare; QString m_cmdLuksFormat; QString m_cmdLuksOpen; QString m_cmdMkfsRootBtrfs; QString m_cmdMkfsRootExt4; QString m_cmdMkfsRootF2fs; QString m_cmdMount; QString m_targetDeviceRoot; QString m_targetDeviceRootInternal; bool m_installFromExternalToInternal = false; /* users job */ QString m_cmdPasswd; QString m_cmdUsermod; QString m_cmdSshdEnable; QString m_cmdSshdDisable; QString m_cmdSshdUseradd; signals: /* booleans we don't read from QML (like isSshEnabled) don't need a signal */ /* default user */ void userPasswordChanged( QString userPassword ); void usernameChanged( QString username ); /* ssh server + credentials */ void sshdUsernameChanged( QString sshdUsername ); void sshdPasswordChanged( QString sshdPassword ); /* full disk encryption */ void fdePasswordChanged( QString fdePassword ); void fsTypeChanged( QString fsType ); void fsIndexChanged( int fsIndex ); }; calamares-extensions-3.3.12/modules/mobile/MobileQmlViewStep.cpp000066400000000000000000000024441471772643300247420ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #include "MobileQmlViewStep.h" #include "Branding.h" #include "GlobalStorage.h" #include "locale/TranslationsModel.h" #include "modulesystem/ModuleManager.h" #include "utils/Dirs.h" #include "utils/Logger.h" #include "utils/Variant.h" #include CALAMARES_PLUGIN_FACTORY_DEFINITION( MobileQmlViewStepFactory, registerPlugin< MobileQmlViewStep >(); ) void MobileQmlViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { m_config->setConfigurationMap( configurationMap ); Calamares::QmlViewStep::setConfigurationMap( configurationMap ); } MobileQmlViewStep::MobileQmlViewStep( QObject* parent ) : Calamares::QmlViewStep( parent ) , m_config( new Config( this ) ) { } void MobileQmlViewStep::onLeave() { return; } bool MobileQmlViewStep::isNextEnabled() const { return false; } bool MobileQmlViewStep::isBackEnabled() const { return false; } bool MobileQmlViewStep::isAtBeginning() const { return true; } bool MobileQmlViewStep::isAtEnd() const { return true; } Calamares::JobList MobileQmlViewStep::jobs() const { return m_config->createJobs(); } QObject* MobileQmlViewStep::getConfig() { return m_config; } calamares-extensions-3.3.12/modules/mobile/MobileQmlViewStep.h000066400000000000000000000017351471772643300244110ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #ifndef PARTITION_QMLVIEWSTEP_H #define PARTITION_QMLVIEWSTEP_H #include "Config.h" #include "utils/PluginFactory.h" #include "viewpages/QmlViewStep.h" #include #include #include class PLUGINDLLEXPORT MobileQmlViewStep : public Calamares::QmlViewStep { Q_OBJECT public: explicit MobileQmlViewStep( QObject* parent = nullptr ); bool isNextEnabled() const override; bool isBackEnabled() const override; bool isAtBeginning() const override; bool isAtEnd() const override; Calamares::JobList jobs() const override; void setConfigurationMap( const QVariantMap& configurationMap ) override; void onLeave() override; QObject* getConfig() override; private: Config* m_config; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( MobileQmlViewStepFactory ) #endif // PARTITION_QMLVIEWSTEP_H calamares-extensions-3.3.12/modules/mobile/PartitionJob.cpp000066400000000000000000000107701471772643300237770ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #include "PartitionJob.h" #include "GlobalStorage.h" #include "JobQueue.h" #include "Settings.h" #include "utils/System.h" #include "utils/Logger.h" #include #include PartitionJob::PartitionJob( const QString& cmdInternalStoragePrepare, const QString& cmdLuksFormat, const QString& cmdLuksOpen, const QString& cmdMkfsRoot, const QString& cmdMount, const QString& targetDeviceRoot, const QString& targetDeviceRootInternal, bool installFromExternalToInternal, bool isFdeEnabled, const QString& password ) : Calamares::Job() , m_cmdInternalStoragePrepare( cmdInternalStoragePrepare ) , m_cmdLuksFormat( cmdLuksFormat ) , m_cmdLuksOpen( cmdLuksOpen ) , m_cmdMkfsRoot( cmdMkfsRoot ) , m_cmdMount( cmdMount ) , m_targetDeviceRoot( targetDeviceRoot ) , m_targetDeviceRootInternal( targetDeviceRootInternal ) , m_installFromExternalToInternal( installFromExternalToInternal ) , m_isFdeEnabled( isFdeEnabled ) , m_password( password ) { } QString PartitionJob::prettyName() const { return "Creating and formatting installation partition"; } /* Fill the "global storage", so the following jobs (like unsquashfs) work. The code is similar to modules/partition/jobs/FillGlobalStorageJob.cpp in Calamares. */ void FillGlobalStorage( const QString device, const QString pathMount ) { using namespace Calamares; GlobalStorage* gs = JobQueue::instance()->globalStorage(); QVariantList partitions; QVariantMap partition; /* See mapForPartition() in FillGlobalStorageJob.cpp */ partition[ "device" ] = device; partition[ "mountPoint" ] = "/"; partition[ "claimed" ] = true; /* Ignored by calamares modules used in combination with the "mobile" * module, so we can get away with leaving them empty for now. */ partition[ "uuid" ] = ""; partition[ "fsName" ] = ""; partition[ "fs" ] = ""; partitions << partition; gs->insert( "partitions", partitions ); gs->insert( "rootMountPoint", pathMount ); } Calamares::JobResult PartitionJob::exec() { using namespace Calamares; using namespace Calamares; using namespace std; const QString pathMount = "/mnt/install"; const QString cryptName = "calamares_crypt"; QString cryptDev = "/dev/mapper/" + cryptName; QString passwordStdin = m_password + "\n"; QString dev = m_targetDeviceRoot; QList< QPair< QStringList, QString > > commands = {}; if ( m_installFromExternalToInternal ) { dev = m_targetDeviceRootInternal; commands.append( { { { "sh", "-c", m_cmdInternalStoragePrepare }, QString() }, } ); } commands.append( { { { "mkdir", "-p", pathMount }, QString() } } ); if ( m_isFdeEnabled ) { commands.append( { { { "sh", "-c", m_cmdLuksFormat + " " + dev }, passwordStdin }, { { "sh", "-c", m_cmdLuksOpen + " " + dev + " " + cryptName }, passwordStdin }, { { "sh", "-c", m_cmdMkfsRoot + " " + cryptDev }, QString() }, { { "sh", "-c", m_cmdMount + " " + cryptDev + " " + pathMount }, QString() }, } ); } else { commands.append( { { { "sh", "-c", m_cmdMkfsRoot + " " + dev }, QString() }, { { "sh", "-c", m_cmdMount + " " + dev + " " + pathMount }, QString() } } ); } foreach ( auto command, commands ) { const QStringList args = command.first; const QString stdInput = command.second; const QString pathRoot = "/"; ProcessResult res = System::runCommand( System::RunLocation::RunInHost, args, pathRoot, stdInput, chrono::seconds( 600 ) ); if ( res.getExitCode() ) { return JobResult::error( "Command failed:

" "'" + args.join( " " ) + "'

" " with output:

" "'" + res.getOutput() + "'" ); } } FillGlobalStorage( m_isFdeEnabled ? cryptDev : dev, pathMount ); return JobResult::ok(); } calamares-extensions-3.3.12/modules/mobile/PartitionJob.h000066400000000000000000000022071471772643300234400ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include "Job.h" class PartitionJob : public Calamares::Job { Q_OBJECT public: PartitionJob( const QString& cmdInternalStoragePrepare, const QString& cmdLuksFormat, const QString& cmdLuksOpen, const QString& cmdMkfsRoot, const QString& cmdMount, const QString& targetDeviceRoot, const QString& targetDeviceRootInternal, bool installFromExternalToInternal, bool isFdeEnabled, const QString& password ); QString prettyName() const override; Calamares::JobResult exec() override; Calamares::JobList createJobs(); private: QString m_cmdInternalStoragePrepare; QString m_cmdLuksFormat; QString m_cmdLuksOpen; QString m_cmdMkfsRoot; QString m_cmdMount; QString m_targetDeviceRoot; QString m_targetDeviceRootInternal; bool m_installFromExternalToInternal; bool m_isFdeEnabled; QString m_password; }; calamares-extensions-3.3.12/modules/mobile/UsersJob.cpp000066400000000000000000000053621471772643300231300ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #include "UsersJob.h" #include "GlobalStorage.h" #include "JobQueue.h" #include "Settings.h" #include "utils/System.h" #include "utils/Logger.h" #include #include UsersJob::UsersJob( bool featureSshd, const QString& cmdPasswd, const QString& cmdUsermod, const QString& cmdSshd, const QString& cmdSshdUseradd, bool isSshEnabled, const QString& username, const QString& password, const QString& sshdUsername, const QString& sshdPassword ) : Calamares::Job() , m_featureSshd( featureSshd ) , m_cmdPasswd( cmdPasswd ) , m_cmdUsermod( cmdUsermod ) , m_cmdSshd( cmdSshd ) , m_cmdSshdUseradd( cmdSshdUseradd ) , m_isSshEnabled( isSshEnabled ) , m_username( username ) , m_password( password ) , m_sshdUsername( sshdUsername ) , m_sshdPassword( sshdPassword ) { } QString UsersJob::prettyName() const { return "Configuring users"; } Calamares::JobResult UsersJob::exec() { using namespace Calamares; using namespace Calamares; using namespace std; QList< QPair< QStringList, QString > > commands = { { { "sh", "-c", m_cmdUsermod }, m_username + "\n" } }; commands.append( { { "sh", "-c", m_cmdPasswd + " " + m_username }, m_password + "\n" + m_password + "\n" } ); if ( m_featureSshd ) { commands.append( { { "sh", "-c", m_cmdSshd }, QString() } ); if ( m_isSshEnabled ) { commands.append( { { "sh", "-c", m_cmdSshdUseradd + " " + m_sshdUsername }, QString() } ); commands.append( { { "sh", "-c", m_cmdPasswd + " " + m_sshdUsername }, m_sshdPassword + "\n" + m_sshdPassword + "\n" } ); } } foreach ( auto command, commands ) { auto location = System::RunLocation::RunInTarget; const QString pathRoot = "/"; const QStringList args = command.first; const QString stdInput = command.second; ProcessResult res = System::runCommand( location, args, pathRoot, stdInput, chrono::seconds( 30 ) ); if ( res.getExitCode() ) { return JobResult::error( "Command failed:

" "'" + args.join( " " ) + "'

" " with output:

" "'" + res.getOutput() + "'" ); } } return JobResult::ok(); } calamares-extensions-3.3.12/modules/mobile/UsersJob.h000066400000000000000000000017571471772643300226010ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ #pragma once #include "Job.h" class UsersJob : public Calamares::Job { Q_OBJECT public: UsersJob( bool featureSshd, const QString& cmdPasswd, const QString& cmdUsermod, const QString& cmdSshd, const QString& cmdSshdUseradd, bool isSshEnabled, const QString& username, const QString& password, const QString& sshdUsername, const QString& sshdPassword ); QString prettyName() const override; Calamares::JobResult exec() override; Calamares::JobList createJobs(); private: bool m_featureSshd; QString m_cmdPasswd; QString m_cmdUsermod; QString m_cmdSshd; QString m_cmdSshdUseradd; bool m_isSshEnabled; QString m_username; QString m_password; QString m_sshdUsername; QString m_sshdPassword; }; calamares-extensions-3.3.12/modules/mobile/fde_confirm.qml000066400000000000000000000034201471772643300236470ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Text { id: mainText anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 wrapMode: Text.WordWrap text: "To protect your data in case your device gets stolen," + " it is recommended to enable full disk encryption.
" + "
" + "If you enable full disk encryption, you will be asked for" + " a password. Without this password, it is not possible to" + " boot your device or access any data on it. Make sure that" + " you don't lose this password!" width: 200 } Button { id: firstButton anchors.horizontalCenter: parent.horizontalCenter anchors.top: mainText.bottom anchors.topMargin: 10 width: 200 text: qsTr("Enable") onClicked: { config.isFdeEnabled = true; navNext(); } } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: firstButton.bottom anchors.topMargin: 10 width: 200 text: qsTr("Disable") onClicked: { config.isFdeEnabled = false; navNextFeature(); } } } calamares-extensions-3.3.12/modules/mobile/fde_pass.qml000066400000000000000000000042501471772643300231620ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height TextField { id: password anchors.top: parent.top placeholderText: qsTr("Password") inputMethodHints: Qt.ImhPreferLowercase echoMode: TextInput.Password onTextChanged: validatePassword(password, passwordRepeat, errorText) text: config.fdePassword onActiveFocusChanged: { if(activeFocus) { Qt.inputMethod.update(Qt.ImQueryInput); } } anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 50 width: 200 } TextField { id: passwordRepeat anchors.top: password.bottom placeholderText: qsTr("Password (repeat)") echoMode: TextInput.Password onTextChanged: validatePassword(password, passwordRepeat, errorText) text: config.fdePassword anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 10 width: 200 } Text { id: errorText anchors.top: passwordRepeat.bottom visible: false anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 10 width: 200 wrapMode: Text.WordWrap } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: errorText.bottom anchors.topMargin: 10 width: 200 text: qsTr("Continue") onClicked: { if (validatePassword(password, passwordRepeat, errorText)) { config.fdePassword = password.text; navNext(); } } } } calamares-extensions-3.3.12/modules/mobile/fs_selection.qml000066400000000000000000000031521471772643300240530ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Undef * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Text { id: mainText anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 wrapMode: Text.WordWrap text: "Select the filesystem for root partition. If unsure, leave the default." width: 200 } ComboBox { id: fsTypeCB anchors.horizontalCenter: parent.horizontalCenter anchors.top: mainText.bottom anchors.topMargin: 10 width: 150 height: 30 editable: false model: config.fsList /* Save the current state on selection so it is there when the back button is pressed */ onActivated: config.fsType = fsTypeCB.currentText; Component.onCompleted: fsTypeCB.currentIndex = find( config.fsType, Qt.MatchContains ); } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: fsTypeCB.bottom anchors.topMargin: 10 width: 200 text: qsTr("Continue") onClicked: { config.fsType = fsTypeCB.currentText; navNextFeature(); } } } calamares-extensions-3.3.12/modules/mobile/install_confirm.qml000066400000000000000000000034771471772643300245730ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Text { id: mainText anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 wrapMode: Text.WordWrap text: (function() { var ret = "Once you hit 'install', the installation will begin." + " It will typically take a few minutes. Do not power off the" + " device until it is done.
"; if (config.installFromExternalToInternal) { ret += "After the installation, your device will shutdown" + " automatically. You must remove the external storage" + " (SD card) before booting again." + "

" + "Otherwise, your device will boot into the installer" + " again, and not into the installed system." } else { ret += "Afterwards, it will reboot into the installed system."; } return ret; }()) width: 200 } Button { id: firstButton anchors.horizontalCenter: parent.horizontalCenter anchors.top: mainText.bottom anchors.topMargin: 10 width: 200 text: qsTr("Install") onClicked: navFinish() } } calamares-extensions-3.3.12/modules/mobile/install_target.qml000066400000000000000000000033431471772643300244140ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Text { id: mainText anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 wrapMode: Text.WordWrap text: "The installation was started from an external storage medium." + "
" + "You can either install to the same medium and overwrite the" + " installer, or install to the internal storage.
" + "
" + "Where would you like to install " + config.osName + "?" width: 200 } Button { id: firstButton anchors.horizontalCenter: parent.horizontalCenter anchors.top: mainText.bottom anchors.topMargin: 10 width: 200 text: qsTr("Internal (eMMC)") onClicked: { config.installFromExternalToInternal = true; navNext(); } } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: firstButton.bottom anchors.topMargin: 10 width: 200 text: qsTr("External (SD card)") onClicked: { config.installFromExternalToInternal = false; navNextFeature(); } } } calamares-extensions-3.3.12/modules/mobile/install_target_confirm.qml000066400000000000000000000026161471772643300261330ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Text { id: mainText anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 wrapMode: Text.WordWrap text: "Are you sure that you want to overwrite the internal storage?" + "

" + "All existing data on the device will be lost!" width: 200 } Button { id: firstButton anchors.horizontalCenter: parent.horizontalCenter anchors.top: mainText.bottom anchors.topMargin: 10 width: 200 text: qsTr("Yes") onClicked: { navNext(); } } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: firstButton.bottom anchors.topMargin: 10 width: 200 text: qsTr("No") onClicked: { navBack(); } } } calamares-extensions-3.3.12/modules/mobile/mobile.conf000066400000000000000000000121301471772643300227750ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # # Commented out values are defaults. # All commands are running with 'sh -c'. --- # This entry exists only to keep the tests happy, remove it in # any production configuration. bogus: true ####### ### Target OS information ####### ## Operating System Name # osName: "(unknown)" ## User Interface name (e.g. Plasma Mobile) # userInterface: "(unknown)" ## User Interface assumes that the password is numeric (as of writing, this is ## the case with Plasma Mobile and Phosh) # userPasswordNumeric: true ## OS version # version: "(unknown)" ## Default username (for which the password will be set) ## Ensure also cmdUsermod command matches the default user, so it can be changed if desired. # username: "user" ## reserved usernames (for user_pass username prompt and ssh_credentials) # reservedUsernames: # - adm # - at # - bin # - colord # - cron # - cyrus # - daemon # - ftp # - games # - geoclue # - guest # - halt # - lightdm # - lp # - mail # - man # - messagebus # - news # - nobody # - ntp # - operator # - polkitd # - postmaster # - pulse # - root # - shutdown # - smmsp # - squid # - sshd # - sync # - uucp # - vpopmail # - xfs ####### ### Target device information ####### ## Architecture (e.g. aarch64) # arch: "(unknown)" ## Name of the device (e.g. PinePhone) # device: "(unknown)" ## Partition that will be formatted and mounted (optionally with FDE) for the ## rootfs # targetDeviceRoot: "/dev/unknown" ## Partition that will be formatted and mounted (optionally with FDE) for the ## rootfs, on internal storage. The installer OS must not set this, if it was ## booted from the internal storage (this is not checked in the mobile ## module!). ## If this is set, the user gets asked whether they want to install on internal ## or external storage. If the user chose internal storage, ## cmdInternalStoragePrepare (see below) runs before this partition gets ## formatted (see below). A note is displayed, that the device is powered off ## after installation and that the user should remove the external storage ## medium. So you need to adjust the installer OS to poweroff in that case, and ## not reboot. See postmarketos-ondev.git for reference. # targetDeviceRootInternal: "" ###### ### Installer Features ###### ## Ask whether sshd should be enabled or not. If enabled, add a dedicated ssh ## user with proper username and password and suggest to change to key-based ## authentication after installation. # featureSshd: true ## Ask the user, which filesystem to use. # featureFsType: false ## Filesystems that the user can choose from. #fsModel: # - ext4 # - f2fs # - btrfs ## Default filesystem to display in the dialog. If featureFsType is disabled, ## this gets used without asking the user. # defaultFs: ext4 ## Start Qt's virtual keyboard within the mobile module. Disable if you bring ## your own virtual keyboard (e.g. svkbd). # builtinVirtualKeyboard: true ####### ### Commands running in the installer OS ####### ## Format the target partition with LUKS ## Arguments: ## Stdin: password with \n # cmdLuksFormat: "cryptsetup luksFormat --use-random" ## Open the formatted partition ## Arguments: ## Stdin: password with \n # cmdLuksOpen: "cryptsetup luksOpen" ## Format the rootfs with a file system ## Arguments: ## Btrfs: to allow snapshots to work on the root subvolume, it is recommended that this ## command be a script which will create a subvolume and make it default ## An example can be found at: ## https://gitlab.com/mobian1/calamares-settings-mobian/-/merge_requests/2/diffs#diff-content-dde34f5f1c89e3dea63608c553bbc452dedf428f # cmdMkfsRootBtrfs: "mkfs.btrfs -L 'unknownOS_root'" # cmdMkfsRootExt4: "mkfs.ext4 -L 'unknownOS_root'" # cmdMkfsRootF2fs: "mkfs.f2fs -l 'unknownOS_root'" ## Mount the partition after formatting with file system ## Arguments: # cmdMount: "mount" ## When user selects installation from external storage to internal storage ## (see targetDeviceRootInternal above), use this command to prepare the ## internal storage medium. The command must create a partition table with ## two partitions (boot, root) and fill the boot partition. See the ## ondev-internal-storage-prepare.sh in postmarketos-ondev as example. # cmdInternalStoragePrepare: "ondev-internal-storage-prepare" ####### ### Commands running in the target OS (chroot) ####### ## Change the username for the default user ## Stdin: username with \n # cmdUsermod: "xargs -I{} -n1 usermod -m -d /home/{} -l {} -c {} user" ## Set the password for default user and sshd user ## Arguments: ## Stdin: password twice, each time with \n # cmdPasswd: "passwd" ## Enable or disable sshd # cmdSshdEnable: "systemctl enable sshd.service" # cmdSshdDisable: "systemctl disable sshd.service" ## Create the user for sshd ## Arguments: # cmdSshdUseradd: "useradd -G wheel -m" calamares-extensions-3.3.12/modules/mobile/mobile.qml000066400000000000000000000335311471772643300226510ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Page { property var screen: "welcome" property var screenPrevious: [] property var titles: { "welcome": null, /* titlebar disabled */ "install_target": "Installation target", "install_target_confirm": "Warning", "user_pass": "User password", "ssh_confirm": "SSH server", "ssh_credentials": "SSH credentials", "fs_selection": "Root filesystem", "fde_confirm": "Full disk encryption", "fde_pass": "Full disk encryption", "install_confirm": "Ready to install", "wait": null } property var features: [ {"name": "welcome", "screens": ["welcome"]}, {"name": "installTarget", "screens": ["install_target", "install_target_confirm"]}, {"name": "userPassword", "screens": ["user_pass"]}, {"name": "sshd", "screens": ["ssh_confirm", "ssh_credentials"]}, {"name": "fsType", "screens": ["fs_selection"]}, {"name": "fde", "screens": ["fde_confirm", "fde_pass"]}, {"name": "installConfirm", "screens": ["install_confirm", "wait"]} ] property var featureIdByScreen: (function() { /* Put "features" above into an index of screen name -> feature id: * featureIdByScreen = {"welcome": 0, "user_pass": 1, ...} */ var ret = {}; for (var i=0; i=[]" + /* bottom row */ " ." Item { id: appContainer anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right anchors.bottom: inputPanel.top Item { width: parent.width height: parent.height Rectangle { id: mobileNavigation width: parent.width height: 30 color: "#e6e4e1" Layout.fillWidth: true border.width: 1 border.color: "#a7a7a7" anchors.left: parent.left anchors.right: parent.right RowLayout { width: parent.width height: parent.height spacing: 6 Button { Layout.leftMargin: 6 id: mobileBack text: "<" background: Rectangle { implicitWidth: 10 implicitHeight: 7 border.color: "#c1bab5" border.width: 1 radius: 4 color: mobileBack.down ? "#dbdbdb" : "#f2f2f2" } onClicked: navBack() } Rectangle { implicitHeight: 10 Layout.fillWidth: true color: "#e6e4e1" Text { id: mobileTitle text: "" color: "#303638" anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter } } Rectangle { color: "#e6e4e1" Layout.rightMargin: 6 implicitWidth: 32 implicitHeight: 30 id: filler } } } Loader { id: load anchors.left: parent.left anchors.top: mobileNavigation.bottom anchors.right: parent.right } } } InputPanel { id: inputPanel y: Qt.inputMethod.visible ? parent.height - inputPanel.height : parent.height visible: config.builtinVirtualKeyboard anchors.left: parent.left anchors.right: parent.right } Timer { id: timer } function skipFeatureInstallTarget() { return config.targetDeviceRootInternal == ""; } /* Navigation related */ function navTo(name, historyPush=true) { console.log("Navigating to screen: " + name); if (historyPush) screenPrevious.push(screen); screen = name; load.source = name + ".qml"; mobileNavigation.visible = (titles[name] !== null); mobileTitle.text = "" + titles[name] + ""; Qt.inputMethod.hide(); } function navFinish() { /* Show a waiting screen and wait a second (so it can render). The big * comment in Config.cpp::runPartitionJobThenLeave() explains why this * is necessary. */ navTo("wait"); timer.interval = 1000; timer.repeat = false; timer.triggered.connect(function() { /* Trigger Config.cpp::runPartitionJobThenLeave(). (We could expose * the function directly with qmlRegisterSingletonType somehow, but * I haven't seen existing Calamares code do that with the Config * object, so just use the side effect of setting the variable, as * done in existing code of Calamares modules.) */ config.runPartitionJobThenLeave = 1 }); timer.start(); } function navNextFeature() { var id; /* Skip disabled features */ for (id = featureIdByScreen[screen] + 1; id < features.length; id++) { /* First letter uppercase */ var name = features[id]["name"]; var nameUp = name.charAt(0).toUpperCase() + name.slice(1); /* Check config.Feature */ var configOption = "feature" + nameUp; if (config[configOption] === false) { console.log("Skipping feature (disabled in config): " + name); continue; } /* Check skipFeature() */ var funcName = "skipFeature" + nameUp; if (eval("typeof " + funcName) === "function" && eval(funcName + "()")) { console.log("Skipping feature (skip function): " + name); continue; } break; } console.log("Navigating to feature: " + features[id]["name"]); return navTo(features[id]["screens"][0]); } function navNext() { var featureId = featureIdByScreen[screen]; var featureScreens = features[featureId]["screens"]; for (var i = 0; i" + " underscores or minus signs."); } else { if (!name[i].match(/^[a-z_]$/)) return validationFailure(errorText, "First character must be a" + " lowercase letter or an" + " underscore."); } } /* Validate against reserved usernames */ for (var i = 0; i < reserved.length; i++) { if (name == reserved[i]) return validationFailure(errorText, "Username '" + reserved[i] + "' is reserved."); } /* Passed */ return validationFailureClear(errorText); } function validateSshdUsername(username, errorText) { return validateUsername(username, errorText, [config.username]); } function validateSshdPassword(password, passwordRepeat, errorText) { var pass = password.text; var repeat = passwordRepeat.text; if (pass == "") return validationFailure(errorText); if (pass.length < 6) return validationFailure(errorText, "Too short: needs at least 6" + " digits/characters."); if (repeat == "") return validationFailure(errorText); if (pass != repeat) return validationFailure(errorText, "Passwords don't match."); return validationFailureClear(errorText); } function check_chars(input) { for (var i = 0; i < input.length; i++) { if (allowed_chars.indexOf(input[i]) == -1) return false; } return true; } function allowed_chars_multiline() { /* return allowed_chars split across multiple lines */ var step = 20; var ret = ""; for (var i = 0; i < allowed_chars.length + step; i += step) ret += allowed_chars.slice(i, i + step) + "\n"; return ret.trim(); } function validatePassword(password, passwordRepeat, errorText) { var pass = password.text; var repeat = passwordRepeat.text; if (pass == "") return validationFailure(errorText); /* This function gets called for the FDE password and for the user * password. As of writing, all distributions shipping the mobile * module are using osk-sdl to type in the FDE password after the * installation, and another keyboard after booting up, to type in the * user password. The osk-sdl password has the same keys as * squeekboard's default layout, and other keyboards should be able to * type these characters in as well. For now, verify that the password * only contains characters that can be typed in by osk-sdl. If you * need this to be more sophisticated, feel free to submit patches to * make this more configurable. */ if (!check_chars(pass)) return validationFailure(errorText, "The password must only contain" + " these characters, others can possibly" + " not be typed in after installation:\n" + "\n" + allowed_chars_multiline()); if (pass.length < 6) return validationFailure(errorText, "Too short: needs at least 6" + " digits/characters."); if (repeat == "") return validationFailure(errorText); if (pass != repeat) return validationFailure(errorText, "Passwords don't match."); return validationFailureClear(errorText); } } calamares-extensions-3.3.12/modules/mobile/mobile.qrc000066400000000000000000000014531471772643300226430ustar00rootroot00000000000000 mobile.qml welcome.qml install_target.qml install_target_confirm.qml user_pass.qml ssh_confirm.qml ssh_credentials.qml fs_selection.qml fde_confirm.qml fde_pass.qml install_confirm.qml wait.qml calamares-extensions-3.3.12/modules/mobile/ssh_confirm.qml000066400000000000000000000036261471772643300237160ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Text { id: mainText anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 30 wrapMode: Text.WordWrap text: "If you don't know what SSH is, choose 'disable'.
" + "
" + "With 'enable', you will be asked for a second username and" + " password. You will be able to login to the SSH server with" + " these credentials via USB (172.16.42.1), Wi-Fi and possibly" + " cellular network. It is recommended to replace the password" + " with an SSH key after the installation.
" + "
" + "More information:
" + "https://postmarketos.org/ssh" width: 200 } Button { id: firstButton anchors.horizontalCenter: parent.horizontalCenter anchors.top: mainText.bottom anchors.topMargin: 40 width: 200 text: qsTr("Enable") onClicked: { config.isSshEnabled = true; navNext(); } } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: firstButton.bottom anchors.topMargin: 40 width: 200 text: qsTr("Disable") onClicked: { config.isSshEnabled = false; navNextFeature(); } } } calamares-extensions-3.3.12/modules/mobile/ssh_credentials.qml000066400000000000000000000057431471772643300245600ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height TextField { id: username anchors.top: parent.top placeholderText: qsTr("SSH username") inputMethodHints: Qt.ImhPreferLowercase onTextChanged: validateSshdUsername(username, errorTextUsername) text: config.sshdUsername onActiveFocusChanged: { if(activeFocus) { Qt.inputMethod.update(Qt.ImQueryInput); } } anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 50 width: 200 } Text { id: errorTextUsername anchors.top: username.bottom visible: false wrapMode: Text.WordWrap anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 50 width: 200 } TextField { id: password anchors.top: errorTextUsername.bottom placeholderText: qsTr("SSH password") echoMode: TextInput.Password onTextChanged: validateSshdPassword(password, passwordRepeat, errorTextPassword) text: config.sshdPassword anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 50 width: 200 } TextField { id: passwordRepeat anchors.top: password.bottom placeholderText: qsTr("SSH password (repeat)") echoMode: TextInput.Password onTextChanged: validateSshdPassword(password, passwordRepeat, errorTextPassword) text: config.sshdPassword anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 50 width: 200 } Text { id: errorTextPassword anchors.top: passwordRepeat.bottom visible: false wrapMode: Text.WordWrap anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 50 width: 200 } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: errorTextPassword.bottom anchors.topMargin: 40 width: 200 text: qsTr("Continue") onClicked: { if (validateSshdUsername(username, errorTextUsername) && validateSshdPassword(password, passwordRepeat, errorTextPassword)) { config.sshdUsername = username.text; config.sshdPassword = password.text; navNext(); } } } } calamares-extensions-3.3.12/modules/mobile/user_pass.qml000066400000000000000000000103561471772643300234060ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Item { property var passPlaceholder: (config.userPasswordNumeric ? "PIN" : "Password") property var hints: (config.userPasswordNumeric ? Qt.ImhDigitsOnly : Qt.ImhPreferLowercase) property var validatePassFunc: (config.userPasswordNumeric ? validatePin : validatePassword); property var validateNameFunc: validateUsername; anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Text { id: usernameDescription anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 wrapMode: Text.WordWrap text: (function() { return "Set the username of your user. The default" + " username is \"" + config.username + "\"."; }()) width: 200 } TextField { id: username anchors.top: usernameDescription.bottom placeholderText: qsTr("Username") onTextChanged: validateNameFunc(username, errorText) text: config.username anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 10 width: 200 } Text { id: userPassDescription anchors.horizontalCenter: parent.horizontalCenter anchors.top: username.bottom anchors.topMargin: 10 wrapMode: Text.WordWrap text: (function() { if (config.userPasswordNumeric) { return "Set the numeric password of your user. The" + " lockscreen will ask for this PIN. This is" + " not the PIN of your SIM card. Make sure to" + " remember it."; } else { return "Set the password of your user. The lockscreen will" + " ask for this password. Make sure to remember it."; } }()) width: 200 } TextField { id: userPass anchors.top: userPassDescription.bottom placeholderText: qsTr(passPlaceholder) echoMode: TextInput.Password onTextChanged: validatePassFunc(userPass, userPassRepeat, errorText) text: config.userPassword /* Let the virtual keyboard change to digits only */ inputMethodHints: hints onActiveFocusChanged: { if(activeFocus) { Qt.inputMethod.update(Qt.ImQueryInput) } } anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 10 width: 200 } TextField { id: userPassRepeat anchors.top: userPass.bottom placeholderText: qsTr(passPlaceholder + " (repeat)") inputMethodHints: hints echoMode: TextInput.Password onTextChanged: validatePassFunc(userPass, userPassRepeat, errorText) text: config.userPassword anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 10 width: 200 } Text { anchors.top: userPassRepeat.bottom id: errorText visible: false wrapMode: Text.WordWrap anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 10 width: 200 } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: errorText.bottom anchors.topMargin: 10 width: 200 text: qsTr("Continue") onClicked: { if (validatePassFunc(userPass, userPassRepeat, errorText) && validateNameFunc(username, errorText)) { config.userPassword = userPass.text; config.username = username.text; navNext(); } } } } calamares-extensions-3.3.12/modules/mobile/wait.qml000066400000000000000000000024311471772643300223410ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Page { id: fdeWait Item { anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right width: parent.width height: parent.height Image { id: logo anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 height: 50 fillMode: Image.PreserveAspectFit source: "file:///usr/share/calamares/branding/default-mobile/logo.png" } Text { id: waitText anchors.horizontalCenter: parent.horizontalCenter anchors.top: logo.bottom anchors.topMargin: 50 wrapMode: Text.WordWrap text: "Formatting and mounting target partition. This may" + " take up to ten minutes, please be patient." width: 200 } } } calamares-extensions-3.3.12/modules/mobile/welcome.qml000066400000000000000000000040101471772643300230230ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2020 Oliver Smith * SPDX-License-Identifier: GPL-3.0-or-later */ import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import QtQuick.VirtualKeyboard 2.1 Page { id: welcome Item { id: appContainer anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right Item { width: parent.width height: parent.height Image { id: logo anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 10 height: 50 fillMode: Image.PreserveAspectFit source: "file:///usr/share/calamares/branding/default-mobile/logo.png" } Text { id: mainText anchors.horizontalCenter: parent.horizontalCenter anchors.top: logo.bottom anchors.topMargin: 10 horizontalAlignment: Text.AlignRight text: "You are about to install
" + "" + config.osName + " " + config.version + "
" + "user interface " + "" + config.userInterface + "
" + "architecture " + "" + config.arch + "
" + "on your
" + "" + config.device + "
" width: 200 } Button { anchors.horizontalCenter: parent.horizontalCenter anchors.top: mainText.bottom anchors.topMargin: 10 width: 200 text: qsTr("Continue") onClicked: navNext() } } } } calamares-extensions-3.3.12/modules/os-freebsd/000077500000000000000000000000001471772643300214445ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/os-freebsd/CMakeLists.txt000066400000000000000000000012461471772643300242070ustar00rootroot00000000000000# The OS-FreeBSD module does "all the things" in a FreeBSD installation. # Since the other modules -- users, fstab, grub, pretty much all of them # -- are Linux-specific, it doesn't make much sense to fork each of them # or provide alternatives, so instead we have one module that completes # a FreeBSD installation based on the GlobalStorage values set by # Calamares viewmodules. # # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # calamares_add_plugin( os-freebsd TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES FreeBSDJob.cpp SHARED_LIB NO_CONFIG ) calamares-extensions-3.3.12/modules/os-freebsd/FreeBSDJob.cpp000066400000000000000000000022421471772643300240150ustar00rootroot00000000000000/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * License-Filename: LICENSE */ #include "FreeBSDJob.h" #include "CalamaresVersion.h" #include "GlobalStorage.h" #include "JobQueue.h" #include "utils/Logger.h" #include #include #include FreeBSDJob::FreeBSDJob( QObject* parent ) : Calamares::CppJob( parent ) { } FreeBSDJob::~FreeBSDJob() {} QString FreeBSDJob::prettyName() const { return tr( "FreeBSD Installation Job" ); } Calamares::JobResult FreeBSDJob::exec() { emit progress( 0.1 ); cDebug() << "[FREEBSD]"; Calamares::JobQueue::instance()->globalStorage()->debugDump(); emit progress( 0.5 ); QThread::sleep( 3 ); emit progress( 1.0 ); return Calamares::JobResult::ok(); } void FreeBSDJob::setConfigurationMap( const QVariantMap& configurationMap ) { // TODO: actually fetch something from that configuration m_configurationMap = configurationMap; } CALAMARES_PLUGIN_FACTORY_DEFINITION( FreeBSDJobFactory, registerPlugin< FreeBSDJob >(); ) calamares-extensions-3.3.12/modules/os-freebsd/FreeBSDJob.h000066400000000000000000000015361471772643300234670ustar00rootroot00000000000000/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * License-Filename: LICENSE */ #ifndef FREEBSDJOB_H #define FREEBSDJOB_H #include "CppJob.h" #include "DllMacro.h" #include "utils/PluginFactory.h" #include #include class PLUGINDLLEXPORT FreeBSDJob : public Calamares::CppJob { Q_OBJECT public: explicit FreeBSDJob( QObject* parent = nullptr ); virtual ~FreeBSDJob() override; QString prettyName() const override; Calamares::JobResult exec() override; void setConfigurationMap( const QVariantMap& configurationMap ) override; private: QVariantMap m_configurationMap; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( FreeBSDJobFactory ) #endif // FREEBSDJOB_H calamares-extensions-3.3.12/modules/os-nixos/000077500000000000000000000000001471772643300211725ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/os-nixos/main.py000066400000000000000000000206111471772643300224700ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # === This file is part of Calamares - === # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Calamares 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 Calamares. If not, see . # # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # """ === NixOS Configuration NixOS has its own "do all the things" configuration file which declaratively handles what things need to be done in the target system, and it has an existing tool to "execute" that declarative specification. This module takes configuration values set by Calamares viewmodules (e.g. the users module) and puts them into the configuration file in the target system, and then runs the necessary NixOS specific tools. """ import libcalamares import os from time import gmtime, strftime, sleep import gettext _ = gettext.translation("calamares-python", localedir=libcalamares.utils.gettext_path(), languages=libcalamares.utils.gettext_languages(), fallback=True).gettext # The following long **long** string is the entire text of # a nix-configuration file. It is cribbed from, and adapted from, # the sample file in https://github.com/itamar567/dotnix . # # We are going to substitute values into this text. However, # Python's .format() function wants parens { } around variable # names, and Nix's config file wants to use parens { } for block # structure. So we have a compromise format here: # # - Write the config file as you would normally, # - Write @@variable@@ instead of {variable} # # Some minor trickery later will massage this and substitute variables. # configuration_nix_sample = """# Nix configuration file { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ./command-not-found/command-not-found.nix ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Use Zen Kernel boot.kernelPackages = pkgs.linuxPackages_zen; networking.hostName = "@@hostname@@"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # Set your time zone. time.timeZone = "@@timezone@@"; # The global useDHCP flag is deprecated, therefore explicitly set to false here. networking.useDHCP = false; networking.interfaces.enp42s0.useDHCP = true; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; # Configure X11 services.xserver = { enable = true; windowManager.i3 = { enable = true; package = pkgs.i3-gaps; }; # Set i3 to the default session in the display manager displayManager.defaultSession = "none+i3"; }; # SSH fix programs.ssh.askPassword = pkgs.lib.mkForce ""; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound. sound.enable = true; hardware.pulseaudio.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.username = { isNormalUser = true; extraGroups = [ "wheel" "libvirtd" ]; }; # Disable password for sudo security.sudo.extraRules= [{ groups = [ "wheel" ]; commands = [{ command = "ALL" ; options= [ "NOPASSWD" ]; }]; }]; # Set ZSH as the default shell users.defaultUserShell = pkgs.zsh; # clean /tmp on boot boot.cleanTmpDir=true; # Config packages nixpkgs.config = { allowUnfree = true; chromium = { enableWideVine = true; }; }; # Automatically upgrade the system # This service is a modified version of https://github.com/NixOS/nixpkgs/blob/nixos-21.05/nixos/modules/tasks/auto-upgrade.nix#L122 systemd = { services.nixos-upgrade = { description = "NixOS Upgrade"; # We use --upgrade, so we need internet access wants = [ "network-online.target" ]; restartIfChanged = false; unitConfig.X-StopOnRemoval = false; serviceConfig.Type = "oneshot"; environment = config.nix.envVars // { inherit (config.environment.sessionVariables) NIX_PATH; HOME = "/root"; } // config.networking.proxy.envVars; path = with pkgs; [ coreutils gnutar xz.bin gzip gitMinimal config.nix.package.out ]; script = let nixos-rebuild = "${config.system.build.nixos-rebuild}/bin/nixos-rebuild"; in '' ${nixos-rebuild} boot --upgrade booted="$(readlink /run/booted-system/{initrd,kernel,kernel-modules})" built="$(readlink /nix/var/nix/profiles/system/{initrd,kernel,kernel-modules})" if [ "$booted" = "$built" ]; then ${nixos-rebuild} switch fi ''; }; # To start the service at boot, we will use a systemd timer timers.nixos-upgrade = { wantedBy = [ "timers.target" ]; partOf = [ "nixos-upgrade.service" ]; timerConfig.OnBootSec = "5s"; }; }; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # Enable the OpenSSH daemon. services.openssh.enable = true; # Open ports in the firewall. networking.firewall.enable = false; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "20.09"; # Did you read the comment? } """ def pretty_name(): return _("NixOS Configuration.") def catenate(d, key, *values): """ Sets @p d[key] to the string-concatenation of @p values if none of the values are None. This can be used to set keys conditionally based on the values being found. """ if [v for v in values if v is None]: return d[key] = "".join(values) def run(): """NixOS Configuration.""" gs = libcalamares.globalstorage text = configuration_nix_sample # Collect variables to substitute into the main text variables = dict() catenate(variables, "hostname", gs.value("hostname")) catenate(variables, "timezone", gs.value("locationRegion"), "/", gs.value("locationZone")) # Check that all variables are used for key in variables.keys(): pattern = "@@{key}@@".format(key=key) if not pattern in text: libcalamares.utils.warning("Variable '{key}' is not used.".format(key=key)) # Check that all patterns exist import re variable_pattern = re.compile("@@\w+@@") for match in variable_pattern.finditer(text): variable_name = text[match.start()+2:match.end()-2] if not variable_name in variables: libcalamares.utils.warning("Variable '{key}' is used but not defined.".format(key=variable_name)) # Do the substitutions for key in variables.keys(): pattern = "@@{key}@@".format(key=key) text = text.replace(pattern, str(variables[key])) # Write the result to a temp-file, then run the main tool. # There is no progress reporting from the tool, so it's going # to seem like the module is hanging (see issue #1740). configuration_filename = "/tmp/configuration.nix" with open(configuration_filename, "w") as f: f.write(text) libcalamares.job.setprogress(0.1) libcalamares.utils.check_target_env_call(["nix", configuration_filename]) # To indicate an error, return a tuple of: # (message, detailed-error-message) return None calamares-extensions-3.3.12/modules/os-nixos/module.desc000066400000000000000000000004601471772643300233170ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # # The NixOS module writes a nix-configuration file and then calls # the Nix configuration tool to do the actual work of building # the target system. --- type: "job" name: "os-nixos" interface: "python" script: "main.py" calamares-extensions-3.3.12/modules/os-nixos/tests/000077500000000000000000000000001471772643300223345ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/os-nixos/tests/1.global000066400000000000000000000002051471772643300236530ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 --- hostname: my-nix-host locationRegion: Asia locationZone: Kolkata calamares-extensions-3.3.12/modules/refind/000077500000000000000000000000001471772643300206625ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/refind/main.py000066400000000000000000000105341471772643300221630ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2021 Anke Boersma # SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is Free Software: see the License-Identifier above. # import libcalamares import os import subprocess from libcalamares.utils import check_target_env_call import gettext _ = gettext.translation("calamares-python", localedir=libcalamares.utils.gettext_path(), languages=libcalamares.utils.gettext_languages(), fallback=True).gettext def pretty_name(): return _("Install rEFInd.") def get_uuid(): partitions = libcalamares.globalstorage.value("partitions") for partition in partitions: if partition["mountPoint"] == "/": libcalamares.utils.debug(partition["uuid"]) return partition["uuid"] return None def update_conf(uuid, conf_path): """ Updates the created rEFInd configuration file based on given parameters. """ partitions = libcalamares.globalstorage.value("partitions") kernel_params = ["quiet", "systemd.show_status=0"] swap = None # Partition UUID swap_luks = None # LUKS name cryptdevice_params = [] btrfs_params = "" for partition in partitions: if partition["fs"] == "linuxswap" and not "luksMapperName" in partition: swap = partition["uuid"] if partition["fs"] == "linuxswap" and "luksMapperName" in partition: swap_luks = partition["luksMapperName"] if partition["mountPoint"] == "/" and "luksMapperName" in partition: cryptdevice_params = [ "cryptdevice=UUID={!s}:{!s}".format(partition["luksUuid"], partition["luksMapperName"]), "root=/dev/mapper/{!s}".format(partition["luksMapperName"]), "resume=/dev/mapper/{!s}".format(partition["luksMapperName"]) ] # rEFInd with a BTRFS root filesystem needs to be told # about the root subvolume. if partition["mountPoint"] == "/" and partition["fs"] == "btrfs": btrfs_params = "rootflags=subvol=@" if cryptdevice_params: kernel_params.extend(cryptdevice_params) else: kernel_params.append("root=UUID={!s}".format(uuid)) if swap: kernel_params.append("resume=UUID={!s}".format(swap)) if swap_luks: kernel_params.append("resume=/dev/mapper/{!s}".format(swap_luks)) if btrfs_params: kernel_params.append(btrfs_params) with open(conf_path, "r") as refind_file: filedata = [x.strip() for x in refind_file.readlines()] with open(conf_path, 'w') as refind_file: for line in filedata: if line.startswith('"Boot with standard options"'): line = '"Boot with standard options" "rw {!s}"'.format(" ".join(kernel_params)) refind_file.write(line + "\n") def efi_partitions(efi_boot_path): """ The (one) partition mounted on @p efi_boot_path, or an empty list. """ return [p for p in libcalamares.globalstorage.value("partitions") if p["mountPoint"] == efi_boot_path] def install_refind(): install_path = libcalamares.globalstorage.value("rootMountPoint") uuid = get_uuid() conf_path = os.path.join(install_path, "boot/refind_linux.conf") # TODO: some distro's use /boot/efi , so maybe this needs to # become configurable (that depends on what rEFInd likes). efi_boot_path = "/boot" # Might not have a /boot configured in the system at all; warn and don't operate if not efi_partitions(efi_boot_path): libcalamares.utils.warning("No partition mounted on {!s}".format(efi_boot_path)) # This isn't returned as an error, but the installation # probably won't boot because no bootloader was installed. return None subprocess.call( ["refind-install", "--root", "{!s}".format(install_path)]) update_conf(uuid, conf_path) def run(): """ Optional entry for when providing bootloader choices. Values taken from a packagechooser instance. Module won't run, if value not present. """ bootchoice = libcalamares.globalstorage.value("packagechooser_bootchoice") if bootchoice == "refind": return install_refind() calamares-extensions-3.3.12/modules/refind/module.desc000066400000000000000000000004651471772643300230140ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "refind" interface: "python" script: "main.py" noconfig: true # The partition module sets up the needed paths in # global storage, which is used to decide how to install. requiredModules: [ "partition" ] calamares-extensions-3.3.12/modules/refind/refind.conf.in000066400000000000000000000011251471772643300234040ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # --- ## This file should be present in the same directory as the EFISTUB kernel and initramfs files ## More info at http://www.rodsbooks.com/refind/linux.html , http://www.rodsbooks.com/efi-bootloaders/efistub.html ## File is not needed when rEFInd is installed with the `refind-install` option, it will be created automatically. #"Boot with defaults" "root=PARTUUID=XXXXXXXX rootfstype=XXXX rw add_efi_memmap" #"Boot to terminal" "root=PARTUUID=XXXXXXXX rootfstype=XXXX rw add_efi_memmap systemd.unit=multi-user.target" calamares-extensions-3.3.12/modules/slowpython/000077500000000000000000000000001471772643300216415ustar00rootroot00000000000000calamares-extensions-3.3.12/modules/slowpython/main.py000066400000000000000000000035521471772643300231440ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # === This file is part of Calamares - === # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Calamares 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 Calamares. If not, see . # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSES/GPL-3.0 """ The slowpython module is slow. """ import libcalamares from time import sleep import gettext _ = gettext.translation("calamares-python", localedir=libcalamares.utils.gettext_path(), languages=libcalamares.utils.gettext_languages(), fallback=True).gettext def pretty_name(): return _("Slow python job.") status = _("Slow python step {}/10").format(0) def pretty_status_message(): return status def run(): """Slow python job.""" try: timeout = int(libcalamares.job.timeout) except: timeout = 30 if not (3 <= timeout <= 600): timeout = 30 libcalamares.utils.debug("Slow python job for {} seconds".format(timeout)) global status step = timeout / 10.0 for x in range(11): status = _("Slow python step {}/10").format(x) libcalamares.job.setprogress(x / 10.0) sleep(step) return None calamares-extensions-3.3.12/modules/slowpython/module.desc000066400000000000000000000004051471772643300237650ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # # The slowpython module is .. just slow. It can be used # in testing to allow the slideshow time to run. --- type: "job" interface: "python" name: "slowpython" script: "main.py" calamares-extensions-3.3.12/modules/slowpython/slowpython.conf000066400000000000000000000004521471772643300247370ustar00rootroot00000000000000# SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # # This is an example module for Python Job Modules. # # The slowpython module is just slow. It does produce # progress output, in 10 steps during the timeout period. --- # Number of seconds this module will take to run timeout: 30