diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05a7ec05..f9313b1e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies @@ -71,7 +71,7 @@ jobs: uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies diff --git a/.gitignore b/.gitignore index ad7f8e27..b3a89a93 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ /example/HtmlOutput/html-example.htm /example/FpdfOutput/fpdf_example.pdf /.php-cs-fixer.cache +/composer.lock +.idea/ diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 305fcbbe..00000000 --- a/composer.lock +++ /dev/null @@ -1,4624 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "abcb8817dd048be5f3034746b31be2f7", - "packages": [ - { - "name": "bacon/bacon-qr-code", - "version": "2.0.8", - "source": { - "type": "git", - "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22", - "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22", - "shasum": "" - }, - "require": { - "dasprid/enum": "^1.0.3", - "ext-iconv": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "phly/keep-a-changelog": "^2.1", - "phpunit/phpunit": "^7 | ^8 | ^9", - "spatie/phpunit-snapshot-assertions": "^4.2.9", - "squizlabs/php_codesniffer": "^3.4" - }, - "suggest": { - "ext-imagick": "to generate QR code images" - }, - "type": "library", - "autoload": { - "psr-4": { - "BaconQrCode\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "https://dasprids.de/", - "role": "Developer" - } - ], - "description": "BaconQrCode is a QR code generator for PHP.", - "homepage": "https://github.com/Bacon/BaconQrCode", - "support": { - "issues": "https://github.com/Bacon/BaconQrCode/issues", - "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8" - }, - "time": "2022-12-07T17:46:57+00:00" - }, - { - "name": "dasprid/enum", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/DASPRiD/Enum.git", - "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016", - "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016", - "shasum": "" - }, - "require": { - "php": ">=7.1 <9.0" - }, - "require-dev": { - "phpunit/phpunit": "^7 | ^8 | ^9", - "squizlabs/php_codesniffer": "*" - }, - "type": "library", - "autoload": { - "psr-4": { - "DASPRiD\\Enum\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "https://dasprids.de/", - "role": "Developer" - } - ], - "description": "PHP 7.1 enum implementation", - "keywords": [ - "enum", - "map" - ], - "support": { - "issues": "https://github.com/DASPRiD/Enum/issues", - "source": "https://github.com/DASPRiD/Enum/tree/1.0.5" - }, - "time": "2023-08-25T16:18:39+00:00" - }, - { - "name": "endroid/qr-code", - "version": "5.0.2", - "source": { - "type": "git", - "url": "https://github.com/endroid/qr-code.git", - "reference": "e58d34fa0b86a62696144baba9d80ee98845f957" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/endroid/qr-code/zipball/e58d34fa0b86a62696144baba9d80ee98845f957", - "reference": "e58d34fa0b86a62696144baba9d80ee98845f957", - "shasum": "" - }, - "require": { - "bacon/bacon-qr-code": "^2.0.5", - "php": "^8.1" - }, - "conflict": { - "khanamiryan/qrcode-detector-decoder": "^1.0.6" - }, - "require-dev": { - "endroid/quality": "dev-master", - "ext-gd": "*", - "khanamiryan/qrcode-detector-decoder": "^1.0.4||^2.0.2", - "setasign/fpdf": "^1.8.2" - }, - "suggest": { - "ext-gd": "Enables you to write PNG images", - "khanamiryan/qrcode-detector-decoder": "Enables you to use the image validator", - "roave/security-advisories": "Makes sure package versions with known security issues are not installed", - "setasign/fpdf": "Enables you to use the PDF writer" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Endroid\\QrCode\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeroen van den Enden", - "email": "info@endroid.nl" - } - ], - "description": "Endroid QR Code", - "homepage": "https://github.com/endroid/qr-code", - "keywords": [ - "code", - "endroid", - "php", - "qr", - "qrcode" - ], - "support": { - "issues": "https://github.com/endroid/qr-code/issues", - "source": "https://github.com/endroid/qr-code/tree/5.0.2" - }, - "funding": [ - { - "url": "https://github.com/endroid", - "type": "github" - } - ], - "time": "2023-10-04T22:55:54+00:00" - }, - { - "name": "kmukku/php-iso11649", - "version": "1.6", - "source": { - "type": "git", - "url": "https://github.com/kmukku/php-iso11649.git", - "reference": "723863147a8ff1c292c337e9459402f4a35c3b1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kmukku/php-iso11649/zipball/723863147a8ff1c292c337e9459402f4a35c3b1e", - "reference": "723863147a8ff1c292c337e9459402f4a35c3b1e", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "kmukku\\phpIso11649\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Keijo Mukku", - "email": "keijo.mukku@gmail.com" - } - ], - "description": "ISO 11649 creditor reference library for php", - "homepage": "https://github.com/kmukku/php-iso11649", - "keywords": [ - "Banking", - "ISO 11649", - "RF creditor reference", - "finance" - ], - "support": { - "issues": "https://github.com/kmukku/php-iso11649/issues", - "source": "https://github.com/kmukku/php-iso11649/tree/master" - }, - "time": "2020-04-21T13:01:17+00:00" - }, - { - "name": "symfony/intl", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/intl.git", - "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", - "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "symfony/filesystem": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/var-exporter": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Intl\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - }, - { - "name": "Eriksen Costa", - "email": "eriksen.costa@infranology.com.br" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides access to the localization data of the ICU library", - "homepage": "https://symfony.com", - "keywords": [ - "i18n", - "icu", - "internationalization", - "intl", - "l10n", - "localization" - ], - "support": { - "source": "https://github.com/symfony/intl/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-10-28T23:12:22+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-icu", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "e46b4da57951a16053cd751f63f4a24292788157" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157", - "reference": "e46b4da57951a16053cd751f63f4a24292788157", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance and support of other locales than \"en\"" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Icu\\": "" - }, - "classmap": [ - "Resources/stubs" - ], - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's ICU-related data and classes", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "icu", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-21T17:27:24+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-28T09:04:16+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-php83", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-php80": "^1.14" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-08-16T06:22:46+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-25T15:08:44+00:00" - }, - { - "name": "symfony/validator", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", - "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php83": "^1.27", - "symfony/translation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/lexer": "<1.1", - "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<7.0", - "symfony/expression-language": "<6.4", - "symfony/http-kernel": "<6.4", - "symfony/intl": "<6.4", - "symfony/property-info": "<6.4", - "symfony/translation": "<6.4", - "symfony/yaml": "<6.4" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10|^3|^4", - "symfony/cache": "^6.4|^7.0", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/property-access": "^6.4|^7.0", - "symfony/property-info": "^6.4|^7.0", - "symfony/translation": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Validator\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to validate values", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/validator/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-29T08:40:23+00:00" - } - ], - "packages-dev": [ - { - "name": "composer/pcre", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-10-11T07:11:09+00:00" - }, - { - "name": "composer/semver", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-08-31T09:50:34+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "dg/bypass-finals", - "version": "v1.5.1", - "source": { - "type": "git", - "url": "https://github.com/dg/bypass-finals.git", - "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dg/bypass-finals/zipball/12ef25e1f8d4144e4ec80d13a28895e8942f4104", - "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.3", - "phpstan/phpstan": "^0.12" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - } - ], - "description": "Removes final keyword from source code on-the-fly and allows mocking of final methods and classes", - "keywords": [ - "finals", - "mocking", - "phpunit", - "testing", - "unit" - ], - "support": { - "issues": "https://github.com/dg/bypass-finals/issues", - "source": "https://github.com/dg/bypass-finals/tree/v1.5.1" - }, - "time": "2023-09-16T09:13:54+00:00" - }, - { - "name": "dms/phpunit-arraysubset-asserts", - "version": "v0.2.1", - "source": { - "type": "git", - "url": "https://github.com/rdohms/phpunit-arraysubset-asserts.git", - "reference": "8e3673a70019a60df484e36fc3271d63cbdc40ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rdohms/phpunit-arraysubset-asserts/zipball/8e3673a70019a60df484e36fc3271d63cbdc40ea", - "reference": "8e3673a70019a60df484e36fc3271d63cbdc40ea", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0", - "phpunit/phpunit": "^9.0" - }, - "require-dev": { - "dms/coding-standard": "^1.0", - "squizlabs/php_codesniffer": "^3.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "DMS\\PHPUnitExtensions\\ArraySubset\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rafael Dohms", - "email": "rdohms@gmail.com" - } - ], - "description": "This package provides ArraySubset and related asserts once deprecated in PHPUnit 8", - "support": { - "issues": "https://github.com/rdohms/phpunit-arraysubset-asserts/issues", - "source": "https://github.com/rdohms/phpunit-arraysubset-asserts/tree/v0.2.1" - }, - "time": "2020-10-03T21:43:40+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:23:10+00:00" - }, - { - "name": "fpdf/fpdf", - "version": "1.86.0", - "source": { - "type": "git", - "url": "https://github.com/coreydoughty/Fpdf.git", - "reference": "d2a0cbd9e4b5557b9c6c29ddc8eb2b36d8761e00" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/coreydoughty/Fpdf/zipball/d2a0cbd9e4b5557b9c6c29ddc8eb2b36d8761e00", - "reference": "d2a0cbd9e4b5557b9c6c29ddc8eb2b36d8761e00", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "FPDF": "Fpdf\\Fpdf" - } - } - }, - "autoload": { - "psr-4": { - "Fpdf\\": "src/Fpdf" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Corey Doughty", - "email": "corey@doughty.ca" - } - ], - "description": "FPDF Composer Wrapper", - "homepage": "https://github.com/coreydoughty/Fpdf", - "keywords": [ - "fpdf", - "pdf", - "wrapper" - ], - "support": { - "issues": "https://github.com/coreydoughty/Fpdf/issues", - "source": "https://github.com/coreydoughty/Fpdf/tree/1.86.0" - }, - "time": "2023-07-04T16:41:45+00:00" - }, - { - "name": "friendsofphp/php-cs-fixer", - "version": "v3.40.0", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/27d2b3265b5d550ec411b4319967ae7cfddfb2e0", - "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0", - "shasum": "" - }, - "require": { - "composer/semver": "^3.4", - "composer/xdebug-handler": "^3.0.3", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0 || ^5.0", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", - "symfony/finder": "^5.4 || ^6.0 || ^7.0", - "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0", - "symfony/polyfill-mbstring": "^1.28", - "symfony/polyfill-php80": "^1.28", - "symfony/polyfill-php81": "^1.28", - "symfony/process": "^5.4 || ^6.0 || ^7.0", - "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "facile-it/paraunit": "^1.3 || ^2.0", - "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^2.1", - "mikey179/vfsstream": "^1.6.11", - "php-coveralls/php-coveralls": "^2.7", - "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", - "phpspec/prophecy": "^1.17", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/phpunit-bridge": "^6.3.8 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" - }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters." - }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", - "autoload": { - "psr-4": { - "PhpCsFixer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Dariusz RumiƄski", - "email": "dariusz.ruminski@gmail.com" - } - ], - "description": "A tool to automatically fix PHP code style", - "keywords": [ - "Static code analysis", - "fixer", - "standards", - "static analysis" - ], - "support": { - "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.40.0" - }, - "funding": [ - { - "url": "https://github.com/keradus", - "type": "github" - } - ], - "time": "2023-11-26T09:25:53+00:00" - }, - { - "name": "khanamiryan/qrcode-detector-decoder", - "version": "1.0.5.2", - "source": { - "type": "git", - "url": "https://github.com/khanamiryan/php-qrcode-detector-decoder.git", - "reference": "04fdd58d86a387065f707dc6d3cc304c719910c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/khanamiryan/php-qrcode-detector-decoder/zipball/04fdd58d86a387065f707dc6d3cc304c719910c1", - "reference": "04fdd58d86a387065f707dc6d3cc304c719910c1", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 | ^7.5 | ^8.0 | ^9.0" - }, - "type": "library", - "autoload": { - "files": [ - "lib/Common/customFunctions.php" - ], - "psr-4": { - "Zxing\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT", - "Apache-2.0" - ], - "authors": [ - { - "name": "Ashot Khanamiryan", - "email": "a.khanamiryan@gmail.com", - "homepage": "https://github.com/khanamiryan", - "role": "Developer" - } - ], - "description": "QR code decoder / reader", - "homepage": "https://github.com/khanamiryan/php-qrcode-detector-decoder/", - "keywords": [ - "barcode", - "qr", - "zxing" - ], - "support": { - "issues": "https://github.com/khanamiryan/php-qrcode-detector-decoder/issues", - "source": "https://github.com/khanamiryan/php-qrcode-detector-decoder/tree/1.0.5.2" - }, - "time": "2021-07-13T18:46:38+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.11.1", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2023-03-08T13:26:56+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.17.1", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" - }, - "time": "2023-08-13T19:53:39+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" - }, - "time": "2021-07-20T11:28:43+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpstan/phpstan", - "version": "1.11.x-dev", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92", - "reference": "862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" - }, - "default-branch": true, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" - } - ], - "time": "2023-11-29T19:38:27+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.29", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-09-19T04:57:46+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:48:52+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.13", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2023-09-19T05:39:22+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:08:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T12:41:17+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T15:52:27+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-05-07T05:35:17+00:00" - }, - { - "name": "sebastian/environment", - "version": "5.1.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:03:51+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T06:03:37+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-08-02T09:26:13+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-28T06:42:11+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:45:17+00:00" - }, - { - "name": "sebastian/type", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:13:03+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "setasign/fpdf", - "version": "1.8.6", - "source": { - "type": "git", - "url": "https://github.com/Setasign/FPDF.git", - "reference": "0838e0ee4925716fcbbc50ad9e1799b5edfae0a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDF/zipball/0838e0ee4925716fcbbc50ad9e1799b5edfae0a0", - "reference": "0838e0ee4925716fcbbc50ad9e1799b5edfae0a0", - "shasum": "" - }, - "require": { - "ext-gd": "*", - "ext-zlib": "*" - }, - "type": "library", - "autoload": { - "classmap": [ - "fpdf.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Olivier Plathey", - "email": "oliver@fpdf.org", - "homepage": "http://fpdf.org/" - } - ], - "description": "FPDF is a PHP class which allows to generate PDF files with pure PHP. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.", - "homepage": "http://www.fpdf.org", - "keywords": [ - "fpdf", - "pdf" - ], - "support": { - "source": "https://github.com/Setasign/FPDF/tree/1.8.6" - }, - "time": "2023-06-26T14:44:25+00:00" - }, - { - "name": "setasign/fpdi", - "version": "v2.5.0", - "source": { - "type": "git", - "url": "https://github.com/Setasign/FPDI.git", - "reference": "ecf0459643ec963febfb9a5d529dcd93656006a4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDI/zipball/ecf0459643ec963febfb9a5d529dcd93656006a4", - "reference": "ecf0459643ec963febfb9a5d529dcd93656006a4", - "shasum": "" - }, - "require": { - "ext-zlib": "*", - "php": "^5.6 || ^7.0 || ^8.0" - }, - "conflict": { - "setasign/tfpdf": "<1.31" - }, - "require-dev": { - "phpunit/phpunit": "~5.7", - "setasign/fpdf": "~1.8", - "setasign/tfpdf": "~1.31", - "squizlabs/php_codesniffer": "^3.5", - "tecnickcom/tcpdf": "~6.2" - }, - "suggest": { - "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured." - }, - "type": "library", - "autoload": { - "psr-4": { - "setasign\\Fpdi\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Slabon", - "email": "jan.slabon@setasign.com", - "homepage": "https://www.setasign.com" - }, - { - "name": "Maximilian Kresse", - "email": "maximilian.kresse@setasign.com", - "homepage": "https://www.setasign.com" - } - ], - "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", - "homepage": "https://www.setasign.com/fpdi", - "keywords": [ - "fpdf", - "fpdi", - "pdf" - ], - "support": { - "issues": "https://github.com/Setasign/FPDI/issues", - "source": "https://github.com/Setasign/FPDI/tree/v2.5.0" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/setasign/fpdi", - "type": "tidelift" - } - ], - "time": "2023-09-28T10:46:27+00:00" - }, - { - "name": "symfony/console", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/64e06788686633deb8d9a7c75ab31bcf4b233a26", - "reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^6.4|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-20T16:43:42+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-05-23T14:45:45+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/event-dispatcher-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/service-contracts": "<2.5" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-27T16:29:09+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-05-23T14:45:45+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7", - "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-27T06:33:22+00:00" - }, - { - "name": "symfony/finder", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "symfony/filesystem": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-10-31T17:59:56+00:00" - }, - { - "name": "symfony/options-resolver", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-08-08T10:20:21+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-php81", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/process", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/13bdb1670c7f510494e04fcb2bfa29af63db9c0d", - "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-20T16:43:42+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^2.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-30T20:28:31+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", - "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/service-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a way to profile code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-05T13:06:06+00:00" - }, - { - "name": "symfony/string", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-29T08:40:23+00:00" - }, - { - "name": "tecnickcom/tcpdf", - "version": "6.6.5", - "source": { - "type": "git", - "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/5fce932fcee4371865314ab7f6c0d85423c5c7ce", - "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "config", - "include", - "tcpdf.php", - "tcpdf_parser.php", - "tcpdf_import.php", - "tcpdf_barcodes_1d.php", - "tcpdf_barcodes_2d.php", - "include/tcpdf_colors.php", - "include/tcpdf_filters.php", - "include/tcpdf_font_data.php", - "include/tcpdf_fonts.php", - "include/tcpdf_images.php", - "include/tcpdf_static.php", - "include/barcodes/datamatrix.php", - "include/barcodes/pdf417.php", - "include/barcodes/qrcode.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Nicola Asuni", - "email": "info@tecnick.com", - "role": "lead" - } - ], - "description": "TCPDF is a PHP class for generating PDF documents and barcodes.", - "homepage": "http://www.tcpdf.org/", - "keywords": [ - "PDFD32000-2008", - "TCPDF", - "barcodes", - "datamatrix", - "pdf", - "pdf417", - "qrcode" - ], - "support": { - "issues": "https://github.com/tecnickcom/TCPDF/issues", - "source": "https://github.com/tecnickcom/TCPDF/tree/6.6.5" - }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20tcpdf%20project", - "type": "custom" - } - ], - "time": "2023-09-06T15:09:26+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2023-11-20T00:12:19+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "phpstan/phpstan": 20 - }, - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": "~8.0.0|~8.1.0|~8.2.0|~8.3.0", - "ext-dom": "*", - "ext-bcmath": "*", - "ext-iconv": "*" - }, - "platform-dev": [], - "plugin-api-version": "2.6.0" -} diff --git a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php index 62bc7d17..d87addf3 100644 --- a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php +++ b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php @@ -9,7 +9,6 @@ use Sprain\SwissQrBill\PaymentPart\Output\Element\Placeholder; use Sprain\SwissQrBill\PaymentPart\Output\Element\Text; use Sprain\SwissQrBill\PaymentPart\Output\Element\Title; -use Sprain\SwissQrBill\PaymentPart\Output\OutputInterface; use Sprain\SwissQrBill\QrCode\QrCode; use Sprain\SwissQrBill\PaymentPart\Translation\Translation; use Sprain\SwissQrBill\QrBill; @@ -97,6 +96,7 @@ public function getPaymentPart(): ?string private function addSwissQrCodeImage(): void { $qrCode = $this->getQrCode(); + $qrCode->avoidCompactSvgs(); $method = match ($this->getQrCodeImageFormat()) { QrCode::FILE_FORMAT_SVG => 'ImageSVG', diff --git a/src/QrCode/QrCode.php b/src/QrCode/QrCode.php index 516d8000..95fa5841 100644 --- a/src/QrCode/QrCode.php +++ b/src/QrCode/QrCode.php @@ -31,6 +31,9 @@ final class QrCode private Logo $qrCodeLogo; private WriterInterface $qrCodeWriter; + /** @var array $writerOptions */ + private array $writerOptions = [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true]; + public static function create(string $data, string $fileFormat = null): self { if (null === $fileFormat) { @@ -102,6 +105,28 @@ public function getText(): string return $this->qrCode->getData(); } + /** + * This makes sure the file size of invoices created with TcPdfOutput is not unnecessarily inflated. + * + * With endroid/qr-code 5.0.8, the default behaviour was changed to create optimized SVGs with the element. + * However, for some unknown reason this inflates the filze size of invoices created with TcPdfOutput, even though + * the file size of the qr code becomes smaller. + * In endroid/qr-code 5.0.9, an option was added to create SVGs in the "old style" again, using elements. + * This is what we want to use for TcPdfOutput, if available. + * + * @link https://github.com/sprain/php-swiss-qr-bill/issues/249 + * @link https://github.com/endroid/qr-code/commit/3dcdfab4c9122874f3915d8bf80a43b9df11852d + */ + public function avoidCompactSvgs(): void + { + // The constant only exists in Endroid 5.0.9 and higher + if (defined('Endroid\QrCode\Writer\SvgWriter::WRITER_OPTION_COMPACT')) { + $this->writerOptions = array_merge($this->writerOptions, [ + SvgWriter::WRITER_OPTION_COMPACT => false + ]); + } + } + private function setWriterByExtension(string $extension): void { if (!in_array($extension, self::SUPPORTED_FILE_FORMATS)) { @@ -124,7 +149,7 @@ private function getQrCodeResult(): ResultInterface $this->qrCode, $this->qrCodeLogo, null, - [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true] + $this->writerOptions ); } } diff --git a/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php b/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php index 99c99e6e..dfd140cc 100644 --- a/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php +++ b/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php @@ -6,11 +6,13 @@ use Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput\HtmlOutput; use Sprain\SwissQrBill\QrBill; use Sprain\SwissQrBill\QrCode\QrCode; +use Sprain\Tests\SwissQrBill\TestCompactSvgQrCodeTrait; use Sprain\Tests\SwissQrBill\TestQrBillCreatorTrait; final class HtmlOutputTest extends TestCase { use TestQrBillCreatorTrait; + use TestCompactSvgQrCodeTrait; /** * @dataProvider validQrBillsProvider @@ -21,12 +23,12 @@ public function testValidQrBills(string $name, QrBill $qrBill) [ 'printable' => false, 'format' => QrCode::FILE_FORMAT_SVG, - 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . '.svg.html' + 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . $this->getCompact() . '.svg.html' ], [ 'printable' => true, 'format' => QrCode::FILE_FORMAT_SVG, - 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . '.svg.print.html' + 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . $this->getCompact() . '.svg.print.html' ], /* PNGs do not create the same output in all environments [ diff --git a/tests/QrCode/QrCodeTest.php b/tests/QrCode/QrCodeTest.php index ef8d3435..d3c855d5 100644 --- a/tests/QrCode/QrCodeTest.php +++ b/tests/QrCode/QrCodeTest.php @@ -5,9 +5,12 @@ use PHPUnit\Framework\TestCase; use Sprain\SwissQrBill\QrCode\Exception\UnsupportedFileExtensionException; use Sprain\SwissQrBill\QrCode\QrCode; +use Sprain\Tests\SwissQrBill\TestCompactSvgQrCodeTrait; final class QrCodeTest extends TestCase { + use TestCompactSvgQrCodeTrait; + /** * @dataProvider supportedExtensionsProvider */ @@ -18,7 +21,6 @@ public function testSupportedFileExtensions(string $extension): void if (!is_writable(dirname($testfile))) { $this->markTestSkipped(); - return; } $qrCode->writeFile($testfile); @@ -79,7 +81,9 @@ public function dataUriProvider() # ], [ 'code' => 'This is a test code', - 'dataUri' => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNTUwcHgiIGhlaWdodD0iNTUwcHgiIHZpZXdCb3g9IjAgMCA1NTAgNTUwIj48ZGVmcz48cmVjdCBpZD0iYmxvY2siIHdpZHRoPSIyMi4wMDAwMDAwMDAwIiBoZWlnaHQ9IjIyLjAwMDAwMDAwMDAiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSIvPjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNTUwIiBoZWlnaHQ9IjU1MCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIxIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjY2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNjYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI4OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9Ijg4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDE4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE1NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIxNTQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0MTguMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE1NC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTU0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMTAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjg2LjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjxpbWFnZSB4PSIyMzMuNSIgeT0iMjMzLjUiIHdpZHRoPSI4MyIgaGVpZ2h0PSI4MyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFLWUFBQUNtQVFBQUFBQjQ4OG5hQUFBQVJrbEVRVlJJeDJQNGp3WDhZUmlCb2g4WTBJSDlxT2p3Rk9VSHh2aUJVZEZSMFNFb3lvOVVhaDBZRlIwVnBaSG9ZRWpybzZLam9wU0lJb0ZSMFZGUjZvdGlBU05RRkFDZHEvUEkwVXVnTVFBQUFBQkpSVTVFcmtKZ2dnPT0iLz48L3N2Zz4K', + 'dataUri' => $this->getCompact() + ? 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNTUwcHgiIGhlaWdodD0iNTUwcHgiIHZpZXdCb3g9IjAgMCA1NTAgNTUwIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNTUwIiBoZWlnaHQ9IjU1MCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIxIi8+PHBhdGggZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIiBkPSJNMCwwTDE1NCwwTDE1NCwyMkwwLDIyWk0xNzYsMEwyNDIsMEwyNDIsMjJMMTc2LDIyWk0yODYsMEwzMDgsMEwzMDgsMjJMMjg2LDIyWk0zNTIsMEwzNzQsMEwzNzQsMjJMMzUyLDIyWk0zOTYsMEw1NTAsMEw1NTAsMjJMMzk2LDIyWk0wLDIyTDIyLDIyTDIyLDQ0TDAsNDRaTTEzMiwyMkwxNTQsMjJMMTU0LDQ0TDEzMiw0NFpNMjIwLDIyTDI2NCwyMkwyNjQsNDRMMjIwLDQ0Wk0yODYsMjJMMzMwLDIyTDMzMCw0NEwyODYsNDRaTTM5NiwyMkw0MTgsMjJMNDE4LDQ0TDM5Niw0NFpNNTI4LDIyTDU1MCwyMkw1NTAsNDRMNTI4LDQ0Wk0wLDQ0TDIyLDQ0TDIyLDY2TDAsNjZaTTQ0LDQ0TDExMCw0NEwxMTAsNjZMNDQsNjZaTTEzMiw0NEwxNTQsNDRMMTU0LDY2TDEzMiw2NlpNMTc2LDQ0TDI2NCw0NEwyNjQsNjZMMTc2LDY2Wk0zMDgsNDRMMzMwLDQ0TDMzMCw2NkwzMDgsNjZaTTM5Niw0NEw0MTgsNDRMNDE4LDY2TDM5Niw2NlpNNDQwLDQ0TDUwNiw0NEw1MDYsNjZMNDQwLDY2Wk01MjgsNDRMNTUwLDQ0TDU1MCw2Nkw1MjgsNjZaTTAsNjZMMjIsNjZMMjIsODhMMCw4OFpNNDQsNjZMMTEwLDY2TDExMCw4OEw0NCw4OFpNMTMyLDY2TDE1NCw2NkwxNTQsODhMMTMyLDg4Wk0xOTgsNjZMMjIwLDY2TDIyMCw4OEwxOTgsODhaTTI0Miw2NkwzMzAsNjZMMzMwLDg4TDI0Miw4OFpNMzk2LDY2TDQxOCw2Nkw0MTgsODhMMzk2LDg4Wk00NDAsNjZMNTA2LDY2TDUwNiw4OEw0NDAsODhaTTUyOCw2Nkw1NTAsNjZMNTUwLDg4TDUyOCw4OFpNMCw4OEwyMiw4OEwyMiwxMTBMMCwxMTBaTTQ0LDg4TDExMCw4OEwxMTAsMTEwTDQ0LDExMFpNMTMyLDg4TDE1NCw4OEwxNTQsMTEwTDEzMiwxMTBaTTIyMCw4OEwyNDIsODhMMjQyLDExMEwyMjAsMTEwWk0yODYsODhMMzA4LDg4TDMwOCwxMTBMMjg2LDExMFpNMzMwLDg4TDM3NCw4OEwzNzQsMTEwTDMzMCwxMTBaTTM5Niw4OEw0MTgsODhMNDE4LDExMEwzOTYsMTEwWk00NDAsODhMNTA2LDg4TDUwNiwxMTBMNDQwLDExMFpNNTI4LDg4TDU1MCw4OEw1NTAsMTEwTDUyOCwxMTBaTTAsMTEwTDIyLDExMEwyMiwxMzJMMCwxMzJaTTEzMiwxMTBMMTU0LDExMEwxNTQsMTMyTDEzMiwxMzJaTTE3NiwxMTBMMTk4LDExMEwxOTgsMTMyTDE3NiwxMzJaTTI2NCwxMTBMMzMwLDExMEwzMzAsMTMyTDI2NCwxMzJaTTM5NiwxMTBMNDE4LDExMEw0MTgsMTMyTDM5NiwxMzJaTTUyOCwxMTBMNTUwLDExMEw1NTAsMTMyTDUyOCwxMzJaTTAsMTMyTDE1NCwxMzJMMTU0LDE1NEwwLDE1NFpNMTc2LDEzMkwxOTgsMTMyTDE5OCwxNTRMMTc2LDE1NFpNMjIwLDEzMkwyNDIsMTMyTDI0MiwxNTRMMjIwLDE1NFpNMjY0LDEzMkwyODYsMTMyTDI4NiwxNTRMMjY0LDE1NFpNMzA4LDEzMkwzMzAsMTMyTDMzMCwxNTRMMzA4LDE1NFpNMzUyLDEzMkwzNzQsMTMyTDM3NCwxNTRMMzUyLDE1NFpNMzk2LDEzMkw1NTAsMTMyTDU1MCwxNTRMMzk2LDE1NFpNMjQyLDE1NEwyNjQsMTU0TDI2NCwxNzZMMjQyLDE3NlpNMzMwLDE1NEwzNTIsMTU0TDM1MiwxNzZMMzMwLDE3NlpNMCwxNzZMMjIsMTc2TDIyLDE5OEwwLDE5OFpNNDQsMTc2TDY2LDE3Nkw2NiwxOThMNDQsMTk4Wk0xMzIsMTc2TDE3NiwxNzZMMTc2LDE5OEwxMzIsMTk4Wk0yMjAsMTc2TDI0MiwxNzZMMjQyLDE5OEwyMjAsMTk4Wk0yODYsMTc2TDMwOCwxNzZMMzA4LDE5OEwyODYsMTk4Wk0zMzAsMTc2TDM3NCwxNzZMMzc0LDE5OEwzMzAsMTk4Wk00MTgsMTc2TDQ0MCwxNzZMNDQwLDE5OEw0MTgsMTk4Wk00ODQsMTc2TDUwNiwxNzZMNTA2LDE5OEw0ODQsMTk4Wk01MjgsMTc2TDU1MCwxNzZMNTUwLDE5OEw1MjgsMTk4Wk0wLDE5OEw2NiwxOThMNjYsMjIwTDAsMjIwWk04OCwxOThMMTMyLDE5OEwxMzIsMjIwTDg4LDIyMFpNMTc2LDE5OEwxOTgsMTk4TDE5OCwyMjBMMTc2LDIyMFpNMjIwLDE5OEwyODYsMTk4TDI4NiwyMjBMMjIwLDIyMFpNMzUyLDE5OEwzNzQsMTk4TDM3NCwyMjBMMzUyLDIyMFpNNDYyLDE5OEw0ODQsMTk4TDQ4NCwyMjBMNDYyLDIyMFpNMjIsMjIwTDExMCwyMjBMMTEwLDI0MkwyMiwyNDJaTTEzMiwyMjBMMTU0LDIyMEwxNTQsMjQyTDEzMiwyNDJaTTE3NiwyMjBMMTk4LDIyMEwxOTgsMjQyTDE3NiwyNDJaTTMzMCwyMjBMMzUyLDIyMEwzNTIsMjQyTDMzMCwyNDJaTTM5NiwyMjBMNDQwLDIyMEw0NDAsMjQyTDM5NiwyNDJaTTQ2MiwyMjBMNDg0LDIyMEw0ODQsMjQyTDQ2MiwyNDJaTTUyOCwyMjBMNTUwLDIyMEw1NTAsMjQyTDUyOCwyNDJaTTAsMjQyTDg4LDI0Mkw4OCwyNjRMMCwyNjRaTTExMCwyNDJMMTMyLDI0MkwxMzIsMjY0TDExMCwyNjRaTTE1NCwyNDJMMTc2LDI0MkwxNzYsMjY0TDE1NCwyNjRaTTIyMCwyNDJMMjY0LDI0MkwyNjQsMjY0TDIyMCwyNjRaTTMzMCwyNDJMMzc0LDI0MkwzNzQsMjY0TDMzMCwyNjRaTTM5NiwyNDJMNDE4LDI0Mkw0MTgsMjY0TDM5NiwyNjRaTTQ4NCwyNDJMNTI4LDI0Mkw1MjgsMjY0TDQ4NCwyNjRaTTAsMjY0TDIyLDI2NEwyMiwyODZMMCwyODZaTTQ0LDI2NEw4OCwyNjRMODgsMjg2TDQ0LDI4NlpNMTEwLDI2NEwxNTQsMjY0TDE1NCwyODZMMTEwLDI4NlpNMjIwLDI2NEwzMDgsMjY0TDMwOCwyODZMMjIwLDI4NlpNMzMwLDI2NEwzNTIsMjY0TDM1MiwyODZMMzMwLDI4NlpNMzc0LDI2NEw0MTgsMjY0TDQxOCwyODZMMzc0LDI4NlpNNDYyLDI2NEw1MDYsMjY0TDUwNiwyODZMNDYyLDI4NlpNNTI4LDI2NEw1NTAsMjY0TDU1MCwyODZMNTI4LDI4NlpNMjIsMjg2TDQ0LDI4Nkw0NCwzMDhMMjIsMzA4Wk02NiwyODZMMTMyLDI4NkwxMzIsMzA4TDY2LDMwOFpNMTU0LDI4NkwxNzYsMjg2TDE3NiwzMDhMMTU0LDMwOFpNMTk4LDI4NkwyMjAsMjg2TDIyMCwzMDhMMTk4LDMwOFpNMjY0LDI4NkwyODYsMjg2TDI4NiwzMDhMMjY0LDMwOFpNMzA4LDI4NkwzNTIsMjg2TDM1MiwzMDhMMzA4LDMwOFpNMzc0LDI4NkwzOTYsMjg2TDM5NiwzMDhMMzc0LDMwOFpNNDYyLDI4Nkw0ODQsMjg2TDQ4NCwzMDhMNDYyLDMwOFpNNTA2LDI4Nkw1NTAsMjg2TDU1MCwzMDhMNTA2LDMwOFpNMCwzMDhMNjYsMzA4TDY2LDMzMEwwLDMzMFpNMTMyLDMwOEwxNTQsMzA4TDE1NCwzMzBMMTMyLDMzMFpNMTc2LDMwOEwyMjAsMzA4TDIyMCwzMzBMMTc2LDMzMFpNMjY0LDMwOEwzNTIsMzA4TDM1MiwzMzBMMjY0LDMzMFpNMzc0LDMwOEw0MTgsMzA4TDQxOCwzMzBMMzc0LDMzMFpNNDYyLDMwOEw0ODQsMzA4TDQ4NCwzMzBMNDYyLDMzMFpNNTA2LDMwOEw1NTAsMzA4TDU1MCwzMzBMNTA2LDMzMFpNNjYsMzMwTDg4LDMzMEw4OCwzNTJMNjYsMzUyWk0xNTQsMzMwTDE3NiwzMzBMMTc2LDM1MkwxNTQsMzUyWk0xOTgsMzMwTDIyMCwzMzBMMjIwLDM1MkwxOTgsMzUyWk0yNDIsMzMwTDI4NiwzMzBMMjg2LDM1MkwyNDIsMzUyWk0zMzAsMzMwTDM3NCwzMzBMMzc0LDM1MkwzMzAsMzUyWk0zOTYsMzMwTDQ0MCwzMzBMNDQwLDM1MkwzOTYsMzUyWk00ODQsMzMwTDUyOCwzMzBMNTI4LDM1Mkw0ODQsMzUyWk0wLDM1Mkw0NCwzNTJMNDQsMzc0TDAsMzc0Wk04OCwzNTJMMTc2LDM1MkwxNzYsMzc0TDg4LDM3NFpNMTk4LDM1MkwyMjAsMzUyTDIyMCwzNzRMMTk4LDM3NFpNMjg2LDM1Mkw0NjIsMzUyTDQ2MiwzNzRMMjg2LDM3NFpNNDg0LDM1Mkw1NTAsMzUyTDU1MCwzNzRMNDg0LDM3NFpNMTc2LDM3NEwxOTgsMzc0TDE5OCwzOTZMMTc2LDM5NlpNMjg2LDM3NEwzMDgsMzc0TDMwOCwzOTZMMjg2LDM5NlpNMzMwLDM3NEwzNzQsMzc0TDM3NCwzOTZMMzMwLDM5NlpNNDQwLDM3NEw0ODQsMzc0TDQ4NCwzOTZMNDQwLDM5NlpNMCwzOTZMMTU0LDM5NkwxNTQsNDE4TDAsNDE4Wk0xNzYsMzk2TDI2NCwzOTZMMjY0LDQxOEwxNzYsNDE4Wk0zMzAsMzk2TDM3NCwzOTZMMzc0LDQxOEwzMzAsNDE4Wk0zOTYsMzk2TDQxOCwzOTZMNDE4LDQxOEwzOTYsNDE4Wk00NDAsMzk2TDQ2MiwzOTZMNDYyLDQxOEw0NDAsNDE4Wk01MjgsMzk2TDU1MCwzOTZMNTUwLDQxOEw1MjgsNDE4Wk0wLDQxOEwyMiw0MThMMjIsNDQwTDAsNDQwWk0xMzIsNDE4TDE1NCw0MThMMTU0LDQ0MEwxMzIsNDQwWk0xOTgsNDE4TDI0Miw0MThMMjQyLDQ0MEwxOTgsNDQwWk0yODYsNDE4TDMwOCw0MThMMzA4LDQ0MEwyODYsNDQwWk0zMzAsNDE4TDM3NCw0MThMMzc0LDQ0MEwzMzAsNDQwWk00NDAsNDE4TDQ2Miw0MThMNDYyLDQ0MEw0NDAsNDQwWk01MjgsNDE4TDU1MCw0MThMNTUwLDQ0MEw1MjgsNDQwWk0wLDQ0MEwyMiw0NDBMMjIsNDYyTDAsNDYyWk00NCw0NDBMMTEwLDQ0MEwxMTAsNDYyTDQ0LDQ2MlpNMTMyLDQ0MEwxNTQsNDQwTDE1NCw0NjJMMTMyLDQ2MlpNMjIwLDQ0MEwzMDgsNDQwTDMwOCw0NjJMMjIwLDQ2MlpNMzMwLDQ0MEw0NjIsNDQwTDQ2Miw0NjJMMzMwLDQ2MlpNNTA2LDQ0MEw1MjgsNDQwTDUyOCw0NjJMNTA2LDQ2MlpNMCw0NjJMMjIsNDYyTDIyLDQ4NEwwLDQ4NFpNNDQsNDYyTDExMCw0NjJMMTEwLDQ4NEw0NCw0ODRaTTEzMiw0NjJMMTU0LDQ2MkwxNTQsNDg0TDEzMiw0ODRaTTE5OCw0NjJMMjIwLDQ2MkwyMjAsNDg0TDE5OCw0ODRaTTI2NCw0NjJMMjg2LDQ2MkwyODYsNDg0TDI2NCw0ODRaTTM1Miw0NjJMMzc0LDQ2MkwzNzQsNDg0TDM1Miw0ODRaTTQxOCw0NjJMNDQwLDQ2Mkw0NDAsNDg0TDQxOCw0ODRaTTUwNiw0NjJMNTI4LDQ2Mkw1MjgsNDg0TDUwNiw0ODRaTTAsNDg0TDIyLDQ4NEwyMiw1MDZMMCw1MDZaTTQ0LDQ4NEwxMTAsNDg0TDExMCw1MDZMNDQsNTA2Wk0xMzIsNDg0TDE1NCw0ODRMMTU0LDUwNkwxMzIsNTA2Wk0xNzYsNDg0TDE5OCw0ODRMMTk4LDUwNkwxNzYsNTA2Wk0yNjQsNDg0TDMzMCw0ODRMMzMwLDUwNkwyNjQsNTA2Wk0zNTIsNDg0TDQ0MCw0ODRMNDQwLDUwNkwzNTIsNTA2Wk00NjIsNDg0TDQ4NCw0ODRMNDg0LDUwNkw0NjIsNTA2Wk01MDYsNDg0TDU1MCw0ODRMNTUwLDUwNkw1MDYsNTA2Wk0wLDUwNkwyMiw1MDZMMjIsNTI4TDAsNTI4Wk0xMzIsNTA2TDE1NCw1MDZMMTU0LDUyOEwxMzIsNTI4Wk0yMjAsNTA2TDI4Niw1MDZMMjg2LDUyOEwyMjAsNTI4Wk0zMDgsNTA2TDMzMCw1MDZMMzMwLDUyOEwzMDgsNTI4Wk0zNzQsNTA2TDM5Niw1MDZMMzk2LDUyOEwzNzQsNTI4Wk00NDAsNTA2TDQ2Miw1MDZMNDYyLDUyOEw0NDAsNTI4Wk01MDYsNTA2TDU1MCw1MDZMNTUwLDUyOEw1MDYsNTI4Wk0wLDUyOEwxNTQsNTI4TDE1NCw1NTBMMCw1NTBaTTE3Niw1MjhMMjQyLDUyOEwyNDIsNTUwTDE3Niw1NTBaTTI4Niw1MjhMMzMwLDUyOEwzMzAsNTUwTDI4Niw1NTBaTTM1Miw1MjhMMzc0LDUyOEwzNzQsNTUwTDM1Miw1NTBaTTQ0MCw1MjhMNTA2LDUyOEw1MDYsNTUwTDQ0MCw1NTBaTTUyOCw1MjhMNTUwLDUyOEw1NTAsNTUwTDUyOCw1NTBaIi8+PGltYWdlIHg9IjIzMy41IiB5PSIyMzMuNSIgd2lkdGg9IjgzIiBoZWlnaHQ9IjgzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUtZQUFBQ21BUUFBQUFCNDg4bmFBQUFBUmtsRVFWUkl4MlA0andYOFlSaUJvaDhZMElIOXFPandGT1VIeHZpQlVkRlIwU0VveW85VWFoMFlGUjBWcFpIb1lFanJvNktqb3BTSUlvRlIwVkZSNm90aUFTTlFGQUNkcS9QSTBVdWdNUUFBQUFCSlJVNUVya0pnZ2c9PSIvPjwvc3ZnPgo=' + : 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNTUwcHgiIGhlaWdodD0iNTUwcHgiIHZpZXdCb3g9IjAgMCA1NTAgNTUwIj48ZGVmcz48cmVjdCBpZD0iYmxvY2siIHdpZHRoPSIyMi4wMDAwMDAwMDAwIiBoZWlnaHQ9IjIyLjAwMDAwMDAwMDAiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSIvPjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNTUwIiBoZWlnaHQ9IjU1MCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIxIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjY2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNjYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI4OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9Ijg4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDE4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE1NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIxNTQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0MTguMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE1NC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTU0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMTAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjg2LjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjxpbWFnZSB4PSIyMzMuNSIgeT0iMjMzLjUiIHdpZHRoPSI4MyIgaGVpZ2h0PSI4MyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFLWUFBQUNtQVFBQUFBQjQ4OG5hQUFBQVJrbEVRVlJJeDJQNGp3WDhZUmlCb2g4WTBJSDlxT2p3Rk9VSHh2aUJVZEZSMFNFb3lvOVVhaDBZRlIwVnBaSG9ZRWpybzZLam9wU0lJb0ZSMFZGUjZvdGlBU05RRkFDZHEvUEkwVXVnTVFBQUFBQkpSVTVFcmtKZ2dnPT0iLz48L3N2Zz4K', QrCode::FILE_FORMAT_SVG ] ]; @@ -109,7 +113,7 @@ public function stringProvider() # ], [ 'code' => 'This is a test code', - 'string' => file_get_contents(__DIR__ . '/../TestData/QrCode/string.svg'), + 'string' => file_get_contents(__DIR__ . '/../TestData/QrCode/string' . $this->getCompact() . '.svg'), 'format' => QrCode::FILE_FORMAT_SVG ] ]; diff --git a/tests/TestCompactSvgQrCodeTrait.php b/tests/TestCompactSvgQrCodeTrait.php new file mode 100644 index 00000000..326f1194 --- /dev/null +++ b/tests/TestCompactSvgQrCodeTrait.php @@ -0,0 +1,15 @@ + +#qr-bill { + box-sizing: border-box; + border-collapse: collapse; + color: #000 !important; +} + +#qr-bill * { + font-family: Arial, Frutiger, Helvetica, "Liberation Sans" !important; +} + +#qr-bill img.qr-bill-placeholder { + margin-top: 1pt; +} + +#qr-bill-separate-info { + text-align: center; + font-size: 8pt !important; + line-height: 9pt; + border-bottom: 0.75pt solid black; + height: 5mm; + vertical-align: middle; +} + +/* h1 / h2 */ +#qr-bill h1 { + font-size: 11pt !important; + line-height: 13pt !important; + font-weight: bold !important; + margin: 0 !important; + padding: 0 !important; + height: 7mm !important; + color: #000 !important; +} + +#qr-bill h2 { + font-weight: bold !important; + margin: 0 !important; + padding: 0 !important; + color: #000 !important; +} + +#qr-bill-payment-part h2 { + font-size: 8pt !important; + line-height: 11pt !important; + margin-top: 11pt !important; + color: #000 !important; +} + +#qr-bill-receipt h2 { + font-size: 6pt !important; + line-height: 8pt !important; + margin-top: 8pt !important; + color: #000 !important; +} + +#qr-bill-payment-part h2:first-child, +#qr-bill-receipt h2:first-child { + margin-top: 0 !important; + color: #000 !important; +} + +/* p */ +#qr-bill p { + font-weight: normal !important; + margin: 0 !important; + padding: 0 !important; + color: #000 !important; +} + +#qr-bill-receipt p { + font-size: 8pt !important; + line-height: 9pt !important; + color: #000 !important; +} + +#qr-bill-payment-part p { + font-size: 10pt !important; + line-height: 11pt !important; + color: #000 !important; +} + +#qr-bill-amount-area-receipt p{ + line-height: 11pt !important; + color: #000 !important; +} + +#qr-bill-amount-area p{ + line-height: 13pt !important; + color: #000 !important; +} + +#qr-bill-payment-further-information p { + font-size: 7pt !important; + line-height: 9pt !important; + color: #000 !important; +} + +/* Receipt */ +#qr-bill-receipt { + box-sizing: border-box; + width: 62mm; + border-right: 0.2mm solid black; + padding-left: 5mm; + padding-top: 5mm; + vertical-align: top; +} + +#qr-bill-information-receipt { + height: 56mm; +} + +#qr-bill-amount-area-receipt { + height: 14mm; +} + +#qr-bill-currency-receipt { + float: left; + margin-right: 2mm; +} + +#qr-bill-acceptance-point { + height: 18mm; + text-align: right; + margin-right: 5mm; +} + +#qr-bill img#placeholder_amount_receipt { + float: right; + margin-top: -9pt; + margin-right: 5mm; +} + +/* Main part */ +#qr-bill-payment-part { + box-sizing: border-box; + width: 148mm; + padding-left: 5mm; + padding-top: 5mm; + padding-right: 5mm; + vertical-align: top; +} + +#qr-bill-payment-part-left { + float: left; + box-sizing: border-box; + width: 51mm; +} + +#qr-bill-swiss-qr-image { + width: 46mm; + height: 46mm; + margin: 5mm; + margin-left: 0; +} + +#qr-bill-amount-area { + height: 22mm; +} + +#qr-bill-currency { + float: left; + margin-right: 2mm; +} + +#qr-bill-payment-further-information { + clear: both; +} + +#qr-bill img#placeholder_amount { + margin-left: 11mm; + margin-top: -11pt; +} + + + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.print.html new file mode 100644 index 00000000..0374a5f1 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.print.html @@ -0,0 +1,242 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.html b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.html new file mode 100644 index 00000000..d9a265d2 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.html @@ -0,0 +1,231 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.print.html new file mode 100644 index 00000000..dd9419b7 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.print.html @@ -0,0 +1,241 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-full-set-compact.svg.html b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.html new file mode 100644 index 00000000..e7742578 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.html @@ -0,0 +1,237 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-full-set-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.print.html new file mode 100644 index 00000000..c24cd6f5 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.print.html @@ -0,0 +1,247 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.html new file mode 100644 index 00000000..c819cfe0 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.html @@ -0,0 +1,234 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 MĂŒnchen

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 MĂŒnchen

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.print.html new file mode 100644 index 00000000..9ed491dc --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.print.html @@ -0,0 +1,244 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 MĂŒnchen

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 MĂŒnchen

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.html b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.html new file mode 100644 index 00000000..6330e202 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.print.html new file mode 100644 index 00000000..6fd2bc40 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.html new file mode 100644 index 00000000..e43a8686 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.html @@ -0,0 +1,229 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.print.html new file mode 100644 index 00000000..78159b83 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.print.html @@ -0,0 +1,239 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.html new file mode 100644 index 00000000..e1344f89 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, oĂč le soleil brille encore la nuit

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, oĂč le soleil brille encore la nuit

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.print.html new file mode 100644 index 00000000..672192e6 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, oĂč le soleil brille encore la nuit

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, oĂč le soleil brille encore la nuit

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.html new file mode 100644 index 00000000..61ace3e5 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.html @@ -0,0 +1,234 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.print.html new file mode 100644 index 00000000..f35a4c75 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.print.html @@ -0,0 +1,244 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.html new file mode 100644 index 00000000..d75b050b --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.print.html new file mode 100644 index 00000000..0795ef6e --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.html new file mode 100644 index 00000000..0d43a913 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

DO NOT USE FOR PAYMENT

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.print.html new file mode 100644 index 00000000..cc0062fc --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

DO NOT USE FOR PAYMENT

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.html new file mode 100644 index 00000000..c7e77435 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.print.html new file mode 100644 index 00000000..cb28b5df --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.html new file mode 100644 index 00000000..2fbae7b7 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.print.html new file mode 100644 index 00000000..40bae05a --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.html new file mode 100644 index 00000000..e16afda4 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.html @@ -0,0 +1,234 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.print.html new file mode 100644 index 00000000..5c04906b --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.print.html @@ -0,0 +1,244 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/QrCode/string-compact.svg b/tests/TestData/QrCode/string-compact.svg new file mode 100644 index 00000000..f8aa4628 --- /dev/null +++ b/tests/TestData/QrCode/string-compact.svg @@ -0,0 +1,2 @@ + +