From 52bddc0310a04de8dd6ce688a6caef685bfc034f Mon Sep 17 00:00:00 2001 From: Borber Date: Thu, 9 Nov 2023 17:19:33 +0800 Subject: [PATCH] init --- .eslintrc.json | 22 + .github/dependabot.yml | 14 + .github/workflows/release.yml | 101 + .github/workflows/test_build.yml | 37 + .gitignore | 3 + .prettierrc.toml | 7 + CHANGELOG.md | 14 + LICENSE | 674 ++++ README.md | 58 + index.html | 15 + justfile | 21 + package.json | 30 + pnpm-lock.yaml | 3206 ++++++++++++++++ resource/mirror.json | 4 + script/built.ts | 23 + script/lang.ts | 30 + script/version.ts | 19 + src-tauri/.gitignore | 4 + src-tauri/Cargo.lock | 4982 +++++++++++++++++++++++++ src-tauri/Cargo.toml | 70 + src-tauri/build.rs | 3 + src-tauri/icons/128x128.png | Bin 0 -> 8027 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 16841 bytes src-tauri/icons/32x32.png | Bin 0 -> 1793 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 6783 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 8913 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 9522 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 18922 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1748 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 21259 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 2670 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 4531 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 5766 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 3116 bytes src-tauri/icons/icon.icns | Bin 0 -> 203680 bytes src-tauri/icons/icon.ico | Bin 0 -> 29921 bytes src-tauri/icons/icon.png | Bin 0 -> 20129 bytes src-tauri/src/clip.rs | 11 + src-tauri/src/common.rs | 10 + src-tauri/src/config.rs | 83 + src-tauri/src/lang.rs | 21 + src-tauri/src/main.rs | 88 + src-tauri/src/manager/api.rs | 111 + src-tauri/src/manager/mirror.rs | 46 + src-tauri/src/manager/mod.rs | 2 + src-tauri/src/resp.rs | 42 + src-tauri/src/setup.rs | 21 + src-tauri/src/shortcut.rs | 36 + src-tauri/src/tray.rs | 27 + src-tauri/src/util.rs | 12 + src-tauri/src/window.rs | 22 + src-tauri/tauri.conf.json | 91 + src/App.css | 3 + src/App.tsx | 33 + src/components/Control.tsx | 82 + src/components/TopBar.tsx | 7 + src/css/Control.css | 33 + src/css/Panel.css | 95 + src/css/Setting.css | 61 + src/css/TopBar.css | 4 + src/icon.tsx | 82 + src/index.tsx | 16 + src/model/resp.tsx | 5 + src/page/Panel.tsx | 132 + src/page/Setting.tsx | 84 + src/styles.css | 213 ++ src/util/sleep.tsx | 7 + src/util/timestamp.tsx | 9 + src/util/tray/css/Tray.css | 26 + src/util/tray/page/Tray.tsx | 71 + tsconfig.json | 28 + tsconfig.node.json | 10 + vite.config.ts | 22 + 73 files changed, 10983 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test_build.yml create mode 100644 .gitignore create mode 100644 .prettierrc.toml create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 index.html create mode 100644 justfile create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 resource/mirror.json create mode 100644 script/built.ts create mode 100644 script/lang.ts create mode 100644 script/version.ts create mode 100644 src-tauri/.gitignore create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/src/clip.rs create mode 100644 src-tauri/src/common.rs create mode 100644 src-tauri/src/config.rs create mode 100644 src-tauri/src/lang.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/src/manager/api.rs create mode 100644 src-tauri/src/manager/mirror.rs create mode 100644 src-tauri/src/manager/mod.rs create mode 100644 src-tauri/src/resp.rs create mode 100644 src-tauri/src/setup.rs create mode 100644 src-tauri/src/shortcut.rs create mode 100644 src-tauri/src/tray.rs create mode 100644 src-tauri/src/util.rs create mode 100644 src-tauri/src/window.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/App.css create mode 100644 src/App.tsx create mode 100644 src/components/Control.tsx create mode 100644 src/components/TopBar.tsx create mode 100644 src/css/Control.css create mode 100644 src/css/Panel.css create mode 100644 src/css/Setting.css create mode 100644 src/css/TopBar.css create mode 100644 src/icon.tsx create mode 100644 src/index.tsx create mode 100644 src/model/resp.tsx create mode 100644 src/page/Panel.tsx create mode 100644 src/page/Setting.tsx create mode 100644 src/styles.css create mode 100644 src/util/sleep.tsx create mode 100644 src/util/timestamp.tsx create mode 100644 src/util/tray/css/Tray.css create mode 100644 src/util/tray/page/Tray.tsx create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..398a91e --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,22 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint", "solid", "simple-import-sort"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:solid/typescript" + ], + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "ignorePatterns": ["src/assets", "src/css", "src/*.css"], + "rules": { + "simple-import-sort/imports": "error", + "simple-import-sort/exports": "error" + } +} diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..8ea53a2 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + - package-ecosystem: cargo + directory: /src-tauri + schedule: + interval: daily + - package-ecosystem: npm + directory: / + schedule: + interval: daily diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..da10979 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,101 @@ +name: "Release" + +permissions: + contents: write + +on: + push: + tags: + - v.* + +jobs: + changelog: + runs-on: ubuntu-latest + outputs: + changes: ${{ steps.changelog_reader.outputs.changes }} + version: ${{ steps.changelog_reader.outputs.VERSION }} + steps: + - uses: actions/checkout@v4 + - name: Get version number + id: get_version + run: | + VERSION=${GITHUB_REF#refs/tags/} + VERSION=${VERSION/v./} + echo "::set-output name=version::$VERSION" + - name: Changelog Reader + id: changelog_reader + uses: mindsers/changelog-reader-action@v2.2.2 + with: + path: "CHANGELOG.md" + version: ${{ steps.get_version.outputs.version }} + + build: + needs: changelog + outputs: + release_id: ${{ steps.action_gh_release.outputs.id }} + strategy: + fail-fast: false + matrix: + lang: [zh_en, zh_jp] + platform: [macos-latest, ubuntu-latest, windows-latest] + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install Rust nightly + uses: dtolnay/rust-toolchain@nightly + + - name: Install dependencies (windows only) + if: matrix.platform == 'windows-latest' + uses: ilammy/msvc-dev-cmd@v1 + - name: Install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf + + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: latest + - name: Install frontend dependencies + run: pnpm install + + - name: Install deno + uses: denoland/setup-deno@v1 + with: + deno-version: canary + + - name: Confirm language + env: + MATRIX_LANG: ${{ matrix.lang }} + run: deno run -A script/lang.ts + + - name: Build + uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Built + env: + MATRIX_LANG: ${{ matrix.lang }} + run: deno run -A script/built.ts + + - name: Upload release assets + id: action_gh_release + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + name: Tran ${{ needs.changelog.outputs.version }} + body: | + ${{ needs.changelog.outputs.changes }} + files: release/* + draft: true + prerelease: false diff --git a/.github/workflows/test_build.yml b/.github/workflows/test_build.yml new file mode 100644 index 0000000..9b93f4d --- /dev/null +++ b/.github/workflows/test_build.yml @@ -0,0 +1,37 @@ +name: "Test build" +on: [pull_request] + +jobs: + test-tauri: + strategy: + fail-fast: true + matrix: + platform: [macos-latest, ubuntu-latest, windows-latest] + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Install Rust nightly + uses: dtolnay/rust-toolchain@nightly + - name: Install dependencies (windows only) + if: matrix.platform == 'windows-latest' + uses: ilammy/msvc-dev-cmd@v1 + - name: Install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: latest + - name: Install frontend dependencies + run: pnpm install + - name: Build + uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2dd9a5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +dist +.vscode \ No newline at end of file diff --git a/.prettierrc.toml b/.prettierrc.toml new file mode 100644 index 0000000..9629f16 --- /dev/null +++ b/.prettierrc.toml @@ -0,0 +1,7 @@ +semi = false +tabWidth = 4 + +[[overrides]] +files = "*.yml" +[overrides.options] +tabWidth = 2 #缩进字节数 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..5a875d8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog + +## [0.1.1] + +
+ +| **To \ Form** | **CN** | +| :-----------: | :----: | +| **EN** | ✅ | +| **JP** | ✅ | + +
+ +如有 Bug,请提 issue diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..23246f1 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# Tran + +简洁, 快速, 划词翻译 + +> **Keep it simple,stupid.** + +# 功能 + +| 划词翻译 | 划过固定 | +| :----------------------------------------------------------------------: | :-----------------------------------------------------------------: | +| | | + +| 划过关闭 | 划过复制 | +| :-----------------------------------------------------------------: | :----------------------------------------------------------------: | +| | | + +**快捷键:** `Alt + X` + +# 构建 + +
+ +| **To \ Form** | **CN** | +| :-----------: | :----: | +| **EN** | ✅ | +| **JP** | ✅ | + +
+ +> `Form` 为第一语言, 非第一语言将翻译为第一语言 +> +> `To` 为第二语言, 第一语言将翻译为第二语言 + +**Q: 为什么要分别构建, 而不是一个程序支持所有语言呢?** + +因为每多一种语言类型, 构建的包就会增大, 若支持大多数语言,程序将增大到数十 m,而这对于仅需要两种语言(~~就是我~~)的人不太友好, 并且也会导致识别语言类型时花费更多的时间. 所以`tran`将分别构建 + +**如果你有其他语言的需要, 请提 `issue` 我将添加构建** + +# 贡献 + +理论上,更多的镜像能支持更多的人使用,更多人使用则 `tran` 翻译速度会保持在很快的速度,因为 vercel 冷启动耗时很长。频繁的请求能使它一直运行。所以鼓励你贡献镜像并频繁使用 `tran`. + +## 创建镜像 + +### [V2G](https://github.com/Borber/v2g) + +vercel proxy google translate + +Deploy to Vercel + +> 因 vercel 默认域名无法直接访问, 如果您没有域名,可以提 issue , 我将提供域名供您绑定。 + +**部署后可 PR 到 [MIRROR](https://github.com/Borber/tran/blob/master/resource/mirror.json) 来贡献你的力量** + +# 感谢 + +- **[Pot](https://github.com/pot-app/pot-desktop)** 划词功能模块 [Selection](https://github.com/pot-app/Selection) diff --git a/index.html b/index.html new file mode 100644 index 0000000..1c35ab6 --- /dev/null +++ b/index.html @@ -0,0 +1,15 @@ + + + + + + + Tran + + + + +
+ + + diff --git a/justfile b/justfile new file mode 100644 index 0000000..ebb1386 --- /dev/null +++ b/justfile @@ -0,0 +1,21 @@ +[private] +default: + @just --list + +# 编译 +b: + pnpm tauri build + +# 调试 +d: + pnpm tauri dev + +# 更新版本 +v: + deno run -A script/version.ts + +# 更新 GUI 依赖 +up: + pnpm up --interactive --latest; \ + cd ./src-tauri; \ + cargo update diff --git a/package.json b/package.json new file mode 100644 index 0000000..af96170 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "tran", + "version": "0.1.1", + "description": "", + "scripts": { + "start": "vite", + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "tauri": "tauri" + }, + "license": "MIT", + "dependencies": { + "@solidjs/router": "^0.9.1", + "@tauri-apps/api": "^1.5.1", + "solid-js": "^1.8.6" + }, + "devDependencies": { + "@tauri-apps/cli": "^1.5.6", + "@types/node": "^20.9.4", + "@typescript-eslint/eslint-plugin": "^6.12.0", + "@typescript-eslint/parser": "^6.12.0", + "eslint": "^8.54.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "eslint-plugin-solid": "^0.13.0", + "typescript": "^5.3.2", + "vite": "^5.0.2", + "vite-plugin-solid": "^2.7.2" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..137a9e1 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3206 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@solidjs/router': + specifier: ^0.9.1 + version: 0.9.1(solid-js@1.8.6) + '@tauri-apps/api': + specifier: ^1.5.1 + version: 1.5.1 + solid-js: + specifier: ^1.8.6 + version: 1.8.6 + +devDependencies: + '@tauri-apps/cli': + specifier: ^1.5.6 + version: 1.5.6 + '@types/node': + specifier: ^20.9.4 + version: registry.npmmirror.com/@types/node@20.9.4 + '@typescript-eslint/eslint-plugin': + specifier: ^6.12.0 + version: registry.npmmirror.com/@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': + specifier: ^6.12.0 + version: registry.npmmirror.com/@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2) + eslint: + specifier: ^8.54.0 + version: registry.npmmirror.com/eslint@8.54.0 + eslint-plugin-simple-import-sort: + specifier: ^10.0.0 + version: registry.npmmirror.com/eslint-plugin-simple-import-sort@10.0.0(eslint@8.54.0) + eslint-plugin-solid: + specifier: ^0.13.0 + version: registry.npmmirror.com/eslint-plugin-solid@0.13.0(eslint@8.54.0)(typescript@5.3.2) + typescript: + specifier: ^5.3.2 + version: registry.npmmirror.com/typescript@5.3.2 + vite: + specifier: ^5.0.2 + version: registry.npmmirror.com/vite@5.0.2(@types/node@20.9.4) + vite-plugin-solid: + specifier: ^2.7.2 + version: 2.7.2(solid-js@1.8.6)(vite@5.0.2) + +packages: + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.2): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) + dev: true + + /@babel/preset-typescript@7.23.2(@babel/core@7.23.2): + resolution: {integrity: sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.2) + dev: true + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@esbuild/android-arm64@0.19.7: + resolution: {integrity: sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.7: + resolution: {integrity: sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.7: + resolution: {integrity: sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.7: + resolution: {integrity: sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.7: + resolution: {integrity: sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.7: + resolution: {integrity: sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.7: + resolution: {integrity: sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.7: + resolution: {integrity: sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.7: + resolution: {integrity: sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.7: + resolution: {integrity: sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.7: + resolution: {integrity: sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.7: + resolution: {integrity: sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.7: + resolution: {integrity: sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.7: + resolution: {integrity: sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.7: + resolution: {integrity: sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.7: + resolution: {integrity: sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.7: + resolution: {integrity: sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.7: + resolution: {integrity: sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.7: + resolution: {integrity: sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.7: + resolution: {integrity: sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.7: + resolution: {integrity: sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.7: + resolution: {integrity: sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@rollup/rollup-android-arm-eabi@4.5.1: + resolution: {integrity: sha512-YaN43wTyEBaMqLDYeze+gQ4ZrW5RbTEGtT5o1GVDkhpdNcsLTnLRcLccvwy3E9wiDKWg9RIhuoy3JQKDRBfaZA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.5.1: + resolution: {integrity: sha512-n1bX+LCGlQVuPlCofO0zOKe1b2XkFozAVRoczT+yxWZPGnkEAKTTYVOGZz8N4sKuBnKMxDbfhUsB1uwYdup/sw==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.5.1: + resolution: {integrity: sha512-QqJBumdvfBqBBmyGHlKxje+iowZwrHna7pokj/Go3dV1PJekSKfmjKrjKQ/e6ESTGhkfPNLq3VXdYLAc+UtAQw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.5.1: + resolution: {integrity: sha512-RrkDNkR/P5AEQSPkxQPmd2ri8WTjSl0RYmuFOiEABkEY/FSg0a4riihWQGKDJ4LnV9gigWZlTMx2DtFGzUrYQw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.5.1: + resolution: {integrity: sha512-ZFPxvUZmE+fkB/8D9y/SWl/XaDzNSaxd1TJUSE27XAKlRpQ2VNce/86bGd9mEUgL3qrvjJ9XTGwoX0BrJkYK/A==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.5.1: + resolution: {integrity: sha512-FEuAjzVIld5WVhu+M2OewLmjmbXWd3q7Zcx+Rwy4QObQCqfblriDMMS7p7+pwgjZoo9BLkP3wa9uglQXzsB9ww==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.5.1: + resolution: {integrity: sha512-f5Gs8WQixqGRtI0Iq/cMqvFYmgFzMinuJO24KRfnv7Ohi/HQclwrBCYkzQu1XfLEEt3DZyvveq9HWo4bLJf1Lw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.5.1: + resolution: {integrity: sha512-CWPkPGrFfN2vj3mw+S7A/4ZaU3rTV7AkXUr08W9lNP+UzOvKLVf34tWCqrKrfwQ0NTk5GFqUr2XGpeR2p6R4gw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.5.1: + resolution: {integrity: sha512-ZRETMFA0uVukUC9u31Ed1nx++29073goCxZtmZARwk5aF/ltuENaeTtRVsSQzFlzdd4J6L3qUm+EW8cbGt0CKQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.5.1: + resolution: {integrity: sha512-ihqfNJNb2XtoZMSCPeoo0cYMgU04ksyFIoOw5S0JUVbOhafLot+KD82vpKXOurE2+9o/awrqIxku9MRR9hozHQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.5.1: + resolution: {integrity: sha512-zK9MRpC8946lQ9ypFn4gLpdwr5a01aQ/odiIJeL9EbgZDMgbZjjT/XzTqJvDfTmnE1kHdbG20sAeNlpc91/wbg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.5.1: + resolution: {integrity: sha512-5I3Nz4Sb9TYOtkRwlH0ow+BhMH2vnh38tZ4J4mggE48M/YyJyp/0sPSxhw1UeS1+oBgQ8q7maFtSeKpeRJu41Q==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@solidjs/router@0.9.1(solid-js@1.8.6): + resolution: {integrity: sha512-kRY75piOQsyoH75E/RP6lr7uVGFCjeeCCCJx7Z2D1Vc6+I1yFQjLCvE+6agXGwqDoWi6vbETP1g7gmp/L1mNLg==} + peerDependencies: + solid-js: ^1.8.4 + dependencies: + solid-js: 1.8.6 + dev: false + + /@tauri-apps/api@1.5.1: + resolution: {integrity: sha512-6unsZDOdlXTmauU3NhWhn+Cx0rODV+rvNvTdvolE5Kls5ybA6cqndQENDt1+FS0tF7ozCP66jwWoH6a5h90BrA==} + engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + dev: false + + /@tauri-apps/cli-darwin-arm64@1.5.6: + resolution: {integrity: sha512-NNvG3XLtciCMsBahbDNUEvq184VZmOveTGOuy0So2R33b/6FDkuWaSgWZsR1mISpOuP034htQYW0VITCLelfqg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-darwin-x64@1.5.6: + resolution: {integrity: sha512-nkiqmtUQw3N1j4WoVjv81q6zWuZFhBLya/RNGUL94oafORloOZoSY0uTZJAoeieb3Y1YK0rCHSDl02MyV2Fi4A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm-gnueabihf@1.5.6: + resolution: {integrity: sha512-z6SPx+axZexmWXTIVPNs4Tg7FtvdJl9EKxYN6JPjOmDZcqA13iyqWBQal2DA/GMZ1Xqo3vyJf6EoEaKaliymPQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm64-gnu@1.5.6: + resolution: {integrity: sha512-QuQjMQmpsCbzBrmtQiG4uhnfAbdFx3nzm+9LtqjuZlurc12+Mj5MTgqQ3AOwQedH3f7C+KlvbqD2AdXpwTg7VA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-arm64-musl@1.5.6: + resolution: {integrity: sha512-8j5dH3odweFeom7bRGlfzDApWVOT4jIq8/214Wl+JeiNVehouIBo9lZGeghZBH3XKFRwEvU23i7sRVjuh2s8mg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-x64-gnu@1.5.6: + resolution: {integrity: sha512-gbFHYHfdEGW0ffk8SigDsoXks6USpilF6wR0nqB/JbWzbzFR/sBuLVNQlJl1RKNakyJHu+lsFxGy0fcTdoX8xA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-linux-x64-musl@1.5.6: + resolution: {integrity: sha512-9v688ogoLkeFYQNgqiSErfhTreLUd8B3prIBSYUt+x4+5Kcw91zWvIh+VSxL1n3KCGGsM7cuXhkGPaxwlEh1ug==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-win32-arm64-msvc@1.5.6: + resolution: {integrity: sha512-DRNDXFNZb6y5IZrw+lhTTA9l4wbzO4TNRBAlHAiXUrH+pRFZ/ZJtv5WEuAj9ocVSahVw2NaK5Yaold4NPAxHog==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-win32-ia32-msvc@1.5.6: + resolution: {integrity: sha512-oUYKNR/IZjF4fsOzRpw0xesl2lOjhsQEyWlgbpT25T83EU113Xgck9UjtI7xemNI/OPCv1tPiaM1e7/ABdg5iA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli-win32-x64-msvc@1.5.6: + resolution: {integrity: sha512-RmEf1os9C8//uq2hbjXi7Vgz9ne7798ZxqemAZdUwo1pv3oLVZSz1/IvZmUHPdy2e6zSeySqWu1D0Y3QRNN+dg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tauri-apps/cli@1.5.6: + resolution: {integrity: sha512-k4Y19oVCnt7WZb2TnDzLqfs7o98Jq0tUoVMv+JQSzuRDJqaVu2xMBZ8dYplEn+EccdR5SOMyzaLBJWu38TVK1A==} + engines: {node: '>= 10'} + hasBin: true + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 1.5.6 + '@tauri-apps/cli-darwin-x64': 1.5.6 + '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.6 + '@tauri-apps/cli-linux-arm64-gnu': 1.5.6 + '@tauri-apps/cli-linux-arm64-musl': 1.5.6 + '@tauri-apps/cli-linux-x64-gnu': 1.5.6 + '@tauri-apps/cli-linux-x64-musl': 1.5.6 + '@tauri-apps/cli-win32-arm64-msvc': 1.5.6 + '@tauri-apps/cli-win32-ia32-msvc': 1.5.6 + '@tauri-apps/cli-win32-x64-msvc': 1.5.6 + dev: true + + /@types/babel__core@7.20.3: + resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + '@types/babel__generator': 7.6.6 + '@types/babel__template': 7.4.3 + '@types/babel__traverse': 7.20.3 + dev: true + + /@types/babel__generator@7.6.6: + resolution: {integrity: sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@types/babel__template@7.4.3: + resolution: {integrity: sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==} + dependencies: + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@types/babel__traverse@7.20.3: + resolution: {integrity: sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /babel-plugin-jsx-dom-expressions@0.37.2(@babel/core@7.23.2): + resolution: {integrity: sha512-u3VKB+On86cYSLAbw9j0m0X8ZejL4MR7oG7TRlrMQ/y1mauR/ZpM2xkiOPZEUlzHLo1GYGlTdP9s5D3XuA6iSQ==} + peerDependencies: + '@babel/core': ^7.20.12 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/types': 7.23.0 + html-entities: 2.3.3 + validate-html-nesting: 1.2.2 + dev: true + + /babel-preset-solid@1.8.2(@babel/core@7.23.2): + resolution: {integrity: sha512-hEIy4K1CGPQwCekFJ9NV3T92fezS4GQV0SQXEGVe9dyo+7iI7Fjuu6OKIdE5z/S4IfMEL6gCU+1AZ3yK6PnGMg==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + babel-plugin-jsx-dom-expressions: 0.37.2(@babel/core@7.23.2) + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001553 + electron-to-chromium: 1.4.566 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + + /caniuse-lite@1.0.30001553: + resolution: {integrity: sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==} + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /electron-to-chromium@1.4.566: + resolution: {integrity: sha512-mv+fAy27uOmTVlUULy15U3DVJ+jg+8iyKH1bpwboCRhtDC69GKf1PPTZvEIhCyDr81RFqfxZJYrbgp933a1vtg==} + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /html-entities@2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + dev: true + + /is-what@4.1.15: + resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==} + engines: {node: '>=12.13'} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /merge-anything@5.1.7: + resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.15 + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /seroval@0.14.1: + resolution: {integrity: sha512-ZlC9y1KVDhZFdEHLYZup1RjKDutyX1tt3ffOauqRbRURa2vRr2NU/bHuVEuNEqR3zE2uCU3WM6LqH6Oinc3tWg==} + engines: {node: '>=10'} + + /solid-js@1.8.6: + resolution: {integrity: sha512-yiH6ZfBBZ3xj/aU/PBpVKB+8r8WWp100NGF7k/Z0IrK9Y8Lv0jwvFiJY1cHdc6Tj7GqXArKnMBabM0m1k+LzkA==} + dependencies: + csstype: 3.1.2 + seroval: 0.14.1 + + /solid-refresh@0.5.3(solid-js@1.8.6): + resolution: {integrity: sha512-Otg5it5sjOdZbQZJnvo99TEBAr6J7PQ5AubZLNU6szZzg3RQQ5MX04oteBIIGDs0y2Qv8aXKm9e44V8z+UnFdw==} + peerDependencies: + solid-js: ^1.3 + dependencies: + '@babel/generator': 7.23.0 + '@babel/helper-module-imports': 7.22.15 + '@babel/types': 7.23.0 + solid-js: 1.8.6 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /validate-html-nesting@1.2.2: + resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} + dev: true + + /vite-plugin-solid@2.7.2(solid-js@1.8.6)(vite@5.0.2): + resolution: {integrity: sha512-GV2SMLAibOoXe76i02AsjAg7sbm/0lngBlERvJKVN67HOrJsHcWgkt0R6sfGLDJuFkv2aBe14Zm4vJcNME+7zw==} + peerDependencies: + solid-js: ^1.7.2 + vite: ^3.0.0 || ^4.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/preset-typescript': 7.23.2(@babel/core@7.23.2) + '@types/babel__core': 7.20.3 + babel-preset-solid: 1.8.2(@babel/core@7.23.2) + merge-anything: 5.1.7 + solid-js: 1.8.6 + solid-refresh: 0.5.3(solid-js@1.8.6) + vite: registry.npmmirror.com/vite@5.0.2(@types/node@20.9.4) + vitefu: 0.2.5(vite@5.0.2) + transitivePeerDependencies: + - supports-color + dev: true + + /vitefu@0.2.5(vite@5.0.2): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: registry.npmmirror.com/vite@5.0.2(@types/node@20.9.4) + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + registry.npmmirror.com/@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, tarball: https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz} + name: '@aashutoshrathi/word-wrap' + version: 1.2.6 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 + name: '@eslint-community/eslint-utils' + version: 4.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: registry.npmmirror.com/eslint@8.54.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: true + + registry.npmmirror.com/@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, tarball: https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz} + name: '@eslint-community/regexpp' + version: 4.10.0 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==, tarball: https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz} + name: '@eslint/eslintrc' + version: 2.1.3 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: registry.npmmirror.com/ajv@6.12.6 + debug: registry.npmmirror.com/debug@4.3.4 + espree: registry.npmmirror.com/espree@9.6.1 + globals: registry.npmmirror.com/globals@13.23.0 + ignore: registry.npmmirror.com/ignore@5.3.0 + import-fresh: registry.npmmirror.com/import-fresh@3.3.0 + js-yaml: registry.npmmirror.com/js-yaml@4.1.0 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + strip-json-comments: registry.npmmirror.com/strip-json-comments@3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==, tarball: https://registry.npmmirror.com/@eslint/js/-/js-8.54.0.tgz} + name: '@eslint/js' + version: 8.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz} + name: '@humanwhocodes/config-array' + version: 0.11.13 + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': registry.npmmirror.com/@humanwhocodes/object-schema@2.0.1 + debug: registry.npmmirror.com/debug@4.3.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, tarball: https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} + name: '@humanwhocodes/module-importer' + version: 1.0.1 + engines: {node: '>=12.22'} + dev: true + + registry.npmmirror.com/@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==, tarball: https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz} + name: '@humanwhocodes/object-schema' + version: 2.0.1 + dev: true + + registry.npmmirror.com/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmmirror.com/run-parallel@1.2.0 + dev: true + + registry.npmmirror.com/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmmirror.com/fastq@1.15.0 + dev: true + + registry.npmmirror.com/@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.12.tgz} + name: '@types/json-schema' + version: 7.0.12 + dev: true + + registry.npmmirror.com/@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz} + name: '@types/json-schema' + version: 7.0.15 + dev: true + + registry.npmmirror.com/@types/node@20.9.4: + resolution: {integrity: sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==, tarball: https://registry.npmmirror.com/@types/node/-/node-20.9.4.tgz} + name: '@types/node' + version: 20.9.4 + dependencies: + undici-types: registry.npmmirror.com/undici-types@5.26.5 + dev: true + + registry.npmmirror.com/@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@types/semver/-/semver-7.5.0.tgz} + name: '@types/semver' + version: 7.5.0 + dev: true + + registry.npmmirror.com/@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==, tarball: https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz} + name: '@types/semver' + version: 7.5.6 + dev: true + + registry.npmmirror.com/@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/6.12.0 + name: '@typescript-eslint/eslint-plugin' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@6.12.0 + '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.12.0 + debug: registry.npmmirror.com/debug@4.3.4 + eslint: registry.npmmirror.com/eslint@8.54.0 + graphemer: registry.npmmirror.com/graphemer@1.4.0 + ignore: registry.npmmirror.com/ignore@5.3.0 + natural-compare: registry.npmmirror.com/natural-compare@1.4.0 + semver: registry.npmmirror.com/semver@7.5.4 + ts-api-utils: registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.2) + typescript: registry.npmmirror.com/typescript@5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.12.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/parser/6.12.0 + name: '@typescript-eslint/parser' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@6.12.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.12.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2) + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.12.0 + debug: registry.npmmirror.com/debug@4.3.4 + eslint: registry.npmmirror.com/eslint@8.54.0 + typescript: registry.npmmirror.com/typescript@5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/scope-manager@6.12.0: + resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz} + name: '@typescript-eslint/scope-manager' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.12.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.12.0 + dev: true + + registry.npmmirror.com/@typescript-eslint/scope-manager@6.4.1: + resolution: {integrity: sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz} + name: '@typescript-eslint/scope-manager' + version: 6.4.1 + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.4.1 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.4.1 + dev: true + + registry.npmmirror.com/@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/type-utils/6.12.0 + name: '@typescript-eslint/type-utils' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: registry.npmmirror.com/eslint@8.54.0 + ts-api-utils: registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.2) + typescript: registry.npmmirror.com/typescript@5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/types@6.12.0: + resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.12.0.tgz} + name: '@typescript-eslint/types' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + registry.npmmirror.com/@typescript-eslint/types@6.4.1: + resolution: {integrity: sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.4.1.tgz} + name: '@typescript-eslint/types' + version: 6.4.1 + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + registry.npmmirror.com/@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/typescript-estree/6.12.0 + name: '@typescript-eslint/typescript-estree' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.12.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.12.0 + debug: registry.npmmirror.com/debug@4.3.4 + globby: registry.npmmirror.com/globby@11.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + semver: registry.npmmirror.com/semver@7.5.4 + ts-api-utils: registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.2) + typescript: registry.npmmirror.com/typescript@5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/typescript-estree@6.4.1(typescript@5.3.2): + resolution: {integrity: sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz} + id: registry.npmmirror.com/@typescript-eslint/typescript-estree/6.4.1 + name: '@typescript-eslint/typescript-estree' + version: 6.4.1 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.4.1 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.4.1 + debug: registry.npmmirror.com/debug@4.3.4 + globby: registry.npmmirror.com/globby@11.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + semver: registry.npmmirror.com/semver@7.5.4 + ts-api-utils: registry.npmmirror.com/ts-api-utils@1.0.2(typescript@5.3.2) + typescript: registry.npmmirror.com/typescript@5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.12.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/utils/6.12.0 + name: '@typescript-eslint/utils' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0) + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + '@types/semver': registry.npmmirror.com/@types/semver@7.5.6 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@6.12.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.12.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2) + eslint: registry.npmmirror.com/eslint@8.54.0 + semver: registry.npmmirror.com/semver@7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + registry.npmmirror.com/@typescript-eslint/utils@6.4.1(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.4.1.tgz} + id: registry.npmmirror.com/@typescript-eslint/utils/6.4.1 + name: '@typescript-eslint/utils' + version: 6.4.1 + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0) + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.12 + '@types/semver': registry.npmmirror.com/@types/semver@7.5.0 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@6.4.1 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.4.1 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@6.4.1(typescript@5.3.2) + eslint: registry.npmmirror.com/eslint@8.54.0 + semver: registry.npmmirror.com/semver@7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + registry.npmmirror.com/@typescript-eslint/visitor-keys@6.12.0: + resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz} + name: '@typescript-eslint/visitor-keys' + version: 6.12.0 + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.12.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: true + + registry.npmmirror.com/@typescript-eslint/visitor-keys@6.4.1: + resolution: {integrity: sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz} + name: '@typescript-eslint/visitor-keys' + version: 6.4.1 + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.4.1 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: true + + registry.npmmirror.com/@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, tarball: https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz} + name: '@ungap/structured-clone' + version: 1.2.0 + dev: true + + registry.npmmirror.com/acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, tarball: https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + id: registry.npmmirror.com/acorn-jsx/5.3.2 + name: acorn-jsx + version: 5.3.2 + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.2 + dev: true + + registry.npmmirror.com/acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz} + name: acorn + version: 8.11.2 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.npmmirror.com/ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: true + + registry.npmmirror.com/ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@2.0.1 + dev: true + + registry.npmmirror.com/argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + dev: true + + registry.npmmirror.com/array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} + name: array-buffer-byte-length + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + dev: true + + registry.npmmirror.com/array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/array-includes/-/array-includes-3.1.6.tgz} + name: array-includes + version: 3.1.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.22.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + is-string: registry.npmmirror.com/is-string@1.0.7 + dev: true + + registry.npmmirror.com/array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} + name: array-union + version: 2.1.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz} + name: array.prototype.flat + version: 1.3.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.22.1 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.0 + dev: true + + registry.npmmirror.com/arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz} + name: arraybuffer.prototype.slice + version: 1.0.1 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + dev: true + + registry.npmmirror.com/available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + name: available-typed-arrays + version: 1.0.5 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: true + + registry.npmmirror.com/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: registry.npmmirror.com/concat-map@0.0.1 + dev: true + + registry.npmmirror.com/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmmirror.com/fill-range@7.0.1 + dev: true + + registry.npmmirror.com/call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} + name: call-bind + version: 1.0.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + dev: true + + registry.npmmirror.com/callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: true + + registry.npmmirror.com/color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + dev: true + + registry.npmmirror.com/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: true + + registry.npmmirror.com/concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: true + + registry.npmmirror.com/cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.npmmirror.com/path-key@3.1.1 + shebang-command: registry.npmmirror.com/shebang-command@2.0.0 + which: registry.npmmirror.com/which@2.0.2 + dev: true + + registry.npmmirror.com/debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.2 + dev: true + + registry.npmmirror.com/deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz} + name: deep-is + version: 0.1.4 + dev: true + + registry.npmmirror.com/define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz} + name: define-properties + version: 1.2.0 + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: true + + registry.npmmirror.com/dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} + name: dir-glob + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + path-type: registry.npmmirror.com/path-type@4.0.0 + dev: true + + registry.npmmirror.com/doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz} + name: doctrine + version: 3.0.0 + engines: {node: '>=6.0.0'} + dependencies: + esutils: registry.npmmirror.com/esutils@2.0.3 + dev: true + + registry.npmmirror.com/es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.1.tgz} + name: es-abstract + version: 1.22.1 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + arraybuffer.prototype.slice: registry.npmmirror.com/arraybuffer.prototype.slice@1.0.1 + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.1 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has: registry.npmmirror.com/has@1.0.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.5 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + object-inspect: registry.npmmirror.com/object-inspect@1.12.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.0 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.0 + safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.0 + string.prototype.trim: registry.npmmirror.com/string.prototype.trim@1.2.7 + string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.6 + string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.6 + typed-array-buffer: registry.npmmirror.com/typed-array-buffer@1.0.0 + typed-array-byte-length: registry.npmmirror.com/typed-array-byte-length@1.0.0 + typed-array-byte-offset: registry.npmmirror.com/typed-array-byte-offset@1.0.0 + typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 + unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.11 + dev: true + + registry.npmmirror.com/es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz} + name: es-set-tostringtag + version: 2.0.1 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + has: registry.npmmirror.com/has@1.0.3 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz} + name: es-shim-unscopables + version: 1.0.0 + dependencies: + has: registry.npmmirror.com/has@1.0.3 + dev: true + + registry.npmmirror.com/es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + name: es-to-primitive + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: true + + registry.npmmirror.com/esbuild@0.19.7: + resolution: {integrity: sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.19.7.tgz} + name: esbuild + version: 0.19.7 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.7 + '@esbuild/android-arm64': 0.19.7 + '@esbuild/android-x64': 0.19.7 + '@esbuild/darwin-arm64': 0.19.7 + '@esbuild/darwin-x64': 0.19.7 + '@esbuild/freebsd-arm64': 0.19.7 + '@esbuild/freebsd-x64': 0.19.7 + '@esbuild/linux-arm': 0.19.7 + '@esbuild/linux-arm64': 0.19.7 + '@esbuild/linux-ia32': 0.19.7 + '@esbuild/linux-loong64': 0.19.7 + '@esbuild/linux-mips64el': 0.19.7 + '@esbuild/linux-ppc64': 0.19.7 + '@esbuild/linux-riscv64': 0.19.7 + '@esbuild/linux-s390x': 0.19.7 + '@esbuild/linux-x64': 0.19.7 + '@esbuild/netbsd-x64': 0.19.7 + '@esbuild/openbsd-x64': 0.19.7 + '@esbuild/sunos-x64': 0.19.7 + '@esbuild/win32-arm64': 0.19.7 + '@esbuild/win32-ia32': 0.19.7 + '@esbuild/win32-x64': 0.19.7 + dev: true + + registry.npmmirror.com/escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + name: escape-string-regexp + version: 4.0.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/eslint-plugin-simple-import-sort@10.0.0(eslint@8.54.0): + resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz} + id: registry.npmmirror.com/eslint-plugin-simple-import-sort/10.0.0 + name: eslint-plugin-simple-import-sort + version: 10.0.0 + peerDependencies: + eslint: '>=5.0.0' + dependencies: + eslint: registry.npmmirror.com/eslint@8.54.0 + dev: true + + registry.npmmirror.com/eslint-plugin-solid@0.13.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-Sutd+DxEGu9+Z9ITtHKXRAClxVe1a6C1XQZSuN8iBsMy0IAVEc6Tca1UYgc7tD2ZrRRjZKB9mohBOaZl5NJLgg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/eslint-plugin-solid/-/eslint-plugin-solid-0.13.0.tgz} + id: registry.npmmirror.com/eslint-plugin-solid/0.13.0 + name: eslint-plugin-solid + version: 0.13.0 + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@6.4.1(eslint@8.54.0)(typescript@5.3.2) + eslint: registry.npmmirror.com/eslint@8.54.0 + is-html: registry.npmmirror.com/is-html@2.0.0 + jsx-ast-utils: registry.npmmirror.com/jsx-ast-utils@3.3.5 + kebab-case: registry.npmmirror.com/kebab-case@1.0.2 + known-css-properties: registry.npmmirror.com/known-css-properties@0.24.0 + style-to-object: registry.npmmirror.com/style-to-object@0.3.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + registry.npmmirror.com/eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz} + name: eslint-scope + version: 7.2.2 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse@4.3.0 + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: true + + registry.npmmirror.com/eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} + name: eslint-visitor-keys + version: 3.4.3 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.54.0.tgz} + name: eslint + version: 8.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 + '@eslint/eslintrc': registry.npmmirror.com/@eslint/eslintrc@2.1.3 + '@eslint/js': registry.npmmirror.com/@eslint/js@8.54.0 + '@humanwhocodes/config-array': registry.npmmirror.com/@humanwhocodes/config-array@0.11.13 + '@humanwhocodes/module-importer': registry.npmmirror.com/@humanwhocodes/module-importer@1.0.1 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + '@ungap/structured-clone': registry.npmmirror.com/@ungap/structured-clone@1.2.0 + ajv: registry.npmmirror.com/ajv@6.12.6 + chalk: registry.npmmirror.com/chalk@4.1.2 + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + debug: registry.npmmirror.com/debug@4.3.4 + doctrine: registry.npmmirror.com/doctrine@3.0.0 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@4.0.0 + eslint-scope: registry.npmmirror.com/eslint-scope@7.2.2 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + espree: registry.npmmirror.com/espree@9.6.1 + esquery: registry.npmmirror.com/esquery@1.5.0 + esutils: registry.npmmirror.com/esutils@2.0.3 + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + file-entry-cache: registry.npmmirror.com/file-entry-cache@6.0.1 + find-up: registry.npmmirror.com/find-up@5.0.0 + glob-parent: registry.npmmirror.com/glob-parent@6.0.2 + globals: registry.npmmirror.com/globals@13.23.0 + graphemer: registry.npmmirror.com/graphemer@1.4.0 + ignore: registry.npmmirror.com/ignore@5.3.0 + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + is-path-inside: registry.npmmirror.com/is-path-inside@3.0.3 + js-yaml: registry.npmmirror.com/js-yaml@4.1.0 + json-stable-stringify-without-jsonify: registry.npmmirror.com/json-stable-stringify-without-jsonify@1.0.1 + levn: registry.npmmirror.com/levn@0.4.1 + lodash.merge: registry.npmmirror.com/lodash.merge@4.6.2 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + natural-compare: registry.npmmirror.com/natural-compare@1.4.0 + optionator: registry.npmmirror.com/optionator@0.9.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + text-table: registry.npmmirror.com/text-table@0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, tarball: https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz} + name: espree + version: 9.6.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.2 + acorn-jsx: registry.npmmirror.com/acorn-jsx@5.3.2(acorn@8.11.2) + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: true + + registry.npmmirror.com/esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, tarball: https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz} + name: esquery + version: 1.5.0 + engines: {node: '>=0.10'} + dependencies: + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: true + + registry.npmmirror.com/esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: true + + registry.npmmirror.com/estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + dev: true + + registry.npmmirror.com/fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.1.tgz} + name: fast-glob + version: 3.3.1 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: true + + registry.npmmirror.com/fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: true + + registry.npmmirror.com/fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, tarball: https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + name: fast-levenshtein + version: 2.0.6 + dev: true + + registry.npmmirror.com/fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} + name: fastq + version: 1.15.0 + dependencies: + reusify: registry.npmmirror.com/reusify@1.0.4 + dev: true + + registry.npmmirror.com/file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + name: file-entry-cache + version: 6.0.1 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: registry.npmmirror.com/flat-cache@3.2.0 + dev: true + + registry.npmmirror.com/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range@5.0.1 + dev: true + + registry.npmmirror.com/find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, tarball: https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} + name: find-up + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@6.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: true + + registry.npmmirror.com/flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz} + name: flat-cache + version: 3.2.0 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: registry.npmmirror.com/flatted@3.2.9 + keyv: registry.npmmirror.com/keyv@4.5.4 + rimraf: registry.npmmirror.com/rimraf@3.0.2 + dev: true + + registry.npmmirror.com/flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz} + name: flatted + version: 3.2.9 + dev: true + + registry.npmmirror.com/for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} + name: for-each + version: 0.3.3 + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + dev: true + + registry.npmmirror.com/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + + registry.npmmirror.com/function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: true + + registry.npmmirror.com/function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz} + name: function.prototype.name + version: 1.1.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.22.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: true + + registry.npmmirror.com/functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} + name: functions-have-names + version: 1.2.3 + dev: true + + registry.npmmirror.com/get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz} + name: get-intrinsic + version: 1.2.1 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + has: registry.npmmirror.com/has@1.0.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + name: get-symbol-description + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + dev: true + + registry.npmmirror.com/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: true + + registry.npmmirror.com/glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} + name: glob-parent + version: 6.0.2 + engines: {node: '>=10.13.0'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: true + + registry.npmmirror.com/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: true + + registry.npmmirror.com/globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==, tarball: https://registry.npmmirror.com/globals/-/globals-13.23.0.tgz} + name: globals + version: 13.23.0 + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmmirror.com/type-fest@0.20.2 + dev: true + + registry.npmmirror.com/globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} + name: globalthis + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.0 + dev: true + + registry.npmmirror.com/globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} + name: globby + version: 11.1.0 + engines: {node: '>=10'} + dependencies: + array-union: registry.npmmirror.com/array-union@2.1.0 + dir-glob: registry.npmmirror.com/dir-glob@3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.3.1 + ignore: registry.npmmirror.com/ignore@5.2.4 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: registry.npmmirror.com/slash@3.0.0 + dev: true + + registry.npmmirror.com/gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} + name: gopd + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + dev: true + + registry.npmmirror.com/graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, tarball: https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz} + name: graphemer + version: 1.4.0 + dev: true + + registry.npmmirror.com/has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} + name: has-bigints + version: 1.0.2 + dev: true + + registry.npmmirror.com/has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} + name: has-property-descriptors + version: 1.0.0 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + dev: true + + registry.npmmirror.com/has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} + name: has-proto + version: 1.0.1 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + dev: true + + registry.npmmirror.com/html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz} + name: html-tags + version: 3.3.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz} + name: ignore + version: 5.2.4 + engines: {node: '>= 4'} + dev: true + + registry.npmmirror.com/ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz} + name: ignore + version: 5.3.0 + engines: {node: '>= 4'} + dev: true + + registry.npmmirror.com/import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmmirror.com/parent-module@1.0.1 + resolve-from: registry.npmmirror.com/resolve-from@4.0.0 + dev: true + + registry.npmmirror.com/imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} + name: imurmurhash + version: 0.1.4 + engines: {node: '>=0.8.19'} + dev: true + + registry.npmmirror.com/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: true + + registry.npmmirror.com/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: true + + registry.npmmirror.com/inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz} + name: inline-style-parser + version: 0.1.1 + dev: true + + registry.npmmirror.com/internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.5.tgz} + name: internal-slot + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + has: registry.npmmirror.com/has@1.0.3 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: true + + registry.npmmirror.com/is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz} + name: is-array-buffer + version: 3.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: true + + registry.npmmirror.com/is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} + name: is-bigint + version: 1.0.4 + dependencies: + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + dev: true + + registry.npmmirror.com/is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} + name: is-callable + version: 1.2.7 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} + name: is-date-object + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmmirror.com/is-extglob@2.1.1 + dev: true + + registry.npmmirror.com/is-html@2.0.0: + resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-html/-/is-html-2.0.0.tgz} + name: is-html + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + html-tags: registry.npmmirror.com/html-tags@3.3.1 + dev: true + + registry.npmmirror.com/is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + name: is-negative-zero + version: 2.0.2 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} + name: is-number-object + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + dev: true + + registry.npmmirror.com/is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz} + name: is-path-inside + version: 3.0.3 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + name: is-shared-array-buffer + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + dev: true + + registry.npmmirror.com/is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} + name: is-string + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} + name: is-symbol + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz} + name: is-typed-array + version: 1.1.12 + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.11 + dev: true + + registry.npmmirror.com/is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} + name: is-weakref + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + dev: true + + registry.npmmirror.com/isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} + name: isarray + version: 2.0.5 + dev: true + + registry.npmmirror.com/isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: true + + registry.npmmirror.com/js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} + name: js-yaml + version: 4.1.0 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse@2.0.1 + dev: true + + registry.npmmirror.com/json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} + name: json-buffer + version: 3.0.1 + dev: true + + registry.npmmirror.com/json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: true + + registry.npmmirror.com/json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, tarball: https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} + name: json-stable-stringify-without-jsonify + version: 1.0.1 + dev: true + + registry.npmmirror.com/jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz} + name: jsx-ast-utils + version: 3.3.5 + engines: {node: '>=4.0'} + dependencies: + array-includes: registry.npmmirror.com/array-includes@3.1.6 + array.prototype.flat: registry.npmmirror.com/array.prototype.flat@1.3.1 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + object.values: registry.npmmirror.com/object.values@1.1.6 + dev: true + + registry.npmmirror.com/kebab-case@1.0.2: + resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/kebab-case/-/kebab-case-1.0.2.tgz} + name: kebab-case + version: 1.0.2 + dev: true + + registry.npmmirror.com/keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, tarball: https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz} + name: keyv + version: 4.5.4 + dependencies: + json-buffer: registry.npmmirror.com/json-buffer@3.0.1 + dev: true + + registry.npmmirror.com/known-css-properties@0.24.0: + resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/known-css-properties/-/known-css-properties-0.24.0.tgz} + name: known-css-properties + version: 0.24.0 + dev: true + + registry.npmmirror.com/levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} + name: levn + version: 0.4.1 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls@1.2.1 + type-check: registry.npmmirror.com/type-check@0.4.0 + dev: true + + registry.npmmirror.com/locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} + name: locate-path + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + p-locate: registry.npmmirror.com/p-locate@5.0.0 + dev: true + + registry.npmmirror.com/lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, tarball: https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} + name: lodash.merge + version: 4.6.2 + dev: true + + registry.npmmirror.com/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist@4.0.0 + dev: true + + registry.npmmirror.com/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces@3.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: true + + registry.npmmirror.com/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: true + + registry.npmmirror.com/ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: true + + registry.npmmirror.com/nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz} + name: nanoid + version: 3.3.7 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + registry.npmmirror.com/natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} + name: natural-compare + version: 1.4.0 + dev: true + + registry.npmmirror.com/object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz} + name: object-inspect + version: 1.12.3 + dev: true + + registry.npmmirror.com/object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} + name: object-keys + version: 1.1.1 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz} + name: object.assign + version: 4.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: true + + registry.npmmirror.com/object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.6.tgz} + name: object.values + version: 1.1.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.22.1 + dev: true + + registry.npmmirror.com/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: true + + registry.npmmirror.com/optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, tarball: https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz} + name: optionator + version: 0.9.3 + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': registry.npmmirror.com/@aashutoshrathi/word-wrap@1.2.6 + deep-is: registry.npmmirror.com/deep-is@0.1.4 + fast-levenshtein: registry.npmmirror.com/fast-levenshtein@2.0.6 + levn: registry.npmmirror.com/levn@0.4.1 + prelude-ls: registry.npmmirror.com/prelude-ls@1.2.1 + type-check: registry.npmmirror.com/type-check@0.4.0 + dev: true + + registry.npmmirror.com/p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} + name: p-limit + version: 3.1.0 + engines: {node: '>=10'} + dependencies: + yocto-queue: registry.npmmirror.com/yocto-queue@0.1.0 + dev: true + + registry.npmmirror.com/p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} + name: p-locate + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + p-limit: registry.npmmirror.com/p-limit@3.1.0 + dev: true + + registry.npmmirror.com/parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmmirror.com/callsites@3.1.0 + dev: true + + registry.npmmirror.com/path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + dev: true + + registry.npmmirror.com/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + dev: true + + registry.npmmirror.com/postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz} + name: postcss + version: 8.4.31 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid@3.3.7 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: true + + registry.npmmirror.com/prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz} + name: prelude-ls + version: 1.2.1 + engines: {node: '>= 0.8.0'} + dev: true + + registry.npmmirror.com/punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz} + name: punycode + version: 2.3.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: true + + registry.npmmirror.com/regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz} + name: regexp.prototype.flags + version: 1.5.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: true + + registry.npmmirror.com/resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} + name: rimraf + version: 3.0.2 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@7.2.3 + dev: true + + registry.npmmirror.com/rollup@4.5.1: + resolution: {integrity: sha512-0EQribZoPKpb5z1NW/QYm3XSR//Xr8BeEXU49Lc/mQmpmVVG5jPUVrpc2iptup/0WMrY9mzas0fxH+TjYvG2CA==, tarball: https://registry.npmmirror.com/rollup/-/rollup-4.5.1.tgz} + name: rollup + version: 4.5.1 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.5.1 + '@rollup/rollup-android-arm64': 4.5.1 + '@rollup/rollup-darwin-arm64': 4.5.1 + '@rollup/rollup-darwin-x64': 4.5.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.5.1 + '@rollup/rollup-linux-arm64-gnu': 4.5.1 + '@rollup/rollup-linux-arm64-musl': 4.5.1 + '@rollup/rollup-linux-x64-gnu': 4.5.1 + '@rollup/rollup-linux-x64-musl': 4.5.1 + '@rollup/rollup-win32-arm64-msvc': 4.5.1 + '@rollup/rollup-win32-ia32-msvc': 4.5.1 + '@rollup/rollup-win32-x64-msvc': 4.5.1 + fsevents: 2.3.3 + dev: true + + registry.npmmirror.com/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3 + dev: true + + registry.npmmirror.com/safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz} + name: safe-array-concat + version: 1.0.0 + engines: {node: '>=0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + isarray: registry.npmmirror.com/isarray@2.0.5 + dev: true + + registry.npmmirror.com/safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + name: safe-regex-test + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + dev: true + + registry.npmmirror.com/semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, tarball: https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz} + name: semver + version: 7.5.4 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: true + + registry.npmmirror.com/shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex@3.0.0 + dev: true + + registry.npmmirror.com/shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + object-inspect: registry.npmmirror.com/object-inspect@1.12.3 + dev: true + + registry.npmmirror.com/slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz} + name: string.prototype.trim + version: 1.2.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.22.1 + dev: true + + registry.npmmirror.com/string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz} + name: string.prototype.trimend + version: 1.0.6 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.22.1 + dev: true + + registry.npmmirror.com/string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz} + name: string.prototype.trimstart + version: 1.0.6 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.22.1 + dev: true + + registry.npmmirror.com/strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 + dev: true + + registry.npmmirror.com/strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz} + name: strip-json-comments + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/style-to-object@0.3.0: + resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/style-to-object/-/style-to-object-0.3.0.tgz} + name: style-to-object + version: 0.3.0 + dependencies: + inline-style-parser: registry.npmmirror.com/inline-style-parser@0.1.1 + dev: true + + registry.npmmirror.com/supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: true + + registry.npmmirror.com/text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, tarball: https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz} + name: text-table + version: 0.2.0 + dev: true + + registry.npmmirror.com/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@7.0.0 + dev: true + + registry.npmmirror.com/ts-api-utils@1.0.2(typescript@5.3.2): + resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.0.2.tgz} + id: registry.npmmirror.com/ts-api-utils/1.0.2 + name: ts-api-utils + version: 1.0.2 + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: registry.npmmirror.com/typescript@5.3.2 + dev: true + + registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==, tarball: https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz} + id: registry.npmmirror.com/ts-api-utils/1.0.3 + name: ts-api-utils + version: 1.0.3 + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: registry.npmmirror.com/typescript@5.3.2 + dev: true + + registry.npmmirror.com/type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, tarball: https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz} + name: type-check + version: 0.4.0 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls@1.2.1 + dev: true + + registry.npmmirror.com/type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz} + name: type-fest + version: 0.20.2 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} + name: typed-array-buffer + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: true + + registry.npmmirror.com/typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz} + name: typed-array-byte-length + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: true + + registry.npmmirror.com/typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz} + name: typed-array-byte-offset + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: true + + registry.npmmirror.com/typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} + name: typed-array-length + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: true + + registry.npmmirror.com/typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==, tarball: https://registry.npmmirror.com/typescript/-/typescript-5.3.2.tgz} + name: typescript + version: 5.3.2 + engines: {node: '>=14.17'} + hasBin: true + dev: true + + registry.npmmirror.com/unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + name: unbox-primitive + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + dev: true + + registry.npmmirror.com/undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, tarball: https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz} + name: undici-types + version: 5.26.5 + dev: true + + registry.npmmirror.com/uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode@2.3.1 + dev: true + + registry.npmmirror.com/vite@5.0.2(@types/node@20.9.4): + resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==, tarball: https://registry.npmmirror.com/vite/-/vite-5.0.2.tgz} + id: registry.npmmirror.com/vite/5.0.2 + name: vite + version: 5.0.2 + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.9.4 + esbuild: registry.npmmirror.com/esbuild@0.19.7 + postcss: registry.npmmirror.com/postcss@8.4.31 + rollup: registry.npmmirror.com/rollup@4.5.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + registry.npmmirror.com/which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + name: which-boxed-primitive + version: 1.0.2 + dependencies: + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: true + + registry.npmmirror.com/which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.11.tgz} + name: which-typed-array + version: 1.1.11 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe@2.0.0 + dev: true + + registry.npmmirror.com/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + + registry.npmmirror.com/yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: true + + registry.npmmirror.com/yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} + name: yocto-queue + version: 0.1.0 + engines: {node: '>=10'} + dev: true diff --git a/resource/mirror.json b/resource/mirror.json new file mode 100644 index 0000000..96bc3c0 --- /dev/null +++ b/resource/mirror.json @@ -0,0 +1,4 @@ +[ + "https://v2g.borber.top", + "https://v2g-spring.borber.top" +] \ No newline at end of file diff --git a/script/built.ts b/script/built.ts new file mode 100644 index 0000000..b8e119e --- /dev/null +++ b/script/built.ts @@ -0,0 +1,23 @@ +import { ensureDir } from "https://deno.land/std@0.207.0/fs/mod.ts"; + +const dirs = ["msi", "nsis", "deb", "appimage", "dmg", "macos",] + +const lang = Deno.env.get("MATRIX_LANG") +const root = "src-tauri/target/release/bundle" + +await Deno.mkdir("release") + +for (const dir of dirs) { + ensureDir(`${root}/${dir}`).then(async () => { + if (Deno.statSync(`${root}/${dir}`).isDirectory) { + for await (const file of Deno.readDir(`${root}/${dir}`)) { + if (file.isFile && file.name.startsWith("tran")) { + let name = file.name + name = name.replace("tran", "tran" + "_" + lang) + await Deno.copyFile(`${root}/${dir}/${file.name}`, `release/${name}`) + console.log(`release/${name}`) + } + } + } + }) +} \ No newline at end of file diff --git a/script/lang.ts b/script/lang.ts new file mode 100644 index 0000000..07786ee --- /dev/null +++ b/script/lang.ts @@ -0,0 +1,30 @@ +console.log("Start confirm language"); + +const lang_short = ["zh", "en", "jp",] +const lang_long = ["Chinese", "English", "Japanese",] + +const lang = Deno.env.get("MATRIX_LANG") +const langs = lang!.split("_") + +const first_short = langs[0] +const first_long = lang_long[lang_short.indexOf(first_short)] +const first_long_lower = first_long.toLowerCase() + +const second_short = langs[1] +const second_long = lang_long[lang_short.indexOf(second_short)] +const second_long_lower = second_long.toLowerCase() + +let context = await Deno.readTextFile("src-tauri/Cargo.toml"); +context = context.replace("chinese", first_long_lower); +context = context.replace("english", second_long_lower); +await Deno.writeTextFile("src-tauri/Cargo.toml", context); + +context = await Deno.readTextFile("src-tauri/src/lang.rs"); +context = context.replace("zh", first_short); +context = context.replace("en", second_short); +context = context.replaceAll("Chinese", first_long); +context = context.replaceAll("English", second_long); +await Deno.writeTextFile("src-tauri/src/lang.rs", context); + +console.log("End confirm language"); + diff --git a/script/version.ts b/script/version.ts new file mode 100644 index 0000000..c1d20a3 --- /dev/null +++ b/script/version.ts @@ -0,0 +1,19 @@ +let context = await Deno.readTextFile("src-tauri/tauri.conf.json"); +const last_version = context.match(/"version": "([\d+.]*\d+)"/)?.[1]; + +console.log("Last version: " + last_version); +const new_version = prompt("New version:") + +// 更新 tauri.conf.json 文件中的版本号 +context = context.replace(/"version": "([\d+.]*\d+)"/, `"version": "${new_version}"`); +await Deno.writeTextFile("src-tauri/tauri.conf.json", context); + +// 更新 Cargo.toml 文件中的版本号 +context = await Deno.readTextFile("src-tauri/Cargo.toml"); +context = context.replace(/version = "([\d+.]*\d+)"/, `version = "${new_version}"`); +await Deno.writeTextFile("src-tauri/Cargo.toml", context); + +// 更新 package.json 文件中的版本号 +context = await Deno.readTextFile("package.json"); +context = context.replace(/"version": "([\d+.]*\d+)"/, `"version": "${new_version}"`); +await Deno.writeTextFile("package.json", context); diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 0000000..f4dfb82 --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..5b292ab --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,4982 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "const-random", + "getrandom 0.2.11", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arboard" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08" +dependencies = [ + "clipboard-win", + "core-graphics 0.22.3", + "image", + "log", + "objc", + "objc-foundation", + "objc_id", + "parking_lot", + "thiserror", + "winapi", + "x11rb 0.12.0", +] + +[[package]] +name = "async-compression" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" +dependencies = [ + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags 1.3.2", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.0", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytecount" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.2.0", +] + +[[package]] +name = "cargo_toml" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "castaway" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc" +dependencies = [ + "rustversion", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-expr" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.48.5", +] + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics 0.22.3", + "foreign-types 0.3.2", + "libc", + "objc", +] + +[[package]] +name = "cocoa" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics 0.23.1", + "foreign-types 0.5.0", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation", + "core-graphics-types", + "libc", + "objc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "compact_str" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" +dependencies = [ + "castaway", + "cfg-if", + "itoa 1.0.9", + "ryu", + "static_assertions", +] + +[[package]] +name = "const-random" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.11", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types 0.3.2", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.39", +] + +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.39", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive-new" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dtoa-short" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "embed-resource" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f54cc3e827ee1c3812239a9a41dede7b4d7d5d5464faa32d71bd7cba28ce2cb2" +dependencies = [ + "cc", + "rustc_version", + "toml 0.8.8", + "vswhom", + "winreg 0.51.0", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enigo" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "802e4b2ae123615659085369b453cba87c5562e46ed8050a909fee18a9bc3157" +dependencies = [ + "core-graphics 0.23.1", + "libc", + "objc", + "pkg-config", + "windows 0.51.1", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset 0.9.0", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fraction" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a78dd758a47a7305478e0e054f9fde4e983b9f9eccda162bf7ca03b79e9d40" +dependencies = [ + "lazy_static", + "num", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags 1.3.2", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.0", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.2.0", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps 6.2.0", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.2.0", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.48.0", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "gethostname" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.0", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" +dependencies = [ + "anyhow", + "heck 0.4.1", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.2.0", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.2.0", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags 1.3.2", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.2.0", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever 0.10.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever 0.11.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.9", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.9", + "pin-project-lite", + "socket2 0.4.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +dependencies = [ + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", + "png", + "tiff", +] + +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.2", + "serde", +] + +[[package]] +name = "infer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" + +[[package]] +name = "js-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" +dependencies = [ + "serde", + "serde_json", + "thiserror", + "treediff", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever 0.25.2", + "matches", + "selectors", +] + +[[package]] +name = "kuchikiki" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" +dependencies = [ + "cssparser", + "html5ever 0.26.0", + "indexmap 1.9.3", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libappindicator" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2d3cb96d092b4824cb306c9e544c856a4cb6210c1081945187f7f1924b47e8" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "lingua" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91643f3c9d034233f0fd17ba9b74032313f42e7113b3c9fb41c6bed43a523cd7" +dependencies = [ + "ahash", + "brotli", + "compact_str", + "fraction", + "include_dir", + "itertools", + "lingua-chinese-language-model", + "lingua-english-language-model", + "maplit", + "once_cell", + "rayon", + "regex", + "serde", + "serde-wasm-bindgen", + "serde_json", + "strum", + "strum_macros", + "wasm-bindgen", +] + +[[package]] +name = "lingua-chinese-language-model" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a1e3a38a0920f6ddbd9b6a79a8c04cd927142713b595ba32be6b811603f7c6" +dependencies = [ + "include_dir", +] + +[[package]] +name = "lingua-english-language-model" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbd066693abb10083bb5b5fc1c494dda357170265021ad873ef582211817b8a8" +dependencies = [ + "include_dir", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mouse_position" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffd272ac3ad817af3d158eecd4d4ba6f92a1fa5f7255e3c0d63b72d4dac12edd" +dependencies = [ + "core-graphics 0.22.3", + "winapi", + "x11-dl", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys 0.42.0", +] + +[[package]] +name = "openssl" +version = "0.10.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-src" +version = "300.1.6+3.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "os_pipe" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags 1.3.2", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.0", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "plist" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" +dependencies = [ + "base64 0.21.5", + "indexmap 2.1.0", + "line-wrap", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.11", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom 0.2.11", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "reqwest" +version = "0.11.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +dependencies = [ + "async-compression", + "base64 0.21.5", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.50.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selection" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae9d5f752403a8ef95d55c47c297541c3c12e90bf8bdaf82287527ff9f373cb6" +dependencies = [ + "arboard", + "enigo", + "log", + "windows 0.44.0", + "wl-clipboard-rs", + "x11-clipboard", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa 1.0.9", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_spanned" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.9", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" +dependencies = [ + "base64 0.21.5", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.1.0", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags 1.3.2", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags 1.3.2", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.39", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml 0.5.11", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" +dependencies = [ + "cfg-expr 0.15.5", + "heck 0.4.1", + "pkg-config", + "toml 0.8.8", + "version-compare 0.1.1", +] + +[[package]] +name = "tao" +version = "0.16.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f5aefd6be4cd3ad3f047442242fd9f57cbfb3e565379f66b5e14749364fa4f" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "cc", + "cocoa 0.24.1", + "core-foundation", + "core-graphics 0.22.3", + "crossbeam-channel", + "dirs-next", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkwayland-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libappindicator", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "png", + "raw-window-handle", + "scopeguard", + "serde", + "tao-macros", + "unicode-segmentation", + "uuid", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.12.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" + +[[package]] +name = "tauri" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bfe673cf125ef364d6f56b15e8ce7537d9ca7e4dae1cf6fbbdeed2e024db3d9" +dependencies = [ + "anyhow", + "cocoa 0.24.1", + "dirs-next", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "glib", + "glob", + "gtk", + "heck 0.4.1", + "http", + "ignore", + "objc", + "once_cell", + "open", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "regex", + "semver", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-build" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defbfc551bd38ab997e5f8e458f87396d2559d05ce32095076ad6c30f7fc5f9c" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs-next", + "heck 0.4.1", + "json-patch", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b3475e55acec0b4a50fb96435f19631fb58cbcd31923e1a213de5c382536bbb" +dependencies = [ + "base64 0.21.5", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "regex", + "semver", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613740228de92d9196b795ac455091d3a5fbdac2654abb8bb07d010b62ab43af" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07f8e9e53e00e9f41212c115749e87d5cd2a9eebccafca77a19722eeecd56d43" +dependencies = [ + "gtk", + "http", + "http-range", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "url", + "uuid", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8141d72b6b65f2008911e9ef5b98a68d1e3413b7a1464e8f85eb3673bb19a895" +dependencies = [ + "cocoa 0.24.1", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34d55e185904a84a419308d523c2c6891d5e2dbcee740c4997eb42e75a7b0f46" +dependencies = [ + "brotli", + "ctor", + "dunce", + "glob", + "heck 0.4.1", + "html5ever 0.26.0", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.10.1", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", + "walkdir", + "windows 0.39.0", +] + +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.8", +] + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.4.1", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa 1.0.9", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.5", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.21.0", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +dependencies = [ + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tran" +version = "0.1.1" +dependencies = [ + "anyhow", + "arboard", + "fastrand", + "lingua", + "mouse_position", + "once_cell", + "openssl", + "parking_lot", + "reqwest", + "selection", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tokio", + "urlencoding", + "window-shadows", +] + +[[package]] +name = "tree_magic_mini" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91adfd0607cacf6e4babdb870e9bec4037c1c4b151cfd279ccefc5e0c7feaa6d" +dependencies = [ + "bytecount", + "fnv", + "lazy_static", + "nom", + "once_cell", + "petgraph", +] + +[[package]] +name = "treediff" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303" +dependencies = [ + "serde_json", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "url" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom 0.2.11", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" + +[[package]] +name = "wayland-client" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" +dependencies = [ + "bitflags 1.3.2", + "downcast-rs", + "libc", + "nix 0.24.3", + "wayland-commons", + "wayland-scanner", + "wayland-sys", +] + +[[package]] +name = "wayland-commons" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" +dependencies = [ + "nix 0.24.3", + "once_cell", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-protocols" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" +dependencies = [ + "bitflags 1.3.2", + "wayland-client", + "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] + +[[package]] +name = "wayland-sys" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.2.0", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-wsapoll" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-shadows" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ff424735b1ac21293b0492b069394b0a189c8a463fb015a16dea7c2e221c08" +dependencies = [ + "cocoa 0.25.0", + "objc", + "raw-window-handle", + "windows-sys 0.48.0", +] + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn 1.0.109", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "winnow" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wl-clipboard-rs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "981a303dfbb75d659f6612d05a14b2e363c103d24f676a2d44a00d18507a1ad9" +dependencies = [ + "derive-new", + "libc", + "log", + "nix 0.24.3", + "os_pipe", + "tempfile", + "thiserror", + "tree_magic_mini", + "wayland-client", + "wayland-protocols", +] + +[[package]] +name = "wry" +version = "0.24.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab99e77ec1b1b2f1ebce97a4b1ab41e29d8f8fd10c052750938654711e959dc" +dependencies = [ + "base64 0.13.1", + "block", + "cocoa 0.24.1", + "core-graphics 0.22.3", + "crossbeam-channel", + "dunce", + "gdk", + "gio", + "glib", + "gtk", + "html5ever 0.25.2", + "http", + "kuchiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "soup2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-clipboard" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464" +dependencies = [ + "x11rb 0.10.1", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" +dependencies = [ + "gethostname 0.2.3", + "nix 0.24.3", + "winapi", + "winapi-wsapoll", + "x11rb-protocol 0.10.0", +] + +[[package]] +name = "x11rb" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a" +dependencies = [ + "gethostname 0.3.0", + "nix 0.26.4", + "winapi", + "winapi-wsapoll", + "x11rb-protocol 0.12.0", +] + +[[package]] +name = "x11rb-protocol" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" +dependencies = [ + "nix 0.24.3", +] + +[[package]] +name = "x11rb-protocol" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc" +dependencies = [ + "nix 0.26.4", +] + +[[package]] +name = "xattr" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +dependencies = [ + "libc", +] + +[[package]] +name = "xml-rs" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" + +[[package]] +name = "zerocopy" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..eb98e42 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,70 @@ +[package] +name = "tran" +version = "0.1.1" +description = "Tran" +authors = ["Borber"] +license = "MIT" +repository = "" +edition = "2021" + + +[build-dependencies] +tauri-build = { version = "1.5", features = [] } + +[dependencies] +tauri = { version = "1.5", features = [ + "global-shortcut-all", + "process-all", + "system-tray", + "window-all", + "shell-open", +] } + +# For base +once_cell = "1" +anyhow = "1" +parking_lot = { version = "0.12", features = ["nightly"] } + +tokio = { version = "1", features = ["full"] } +reqwest = { version = "0.11", features = ["default", "gzip", "json"] } + + +serde = { version = "1", features = ["derive"] } +serde_json = "1" + +# For window +window-shadows = "0.2" +mouse_position = "0.1" +selection = "1" + +# For URL +urlencoding = "2" + +# For clipboard +arboard = { version = "3", default-features = false } + +# For language detection +lingua = { version = "1.6", default-features = false, features = [ + "chinese", + "english", +] } + +# For random +fastrand = "2" + + +[features] +custom-protocol = ["tauri/custom-protocol"] + +[build] +rustflags = ["-Z", "threads=8"] + +[target.'cfg(unix)'.dependencies] +openssl = { version = '0.10', features = ["vendored"] } + +[profile.release] +opt-level = "z" +lto = true +codegen-units = 1 +panic = "abort" +strip = "symbols" diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f8774f13985fb23d8d9b27737799237367b29e GIT binary patch literal 8027 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..7d258a65b13572cf42ed470f3cacd054e7cb7cb9 GIT binary patch literal 1793 zcmV+c2mbhpP)3$g6h8NDGt=o%pf1=NK?PC40@es_1Q#UA5+#btBH}`j7{K5L1Y7`Pw4ezIAVsLy z7HTLG5D6eCC`(zIQjuM0no>xF0@K;vn|JT^-1}yRnP~_3p@B*6yuAC)JLkLSd}nzY zT;-pZaz_aH-z{?a$K$u^wc!DAa?ZIv?dxwy*Pi!5BoqXqD5=N=Xhj8%`;<{&oXOKL z@r=Z-v6a3ju8c9zyrX0N^I_1A<^p)@4~!njg+e*q6hrLDv-uE@lFn_8gg1`sW# zIA(}Jn!&V1IS^M&RvL3;Q%{K}m&OBr6PnLkxT4_4>xCv0A{InvjCjg?%Sr9@(SW=jzSPEhS9q%LXdC)x|bj(m&b(*(efC22E>h`{wC*T z%j6^*qh_}CBs?Kb9*%(X5*{o;Gjj1?gauMVtEI)6gN9+QuRp>6IaN;-O-JRNQ^tvr z0-&fG_hWH*X52*OiIJ~LPB;waA{5fC zHl@Uud!1cA>wUUr-h7gCLwo(h4ZniRmrJtRwS`cK3nN5;74mW8oL_+lM0{+N@V0A5 z+T7SqkWbbsL9~l$2*l$Ce)9McdCI&yI+NRabcc}T7*cd`auv*o16*<;ElrcpoXUY1 zh$y-}7_@=tU@w|7$$CEjX1i$Y80R@U<#25+tND40RM2z4Q*z(3F#XP*<$qUK^SYWE zFwGExC(?6q61L)jv}%_CK_n22fO1=}LVmXKBwb%z!gj4&NpcOa%RiZdG3Vg%xs-=T zjE0~I;K^3(?N(|Yx?H!mzAZUa4rE@PQF(9#3(B?#pYaHZc%qm+VveZ*tC zWXcE8c{3)nos~byMlx{H1k#~XCn?`}qK;OrTpia*e_y(k2TUZeBqq<41+9A^zHDlv zYeAc|q=Mw;U(Xv3|3xci&Xq6rc(Skd+((~7(|MC%-J&}ymO(UvVUyeke)>oqJFxLb zaJfPD4t}K^5J)LD8e}^b6&(y0av~ar_IWqOGEg=NlGEV^2n7NpyR8fSVViC*E0qfG z8ThDjYwrT-g&p56jv2m4#I!=Bw8#R%d?QN-ZyS}@{aI_z9XrMv-~CR0Y)`E;+&(Wy zD&Mwjr8(i&4s7SD@7dAqn|Z^5V=}DUH5}Yecdsm$;PSh7 zQSa{8Unv|u20S@gV1}Y}Px&%TCaL@KA&4O)ZeI?o{bdJO5h|LKI^fMQM$!J`O7Ee= zKs9{E#Ij0#d|8Ro?TH7~f`LQmt`(J1*-hQeGs%n7qkheiW8=6g$Q~qpE=!L zJ!2N8EY^M`TWWX3&c>)QdR2u|@a!zdDR#^)l>=U=CwICr@J$|m4s!zW)RUJHe zs?+zIF`ZO}K&;ktl|v}Vc#zn1SLrgR6J>iy+x(7+e!)58=j!Vq8m9K{CB;TJ1d!|j zo~aZk(hzM%qD`KPGoHRgzUOJz$3Cep$pMj z7!0-Nh?nJa+hnw6c_~OTQg(%fD0!GjGA`I`cvW_E-yT|BxlStS-0xv>-7Os!3Jxx}ot^=e*tUQTZQ`^2bBwiTxui}qccuZ!c7u_>|i9lpA!fNZIa)skKU=UkJ#g3 z{KGv7Kx9H(E)uep+xrhvyYwH#V+Y}94js=70Oxi&I@>&+c8c&V%o~~wFD4L3GvY&UzDS>qO|z9XziL&hNKo9E~+ekn4GHK+p-W{#b5eR jO8yf_{IUYq&d2G$b_Ky)mGB5`00000NkvXXu0mjf`7Ks} literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97a9b290da1d50db50ce170c796f04304aeaf106 GIT binary patch literal 6783 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea8d9edb29cd44a2e539510a519e126b15ab9fb GIT binary patch literal 8913 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..db8227e46264970230ba2db66db3c1de1ab06db1 GIT binary patch literal 9522 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 F{{s@#otFRr literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3dfae995f4551082170d9cb12e63cf45e4465a GIT binary patch literal 2670 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

l)?wrt24#> zppyt)1FSFWc!-mU(~+39=l8n;<6zBHa<=0Bq7H=!ra&KM z1#N12?^pM?vgnW{bl}Nx9hvvTyg|5V} zslc`KlXR%(YcK@SeV|dSS8V$S_!;%tPZge3TLM4_;C%;Bk7Zo&`Nv8=G8s;?dp|?f zvL{63heX?f#%L%TNp2$|_|Mmy{~~;TvH_w#N{yHFv=HOXj+#gdI?;+rY~ds<&853f zcpcbJi^g|Z$0+mYzc)b9)X=e*B zZPUtS`|HF)*NhUfBpp|+>F$3r5jjFB8Xch(Aa`9FRHu51TI7Gk27nboCQESo_2+J} zn~<8`TL|Acn{1(A*?UyS)eNWW(evotWYj;9|1zCE=~isTE$+9F{Muh+LS4jmhr`%y z^YcB99CE0tlZK*~0*sNUUBO}x#R!=uVHDLfd%$uS9n-9Ej_8ZSVW+#NzFcYP60`Bm8L?`)Uf+B#9ZNn?7e z*4l=I4tv0HCCa;UViT)B8+Uf^&&LiWQdWXeD~lSrlr}Ad3wrLx$@?hV^Rcb?2j?hn zCrUWY0tLZFEUeoq-_jW_C}^<0-U#@(PJO6WT@(41{4Hr!E<(l;+Ygu$GW?yG$82S` z>v`jG6_V%+AkRY82!oZWd-0|F+ipkeB+SeQTVIbX(bfXcmtg58T%nQHxY^+W^ARE? zYFCo=C8w1cya5viQRrYj*3ULN_|F+m!6^`Xz}c&$WXFVtf}d~wert5!`T4AigTKQ8 ze!1nD4qGP^UuvwshEDOjE_bI+f_>7vl-)$kRerzREn2BD;I`nQO&x-jrP_m5x)Wcq zL?$N9B0E}RCw(^xeR9KH<~+RoNZ^y?sAVmhuON<+O2V4y7rNvKqf=5BtShP@OWUX+ z1C-^f3HRtb)C`CXnmr-toTiwukI)&|=L^U%4DNq{;=A(tvG%h;D}R!BDXRbD z?+ron2xAIIXi(Os){3Ccn45 zTc#jU?139{E(>Y`Nb*q~>(+%~-RcV8vCH7+n04K3b(*v0{_;O8|E#YPY2sp5^0pcffHnMMp2bM}9h5sXOf|M^X zdF=%4)Kn-d(AV3kvWjO6_Hr1(N2!$0$p-~uS8+;^W9ecnLZ-!gO)9Wuy+%-2Ysm1Q z6K084Wi#3OEP?{XHd{z-NG{`vPn+l+kKfA2zKUbw@V1=>CMq?oN z9A?G{xhIZ)KTud?S7iBLVbHk)tgycI7x_}l^Z&p? z33*z+PlJ(;xcA>&7k#yf%KBRPSU_NChG9F!g={I4vJd@05PlZ=9ORA{f2Y2W-5&qe z@L^#<@tEFQ8DXPviy3T%c&-%m3H8pWaDifGvcoE;#U$}Elpz%vmov@ta`UbPx1t<} zL!q(wgR^ipv@d{8sy8!9iMWSRdz~=Ni0r`v)OsE}luytLhcVLNrFx8s6cf;ESd)5$ z_(;5V8cnvcH^p73CkKTA13AwTjmy*T z=7_Cm4DNuza}aOF1=jIUp^3WxnkNlXQcN4(ET&vCcBit+Wl=aQr4q0FDj>>WWy z)8Y3dAjes&77JjLjLGBLWIZAMcRS(NRKcF|kE(m8jcW2oh28!u+K6WX?Kn|)5=tRy z2Eck?5=76Lxr;LJx2jH$+4oA+mi@BcCPIqKGTb-!QWS%|pDK8ig5nCFqwnneCnSL=;0a*s+|mK zUdenTDviymvt%SN+-ag1-%3ouD$(p|)_;AYwn*>Luji5EaElOGy4vZqFyc;t5>~9x zz0ZZ7o{qtH#{HBk_)nR8jx28ANsAG0(RS!!x4-T9m17iuupPuY-28j%8vS8zK!^(^2*T6cyd+?Xl9148?#YpBeO&;0%C=)<)-cV%zaN{dt@a$VPx zgxX(3kGkL<&twGoCLBS-scQ%wNr=iVzg*r-GSAK}^?5`;Vp7`E=|4xEhL=@9(jIptnDU`$H0%7&w9l2$gh`b zgCO^#^;?#M-*1(cUg}eyF6)|M3+U~P(-_=_LnHBD>2ms{HPP}5!)DXh+R-Nnp%Op) zl#`+YWjQQ8sE&YJ5k=oryHj6SV}EK;f@l(w-H!h>|}LMi;mKidjVn( zr2ezu_PMP=ue4|S^1*~)}VXbYluVMIn|@$K;KLi# z;+pDc#xS77GVgG0pXY)~f}H3WzNZz0D&2A(rt6s>m)h0cSFJ!Yw zy#`tY;o%q+th+v}>TWc;QG75Z=0$0=yVASfdClCIK9)(CsSaqB8O(^w{7rMm-E{co zyW`4f&Zo`fK18YvqeAf-15mBP>j|S*j}*0D(~6+ugkAq79Ae7tBB*n#A|{@9{r&Mx znh1Gv#78NBYo09%NTAe8#{k22{cFQ@;=ROPkBs*Od?Fo88F-6&y<-W_7~Vz()zkUg zWw*%-2M@iCl3QvVOGYE*z`Ose$jQeC+P-EsYQ0XMmpHtgn)VT2Jyt^^ai#!7KGidq zC~zF2C=c-GhchsN^!cx6#+p;S)+WF*@#&Gx^AI();g2uCF>#LLYK>sA0p*_$zw8z! zA1lJQxy^Xt{bFKRZ=@Z37mti5e?-^@crWsH(JRp2r7G^uzofA(vKd-!OEP0X z{TbRN7$A;=O?tw5OJR-zSN*Z>j=e;LG{~@U;IS^QOVv!kPcVF$=(zJr9!ZfVfPh!t z2Q=yTXg&*Qt;HW-Sd&{d@AZgd$e>Bs%TJHD-AqRGhH6{vc*pVI_8l;YzU83o#@rZX z{zHmatpu)142F@*;AEn%H#$>SZ4%U)XK|cbzCG>g612m2i>W5U!F-P?eCiD06D43= zm-qK8Fv!JAz8*J`C4)+bC~u|LEou8PyLMEuSjQ$gu3WKqtM>i~p&YL&-kYO8?$QX? zs6IyV*=rQ=`5k#zX3{|CpA721^!`eUa9omxeY>iQc6?i4bxjTD>Z06le@=M5>A~=_ z#IPZ3HhMfC!zY(ke;^+{aG_UVW8+EE?WBgGWm$;GJu1BaPx6+DXZ?zgT>WNI+}gLBr^VneG_WV2rOG|4Fw(?@ zg>BmPF=wqEOCkTs-qw=IuRk2@KuMZ-n}Pq85FV*-B_o)Duclo)C7%jMG5h} z#Iv<-e+2NH>4hA+KsHA$uW4lsog}?>*z8e!I{`(33p}v62Fy^~ZTxIswk*^%$HChj z8+yfzDPsHX;0#xqPswO>20oaL_RDm;Tk#a(OF|S;sunSgIUM_c{%QRRx_i#?dPt>w zl9Hb1c%g}PB4RJ~>)5}N3h%1jsA?T!$e(6mCMt?e(7F-A)WHnH)k0~mtqKPAc5o1k zEY(+i|66^Z98~;uthQ7%ONHQGRGV$LF(k9xVKQnw=i6Jpc&;Ygi}?#BN*dsD}jk<=EF zT~(nfm_o$xKn?5McL$RXC}V4(u$rCh$-oMXE>mZ=O~W5ScNP2Xi$%3gsO4d%QQ`;-I74?-4qt0G_AqAApd)fsZxZ4Gx=hAC)8D^MhM1INdI zr%2#=UEgg<_A(;Ixk77mB+}iCDZOd4(1ps8XJSEqCz4vlA2V#Nw#}4{sP56O@pCOx z!y12xZg$X<%s?)Eh`}=nGtLD-bal z0#`qjh@baakN53$wR2dlLqNL|OQR&Qd~cFE`7HATMp-7f@pK;}?6k!<@4(mEF$%ym z?Zvrtx4a_1QQ4Kf1vo|sd0$i9)vB)u1Jk`q?D#9-7b8vhPdGi>nFEU2)T*_93qzNO zfJrw@s~N1#_-fxwX*2M`l%MtJU<%X@{U?WQ`8Olnb0;BovgLOF?&O*l^vwwDCUx&o z|5;7!{_Y0%`i4XLGvjElRNzkqV2^-mO4!>#`;~O(sTS?FA63b{FzDpIUFW)zQYzm1^IGUc_AMF_07# zeQBMP962<65|W8Cp zoaWLNFjgB2Y<}LeDXHXBHhcCm+`ZAFc^&)u zHJ1bc(N{P5@$=qhdENeOrgkv4pngt)1O}r}6!0n3U&Nn{qO5CXkuqw%+V-d`24~Ba8h;^3xBTr5%gHsKfnP z5P4##=RQVquD^5;HD{d^O0 zM&%mfUD-%Wh=>j5QhY0Id`aS7mP`sFlHm0(47H>|-Fpcm%@NZ0jX4+Qd93ISy*Rku z!)rT@{qE87x9d#Cf$wSvm)@cCb9!=$&A+0M_F1e&wow@c;H!Y3<=G!bRPdmbT~qIN)KQbTgD0vF7jORLQCFiOQ>+(a(?N z7?h&k*DRI5otsa&<&7GYTs)IA=Tbu@uD2B8! zqmAWqRFrt>4J&XDyaor2mClBm6Tz(?T!x7=44_9cbB#55{$g~mRe)x{_^c8I;@x#X z*lc^il(y@{Qz6*=L&p!2r93`uhY5;sR{7Y8yM{HK4z#Oz^LT~1s?1>4r2JOC(s9zJXYi984W1%2J%^NH`m~8 zHTE|HD$c79QDZCzJ(OTu7;*LYt>nrek-Y=$&z$OyM0n%XwO=G%7&s)V+er^Z-94f~ zFOm`=5n3xWfoEV|;mgd)91$}%!YiHCZc8OOAgKP&zAa>@vN_Yvswb=$A{shCb)Vxy zqK2hpus$RVZkM{L)!SaA`^013X_am>J&pQ0R2S27h-}%)oyRc-u^ozNuGkD989aPF z*BwXd_4bTFHt12rAL7rAPzybQJuqC)W}3>Sfq7e>=e&RkSLfYWIZE#2?x;;2(<<-? z6az-{W}34M*>F6#QwVV2Jy%FUkOvivO6CwzFlS!l%XhhBvo=8 zk3Q5Aiw(HlS?IcKS@Ft6C3~pC$LRN!(N78pnpRiZu=Upm9;}`7?cB$xDoGvx)#^EH zmKOW{?E3q>0Ixe{o$3A@NzxRwGTENAjJ_jg2t~oW2ee(=&7S$rrB3xjDyya z8KMa-6$CGnvG}x9&v-U>g|iPnAH=$S!e1uLfBNQoPNm%BpPdv&zy8lQA7$0PMnY=5 z79V{k#yI3jtr6~CR~0lwdO0on)IsX0xHl%K^YRVx!J9r&*w8CoMLrC}J6lGT3FJ)B zLeoMb#qBL0b=jwz*;#R&fPKb`H1{vhU9D|}6xgp1?Pnj%(`zcuq{KnzCU;GDmNnV6 z9S!}q-wMrEyISj9QaMsZ3Y8!F;~awrAh8Q`LCLl^o6=D~s^(^FwvJ-ta{Vq&BT1hs zo5@bJ7d0pdMCV^BWcxCX^%5BY7A?mjIfRKT^_SjzD27&X{T7V2@Q<8KG_r+osFQoY zZrLy~`~yb?D`R*5Ky_>?9P@_8&uAv34g9FfO?UE@C~PU;n4j*rhteE=yRf`c{r(c) zeW)WhkYR6Jh&X^WVCb)Btg0m?!T`R&QrBR=768ONp{X3-!klXiwbL<5gWHfVD-|)^ zB{;u3A-?ywCR}TpRve(J@);?I3$AdhY5Hv7XDfWCZD^>v@eIcc_Gc<}*`JbSvl~c8 zL84nB;+o386&v7GY{1MyM>?Z}(B5n6pzIw#@S^BmJJ?Le@69gCo_3d%8 zrc#=CrQIzT(>%TtK;D9qU&ZLn@SZsD)51%ibs2Dy+N<6uoiBX2+^i0gM{}79&okzE zMI}YG%P1BpVEvlY3&ovjW%je3AuSE`S6d+&d}!2nRCXW)UXo$J*#Mn5p4|`EMV_Es z1NoY(kOimq+3$JPg-#-u6y;1h1CQL7_1ltaEMawDVV9>ulge<#+s$)&vfeG|*6tB@ z6&1()w}3ih)73XqRY#zefeZ<+Xok>ai)dJc0)qT;JwSP8W%N9t-R(P!EP1B=3Bba> zUB@_4uHnCM#M>ElO`)x0z{lS!0#REaa{+fzPXwOZ(?=#%-!}vTJMosBtN5+s9YAO_ zy*aOV(3+a_JQkz%D48%AQD{&FlDU5SQujP$?$WEs>ia9Z-X&$9^d^6g-GmKN3kD4c zIxg{qdvS&*qXXcKNu;e%G?l2AK@K1{c+2^wQX%DRvZCLV!i!Afq^JxZTNxz$(CQ}j zh0k)v>qg8@4#c;aUe8}QBVQZG!`^*wKFb!gC>=A7{8vfJ+l#{$B-TSF#fawbCFmi= zfmVfQ_xD8Ea)JzwQp7b)s=$c+JlCiVa5H`TETHS_-}7rzdb&`2ACCa;eX>kS(LfG) zWmCkc6pW(s3vZcTjuTbDj)He;$Uo07@1mVlWC(QibXBuA4W}IEGE`738^>*4Wuw@& zjAcX^YI~2$45D2U%5kE9`g2oilFzLA%oeCNk%Nn8NLH-9*>n+GN(iJ181+#Hstqf) z@S6PYZOWoBN)5BP9dT6x0asX32q6_-`ss#&!BeK|QgO_y4oiCH(gJ>i#0Tliq(-v5 zp?un1Oh2P|kII$IORzj-15Mm$xIm2L!?zj4d?M>IP}bYuUtNf85QZEV@7WOq_pPzg z{^#CW&r(c?gdU_TZd{tBKj~%t`Er)^FY8j#j4#myJ#%B76KL{pb9tML$WeoWwtOnN zqxba^+VgK)zfRyNqcroHc|iP?f~3t^yPB{jq|6!<2Nt4ha(0pup5UWZr^}=ZvI=g{ zK5ZY+QE3u!@Jag?)Uri7{QOIhc;z2RN#9yRgFPrT`3Jm|fp?@q*}42Z0zNTa{8e&G zE?PD1583W!*79}J{7=Y>`;j2V9zQt$^Xbzt{^6)ggNF#c8~U0%Z11o>SLX`vS0?AI z-M>9-?>=jZZ#?oi@ng*orKV6!&ig&$QBtT7SAjQ{y(wkS^$(@|d2oCU=x87IMNX!f zSLTpFe5YsHxRmuS9J8kqPq9saljr9YW}(c31>LAkj~iftY?0xGA=bkJj^s`knV;{Aw%jf%{&&eB#NnXMNgq@luLhnf|1G z$+D*{CcEF2owo@KLxO`(#K0dAfo>eaCQ)WGTwZ*}Ec72_7!&Mc6rtD-JJ9?Z(kV1P z&@c_P(gyxiP?2X-p$6U_T2B6RT&!FM<@%Kau4(9;?I zn3UDs%$NUUQ^9B44D-~5xlg>(w9&7kRm#%FJzpO1l=P$8^z9i1$^(D+Uw$>V>U|SH zjT7(Y%yDhXi=-y`VWsH~`vz*VrSp};5j!C6Y-x}N}`jos^gg`Zyt&e zi%>+!qeJkdP6IF7-(#W=h%3&)Kwr$A>b#G3iCMw}soh5JpECjXYfOkf+)M46tr=nk zzMVS3f?~FUPCnAjpSggW<#RJhtLwWyQbC|f|5 z?C{=O#th83n%0Qg$mT})wD53b&AxlZHTelM>MU@}?ed{XrU~IU9PH@mH4qi={amO- z>@4-L$*v4;r{i#gf8JwYHx-dllrb^qdraU=@9ZE3O=3yALYMQ^;9+K~G?W$d9Fdnq zwh+&QL?z`#cvyF*PHNc4j7}Y{t}oYnp3?*UXy-eNK?=+nnqf)*^^E?DKTc(%Empx* z#|97k@e_y9?tEWqHUiT_x<S~0(+c=yt^VxJQip`;0Q_Lmy&50dB+b4Qy?@<=pfzj2mJlxD}S>VOcy*+cU+4s?z zUZW!Q<+H#t$6X5?4g{XYQdK%V1yk#u_?jlv`nxNvvF0nqmx20bqZhP&7DaqWh<1112ob&i#sD zg^q8iso-9*nGVEu&{#gUdp)5AImAe#C!ZSAwqeof;1{-X37MK&tmkaLT#4yHjbiHM zrXVv=yL#cOF-MoWKrW%rm>Zk2w(i00@Rx((4(>1dm#uy1SW_f-=pX*gfcY&Sm3aiv zRI5ksuVsd0UYM}TyG=ZA6W@<4LS|t2CINvH*(fV-(b-JRv z#E}l{*x6#%Pf(6p+}}i;HF5uTscn9Jy|JPdxxRyq&W_viD4^3%3_pcM9$GrBN;Kn6alM#Co!Yo0bTugYhv7 zCU-g6GSK~qe{{XRLbm(F?h1ogJ~|UtCbS#jjs&;UeT%w^feR5bNaC32u&-w~vC<6F zg;~xQG5K>oocYsByZA6H6Rt(M7}+v1*J)b}`b!w9=xq(~V&@yVpEF02tY@j}M?NCC~Zgeb(-k@}#`zB|&)6RH0d$gUg`HJSBZHYcOA3^?3e zbYb%Qc7Yx=}Q51KA%w5SxH%koFO<0zU@-62N$??pSAi4xpb;V)ur^KJBoZ`yRs*m{$ko*&RB|l zgQO6mVY}xjw$yB?VBBr>&<@h=r1UGmj0mzv>X?Q%z{(Jkx<>AvMA1VvR#()>i8rli z;WjH8mehB&O-t+t#?0#LTG9z{j862?@^>T#Hj%DNR5f_>W_OG@+2PH%6T{p9G1DMa zpXfrolA!Djl8%QB|B}X$`#;8Ylg@iF>u(-SvO2rVShkx$8v+eeesftnHutWOGq$?O zs7+5=egA`5CzN*?D<6xe4iUHl4^<)H*K`!NKVrG?;-~T?XPJ)8IwZYEdoL}lXuy^*|$kA~GM8M08m7 zZ$5NMZW7=Nw67AmiL&|(3^%Di!|qXSmZX&B@0@>f%eD=t@h=~43R3H-PMSa)@V@i( zDwuzK65HMUaF7Mr`HgsC>{*MgrY_p1aWAy;`#=r+8C{!$z*BWc?tdJ3%g@8#ka81u=A2z*5HrvwWJynym;{{o@ z{?>32;~DL7w#9U~d?4@WN`zpa{6rT~XnT*31?O2*sd*x{o551Zl$ypj58Nc$`GJ5( zJUv#?m$>XNiUXCx+t7cWpC>$z?_1tr$W3M%S=}zI<+u(Ge9@;p<3Y$0{KmXJ$0s)( zKW@2ljTC=LdfYaBLRFa9$Zi%EL`NIl=p5?E<7ti8<`~4?k`?xwP9%9<)T31LN3|s9 zj%@i8$|ay(_dnDVY4`^%tTzTxQ5JVP!MB5@#$DL$A3xpOAGFodRgl1Fd@5z; zU*|I#!qw<-^OgF(2G1Zqx-t!={Jc>39**9t_l@zJ3neNW#uo*w+Y_O`ZS!dII;fjN ze_03}?q=?^KkS>wD}83~x+IXchZ@6LvYM<3#ukqn=JUgQ_X;HmnFy#&-o(E?iBJBX z^G+PJOzl0X7omG^VU-`i;_!_9QTn1H_|3a5#&oxbeT3MhWZ0 zRg%f4uX32J_YsOw2{FwYk8CN^2+m33`t-UQ0RbT&@LR z+n$*6;^g6|Fw{9@8Gl&pL<4j|-(AgUqM==H*`bF;x6^w}|Myky0S>(vQM- zaC3#eEMc~N6XLS5lMipAyX1?;qyH0S5?yN`Vx=?2Y5__+v|JEZ_~Wi${VgcjoLmj18F!D4T7N;*>KafjT9&F- z)n#YEj>H$&^x8H{gbof-XMbk22G{#!=^3>X`sKP1J8<*A8T+-DxVw(gRNPFK8`1ZG z@=U8j!H+Kgy@>dqaXe}G=2j$RN@(c1D9wTBK|i`!T)>evEPWSwJECrXxt`j##&$99 z?NOiB*#vMhKn=%pMI&PpbsQRmc|;T8WmBikQ*>hJw-t+bD?6U3_Y!EDJ=32dc4WM~ z&O7sWNoUO$Zig(y6Ad{bn8SH0m+lKT1oxPK*c6KI8Q*frYb;K|iCR7eQcVi}G~NE% zeT4y+_fkd;#0Ig&5q(P|>N41f6(O!XRD?oIACR{E^9J;-*fxR!^9cpMC=V?Qq3<@> zXyhW@Wq@VwF`(iuq$g)_8{U1Ve=;>nTf%o*BDn3~V2BW`)+j3gt7S=+{!98xmcf*Q zfEY0+m^L6?^HSUmblktD9B)$GwJ~te_9Ww zh?ttB8sM*lJ;|8wKV7Kr7n{oLKOLlyPxRrf@RC9?ZL!F@*orM7+Mg0%Jl;sqa4EbN zsgqsrFlb`0Liald9t9{ZwXyIweR5adcvl|Q{C5`v3E0AJb*^8v=sj@?Q0Cu!s|{Ge zGH`ggG=gh$vW}r$TpE=a?U>kk?$|ibiL*$O6ux7{`oOqn$0uq)}#IETY1fWo4-T8L6t> z6K93EuM2r-r)^v>;2_~X{kjL(OJbS|z75oRe(iW!r&mHi1-qTpUT)Fki!mov1wNoY zL*gaiSTf1{5!BxPnT3fIl_s?;~7|=1Lxi8 z1fl7}xH%Z-611WIQF3A_v`E}C)Zxw|8$uDq&0H?ecGB#}msc7XzO{bHmt}bmjTo{_ zW<`4W+y0cF^L&XV$qFmH*@8To?*C?r0fMv6eepqd_eSqN4v6F-`pKu(aF9`2w|+^c zrKxRwuP_TBzjac0)nJf?v$4(kZJsifgQ1&fL?-;{oUO^D_k+zR;#YRYSKsJM1f89e)`mq-O*&XcthU?Uip5ym1 z<5uAkuKzOkm@mh5(qD`2M;=Lkg0gY*o?yQ%mWmIX z0)LBO@O@rUJ@d_AU-ng=j;ZN%ME}zhRFsHm&LkhBt1YR*G1|vR!ME=oJaW;IuapoW z+_zcVj;nxDtVI@HAv<=P!;I3~oYDt0_Ms_|xHY*6Jn28=8}QbnDX@r0NRP5a#n(+C zP+`P=MOa`K&!C?AKlxxWfXd}`==5m}6rv}(I`Em;k)7Vtn$mc4#o(WW-88v^QKqHG zj}v<21ok_>A%iESlS)4IB&@>oEn`VrvFsYKrb(yFTp)@Q)XZB^X!SPcT4nkG@)jAz|iMcQ}`X#tOC=A$H@` z_r&`c_tAEa`>clK21q!}OXft)8@O)K^(6C5%Bz zjE<{*C%Lf+zBkg`t9ga-@EZSF_%93%@GV7>9ZyN9e=+ygld~B~SHS z+oZYgr7gMYAYLi)p@G5;b?3{6?BY^qye-T|F}1X+=V}d(vEOAAu%e%Eg*d!PayZ5* zu}XwYqOf$>CKJLq|KnHh5vc>fBHCb4R!nat;!w9btobc`iUP{q*7(T;-r;H5y;!=PB8SLV$IH} zG*Ad#CIXceMG8~U5$d3Cln=-Kpk$;`xP`nZ&4=eKuj9 zgN!s5?QG^wGWZYGx*YJ;(An$Ici(_d&hzBd%h%O9%~Q6;d8xgQ@)1tZN8^teda_K# ziK%S1!x_HCNMbrKc-N4c1?fiR2YKwPkhi8y|F}Yd$Hwi$(YX{JsiF(bOV6zC-k^{u z4rHvLb_8Dfu;QUoZIVm^;TRJr#f;(#%8QElpa%BLU55L#bnw6>p(Hb6&X8K@AyJgt zD65FQW##q{@-A@D0W@XIm<6MB^H5i38TVVOBcCg3{yJHs{pG)ArVbJhm9vCT79SZ{ z!OUpw$9Qz+6k@Q?J8E*z#2u;9A|DH#Jx`{-%Q(EkXL#d-UIdM+Uv{IIzXyWuDUEc( zE0#K^b=JVw&y0g50am1pWL(=TWm~3{HBkA|#P*V*R)<;dVk9 zfdu7zEvl`>^n^_yotmyC7d65@pER);Bu=bjl$cmBb85#E*SaWF3z>nLC1@_ZDgH61 z_`rPg7acxpO_SknUIG1SyZp(0e0e0{A@&=2FATaDu!5v)dfr>v@LKutfPH(Ms5}Oc||BJ`746;j-mj| z|5}zB9?SbOsq&pfV@#Lyz0~r;Bnx=c8g~j$u5vRb_0L;V4e%8m{8-9M1fZs_J&fiq zs`V7Hg-?K_{8#7hri6X7p|}nJfO7Wwdj8|3wWqJ`pi6Dff;&QPgxLo|#`FY`Ct-iX zlORu8C;fpZGG=LD?y(K9MR;#J-W#Yvysq~kn~r^qD&W?3Q!_OzCOynWl&VcWzyz39 z2gx=_ZQ^tJk4C|IS1F0(k~)28Il_|?-0ZMhgvW{slR?JIbNJmojIZ)SZ^ocq3fSAV zKTb3ZSiI}Ox}h67IJOG1CM_P7MWYs@f(`$0avSZ_xTGoGtzb$4_D%>7P*_r`9A%m8 zuD(u09!*r-KEKqzMJat4(w!tR1p~d!qh$NfuY;_G^kWHL6Mm;UB>QbD2%T@3_FS>k zqnYTFMC<(#Q>+-V*#!4XQHqom(fy2EB}DHR51H;OS|&NAy@tX@D=AMzSA2-wu)R<~ zZ27HLiFgSty!31p$8)6~G1!70JIC)kY_43f#B8nT!+YI!?q42JBe(WWZ5AbP6WLNr zon@nC@U;Ro3!eVO<};Uqdtc-=La-67(k>lgX>s+v1Hu;=j0F5R#GC@Q$FSvMxzc0J zDLOv>#nS?+ea3T3wnv)C$^TVY#Odwfu@~vdd{cQt`8ro_BF6}*Oh^-nhDN=PkYi!A zSIuSmC%8)n*J2S+YolJGA?!V;HSnLKnYAkOAU2V3qN|DL%@j&VLXFuqz8oY{iP)?X z=CXF9m1aNZ3($R{xv{@icCNxJ3LeDP(FJ{7Q;Xo%e%_;pYn>k~AH+>AIrMQ>9<#if zKq^!OHvT%5l{UShV-E!7!T9Ii&d-d%hz|dAG>x@iPIPeq7LP4^}lLtKC#5Ijk&?EFdbZO7rSZ zZv3tkQX8FMO7PFdjoQu2W*aKwAsi&*@E^SV&SLAjG$9>qYWdZD>RDgu2l2h2{L&L2 zH_uAKU=)E;8H{n{)X1I#fkdVfpo*pvx1uocd!Tb|;_eFeVZ|4-pMmXPqB^4l1s!YX z|Ilb+nkGjz-{nsMg2#o2-soU(AhMn>z{t>SDR0hLwf0htT4i2w-91i%Sd<%-8V_2m zjWBwhW%gdTRiAv?87e9QSm*K{C%!)e`=zg$HfOJ2@vb+z^oV}RbZ-iUL_|14A5)cR zABVXKigpw*KmNK{lG9l!a7WCLqmj*>xjUrAc+U=GtrGG6!`PFGRvna?i(TC0#Q+^p z(?kx(giW{Iyr1P>j;a1cXrc5sUz~2V(a?ACf%?kMq|1lmgrF|8@I(?omQq)A&1#G! z+?^Xyb5puGI-j^a*YER)wg6vO`1jF4U{dEEY$Quchb=b;t*95ydNt;j0A0vLK`yKn%=h zLpLtGTjmCjJYl@GfMzx14LY`$ny5(x`5z;Yds?-kBgI z+8VVt1qpOUF1>#pp)ODdzIGGT6J5{$I3qKVMTkE~e`;v;`s-%2FFs(YTY#{^ehvTf9q7_mAWG+5-a2;pqY7^J1TooJh4->c!EH z{|Z0wr-_hUmI?W%ls6@fFt*K1PB>70!yGL>UYZvCsl8~D%lqaM7h1~o%WLAWPTFQQ#hs$$knizbIG$lZG>PrwW(C z#rfbql1oi$S4HZYF;il)r#?1`A9DM`)0BRM~q@c zb>jH{9}{qyMaPQ7l{h)$|93zK0YLzOFzf#t&;cNel#|5*B7c84d2S$u4E|3*2UF}6 zGDY&K$sf}D^hvr#I>frfk;EpFDF!-k2{2Fu$aMPAtfdC<`HTg8%TabZ&7p@T!MQbXmFR{?he7--QC?GL4p%3xVyUr3m)9v-F@CnaUv&kVcjxDkHAB+fO z7N=;G{6@)l2a$i7$v44M3`@}&@QU>&z=WiPW$A79LH=kJp`PD#l6G888^0(A5rrz0 zK?90IyrL=FEz<$6+%?SwOO8Jnbl@CNtb}o}U(gc2iNYzkQcxaXB4non9ojt~y?h;_ z1^~Igd7E2VSbI^n^u;aZqk-uuVxj?@=uSip z_+@`78Y(qH!? zsTRBniWgH}89S@62N=gEjET0kMB_Xi92=*C%QCH?4bi`Unfg0BHSQ$uNu&z#HCJ98 zp(=d&EUxt;Bp)6!Uo+_4euD)GjeH{7>ZW8IZ7~%C0FwMPky%L6lu3?kvzSoXGz4Ow z$wzO?!5l$8ms2Q;m2tWlz#D3cf0Yn9Zz9)Y7mgruVcpzf#mLI}jfs>^)#K1%7{Oj! zh`f^htlQi&2${4?I{e~mV}Qe*Sl}w!x3uMz%Yh}^i$#R5EQTJXI1FgAg#G7yma+sh z>M8`_1xV(2Ee!k4ztjLSyhP={V(%^LoF_gu_#uTam7w$20FRLLSl)kaJoK>Cfx)qE zBz+d-1lW-y6B6eZ=CT}IUD?;wAzD12@of^Se6)60ha;}2#DP)9?i|KO<;vqnshVeo zE&hg?61F_NLq>xkik_5tj`{qlf`kHYkf|?!WPqXh<#TTEg=$ivk6NgRS81riG?3Js zEtg5yw%f_{UvtA%k=55c!y=zi^(G6o1i#3~kDBaQz0^UA%`Jug3V7K;H|c<|Z}?=h!nsuWtD*n6 z#-KXA9$g|#+>cMg>h!_H6n7VE&@j^rg?Pwau}A1fHKTj7idJSC3IGakA+;tSfx5kh zAx^e2%(nLX{^eI0{_?!G0HsY2$6@Zn3CkC*q zIfx|{*xxRon8Sq<&OcR=vzuZ8TOeA4H}9vM8EEsNZFzv=7hZPBY7`4`7YAhxiVW>n zdxqsA_c1=}dmSv-kbr%CI^Bt;D!tLxn-9XJG%x*WyIT^mFE)M;OUG7sJzmA-ERLsz zupbnYw2g!m=L$>@@MH;|EfoxmVmqf?f?W?*XSv>f6B;n1CN=c;N{pcI8%WXS@H2ge zw_&m@Ul%d9?dg`GCzt8Zczej}KZbmF$NyTwAQ8N6Z`av8j$UR(^l2^13MAr^!5|^$dP2EhsBd7h!JBWiCCN~^1h?> z{>A&vt*~g_TB`N^9*>)WX2Z?HpDxlq3!1lB;1QyF1L z5uUb?k<2fadhA1At|@@X;%xHV-xvGxyK6W0WEP2)_WP*lqlFx#q9J%eJU~S5i9tbw z^)T?rt<)k>R??;wdNO48y^^ZjO?*O8ogJi?WP%zyWF?EBw<-*DKy1w5UecslR~xED z4H}X;rulr@&wj>ryM1r|MLPCA+oi9sRAHgPajs(4#+P)eCa^vh`4>`Jf{^UI40XJ? zR0b+pzka;)d{StnjYHkq-bka9L!5iu6LwSWYCBKBBoJe`4N-%#3cWv`H9DmoJCWU24TC@brRft19^55u6+}jgEJ{K^P^>-`3 z^jYVz{qTd0cuE^veDWjJdWV(!MoAgN=6bodbZs4bX&ZYaUb-?4R?_a=0Qgnmn;oqZ z(L-;URufNnu^lsMF)*^h)edboulr)g2r&K$3EN!9nTfi2LfeeN<2JOrFGb&^<91aDN_e8O!AFCmC zcu{P=-n?Q-_lIleEph>F!mr{0BKOWV4HY#4l5`oAq=PL8cP%=A+52gu%$+^U+$)cg z$MM9=Knb2E*68ds@)7V6OUCU;!BIyD(XWOc3g6O-WDqA$q|s?0&8C-l{R=>mZiE%@ zoC}ru>u$yDL)R;X3+A@plz{O$vsm*rGG1=+iBf7Q03=%Ed960=i6UZuTqH8{%&@w} zLR!Gd)Opzk5C3a-28);EMrZ%YcpX3`^H$KL-X}yt5N_3!_X=*=IN$^=FcvlvW{8%wfLSPKN~wg8Ej%aa*wmX z6|VBS6+0iz3)Ggu#-b0>$a!7Pa_|)S+(I5ZD(H)Ob#oKoUVIHuTL5WQcvrp6Epfat ztd|^4bMFlH2KrjQaqSD$Uqop!8WKLgE8wDE{mg}qM7<5(5^A$RdmhzXJc2U+Gq&{t zP|-`$Oj6!Yrebh%^C|`dCblr999c--DA-W&^Y4+%6!vJs*!D;MsTK2tBP)@oq9Pb7 z=RM8wL1{J4Yz>y^ELTJ4ZiH-L^FC#?aTw8pF7C_Z#ATcIz}KSY*0^Q5;AU1hYt>1u zV}3IiT%_6DqJ|0+m_ld-B;_)A3U##JR6WE*_lw_*n%P}ViZABoC9*z9UDQb%BcxB0 z0sT7QF>8O za_l$Oj;CHn*t56I)HkvH=v=T)7Cyc=!>q+=k)k(= z_Vb58QN)Sz5eLC<3GZG~&z;8e zLvlu4C4@iTx#Q4Y^pQr6;Axcg#*nw=U~Pse6+tQ3uoQ9;Ze3(Cirr2n&X{7j&HFGe=_+(~XTxj>$#uhj%M1d|{?t-}LbrqpU`n z*ZO&1d{0I_5>(u7H_o=5sRYiH*&gZqZpU(W+fNE0+44TlP#|R?;aKP}pw8GEtJ??~ zVU91cwQ)lEH3~N%zj|X}b|MHD6Ui>(xWe!j1{`s<<)14?V9F1}2Q6&Tb3Clw%TRd~ z^{3UVhNRc?6V1vOcBF-zgN)eMQCvmS&`67^C1zXK_&%#SO_iI9u^)-Xu|s0h73$>Z zE>$(9BagDq+;KP`e?i}r@G61rVfu5`vPK4B5XSJEal?CzwuUwxoh6S#*J0%hm+5;U00WRZnN~ zcK3<5;uj&LrJLG^fbu0_jM(KoC!aXA`cw9RMhk6#ZYuhhV9Tpn4AtavV{p28l(1_#!1dH=ptVrVpAGgb0Mu)Z()Ww zr7UK{$q!HxLq?`~)_sZA+aCBfNYWmVnULi?e#wJ(RYP-7ASdw;!sr)7v4w z!t6BXgw+{D{PBL%z>{}~+Cq3U3CK1|f3O%j-}V9Yrmmwtc-&r>L6LY zXthMdhGC%dN)WO*MQjw7#BdS6DW8y?ZBhIx#y4M`BX z|Eykt^h)I2nRlMWFOV)>ZPeZC?dW$LE_rM2Tr}mlmy&0W>5xtYf}BKCeFs_hQ~SS- z%AHxkqjF$c40un)NJvQV-inX`a1b!iL2wALaFAdK76t|qA^;`;_HPgd01*g4g#<(J z|2&0-g@A+&fHV6GhJyt{!2rM{|MeUeJgSETGlGKqiyIs)6j&Mz1SG^i^Z)=f3=k3m z1_1pxJv1yF96SVge@Eay{J=0Y02cgm;14BOE?7G#u!^ui=sz$VTsS-=SP`)90Ej;} zL<7Lb3==8K$bMFnl#~z`6&A+_0F<|9)=GmX2fAAts#-+>0Qtd;iqG$Izoi%DW)$)P z0O~)0sEA1L0GW!c?*+Wz=R^5F3X8F1%gb|8e((SQGDAI_1}T7VaeNV}8C(E>bZ=WU zBAjd+CqN=21-wh8WKWSHG~iP(Dlb|@$|plGK_w#4C5)0C#T`QZJ1YPn-r|^1o>xc+ zg##o>0{dIEp*%0`hXuej-V|U5W*}UZo}Qc`_bDzslu8*4i?VkfO&fWzyNf7c>xO41KmH#6*&L^mXRQ6u%47wh5^R#Mux^F zCI(hif1BsbX=@F(5)ND=|9wFKsH_bQt(^^xz{tinV1uneAkbPR_~*}M0|1zUM)oW* zwx_nrB={OC6fsBR-umL?igG|6mgErSsuHQR=v7i3HCLoYh#1deAQ)eCY4?OS= z&Jm;raQO$mjD`d#j^P^MUHsu^^#Bj3n&6Vh?gym*ajGe(@EpvG4vrGY1v2`JALs#8 z4j2cu0u~$r0AtY2(<8`N3-tCTkq3rtz{vma1vZh=25gC`iIEA|cx$ln|F#zF083+L zW&i*d{(pFFMhr$J{_C}wvzONm001-e_iM8;bxRu+RZRYSTh`x)ia87m_(IT1J-|6Q zJ189T5%iByBcxlxak$+ZFi<)GSx^w06Smg%1*Lx8^* z*S@=-->y8Hg{4`-KKuxjI%{u#9_QI_+xIc|#Mjx)PIi)jdt9e?dK}ztI%?R2aC91P z;XggLmz>YK7b3@m%B3n9g0>KYj(JX0GRPSI&2;&tzp^H&ld|#)^JIsfTdrAE$HDD< zh|&+Xk5IkMpFR8`P{a!=`WY*S`hCA^YP`h3f^=|26lGV&C-F4*B~$v&LI;UK05aF#*@;ALxWw zoi6o5pg)V075q#K4l}H*66gVOsVZQ~N$h4Q4@AcA3Zp>hFQg4%l(*iYoY`BEiq0xB z3$-Qgtj|8(BgUXcDs1rwO$#zhlGiaj<|l zjx))igxE*{<`m=K8#{WKt%&YM##c$pb0Y1LVoq0lD(Fw~&eY{U_H8v=^ZDj1;{Dq9 zt}EzQicIZNL#Sc|BAI9a)|KOShJGNdsEmzV-_-+} z=SVvbcfzulOL*Ka?q?TAC#=y3NF65+H<+QUSdgE4Ly;TZ8h#d7x zfRlEWuwUaPxvsuWuUmz-l+(NFUjk`C%=;UcEs5b0U&3|}ioJPajVXNbY;l2WfwR!0IqF#8V+9J5NWLphg-$nNQP&=%%(4Dy(msSd~p;;p-m{97hN{jsve&)b|KxIAGx-b`_J)#VrDPZ z(9ahqOx@fAM{a7Gh(sqCO(hM)Bx-zqm1(64UF@oayq=}M@4qu=s)P!b&p9WFPz`y+ zEx4#3vJ_#MdP^?9#6AyT>#ak~ly* zJ+eKkF?+=Rax>+1S;~K~eW(SJI(HP1XA8Q0;MKYtpwen+P9$8e59Rn!u6lLG5SO=N ziWmz<(q~Wi7~Of@=iSKbj&9Y zM>2kMEJCi{49s!lcoQ=drrycwrSG!%!Sdj?5ga&lXVsK45w8XiVndNznmPYOxpipJt zFQmQmePScgb^05gSO6mMkGfLN%Yf*K7>OU!hkA0VXsRhoD4<2^8LHFn+ zUBH2(`G4CGoC5$LGX5U|VE`B{;IBZ~$8Y!xj70kH4Z&yqRaaT-?u8Xm(MZJw1qJ&N z+nEhSTiB@Jva-b=+3>%L_p=i1Ddy=L8Sw@Y1VJg11i_M0NjIaksHvbv6cf+a?w`oJ zs}{s$8M-xj7n&EEyJHvmbuFfy9v_rsX$V{yxbcu4^T22#5xj#K7^{bw%y4BxHOiEz>pXgEF>DFLmkO@tW4 zJ;+24TEOOjL?={NX$Ej^x(Y(a^@Fs5K1#R3fsWpXiA{d$P41kCV7qD2HV!;mz;HZc zw>mztuW)yH9#3Z;oZ00)G|qD?uiolfL=B3x!8+$)!?D>d;r6+t?^pBzQdPn%y$j>c zJg7TY=M^?W#x&~Oo==$8L{QX#_%y$O2g08^C(%akM@kTHXfbj5w#lBrjlw)C=^^Lopi(jXp2Q?)dQa>eK*}O;6b;NqEVKeq)l~cI zCE1fREmUCPJiB{nRZuF-4o<@rACo2f4h~MRCChFfr*u!Oom6qqC@O#>L;*lA-eHLA za@*^R`fGId2A}C2{$YF`o)4u!;IFwG{#VgOexfm|F5Ka)>1Oe`z2aMRP&DIJG*AHd zqG!*!ZVE7*?v+>yYKF{T!_0Au7eae549F(GkgJ0DTyvek{icNESH}w3;c!Lnl65jP zK>%T4bFoPUD#QAT!TDn8E>g?|M1 zLNhUkGQKQbp;zD5pA-DNEq7e<^AsZ{>7`4GsGx?2nmc-%nSE95*$vs;@7<+j;|1Y zQTdbF5U3?m=`qc1Ze5q%>?y*gnja5ZDVmDX@e48pQ@tO8=rr*7_4}@)vCE6$_}H3> zrhQ*ldd&mS1@vEiQ3uKkSt8nQPIK3)sHkDM63bIA=>q=k{A? zT0ps}2q}%>T3e)cd#7(vIF>dD7p(m#0p$^d!q7iG%TE-c=i$=#)B0&h*xmZlo3LXz zv+!6RXTEvY2V^5dL{uw@lb&fUk(cb)g^-tQ&pET2BRr(_Kx~B1r!zmSAq2qs9hyON zM>~S>D(^aQ0I`gvns9=J0TaX@-5rjA8xD>uR=rnw8u^nqWy2aKXEF2rKwJ}J4x=yR zRd7|&<=JzqDjP)$pD_T>Ho9v{1Xo8cgJHWxjjhw{8k2Av9Psca z$Yg??R#0o6&=oHe?H#FUVV0(r)y;*M1FRj~)6MXDh!tE#sQTYvgsE1G&alEV<0=&nX_&#agpsGY{3it5U z4u&Nh89`!$maivhLj7&LF8EX`>$Z*EFEnbuc;S8B$S=q%qx~ zsae!USc3<@TR{)7(tll3$c~EHcKwlSg14rw~hn4VyswXq7%Vu#;3bVfa$#)Aa~Y9 z+JM&b1opBeHIf4RjH`qgNc!zf^R0CuO8#7a1No6Sdf!Y^Y}BokjU z4cYHocM%03>#K_95|of$rI|p5=qrT=S#NuNAS!2O^yjdb6&l^^vty_48f?Ng2vm}F zaZD?Rqk5C2a+Jjz*Z!Q}76`hVo-^Da955ruyQ`>H#pda?ehKVLV(I$pr$HIb|3 zghgp(+R#7tI*!vz5tJF4n*7vuF2CmD%-^Y@I&*#`J_d;1$v8s@WMC{b;{yl{52P^I zE^$a0UJwHkaj^`TVQLAn?J=lz!+VU;$z6D{~On_${qLsgi@q? zylL2m(*;&~AHuai0zSZqGYGwz z85yZ;mnoae1M_je4zam(Um0LqT>6v6fj?k)WuM}~@3r@5c{=H2HQz%bMk@jTQ`Ztp zf?sR3=*v=#QF2mC`Mc&#Zbee`g15}>{R7x5RNcot`$g~$?vA->`=|nfIx>oW^bo$? zx)V<47BUQ+NTliAA{WZUL6L}pG|sB8-vxc3oEYiP{N9*mN)+BV+OFO^B~@wM;H|0% zN|7Pzy}+S#zPhf|?86mTGCg*Bb;zSdi@8pslG*dV`J*eyLwB#;lPwBx|Ij8moAW1! zDoYZN;JZ@&8gx}V@ipab-w`gk<%s2Gn{|B3>s|Z1(y|B_CeL?%2=pz~0pOLUCW#kl z$MaG3LQN~>jl^SjAuIVf*`q0EkL*ODq>6bWoc);mADHE+sGwS3PKypH?d_6)!UWPq zk%wZEvsmt5gaZZNKWZO7eHD5L!ApA&sNJlfM)%Q|j~Vrxaaq0lxjK1O%b&(ZO<*gD z_&{wDaN_`Q-zc-~-6<`FsQ{&F|8SMah7$fV{v_wZf3DJan76vqA+`PRGExvI@xE^` z;TYzH-)_K`RsU_b@8|(}R9_XH`NwXJ29NPW2OaL`9mY?~IGu2ru#rJG>k0bGK=Tk$ zm|EWC)nCQ$BI~BUUaQr0v?T{K;>@;CRCP~Ky^Di;KzK(NNJn!}d`rYGZa2*~cGn&? zZ0x+%;a{*U00KBg`#61{gi5rC`wlq}?XEX?cg~{niKXHE1FigzuTQHL2Mdk5oOtZ2 zA7^mydy7aC6Hsi9Deb4mi2TVQg&i>z#7q+PC8*#`cFWZj0c8&%^Bd-0U?eeL;P5cD zh~b_l&IwU$*{Cnw=RnteO@kObYuP8LTHIPE|yk zLlnK6rny9TdFp8qM+01-zFf2^Ch;Oy>3Usn7w?CjKE7CmSidd61x}*!U)`-^$3rU* z3c2p$Z#O~Or<4;}&oIL(Wdx%`X8Wot_zY~U3#t~>if*kSZk2x6b?~aa(^t+Z#U$^M zA)lDK5{WBNrqE88y+?Y%)V{(8@IvW#AUKMr9^OFiQm&uALPTbn~fb1xy!{ejKxHq zc27HC_0y!$lf-!6xQ&%fkzw_k)XQ!0}9 zYHqAbZase~UjRxy6E?jO8atm zct7eVdA#zBPX+!S%+15+A_=6quX4(y$>*9}U`xOotr1FG<>3LK;bveYMR^C_&s2tq zUb8y%bnOWOg`672taO8;6)#ooLQFI^Ef*7!#xCjCNbq{iEaJR2fV^>MSu1(GbMXnU ztbFlnl-Aw|I^*yev%3Re}@`igiLVu+U|H4XvbRg|+>qUrwSaaZGl3ut{RJk7;(fw|<&KYZ! z$-e-TzbFGpJ5zq!v57sPi>5W79V2+!h9hmCU%|s83*$Z$H-X(A2JBr&%R3NF7x%LQ z=7fnJZ6K=BeG>#e5E4v zEP6~pZ(hJ<-ZCZr<8Srh=9ZfyM~Fz%bwomXp0tDx59}aLaLNvpBa7D4QStU~THEtx zTp#xLR@^}yfn-U$`B8T?2~lga^d9XURvxI{k0WNwEi~Iby2mO68`md+$)udltj!uN z$J*sr5aUAD1Wtgy2TUeS#vmjS{vwiW<4b9EiD^bgLiGzN1TT2g@oY$cG}yNyf`{0h z+o7p}SHPuk1*vm{;|4TmdbZ?jso(py;cZgV`wCvbz|L}3m2bH|Wvkz2-HN^1 z!{h{i##kpkb<)nn_yq9~5sFwI_8>{cd>k`NksznLRT;pQvq9kOtxkDYa&RFM$tkGE zyp#R+R)P@6hItGb)sgNO3a%wC?>lHF8oD_Wfvzu=p6909v3XvhXWYJUj}}jZO5MtX zOm_8mQ@)1c^7Yn4L}%W1&&QLO^*)c<@tElMm!7i8-x7$OoD+OII@xY+3cAc--5H_z zh(-GLrl}KV4!7dE{K#N)u<6^J%#%>*Hg(zJXAn5_iRxlieE>t>BJJyH`*@mBtzDzD~Tx(&+_H;4ei&8V*@}|6Y_n0!$uJnHle>Bs!Y3jVpI( zw4eXnYPiO&SQbfuEL43A=W@f)W;LXTYg~?$?(HHog)(NWvE{`&@6q7M*8mQ9#~`Y-wF zw620gF6*2%41(28wLWU8FNP9VgY?iYTWP0?MTlX7a<}o-wGIO4!8yG?cIbNEp-bzL zNHkqAn(UtVT}C2u9LU3@m)#Rc@4D?JuSwM0Hr5CFL|VfJ?v4!k9cLkL)>-F;Y*D40 z<;PcNRG@}`CdsJ&Vh_F8Z#q}qcVUPH}=!mf1xD4qy-w%~YkC7^mrM z1livmb>uFJYmre%G(rmf;8P;alSW98Dka+M$R*i}Le(33w##_Mi2+`cEWTxDvHZO0 zmY5}14`sH%9B5__y#i$WnqMt7))QLA&rxmT@ml*lcZQ;fTH?@( z8Q&*RjrZF<%A%%OMDc7Fyv`4bXx?AufZPwS3Ks%xmX&_5=VsTSW#Q@|37FRfxA-GCH*5cD)2-AI;@xb?A-Vz=Tsu;|Jz9#G{Q)*i+uOZZ^bj(>l zcoxq(c08yUj+CM5iERpQ*@(w;Y5md+EWE{KrZLmkHi@gue*8es_aYX8)Cw)|Guex8 z^~tSsXt#`RJMUuV$CB#3E;3C?-zpHZgt}UB6)H-b`E@+y{6^raXTMk^*08)iBgFQm z8JS{qpQI)=zdgvZNZ-wVql7-&x{v4sMU|K=-xhv_s*ul(z>rn{XU4O@m4;i9TAMqH zMaKRfqy{67CC{ccdfg!}!4zRieLwoE#S{$G9mQkkTMd;J298g7J6SzZ9f`@K-dM9F z!D;Cj7Vgun00$sdtq+k8cEcI*zP%Ju=4{6nY;7eI`z5sT_?^J(q4eprHVEOzkq_5V z4Q>sm-yMTSr!U%-7`M@E5=F>DpfDvPjNHo*(WccE4Mo`Krw!%XsU`fsIZ1rFZf2kT!jwTM@P17K^YM!93)$#9kAJ z=WkVqO~?D&pNe7ud10b(!lZ$@;3S(PT7+3Wco%#e-iKGXH-iytm+jn4wP}hZWU$Z3 z+Jp8U^yN@RG>_EjeG@E7n{_oC?Ngn1*1C4OITV4W*f2~{R>=MJdo6{ zf1;L?QVHm@s*iboJzZC-D1=4lx$Dm4ALYdiTb8r`iDDd%(_NX(uk_yS2~JI<`V_dJ zvB42V)a^^tEIGH`^I>n^-fIuf8p_b}d$gwlAX^=2X=u<6?!|L^f626oANmK4(vM$> zp=796otWR*;9X&oRC{?mk=7Z?;p8rqYh9*iE<9XjQCM)$m~j~0os76L4x-d?reD`n z99VHAh79UP;gP1v6|eUrH2v{dPI{EQ5(_^Vg7*Y^X{CQSUBE2!z5(R4dka`IThUDaGshxWLXcUV}4 zBd1|IEe=aCG|Z8ALaMo;o+iDs&3NW2L^@#JO)(O9a#*c4mMx6Wc0^5DdXc4=#`h3} zcyO-iux}HAhfOLH#Wm^dTf^zptT&y;MEj6b0=$XSNkkil1&ZO}G$T(vFxzHx)SVLR z>&W~WuJX^@LZ?f8O4)$I;~9wrv^XI$4$k5t%BsY%mX!PX|A}#5R>=-%KTI!;SjODqLYruD{DH^qg}9WCfcth~anR(6h6mqWdK? zNW+!i1o-Di?8Lk~pZIxZ-Tz8oLBsT+lwYyW} zt6xcaTsW4boTr;yCk8{JVdccax#-@r(8VP30PnI-nkL1|%;pJUa4Vl~Lu#xXSOo=u zdSp#@VwbV#hjF*4jmfcpNZ59at*Z>QvW|X#Z}WQo(-f~d*01e_u<^bu?z9du5tWMm z;&3O;tE&d%0X~|pVz%1L^Ht)kP#18tZr}{5|Al+CYHE7=)aA6?JxLI?h{cKKwCwld zU~Y^#vdMZh*3bfA?`m`EwkdKYJa=pEA<+?<{^d5^*JZGlgA1>n zS{UX#FXf~ZaXRz^f=%K!EI7R=E4Qh_yM$k0w}wxfvpq2Qpk^`LvkyVI%7-R81#*T> zg~Lv}^2npl$$XxX79)F4(M1|gZOUmE(LBWxqyfw^M}OGd)#K$AO;$*=^W7GFiyJw@ z8kQ+S?nn+bac}V_Z6(woP1O1IE+%1|D8$dl&AQ|$UZggPG&sWNlQ|y2Ql0p>9!a^t z!f|+;7&3j~u~}PUl!MCK>q8tFw;&qQLltrPS=2KxOY@n|Wiis8ym5>^bZ7zDpr46b z!A2Fw)jd;Mg@)@aNjOSM2z%-3l!PVJ8@9V~H`W2N5c-R6x$Tf~s=sHn{OPfwYo|NC zkO@hg!VBK>D8*(FYGgdX+vd6wv1nywbC(mw0j<+Q-WQFT2{}p5VglxFVu&rmHo}M3 ze@s`n%#PkyAiE7c!58^90DX?I=Bu@gltsDWFX(4`35^1lT-#8yd8-jQD+vJ+n5j>l zJE)IGee)z6(QsnFxr0_L0%U>fK<#f`-#nEyAN8=mzi3+Oufk+T$Jj1I3X__`wJ3vX zx=|D$yJa`ge|zcsHZ%|pDvCxS`Eg5CD5F~1%B5o*e4-{v=r)gUcoV9%8nHHvcj%M= zzam?=mM9qsxfI@)1eq}AM>ss3qjma+qYoYd<;hza zTgnX>{$6_Zb2X<1oBSNXf}h5G#5k)-(`KnhUrXQtkk6LH7(FR@5k~Qs)(kJ-N&Put z9_vy&=Wc6dl)C5T`4vgabNL_yoEWG3sxtZamMki^bK>b(IB(_TVUE?_+k#hEeg8h9 zasmB#y=&y7HNdO)qKh+iG+!JFqc+=B&bd8d~Wn>}l7$FwZ$SBN6XAHoVFl9@%M6qs@M8!%~+lun^BL zAfe^V`%s-flntS(c(;o1vRxMwnh_MByo7^}l3vQdSDfj+{ME-|M>~sy{@n(VrZ9yM z(0t8_b+yh94X8smjd5z2Gyo|Mb!r@rTqP_fX8y~G8}1_!0@OrZ5bN2YmZX+_Lr(zz z)`UzP)uRSzli{5l_1Tr-;}x^(?J=A;d}lj%rS2Ck!9kZc-izqi`yo$0{w5Y)H1)}d?TtJ> zSOtKQ^)y7HFl{T&T*(HXMZN<49_nVcme6VsZxm0c&;YSoPVgjSraSW}{rO1A^BaRL z{0c~XRnR$|#Gg>!T_xUsLan!%~9p9(w-WH7M5<>n0_%f`5fR-beTo$C61+SiowJUH3 z#Ty%&B1yQ@{5+#wA72^IIESXVDPaIl#Ow&s%`KjrK}g#>mzS*k{-fU8+-c443aOPh ziewI!c#1hpSjidk<&rXg+Dx>LmG3#2Lebho6HCL@(g$lB;r_^%-$)$Du)Wl74T}~0yvIfUNsup^ z##H;-X3Yf3^#7Y~{-0-~2bw@YnBN56#zAYv|9y&`nF#<#QQWy|1N8%zm97MaO=g0{4oO{xKH-?@;O16 zxWE1ZAcmCu`z8*8{O_9~0Q%oICII-qZ&(8USO>oF1pnq2fJFR%+5GL2|LdFoAJ-e= zlElwi3$W0^qx=J-ixSRWn-0Zbn-;~Xj{4oMz0NFs?o52B=m1phM!Qq=eT z6GtTXM}naI4EXPa)+%o@e9#S!zjAIWj+C{Y(V@s;0QJaR9x?WHRdNl7molCVnI1kV z((I4+W!QYNF+2nGHr-L%%W6{mojAS%?cFT;I9@)v%knC_IG5K(i8v!OL(O>nPU18P zvk$JLhsOqDH86tc%|AePn>H{!M`~X>@zVrj7NQU_I$uzuU^l zcKe3E?AYTbb|-F(edF>u*O=5WG^5W)ME@?iftpVvxDz4l^c}%j!|q>?g9R2!x~{wY zCJ4OWL~r2M?_7JehExKQB!I;5Ivf7LZ6kyWJ zD&9Z4aGqto{W1ANF;Y`X@(2A<{~U-VLJNENJ%0Gt<_YvFZEQxpN`@QGawc@ZaL(Ri z+jUB|YA}GS)qJ@w6(`+j~DyS2XBm6652At&n z?@-bIMisP<6O?2Fhuqq5=>cA_2IgD04WQY7rvRi~SvZCwaNw zA|-$TLAU>CL=mlg+t!bQeK-DgvJadlp(cFNNbl`IR7W*H|RoO97^MRy) zZTLUCz69)m-(UZgy$L$~$4X;P19s8) zzcW08-Tz$ve<2J1D;+f0{XcLP{WtRC|AF&AuAJm1M?;T>0tD>-?`^CL{M*JHPx0b6 zN&;}jJeBy5_3@8W>O%h}FgX08_^JR8cIVQ6Zhp#+Dm+;d(RPlL{N#UE&cAYGt^ZxY zs!Z#lB>!n4k{_JcsytXfBC&xbYG8sTY5gT>#t5XU3*rW!O-3VcHLl=^?jJ@?!;8Z$ zOX%1cnNSMW@vjz92(I$sB4F2j>+{WTZNnFMVsU-~RlH5wy~vF9YgiFD2d>k$JRI|a zo~3{4+k?OG0t9%1EBPevpJt%xvMaF1-KZ5E68OrVnAUmvIeUJk)l(va_PK9lPtxZZ zZO^mt@Fy0y-+R!(pnUwVmLmJ}$5m_#xHWZ;e6PrRuZ)o=@pB?p%Kg0lDydQdN|F9i zT?_Oj<(#Y8cq4KwDk8c2=DYMG3w+Sofwwd}YauulBE|rdYjFRi#dLSwDZDrHE{MI;7NEx4NC+Z=>^KA1nL*1PaqX@gquPmk8%i z$)fj&W_s_^s_&04kN8iyy~*tLZ)&}^L8qi>>(xi(NC|WQ^|TZDgV(EgwF~A50eyu-FBEa=w}}ZUOAR9_5l4 zst9Lt=M$|X*!L~~TmP>P{I5d94h9z@xzM(V`fOM3+1UzmWeg604KEWqXE$TsZYv&j zr4#^&BllsU`~YrF*LmQWnt`qUMmW2*4@Uz!_0v_^;^zIYSo5cC*IviB7nrj>0|NBo6j5gnJ_|C18@jr*s!4sh8P2is{N1eT#G{&(M` z{M)bOrRn^CDGmvqKT#@QKicUN_;2PHC_tPTSOhrR0ESw>K6CQ9OWvii8THq=0k`1}z|s)F9p6HJFHWHz*-p5ZL7X0u#kTPMG zmsG{C0e)SK?B@fZJwbx~`}j1u`1sd(l2`Nu{@WxnQWuULY{Fgf%Moct#DfiL zIA1_3TqJ|Um_GhOR5S{VOTvo(Hl+*$7Tox7+FuAvZ2L-Y4EPNn`IB=2VB&P~>7h+` zH#yUf|3tY~mAPb(#D?EVk-mUm>DoY`oBUrOOxZ4GJD35S8j|8uqXo95@h8~PwO@%0 zk^g2c;KBb0O^OSz`W*q(a(8w;I7l=|f>Pvop)J+5!DvSJQh~@+K(IZ*GbirQ=L5`y zft0R{Dr0sWtqgnts$&G0sLuz#FTvcc0z+q0A>y&pOJH|t_%wV1vhaok7>bV^O)06$emp4gmYkXk$)LMQ35!P3FGh2peXD> zy@t=!VuG>Twcue}MexMj<6r($)G{+NP?Y{}%LYO>o_V^faQZ~MGfAf*ABqM-J53<$ zsMEi|ZL@vK|MAS7AM;Fjkcz+XQO3vluPCD-|1YG9&%aZa*MW>kPsFTN{I_aGU;Hvp z;xs9^Ui zX8o^6m~r^12+^m<99)8+!Ye?Mjepf;R$jC%Lx;EJAO4&;+*re)yGTqRn&(|L@@?KCt+d1Gb`BTKF#$N#}mJ0ArMb=;QxV z7_;uB&rY>|{nNjL3maZMdGH`C1QHwFjCv(+T0dV6GgxX4o$-~gOQMH-%IFDv?)QKG zM(zD;b=1r5dN00&?FC!;v8Kj14ng`?ym%bO!B_rW69!bUs+e}!mhESFjp73)q8Ql5 zOdr@qr!ePUV)MY17yDk4%g3YaxP|V|btt~i2iF3hi5(w$=SOzWBwS&}cIqc}H|oZl zJqT!|O_puc%o;BKxe!WaMVDE+a^y0WeD_^1_Q{xaF`7O{>y>rT{UllBP(CKxk)b3GcmE%AL@fRdsG5T6Zg{GwEK__dn ziFQriUFjH-#%PQ0=6gR?-p;^Wv6*)xye)$@N4!&+ zbt)9meo@5}Or>cpoh4OiY$7e&u{Z&Sx$*?GXM`1U^N51yu5_oC4Q!_D8>$qpnFxY(KMKn@e)I(V%+%I%^_v0|irb&|I8*D+9eaa;K zbSK*>-ek22es&|*eDh5Q)1^bHI)@k!&uc_Jk*rZ1Yr-REe7Yp-v4rQEtrl=GBir@; zWr2jn!9BOfluxDbkQtNTB)`59uZ0-w%#N1Z%AH$C6iL6X${Nk~M~yiL8LYs)%5 zN|%3aS@3ACweGr`cfzZeT`BT0F4#*Z3>?a2?}K35caBek@){^@E+KNdA(dpG#*CFjm+ zzTG_+*-klvo@$*NUdHnwIpxh8^T$A!S;xs92~UpchNZV0l3aHMaGL{kWG|(t_)-|v ze;S#WkYS2k3e%1~d%c_HmRC;O20##=yj!}QS8F9C^}wpkMJ4CWUib3>yHkA=wKIp< zSlyisvhiKI(G^(QtJjx>5WOdf)zQn_+Q+&FQTm;`Isw2dAZS<>qprI(DEr z#Rm@~g%<0|f{1CD>OCPxF`*<(2baT`qa#WI4SE82lm;rhl&$0t@O1RcU*R%!7lccZ zF2to-x${tu-?t%BvC)|A+7J!!}SK^3JAK)48b-Kz#s85kMeo&^nG1KpLVd zSfN#?Qoa+6YFND$tODe>qxTJlzmN4Q5mZ8TRRZADOOZGd51lnox1MBk&{mJ& z@2U#}4(U;HtG*@bCIo3;`L86B_N=>@azb7~}{L7YG zPKho+X^n>)>W)}Ee5JhYcU59i1A@x${UT{j#G^&lTyld~6JWT$`aib)KnWbEXbt)B zf?x5M)&CUU27^8*^TaQH+DgV(V)$LbNbL%9@qXqSP5>DaB)dR;?{4Zahd_026b}jU zT=MY=j*Xv=B-{1X)1c{8Pj>Cu3AyCUT zW*jK42tniISAoKe^Ltl3UQ`5rGDNo;UwJ{Tdh^F^Uhev#P|JC)L~yrcj`fGE;|zQ| z0Dn}4#|afh8mH-tzyZ7#!OGx~FBmsaDJ(j6;N{{0*!q8N27l1EuMEiDzE>3Dcze-n zm4Y0z<+~iYGJZva#yp8`&26FLA6?%dmvy;P#0LYAQ)8LKMMdf<# zA7qeJ@(3S|ksCKcC5b61M>FHhh^;T zT!fLjllwfUAidIGR@YJcGQZD_he8-LRec#Oq{w3HF7)>{hf{^ZXdTUbw7BZGtn^-(f`t9u#LLOSm`vn1jX^_1+Bc@sSr)@{^{+s7=4EF?();YQgLo*oKW~oT`Zaw2pf{-10{Zg(n+;IRiZc?05(;rDzu- z1wxZ(b`tc5#b|(>FE8oSscT|9@Efh8atks|&z^+M=(k3`alXRN^Y9Vd&%+#nOS z{xs3)O=ixsVtq5Yp485Fo8s11_v1e3Pg(IMD|&Iw-rXn(LY~=K4*pSQc7y3g?p#O1 zh^PRIxH3^j$D*{N0AE6Te3YMK1Tc~spgcJFth8Fz}@Ka45YC?ZrK4%KB66mU4>Ieajax^#H+aV^8LLzP`72 z);IjG3eC}ya`aIKN==h2D_PPFM^&f>i|E&sRmF2#`}#DgH(in&x&--LwwN1GF1bkL zlg8~(tM)l8zWl{Zd=fWW8Y&Qi=V!`kB)*DCXLS$ei_?uiBdNvGG3{_q z{VBrBy4$%H>2*N}YI(_?mVi-4Vf?*kyluMN0>aWgr|ooj@wh4M8qeQ;AfIFKku3%u zML7U4L3+7-P0qSU{&vCpJ&vZg880V-RcE?TgM(HuMTgBh1gx*A=cf!d$URnj(*Yha zlWd0Z9Q4R#r&*3gt+pWuYuI%axIlhl>UyGV8~BBLGc5ImEA}08ggN&m&RiT4GVl7> z8C!ld#j!By|MV~ekR*R+o?A0NIb+TP90Yxzp4PgSUVRjmn#v5nqKvVqkCj~P`NjYt zMTw(}iFDL48>H_^0brsQbrhnA#6?v9vugFlTO~M}(nO3RkwvKkDssX}D!Oh0vD4o1 z2gJQEc6-hoSgAE9Vr9*|#eXiPfq% zrGk*BeWVH=uMl)p6|z8(=?w|U5hU@uZaURThQLD<5@fxbRWXv&9IE83JKvM4kTuEO zBdk6-*nMfw9~I)4g`Y_+B(HqN*B*aY59EZ>U+{}kc6FkY3-?9Icc=Jlg&aBCCan*! zt2ccN>XV4FMfTX!IM%5Oy#S_Ze?bZ*g3?1qm#Tm%7NlTulP|%xEV$rNc=IZp`;;E% zfMw?wl~3C#_1?&;hb8teLz{TdGZQRS)xc2t_)0Nr#9lk@qzxl=4NpF?hOAu}SiRVj z$>rXF6^(J=Xt3(7ChT;mVt5ykkpgqi8G7%sAhey0&}ofeq?P>P_BIOuml8SX_D8=fuRihNvZev5*lg^1$JqcTe!v-;v?*7cafJ+)hz*VGsGd3Bf?;fE-H zmu|w!`bqHj!k%sOgw+R}GCHnjpkbr%lie--vpeP?usc2P+eh}w16CAcvuWAr+1Kk@ zUgNV{>;z9y?W%#z)7RTn_o>mh%(Zr@Hp*Q5P?&7*!KuXPwg@?rfmH)f5(*$OA5zFn zd=AD~;6EJR0c7u2oViDad(F9?mwkPHuDpv%KGs#fYNg^_nRM?VYG;!~E>m1VO|3QJ zLfq5y)Apw~Z$c_qE!w~9415QOehClC@4@h$g9A6kGMT*Q+fBO`OkFWL!F~aW_EW*g z{QgnfjQic2{@m4@Qtv-3`=(|Lw`5+BxpQcGfLopRVFk*>HwdJt|7Akr*w;Bvd|z;+ zi-uO43Y0rY)$Xa!Y<2Kip88%AkIbKL9_SE2j~nEV5G!Q8oOQ5RE7CRzw!R_C)H{HP z^x2*mO@|_YtyvZl?;jfXPHt&Aq-xBl^)9fg*FlCh8+eyEC>? zPnoan!Aym(UXE6ZMS~HY9_Ii^iuhj}W5h(nnu$uZrOcHpPTDEok?R(f>EA|`R1A8l z@4{DV17x!p7Cf0Ye)$z6k9?3UUZLcKX81uLh+W37kC))jHlj$D3t8CG!C0F&&#NCn z?B0-x_rly7X6{2xt0Aa79Iui60sPP>Ek5r78)iXkS6CBp3;ztP$hY5&SR1zEI}b3D zTbWx0AUsm<=$I;#B;qtlI==b4J;49Tc z_ID)1m84K_Ink|;n8s*hLEP{4BnXf4)H8a|LLez-b_Pg8y6kA9@_ZR0`_%q|Oy*qL z5Vdc^V~gR6?(Pq7Cj7cmg-L13Z&6`-sWq4;*EUv_Fc#{upJyj}$-DbEPlLkQ{ue^e zxJ7dHJ1@vk3JFn-c1DP~qkZNKadji%>(Mv7+#{pROPmv#o?w%cKl?Tzkyjq@Xr8I7 zIu>k2e81FyT8JieoO(M5^40o2dhff$${p6{iu(U9NXat-K{3`+c^a~1CwIaIs)ZFN zV)T(Qy=~8mEljnYMQ?LCw~5?NqW(~7OXzq5@1R6sPj|U+U99zT{OFFO;nD94&Rr{Z0zm4i(aELn*W-c0^97i;q^ zXeC58Io{MxjIUuL1d3U3?P7oeNJMm!YPH+!D|-9Vg$qQzzc%KDmUyr))`=aspm({!I#;i)<2jd(AaJa@BpK#u-HolTc; zf?DMk*dD(+hO(KWC_VR~z;f2H;@!N&aOjULEc{7H-BiLMCgUw}wwhMK)@OOoyIrxo zCpjdF^cK_yIwykDAq3XS_>gR7ah=@il%9WoQs`Zd2zAEH>g=y=1FOMz>Tg3-AB`yq z0_5Z)pZuw73}a?TB9=9Ww&ng)BE#%Pul$+`^LdtUP+;|D3d?7k9M)f{5VSaXQL=&K zvC!}sht7tvt*qk>>ldhdPr0m6=l8m`c;8hlL~j|_9|al<$DMk58CB$;!s<;b2AWHT zps0BJuN`_MWIoEC7Ka*Lxya_{G&B}Ds42V*D{%vlK`f?M-{~HCq>|Uvy!DA%Toh{~ zzJ4ec?Pm0y%gt$;YiUb->ria^boQuoZPtJ4f4o=GE8^qxpZ;p;#WVS~dlE@xuaoC#(+$}xY39l42DN;dC}rh9iu=a@){4g($8xO=5XELFEKK>Kx46Q65QMfn7A{~tquQV*)w7OQO{hbr?>3TqR zWAh3@&k~rR;rl0C83h|m$E9eU6RT=mWvZ^OX7C=Cm9apk)!3lE9&o-t3voDKS;!Ck zzF;*7w<^twWLZ^Y={yXIL*MGehUd92|J#$&=t%&pC#GaaKu~9IpMzuBB)+LD-|=l{ z{RO;#5eu-0_(8f~ zDHTXLiUJ?6o>3L7Zj>Etr?b}BOI_48MzJSPV7nQiOf39yiI;wA25C#(IV}ug_}oSr z3r9G1-8$>rqpL#zqqRMPdO}@26o>(wJ`aYF0w2wn$(;aO#_7y$@6n+vI#ZJrhhDJ} zVbu(c`OyKd$%|oMmvPbjMCR*+@3yMLvQ^7u#K%dXbko;jJB5p!vgi+>@A@})2u%K} zpPVsR)WGC^N0Qc^1*RB1vU9DB1dln5*&lyks z?oJTU89*$UH*XT&g-8M8~vA0v5+pvt>qUTq153R_zrPZ(3`1) zoS7foQ-!TQrn`vXK^&E<WHaQp;onv|GgOI4RqLb++9q(^sA-RdbOh~^R zKDnITPlS5R?J{&%5)M+*=_NZ_TGe;Enk7!^u(iEX^$r~Bo$D@wF|zeQ-d68b%-EFH z{nOO>5!u>oFLoMkK`AyIUie8o(`&!dg2&9?X#va#Q(3y$Nox+OYz5vQzKJF6nbzNjZXk3rS6YSyugBj)E|KmA?s;6)$LX8SFR>Lr$Z70q)2vLp?+SSf2C-~WwdZFttj zKWi&Q04i%Pssrxf>rjb|aKTh}l>k;>qTQtP$B*INE=k|cmJoC;hc(Qj9$1=iQ1Mlx z)UW2ze7uh7e9Y>VgSfzG|KUIWtRF{!nM0p5VsRzYv=LzD`ag5k6^2zg1z7lYdWnqX z94h6~y1N`=21YyF?Wx?MQG$V2o73dr;77AD0(7hu`oXjQ>SI;@Ige$#6AUEhU`_=& zHNXc>I;VC~+(DY7-P@b7Qn^671Jck3nq~hZ@f;kwtP39gvf5lip%%bk!`#V3sv?Yr z-Jr!h4xW&+UZq2JjnL)TF`B5JMdwtVYoCZi`Ju{bAIlHh$*ut43vw^y#EvmB<3|27 ze{b?-jU6lRwTmE{^~qDAd-^7SGnUTIA7{7!Im95}l1y)}PW_XIrT(0`2XlTAVmZm- zkA>t@V!y)%uwC=5h0w=f1!mr)Q$Ef_6FrW@&FZyJ4!u5eAm=~VnE%{rjg>4s!lhR% zqeuc&rt3eQ8}f5OS9uK79d#;2UEI4U?;->FLAl* z7H#^RjvBE3q7Ol51fNR43Hp!tWwk3A!M}qz{Wx8u-_3N(j&fps{5>}5^#fg*n$h-F zMaz_s;!3x z*&06(d%}H#Gc5SEAt=FE%RTkuF1m@5c=6+wgl6OQ+m9P*Xc%;ai`syb`nR>dW^VNs z@zzHauJjW53F6e$kx`l>x1onY-^Alj5Z+$KRT?MnuHEe(6rAbeF}z4qCLuAPGD z!5Ai<2LVQ8= zE-r<(uuEVJ=C|AK#kj}QmLf)3WHuDv1D_=*dg)>d=x$I}ZxTr2AmmktomT zS#@u%*|^kLg+9G9m|d#Xd0;5IypI+@hQFjr1by4zZ2;J@37CGPAA2$o=v0s0eq*+I z96h(%T5sG4BVz0^-^GtuQz2;07W5U|(o=k}e^NC)!UFS#hT{J80-^jL;Nnu=}nw`(E6% z0PdziMuf^I`}v^#z&2m(Lyzb@uX{|`4{^DTc{SyopTRT18q-;9d(UkBTr~8|?yKEtHU*^zD4=%(C0WZPqD0bNf^g z_nN>IM9J90oNQ3e|I-P>XKr8yAXtc%WyQh+W+S7l6Iq@tML+bnWe%y}w0Jy) z?%D~i?UwM#3(t;BI;6VGGP#W|j`? z`t|yxM_t6Zz4(V&H=l>(sE1J@=1rRy?)TnK_B9*0J#)xze|w?5OS{$t*|sk?g4$cT z#2ta9a+RNFfYLPAOOa&5ISJY}s6nBHd%QS;($zJ2ontcx9o>V>SV~nKw}&T3?|Rr? zWjTowt;vhEyvVh)et;dKAJZo58CpJ$BVs9^I;ucSVls z-OwqGRVH>#my~h)Kutdz*t&|eq2Y9lx6xwZB-)WtbCydUG9@y%u^!_eUR}m1YN?%G zX{Zv>#Ne2fLs=LjURrHe)=EKEw9w}Og%@B-JA}6b@9NJc`FCre@o{IkirhJjVufa4 z;^>v3Y^F8jr^e3xJXOpc0{Yxg%1Hh|yDFypP5vxP%OY$#6W!ljKxLt@Q8)!xo;v6C z!~bJ1_7Bmh44~>p=o*zGM4KHOYiODl)wb@Ag-pp zAbOl|dJvaxvleOW`I$)*Gu2MGSL9|kUluF?TAuX@pfP-J0grio1#mH-?JOpo+~D-O z`VK))PFGv!R+9zC+YDVgj&Rbr^?~ket8iQd4hVaDCP^^p9@P=N(S2j9;h>PIv%@aeME-Q}$THg}n_*r!LvYB(F? z71?=wOWXmB71SpHO3)<1C}|tUM}mJd3fgb|6Gi2k#Q9<;CVQMUhtGO@-E-gPng-n^ zT%LT6DT`PbRII(w*U82aH61j+c(>OBVcT?NTe(!;n_Xuz?KMwm(uT-MQXreYx1Td;H+~s15R&D|dP0?!JDd$(tW3tWWbiJp zY`BRY48i@qjcl$DI%tho{Me|jZ*CqP$Z2t6L{f@%2V0i9y{d8CD4ALbrX^QT?amA8 z!y3oI{gWky_oo7D7in#OFm({a5S+(*a8!0O+WF4rIL_5hY;^0ZLLX4BMWpE5A>UZl zyLiTk+L6zpn#Z3NIt~@Yug~KlssJGWyS7UnI$#g^<<4^LN;iqWHcB72h9tgb$85dM z9GqCGL0Z;)t=h$^lI5WppARr^yO9PXgRbVguV%MwW>`(K9Z;>i9S!~*QQvDF@iS0j z9Z|^wOi&}Z(=+< zF};_xLbbahW<98Ez|nqiAdklQEq>I!KNS6AmAl!~n9V2ip*hJ$^iSesitXv{OF3{X z#%of}rebvd58k!`Q}$~jq-*DUQsl`Zafj2Dy_B_Mo?ps_xU=bDiW4F*#q>#Tpq?HFJ5%k;S0-mjuwX#`r z74b~_bk0Z^a=5}#8S6r^B0XUc)NWO&WyQDQktvx!xwt%bQ#o9>gc3@H=C7A+51qOq zaMyUF-gf`(gndpGE~ zAEtuU1Q@Hqk2^mIVpyd-!I}*X%(3GLc!5@4Ny=;hIMMyP$MbdIh?9 zZvmM^X*hY_vLqClw@lqSBB~V4F`217U&F4xq?79LQko}^`q8&i#RZk>;x3x^w#IA_ zhbHm&4H!)vRkBDfwvq1oo^`cX)tNAEaud*xDqTG6^E2h^Y%^vZgGz9z32C-_v4s$Odq#x@sq$Qebf}2?*09# zaDIXhnq#_gUg6i1#^WQ!6w`#SH3Z^_BCfJ^o}?}%5<)Mmw@Y^7p^HqXNnZZ3B`6mQ|pDfZa696NW- zLU+z#Z(qmP$k83;_I&3ep5k6?9Vw$x#Z|njNOOIy;2Bs&G9PO&F}XBsv(<#0u*7|u zDp$p&lAe0ohHESHayiBvFq@{>$}Oxs9IhMxqr?HC0fZ-DxtO|MvR0nTNmBRZ+07LF6D zQ_}3cv;(@}M}|)i;fve0{x~=57veMfiE6b+p#q!5bgeT84~ZmnP#!wjc8Oq(mV(V( zQcLGsMLc(7^FZ6_z3#C!omX1zDTuP-tm>iCXyX~f{4E$dPKS&)w^O=_Js&lyIEbq_ z?b)G^$hXs|aTSc-l8cz-iaz=haXp?veLu_UvMWrk`ghGCfdKO?-Zh?}y#X*;OLWZf^z0;R4k1RPDTp`C3$`Qr4v9 z?e??Cu7_UN&T28=AJ(=So}_Imys5MbOGVFR2xcUOrYb!7)`b|4+7{6?kK`xtk-aWY z0jQvU>$qT7FN?-8Y`*B#Z{?jTbCg8s!?k=@%yP@6#&oQA8zt7BUwV{Rl0*iBv5B01 zF@`WSeiESRdY^~sXIOG5>(*3_#&z(j1!F@t(zLraF(OTKtyr3Z{P>Jl-QSWbL$t9ETXxR!pa zfo_a?SEqh?IT)6bUtK+wz?K_cRCIBgVs*3g&F=F7{}_wWb?1J|1f!heZmh%RDDk>f zE$ysPFnhk6&iT{pRn|Y++|444D?d0a%uSnr9s;ctx$_%XkOW zjGS8(e{=)qBQFi<|p41dSy!NMh#LI zSyg-2ZAzy_@eLZC8k0`*-H4=IjFj#O_uX5M1U9|cDnRj`>^x^Y=%)T$iPh~QF0*Z8 zY<4ZeOSvm+eGqjg2dVq9l2C0pLw)fm?g|v*e$r6`2_(&kLWAOxnaeGVk=T}f4yLnR ziESeabbvHj14QfMyAx~7E|>?Bg!SDr(68O0GTJCT&2fM_E^yAFp87mESyvF=$~mQ` zta`s;pd^z!GO`U}u#UJg8Wa+bh989r9u(8%*x;hM=SMc)2ar_kWu?BsJp>te^)j=n zf|NKB#4XxOBOf?rZvJ@!+bO2)s*S$2{+JDrscx$T# zH=ji_MH`~;LXTN790}8vuFj<_b%gIw=B=V_C!ZvVu#|q@v@TaiZ(!k*pN7Wm^5hui z(*)NVH~P7i;eGwqHqIl25O+I>_ZF(Q)vs*CWZZ9x;X6DbZwEG3@Z@2^c&| z$+i%tsH4h1I!pJ%bRDIYrmNm~dGJ|38?2XN!^C)loSf@OV%(2y&oql`AMrq2$k8us zsV@5ESh;;_j1b-Opa^zt>+QHT#}2L5VKAM`$B#HuL_A-wJSDGLj0;s=Ol&S~pGlK0 zFAOainv775FZvO>Xvd^GZOZe-_#%9F3fsG&s%u?FXQM9OTy009U#)OjitVHenaoez zw{_l9J9ZBM?EbT{=hd@7ArOt8P|*2gQ@tSevlLZ^l=hfGG^$E|tqVEBA58s;TFs>0 zmQgEWFj5qTvQtrEc+GEa57Lw*j?1v96ctupJjXT4yAq0aX1wWwyC@slKUoE+f=O}n2V|PhOU{W6I+HM`u)|UEI;dTl*jk&XUYLUJ zE5ohtDXZIaGK*K#44M;Csp3p`4-fjQ^@PwAHTz4ceS^i1@-!W!C@Kp`kr|a`6t^jC za@kd)*(YhK9dLo{ce?ksO9iuiKkYAur%HCb$e<4P7s@1Xz)?x?Frzm!y6Vn>LPD#W zg)dhz!;&de&^xx3f>Gw2dAP-hBL(Z*Am(0clPLDsr!|vW4WksLWn{l<6iYjGgWH1O4o9uPbRKTpfWMf< zr>gb-QHv-i{5Zmu1G}?3&Vid$7znf((GybPi(Bf=H&ql%r-U`!*NQ|i>4uKU75zjj zjLjduuHNgI*=m_e3Y(ZBy-N4~Q{K1uJ=aB8suJap{3CAe{V8gs@16;{h^}0IXz}OP z2upiAL8_g~?Ys8TU&PaeB^GvSbi3<(#fb zS?P{dSK)P6ukNw&Ri3hunsMBt{R5*CB+7YX#>Q3A`-5I^X|jP#+soiA ztqup{$nBo%B5FI%v=zN$9DF%;&y3Em9|b#u54%@9G?99;m_3kkUSv-sO*qYk&RdSo z(>xc8aXosPr>}g!SA~_F&AWB@6zXC0{a)^7_tmr*Oz`_jm}5tPYLIj-LtA&%{$kU8 zHt_O88l}s!v{4tjG?qW_+5}DN!%aY_Oo2i+Rq>7VN=m~<=M!z%#vd}mgrimkG12)+ zby`THU`)J8N9d2?&ZOqlyk6r`3k`oNy@vFP*NH3qm3dv->uHF@1DEO?IBza$!u9h6 z?LpGfp2^Klb``($5;T8oda05?tP0}@M>x~ovR80GY>~3vLg~}K-pe-yadOwq*m^lx z_Zm_QZ_B@PU)m%>2hwoe5t389ow^^%AKdQ92W2&0gA(6Yn9|UiG|uY|3lY?^6}HWJ z-$CBtcD}P?WNOS=XZr4*%SRhgdv1!`9Cva%L zb?005ktU=$&q8Eq(}hS~dy`^iL7bhUwtvwBv*oqj)?=^?KEPgh_#;|8s8Y4ZDkq{x zN{rF*d4@`3Vv>7v(^#dPJ!%I%J#{#F(O3^7XY6RMd_S+bdvIJgayL}8ePEqSWC6jB z?9PTK>++bRP|DSM(U&VFOb`;>)9I>&QysN-G5S;QFr#K$_UTsOQ+Um8g`z4swItHS zVb8}+jD!J$R&)%Sy@mrCA^f*>iR&i)W$xq*l#HiK1drb^3EG!R)n9YN3Ow@TT=*$& zK@iiV3E9s_a8-E==hu&4+SPPxyIiBJlr!L>^faQNJ3XZ>K3+eJGIb?RpoqW+z&Kem!Wi4Ni7w*<`DPFlygUGeP!DkwZ*)&F=_gVN!(o3 zrIWkPVJ_xijmLfLN~xR&s>?=z9uxm5&5kakG$DbSWsgX@ z(jvvFgoYH~WGPN`$0{M%?vT`8ciqaZ$?z0E8|k`OSt+&&^KihL&@D+sE!IVQMn|pJ zhR^@36)ENLo^BjPpo`xJ@uj>=Htd|N=H5YYE~s@rt5A;La!pR6MfI!9k$4QKcbC+= zZldP%E$5Fpc!OdEB$?x0%<yI5CpqG$MY5>AeD%-l9Y<9L8*=D{7YEm;ibklSyUi6(gv^1lLoRk!2HEN>dev}O z`WI{1=(%%OzZG_(wi7J|vz_eVDS}qSsyB!Ux|ovcC;5}wCVHz5SKRl1w(n`dLUy%W zq}3Hn=?vP(M@5=061HqrJy40wr{jY=Wl5Lndh6qkBPKBi)W%y+jx%380Kne&0tQ~# zG>(glN88}0JYr*3XqS1Ks$?&;v4A6ch~6LA5hGNv`Kf;+Mv9vm(CGL z(F}o+!j8j@pZqL>`$ywU(|cL_4w}qmsjxia$@!InJ=l?-#m+?+nm=kckrbHa+5`E4 z?h4hMk+*Ad&EpM;`L16Yo(8Q_98ROi-MkivwuKN|P7eJ>XRqGP4R0-yQ}i8bAL%M+ zE$Gnhe_SF&p6B~?YOrHZ+*joRt?Gmq_`K89QmmwEPFx%AX15g}S)J~QjM&GwU=Vlg z(H`otyQh(|ZpXZ-_BFj-bj)oKtJfwB=$TP|yeL58!dV%6OlniO&U~baOZyCho4Kmi zXzbX}RpHz|43OAGrfFlV*(rzlikv^JDOyx{hd)nZJ1gBioPsy0s4GV@hO(ojz-RaX z!JRA2bp%m%Z>y>_vMapToG2cuLN9C8XlWzb zH@P33m%_s#~+-N^Y=@uf9V!4>ppt+^@}-@{2Wznre;)k%L`L|vqknh_apjqe#a zHL)LNVwmj3N2``nkkskV_VcGha%3R?{7oz7_U5yGU%}wC|J=F6qus&!(!24rUP{(T zL~Z{Vw$8lN{n22+O;ji$nW~qAbSy`wB}Rj=X9llJ1G~OqW&r zv&b>OvLN_2ys9=v!mPh#u5qbl=6NGRczk>3DmT|`o98-cuy-Az<9KsYoUhIiUf3sM891;S+aGrWjiQ?~{f~^hb0l|OWPFl4 zw*Da*Y{xRBjIlYrkIkJSm0Gs|u*fU;9e_pS0jj~-p6Z$7e_TtYj^fzr<1g2Gny zF}J~NAuUr@Bu+q~M^$qCcxT!1!B^YV%B?6ZdpblbP_lN+il`MmF25NIb* zm+9u*U;iGtv`ll!Uq@lgdf11qO-n^%f_~Jw$&>GrXk1L?&j1-g7F=<6V`-7;A0={- z%3Ne2Gi=DXQ@8cfV>a38^O><#Hhk<~I@?<3#^Z=KQ))fna zP>q)zau_%G;zp;*!5aYafin`d`s*M_?RLPKuqzx&f!hTys388Rk1`r_ zW8+F++IYQVCs@wK9Rh~*6lJI5w1jvjZQsJ$)U6No7G>&;$6ot;bKy0upMwr-kl@X*}M;q)d{4v9rE` ziM~1$S4-TkK?Y2Aqxp7JdL*;E4Alqp`Yw4*sD5DBDk=wruf>dv)g0}ZJbAuiyy<)!13OTN-U*hB@DMmxiM1yyF^INHvlh zn`TYyj~u!E#jCtBjtykwLdx_EtFytT!2W{gV^}fnE(~d=f%cQkm?`BPmzcyW5(guP8s3ulJ3)O)&sa&gV}=| zZXEgKLk`2%3ex&PBP6W6KVvPQlkcb?GiSZp##_g3e66Ti1Fmolf-w!Ga$a&CXQk#t}5I8W|9CGVjybk|Il3r0}S9LkxH zAXsuHHx8oQ%Xm2iSWJMJsE*62OHWptX;8dy=LNB+iz=E~jxHo5LDxA_UGu}gKZNM) zxqMEVe?PX%@ch4$hvL#w*=c1k=?aB~eby;zKq8v2^Xb8RIlL|H!!XZ?xT|T4rV3sIM8cP&;T5D|bvZSsr zBKOsq6M{e4NsO7WXL50`ud-?dg2@T#6B|LeBLFG?F7 z(4MsEEAAZsfD;t}PMqO(>uVb8x_$XFYQ+5Q6FIAB-BpHX%B3^{S&CSMd9PJPf$+F8 z3v8ZB$LCv=xq{}?8To3Tg7F9^W_*{%rIHOwC{||Rd;y96;K?`hqirE@IA~VvC~AUG z;zT{rEY^oacG|km^;*9!32&zMn;7Fz5N{>5=D3k_H<=C(LSI;sn$peT-%`97Dm%JW zIM_jvw!)?L-ZteeKCDy~SnIzfsY2CjM#RXLsfBW$aG7LB(P`?qLKRtZf6AX;=0Eie zqL!(4NI7_7FP*xomONbR8-G(#iu8bVV_Euzrsjr0`}6i%Ba&U0E__WiC%Fq{C$qDI zLCGE(HlZt6fCRJe^AO$DuQhiEXx-jtHPe`C5W>pVeCkqR*77PSv38*B-6O5LW?q`% zuQ5vBrBnQ?(sSF|#yWzEN;RmHSe=lJHC8DR8QNU1qOrvfeCt}dUPr8Jww{9NvPGx^ zBlu5uB_F!03^cMh;E6Y*UY^>iF-y3yL6*$k6cf454eaouE7ukxm%JA-77N7}I}o~I zzbW2wQ8&%wbbVqg;OfC6?^=yQPFR;yBVF3T8`f4e539Z4|BF0f(c z6GYoPJi|-nwIHK1(N~ypMly4e8TG9jkoe+}7-^fwOUxz?mn98zQ1fac_pYthqah}! zCTirXV;M+z-Fe_(C%Hl&O$^< z9b#;5zgTPg(7a?o+DO{fNpCS!=n9c!cln|dY-mVi{UH^f;wRz>>b2aRklBP#9&GZl z1Cd?P-yE(nebZG|whohH{qx4#nHXSc+p!1@?0FcBfU2AOe(|1*tLV$TKA|XQ>{m>| zkSTw(FNIKF$|~nXSZ%J6`VW(I-9}y;2`a;jcepSC~C z3L_q}W!*@!NcB?^Xv<^SBHc6Sd{*{sOvs{tT%98yZ7IHZOt0`~H4LgK()y)A#>)O%auSG`pqkz@X=-^tcA404yMpD&Q&UVUiWn0w;r&~!C3yfP4p%LxS+>L0M zqkh~1KlKIdRo8|xM19WNbh1a=gr=C&Jo^uL}47XgStV75$2YXo!s)$-BTzMEM9htYR8?8E^C=9F00TH!l7u&;M)c_czvna{OIhS`1a)HI zbCQ%gaOVV+`c|QQQ4TS36lyWEeZ+pBP@qV~#5oqFaJ>3t@t*RWAwZok+{ON6%f8?@ zw3|Qt%ruhMcEBDqKVKlSylB@$9K5HHkNNXBMH2kPi3+sUlVLD~O)x_4SV=)QtW&8Y z--WeNye)rzcJJf#b>PIv{?B>P^a(TCeyvx?isfaq#V4q;Vn9p+&(7xuw10h^z{k3F zG@wR4b&?_U?YahJk=(Ym&?7m|e_GxevSVmk2=(&Fh-~uvYW+wun6J-gO05+Q=?gK2 zyEj^a)v7DBdQ_4pZ1GFq(Nvc9&#WJGhRxKh9xtPtUq`O-+b%*On+DYEG1ym~62_HM z+qR^{0lD@kD@-NUn|I1%(W#ewYj*1)tzyb2M_)q3sL+rC$!#~{b;J*bd=VbQK(XVk zt?E3*+a6ffG|`!fA*(Qh4kzPZR*v9{?4q=vUI4B*Ss=5B>t7h><^axx0je|mCzH%n z+?8f54s)Xhh^k)CN3Lh*6u-Y|%4(6TH_q(*=lBvY6;xCS{m@mVij!-0ep~0+H)hP! zz1a5t@XY3~Ipary!?RFmPMD7<`lN09icosy6Y=DCi}PjQ+H^*CE2+1uD3a^@^F5i3 zd^ot3vVbcxBn3jK(^x#H@`Uer@}*m>-!^J)p5omwYHS}wK}4zEiN!X}e`YqxBAgkW zyQa2XN+newr*SohyUl_>6+Q3Y6`2b(MI$Q?0^Wl+!Glr0wqVVeERZQX;_>i5Z>Bqt zAp)f6xMhU;I5pk)%JFP$_NMSU`}Uk)3?K=YFE`s+G0=9lDq>5s{BQqvQ8P^>vPSaV zR6V@Mwt*B_1UWffCH@^M!z`V>nDu#B)e(+zdo6*?GU%zLsm)~lGYo6Upcds|tAT2J z-$R;Y01PWRPq0quY*iDN1SA(T981MdfE_b0i|@|-SW9t0rXrpwZk#`=En)AtM;*3f zJhr;Og50p%WtVxVQbf3^T3!G_3p(qWam7(UV>xnGSTGPE_ zh6r$tO;_W8|IwGLJM!Nl;N6?oT20t6n|rz?=&ILpa=|?dlI6`g%sGWUY@D0{^y5TtPm&u`h-V;YQL`HRvx+Z6Del2zwr0)E3X-oO@AZ;E8hNS{b=ot1)m{Z!0(~ zIj`Otrv)8r_g#JXEG$>B`naHG)pN!D>oKPCg{i3U^v2qbeAej#A9Ba>LHN7OLkvNV z4=t7qBmr1WU60MW4sB~?arVh9U9z8`dsp;K)k)_F%SF2AJZLede#_!p{H z6lqOXqfXW~2Yv~|_Rk%j)nkWdW(vz?IIzrni--k_->NUU1M|Avnx0rBm&;`$yts&) z#K~CfPMKP(VbqZ#ze$gVKghD(;YTG^cP&8e)mJZJ0jq?kM9Jxf)1SOpGxFudzyl^u zshtuh=Eg1#R_`|E7gL^hboSOU!7ugf>=4Dm_6!8o@cD$ixH@p_c$w~+ACJIRbylc& z^b?VAi1a_02658UzrwR07x4VlI7!P zWY#g;lbcQ}`=*R*An(afUd7!^XS=%9#u z3Z{=qD}H8$b-OmZPhFk)ywI%~PXT_Gn3+dQ-?%=Njl~Ohb4INj+W%K@(uvGb4KJB` z`ZgPwiN;LzaZ19k^fjzgy}QLf(NmtUwGe7E;O7Xs529dXO7@o2)Zzxm-ShW1VKx5f zot_CjV)A&_=SHDVJeoN?sgjA~6l>Fw)S;OPeRA#wR5Se&XpZn#4Aa^&51V@dQ@w(C zJP)W@VI}^b{&S+xHd%qiqurPSZaJIW7k17e?f z*D7%c##alXXoQ=;pF#zj1L{$@Yn_rpmyp3X^{R}joIO@-ZK6d*VhKi5-^b zuvs6H10mV#&6?s`=}pISeF5k6Lz#_Ew@TH9rDJ{-`|%B^v+s*xEVJHLZ2$jauG(oZ{W0uf&1a}nz@@vvkJ?wmtqK9fSWaAzwRsWXPJBda zQ>6IZ1@#HhniKjxX;I-z-YX$cpXv+G?}krh)4sUjs5H#JLt}K5>6D*86T#I*E0chvN$Myji zB&}ZM6jF6N7g5g-6a%Riwn70r=eq3dU<*oOgo-%8<^P8oa`neFYxM-=^lg-aeEBJp3 z&n_!}!)wqMPqDUaK!TD7)hH>0+)BwgOO&*_>>T+GCt0dg)=lKC;l%TU7p4vz;!hv= zI74IOriK}V#{qs6>Kb)>bjTvu9n-2$__6zZ^DEaVr*V8=whY0Z6O$$8m5%`fr1L-o zLU-avm$ck*2#Nf9OA6PNGbdOBM5fCnNppPMGN&Q{$I-&^J2v~v_E9eO7!q~cv~36J zp!va-k5igWC}pFY87U*;$`q%3dMRaEjWYv8UgT}x1312?ExO*FT6#faa;Yt1hpKwH z8vo+1em{67@b6a744kFAKm8Ec5FKKVd>~uWaD^Lc9%l(VXIX9+B4*FM_~ORqvGiw6 z`zp_7#qyi8t;5%+KRF7f>6281R;MEb6dJ`IJvMi-ps_e@%_BaaOM)1&=@!lUhApb% zwT>2-`La|D^)v$uG<2p81BT+949`&xT`Rtm6!n+zdt-WFXAzKu z&26R`cBuNK5xm~AbCwL=V5hdKbz5Z+7aUibX>2w%aG#s@16e`0xFFJLjx15@6Tv5a zhP<*d1XYOzvRYcCg(4RVufhM%7dk2;c{v3^|%42nn;cDP8{3mfFWOo zBye6*R2-D+*vaSPDRSBsZmx-6%%>ey+J|IdU&Ka~cC-FCDNzzr9(dq3Nh~D$!*;*r zVi$=Q3+fD? z2QD+KzU0cj1iBYr`mfG}T11~*3|dLpQUMaqo5N?SGqk>yFZ%WD?Lg`7A!S%Iz5D|0 z-&%=SCBGbVo?aPA#_Rej7ZseHMTMcUyMa6snueklSBj>t1W|I@x=m5+=s+s`$3>h^ z2V_!)NQ?cZ{B_tRSoY4lcIwdIS}oYE(m(tzLBxc`z>^Ds`xTiO1ysbV$f!4N;#VZ% zdJ9I}K%e`Ms}(^W_{)ZQa8h!oL;r|yhRVQH2lrIO{l=n{jGdKE`;-U&te1gmLfJLv zTj~5I0^YD3b+AN4>UZ9?TwMH5-vXiYJoJUU*Ub#-@-+QAQHg0pja)J)7GaB3k1voJ zjj%nh;Hz3LFZw(`{o?Q|_pv}BVQ}|nWY^coc72xXeHKEslu`Ijo7~chUt5*T1x9>yQAEj@}4;*V_U=ZU@M3icJ#3o<&mTe<+HyR$AX%$- z4D`xhrRF)XNo*Bl^0klc2UZmr_PPsy!+gF#;ChClGC^xxBn41-YfYEc0_AJXCv}aw zP@j7ywCn@wRXYkBL7TXz* z#=vw)D00{&V(fAqL@e?k-tfKQ8JRPSE17SuaX8QO14RKGe5!NM*U!bw25JYw;acaQ zjytvum7C!vVgp086PE?@eV(!fIM2}cYV!97ww$q)zv;Z=_*4?u@#ji8maXi3eV*#( zX<8e5J_1v#B&EfFtripFY}H4uu5wGfxlL)<5VR^H8NXT)4LJ3X|6C)1>Wd$ z<-G(uRZwGqoHegXt8DOYY9&|cWxIiCWQ9BO8M@PV;uA6kX0x~JL0OfZ$ov$>N~t>d z7fn2b7La81(JeLyDKkH9H>1%M_>`yf%Qh9ul>=t7O1q}ZZ=wbY1{R5|*|sf2NQTM| zVt%4&j~ER9!}vFs&l_%XYy4kPlyBJ0#-^w7>snciKMwr!u1+Mg(l~d`D*5aYJbrcs zOe0ApkUaGQF1Wk>ujpnPc96}gE$x8@qWIV;piMWQn7bvc3i{O%>9<1cvOCsW{*?p03Gvmwl6nYLWmwJT@W-=E~J9w@1`B}I85*7yx=uvZ^ zUzZm6p+}YC(3whoRvG3gD;a{?dz50%Lci(I-_lE6uSTM}td4c;G>fM!rbs+P-ZWy# zfI;__+?0IZt7a;DZ!EJz@v5;n^Waf$R|EbtY5ggr!ASMUKcz+iY3;;=&DgCM|GSbz z9<8O>yK+7}z^2mvM23LRRt!EEp;(>zirPPLA5LSjSTw8I&Y3!iL`;MSg=07y$@&#n za@6F3>5RIo*3Z=S?kI#j=qE2|Ik)A@IJ8LS;?sqNvHL zXD=fa6iC$&_j@D+u%O$fU;1pcg|b^5({nEcG)V4~@)7-QJN&#UoQY8@U`enI#YC?3 z&sw6Zz|AdA28*FXA;|$V$CokLjjgPRX@-9vsowvy0chiRsn~a!EK;{}ET8}nD7eCe z+Fb}FGkTD~@7=yNAbWr-jeTOlrlXH_p_7XJ!xZ?lLmhGCHy0mQ`88i}b{S1Hlw$2cu^X5Hm zwr*%Ys2TOCAiR=qVSuT&W(cZke6&Z+gLdw;c0R?Y%WLtUvx)Fi@_Sj*cj-n%mx!8V z<#QGpbH!2uBaci3A1kMd2n$T1vW+;go-%B5GubUJBGd8d9TML)@JqMB1Pi;gC)?G3 z0)6>bFLUzJh$YAYc7edO`Rjmt$@}AK$LV6Onoa)n0TYj20fT6ol2>`?gKFfoa&5Vv zLg$Uz4(tYEAkkvvsO`Kx(aY_F9dZ-0Z`fT?i+pjvxIMzTVV(^${CC|;sDI5#N}*)a z!UPo-kT-_@_GR%k_*HA91|Ki^vod~8`xM8q8~6~z9v-B0?n`KyjKOy5*cEc!oR$Ap zj%N$~fi=}?)H*7-OQagyswjv}{oW!m&nwME^kx5~;rMTmzqjm#t<9n)TQ=->>+ae! zRb=Kb6!VgErd>8$)%y)c+oLS6%Vcm}`qS^wGQboUxy^cqK1y1MKn2hm8bE7Hi|$Lw zq@pSBA}&wbdn%kig4+il04$;tz`_iB(wIL1`0c6>8Te?B)!tzzioDoDZw^%%wY>cG zQep*-VuV+Oxdz{q%dik_{>fRz{*Ywk(oJQech;Bi#|Niv{1wgQL|O9``x%(iM4CSD zyWttp3)b)}oxwTz&92AR#J;JrF=jOd5h%sLG_>P-o^Ra^&7JF$?e62dlMoA0reY16 zRuzH8mS)6!vs)gquGEUFU%K{ znNr}peI0Y#J!#LET1jjV;gsN?t)rv}N(FNsFm>Ddu?2y?!yL=YFWtSG7edZ+D`e&C zC0_VxL0KvJd$}OemY`1(9jqb5Z% z)YXvumWUQM98{Y_BTlw<)04jIY?iX6rz&!&-&%F-LrrE`2b8UIc@RG~U9L8D)# z(ii{@)>=tY5(za2W%zUG;IL=KTf~FQwbJ)oya235M(Zvg8g_X| z(u0=!5H6i!7df8Iw-Xk=&whEc&fRJ=aM>_%yDP>%t^VLsz)oFT%gbLH$2zoMga7$V z$L)Kv6g9l#057a_!s;yD{_0PfDS2mZ{aaXtjCyw&m1DzWQqNTJK^StX8tuj{crSmp z|2+KV#ze{M?XOK6QfX=T%bfEVs=!5;s}kzan{XS40uSrLA1i?iOT5m;w(|>&|rBudTRe$dm zajbE3x`z43(HDciHawXM&6&wG2kuwx?;;m=ALgeR)@J9$=msacyU!Lu^^G~ zkN_^FyZ8Q*e$zpeGDoKvdI=kL=L(3Kdhg2GPPpGRvwpp-N7bnvSl~zGQxopMEHLtt zxOOIHvbw#~YXZUSy-v*`;wDsBRVg4d8M*xA@fu|856rWxvp0xKsa1V0ZU9QFWn=@1 zhbk;UvOoiDgu#~+@+M*&=qifEPV%yY<+7M0CC)sCfI-^mqgEjN!uIzg_>{y}%T|0j zbo?D+#v$~1VXOtyPegRkHzI0#&Lt=1#1?`p?~=TgzI;qo#V1rvHq(6{1&lC^fpPyg z+{LbIX^`wlE$p`9@p?)43bEFORMJ+N@1fe!z>e8OWoTt|L{ROImT29Fvp|NDc)mp% ze}p<^c_}t>J#BS4mf!v|{Y<7_t=}V26aNys3O}K#fW6a@jCCvJ<{!sW(15fC&F&gQ zMzSMDw_w4Vbm00_MunHEl!T1E_3dCu+Q$x3dtat{iFfC*iVB6-B!e)|A9cD5&1@em zf&f2%oW}TRfi40xr5kcdTH`P-7Kix&?mtElCdziIZQ66sD$TPB-ufI5E&3D9m@)x=GdI=3g z_xMXTn2%{h6v!~V#1+M*`=;I10Nn%2MO6wIf(=H~3i#lXU6gmBXzRu7k&vnvLq>lPmgizMS1in!Z}f@_|y#| zHdTVvbp^J=bG;c;Sfd%nj7~d{m+=nANHOnRk~SwBjt|9KP+Mc=($a9>?L&5gtwA|I z|9@BpJJ%jqiQjdI2IrIp`HvhH3X?EHyop-Y8s~x^5NJO0c+v=DSpHpVzT;C0(1JiH zJnD@z?%1WM)blON+LHK=yy37fRgHNtLm^>Afl9p-Q;@tVOH%Byo6}W1#(NL0U{*b* zhRM_;tj73FwOZAq3dy179Z$3##XhTks0!uaoI28eKH56>Ht+l8@f4=?0MZu@9nx6* zM5H7@pq)K9n?o#q+Lnst^K=}@fEXB5$+nQIE*kM@;*Z6!3Y5@E2$H_FYEcg9>=Ai? zetc?VJ5(z1axl>21^f1NY4`Bsv6O#~oJS_j4JM*Qn?y#pWUv3W4^?R&SA#%Ic{iWa7LHAg8f6IxW~S-zS7X1DU3pdq;n zK;+a0#h`<0$UcZpP5YTwI?aC`K3y~uA7c8c;VIHzXhf)O~nVdST+09a#-wIgNdHS$m14elFiuG_*|kv1TLnS36Z zy&{pIg$R>n`4&|+@DHZ}>p+fyrsc50lDnJ&@KcT}{B)D2rZchr8KZ!a&GbkVpg;bG zoyN=@#~|9nCQ@)RQJrFsl5A-|7fG?*;=Ob=cyH|J3!m!gX)J);&L#omW}B5AZpUyz zf$@h*iU#pGC23)o8C_CMP$JQNAWgC ze+>~^8*j~f)MY*E(>O-q4MgMheVP)uNmBRoH#DUHmZubZ#rwFyQoEIfAd?C}25ok!!9nPFl(}^EwyZ!)o&7 zJnDHsccZ@1S!dqMveNqkqqgk7qCq*cd0Dw$1h|!pT6{Xo<&2>;-~(`7obG6j#W#-iO1UYvhJu~3AM$Rce__=G9X9e`6sUU z3E&j%y9Vc7EeE^j9xBh)vw-D&g+TQBeEJdy=QL zwwz3q{@%i3%hSvNrIU4Z5qR|2MbknrH^q;TRu{vDRVua5_fser#l~`>9^C0xu3%5#_dB-n{`7XmULx^?U!2&Em2y$gKpdsuSQHTKR!D_^8NYCF{%Xr81}r<<-P$; zn-TSc8I?8IRwIz=ZBh5P@(jpD>j|HjdI~@?n2%{tO0S8er5Hay=I5Asl^jb=x3!K2 z;EvJ3Mqs`tWE$RWU5vB7{3yn5CL}t^jexgzpNjpTF+zLu)i@+>r98`)7Nvg_gqJoG zJIkK`E|s1f8UCWSeKq)$Xdm0zF%TRn3w)rqC%+FR>glVO5AS>C%bQtZGVwf7KNoXr z@!e(iyhM-v3^kRTsyM|8-%}1>*1-@+joA|8)5^zZWyY|zDDrAIp@n(z7PxB3C7CR4 z6!UYWy^oXo^2afohu)nMN0_O6nR(nadb{nB##R%If;$VfDmc_3+xK=#PLq|Ekb_R<(_Ts%LqAG79uC+^e=; zj7C9US7|oTyz2PuQ4*HzbQ8iaO&rGUw^GR*!F{t*)NLx^!|6B`WLgQID+t`7e|LMJ z&TQNs580`C-HB!HMIBaUZvSkCRT_-IK3RP?S_cj-jB-&6h$4vT#833}#409Fg8$)pKPW5Eww%7>!)FAf9Z(K~~=((A^XLU{4_2-+6{vzs9Bk zJ_TJHw$|!oh8%OYJ0M??OD1l}NXbLR9=%+-jd}5_9)bH6nCLzFfjK@B&x#|A-^^Ee znxPG>Yc4icQDUb2^SLm%fe92w-=6%Po4nG}pU^_5>3}1m*jvvVzYIU4#eMr>dS0fnM zDyg$UH)?;qQjZzwlZIq_6f?yrf9S~}IiE2)CO*-gLZexkrjxXXa~*$NZ;d?vxO0oo z>d!AAcdWn`uNG8AiBM2$`>C*zhyJGQWH`!|rUrbDz%DwrmbHfL_FA(<)TKI7osV1P z)v@Xw>4(?zwzo#y#_|F+bDk;F+}ayU%DW!;_uAAc^Oc->GfCaTqYnpxnViLkGFbwe zCp2#VqJgzsa6o;i(*2~I8(BGXY+r2_%7d0I;MpT|rx}I?>3Go16k&?aOudRCtM~0M zj;}gO$KP{bdhVW^F=q^^8E$dL_)#jU3*=N%b8^I@WYqq}ZNA7Dk>n-OsBu9Tn}DkP zPeyaqSA-f5`0BtIU{&{8vX3H?Q#9wxM2>7#CMvi(BU-&(vAw&if9eHtP*=zxOGv>TZ1*q)tX;WURkZEp@7d+Y0?0N@h~XdKuKkOh)m8wGiG+R1 z!MDL7euY1^li)>+r>|M7T6xiXIt`mTGp)mNHjUqcfq9Xck76H|_JztuD;*md1N|wU z*2iH$%RzO`Fj6)9aFL<}3RCb2e;%%@z^Nd8D`8ygRyDD}^i}SIs`lHcG{7~NEXJ41fAZ+p-;dOjllMkrx|gRwZ3_IV1%k`z6LH?P{kXxJ8!n=5&Q z?*gR~Nl9~D)(1{Sdbj?KQaK|s_KUYY06^y}IQ3or&=!~fbXwfP9mjQ` zK7FTd>#ZU47!Xt|82;tS+qMq-D!GTp-P;Y2;H_<|w#^J+?}cU*3DRv!dN-B--AW)@ z9*9SfPqcj1TVWC~uHtWO$FW(#PqIP?PrPH|%E?N!L>*6pX8Ji4XKn zLk$55UO;}!z?tgo|C9rT^=msFlxeypP4lqww28@nN zMF6cyHlJ;6%@okFuu`*don7^0U;xji0DD0`hNSH8M-eFfwKUH@yZQIMNks?E-0I3V zTcHy9KoP#A%+|_oIYM>?E~ohR51A@T)#(Tj17LGHAY6Bp&2*tl@`@ztP$}*#_Rz^*r zv%`?|&`!|Vv2_=BYo|$ghp()UU|1^}w)r0SM zdHvB`g_;Ev#HYkx0wDw_9F6{45=yEh_LbSqkdki7I<8+c+lobG+`sKjFXFv=^Nj!i z_b-l$WWNQX#j;M{a$ou@CRthD!M!i$4coSOvyCHcZ{xE1XiU35u}+k+zR!Taz%P*v zVie~h8wY)(jMpqEZjGFsXBK1br_t$e0l|G8Kuy?iRGl5F;x?Y5D2h~$$nODAn(%;z z&uN>Uc1!-qO^_Oo_r~71yyDHy_PHCev+qC7f85-0B$XWF4Gj?8xU9^vSdQdphMCU_ z|E9jSYZ~u0uD!DHe;wHOkJQ+J=4&2~YxnsS_T=*!K1seSEh6=#1=N|h6GD-EopyM@ z=W%sDu8LdyM^W^PpR?!+H(8xdG^D*74Jl~F47bi3u0)LO*N;tAQrkPp`B>4nz|geu z9~g79Z{OxR{r!zooNt!&;lpURmU=(x41)Vs|CEMrt?i{)+$`O9?B$a3#4o_wl3Dqo zSN{j5iq4zn-N;e%O*AG(^ZZw5fEcZ?${O;7A6iZUv^OB?XM8HcI(At1*|ym!5wzX{ zozYSyg#`Dt$SiZH1^&@X?9-LtfM%GMs?&W~b+{1PZQTCGcSWO1Jwuon2p=MZT2bC( zMC}BD_D{w@3ddt{?BPcsB(^_ff^O+LNqE;C$uFtWXw6GTUYjF(r{GxcB=#Yn%<}!z z$VrP0d;=^UrI6c8f`wqi`@db)mM-oP)Doe;bcHWu9U21OMWFM~>~0M0Gqs6$-zHBp zqpk&uPz7I#AolfA*q?}fe$Q_+9BM8BGaL%AdC%&qi}%hUDnMo{Up+>9vrdl7LCq%s zwb_4oh{YLew~COB!}T1#^a%yzH<06A&EJIivK&8`x2QtK-tBo zkiFVp@t_NL)B7+C_apDQLajg%2=B-;!rvI*43b*;H_+ERd&Q#V8$}s^fT7vaGE6Lj zywaZ=2ZlRL6rY0v^VzO1k(Nnt#+)U`a2*TI%!D`#@}|6~psRd1)z3sePQ{^rxa^mT zmfiG(8n|O|Az90>ZA#OW>aVSdhN|}#I0DN!dR{5wk4Yn7YsXu|{C9o9hb3|C7M7JJ zyZ`?M)z`&e@q4q{W=p#pk?l*evQ_bU_+vewbf3H7I6xeRr#=v~u2m9UA}?w1gsJk4 z^@QwPblcc0(ns?ff8%OXkg>-fAp&4H5!@bW3*O+eAh|Pr;B)DXU541~CWRX&hj?67 zTejA3Bt}q1eU2Iy@(S2f(Oh3|Qf=CN|2F~>W`jNZpnvhoK)i~k^|^~52<$c;8d(o$ z|M;zZ9YmNYMi{dt1c<#Hh;F0uytFSZ`!baQdhI1zYU zJk$WVr%j~nqrw&TGnulaMK6*$_MpX{B;QQ_$%~k3D6pJfVWByF!?93(PTV)P#j;(r zp4)q6-pbwEG79Io(zRM_5r(Lac=RN!N)g;?F>K-kjt-CwFRAxXP8GE~lO*OHr%Rg1 zFSIQsT)|97@Nvoja)y}eIzsuRi3KV4`Gz26tHB!X<%GPe_+P86I!8X1{LtcHp;hLx{Ahw9HDX_qdvP>&8i!%TLs#d8otge+Zc1(UH8>n`IM(q3toZw0K-Gz1>`VviXrOTv}AaiKca@V3a^U|96OVH>^)(>;H=CuRS z@OzV~vzuZ=9JX%*6b_wnUM8sHPh~AN?ISItge{Z0CBcmCPOu(ab@n?NQfW{d8$ReDgC#x99)I5tWODDlsP;#b8bQ+%J_y)4`?NYk?BhrRTHO##hI=4ZplG2 zATQG{IW9H6=+|V4_XnT@>g6N?G~8<_!Ke0w^FZ-MBvKaFam|SPATlr#HbWtmc{KY* z9-DzzN_u`zv*{H6oxQwY6nt0ja_wk~?Gnf0sMBcyy}uP#nc2j-SfC>Hk#L-a?y)k4 z{l)L*xG#&p&CsP|SUlfJ9_W-gDyUc#uf;5z#*d3z@cAjPN%wL{ytaF*z#0x&(TmKP zk-58A!)&v?IVKs#e_&vihELsz(@cT6|4~Z?TEE;eTGsL#y2UQl2bGHoLB_}b0->cn zXs0q?#mRr3A4avLDhj?gK8lcu(mA4NO?;^bv>@TzY&gO17%>Z9yPyG}VHdztY=IQu ze10LpIsH*K+DIuAMQg>Z+Ru75elRPLr5piSp!^MCA6$7{GGXo%e$RmYdPKUZP~v&7 zh4+Gfho=i}sV{rwZi$yftyB945JX?9g5xf)1Ol4kOC<%td8h&EuuR_&U64PCRguc#oJ>t?BizHk$ZFU@{76Jo<10D&*mkx6Rv z*nbmv2A>n9-Jz?X)6DKmSP%1=kQ7f~HDu)(BQbjvbvQkl9SI!X;_<+)vIZQhN50)P z_e(aX3cvm+)YeRMlzaY1<%lpKhEWPm-fb#yS)JmdG2%9nm8H=IMsO3r11usmF1DRp zy`f+)jTLRG{KH>r&LdlP8CE!3b9lf}9^+PF=jL!7T|D z%u}C@%swqtLP447L{!op`~^PSx`f|q*(CyYT6a=q`b~Qxv4^F%5Npbc7*4RWELn}W zwPouws%5j2W#a7vOkxkzQVVEli8gS>8YD>O`zjG^r;W4NWg;Vs-yM7hEqsXSqE`!P zM^U9x@|&kueAYbSHcc@~#Wa3HpGyQh#NZyC&unP0q$+9@Av`yFJtR>&k<+6rM0mq?Sh2m4H{+F~W zAI3Ec>c1UCi%~e@>~n7VQo5CQd{D6N%tmjEievei{q83rEPl(a^~3!^U5n&;kls_` zWd7UbVu<255cuinpYPo8Ym#RJ5f`j}Z|EtTmA~5hI;a3#bMuDdgXjMLYfiK-WgF)J z?y%yw^s5g+RqibRBRixG#FqL)b@lE68s9+%Ht{uQB}Y;F>a2qxBjzrOIqCE$DtKqU zb?7*T!RKQOxsm(QRn3TYu@?H?$eN*+M4NimGwWd^==|{~>_Wqa4`~yWlct50&JbB@ zDXt{vE4pr}{k~=AtinaC!?b_a-cAL(tn}J-5mKaN!bSJ0*>v#jRMd8nnYf|uOlh17 zPPqxkT4Wa)`76pXraC3B)D7wI!n0c8XAA2yH>HiM0-TqkWw$!+eHeQ(I?^42?4Mpz_KMOtNE}tF8Ka2e)rv=Z%ERU0BxpKAh&Dh+9@hgEfbp~O zv$a7Aag=~uoVwf;hdM9>XayFd;g6@e#{z2BhD&8>{7ZlZ zDrCGtcnoa@w@XEdmASNBi-xWLj#2<0WjcoZzuS)B8ddaX6`6EX;l;<(DK3_L+2a`O zo(07>GO~+WII+lY;RQvc3)jlP10<}T-tl=W${Y6k4J2on8qk#=F3Tp#yYk-0Rn1Rg%Ejys+R|f0?}kz%-bJcT^hRZNt-@ z5$Er0&|%ul5KnmkMh57+R7(R?0kj16M^)`rI`OX9-Gw*0&Dk|8pKHwkvZ??=jagb% zJDD0YM#u9hDmoOgb=$%-Q)oDSqypK=IX7b~iIr9MBtlfs56D0a)*Gz;lUPTO1-4>99vsxGm#m;k7iyd}!}1+&A=DnS(z3*G4lx*M zwhK&S-2a=#^UW~Pp8t=muWX2;0h(OgEf65MTX1)Ghu{z_AwY0D29fG?< zaCdjt-P=6xd-vsj!p!t^S5)Lj&IzJ?@ZM-YV44*82Auofl?LYt6$dzhTHZt0o0Ym=1;Yty38 zU6yK|prc!u6MLxlE8eIDUauxD>`pcvdtv`BbV|7QhF)*)haD{K1pyRzC^^TA>1z56gL)MLh#+0p|J z078IDjlZFHq^5QxGw%nii`H7SmuXFMR#+Mn7c3|6{AK1HF5jSA8lP&NM%C`bUR%;i zoOC~<6n-V=vJ>)-f*%TP`Tz2C>%wbMX39naG*9ET_1hs>m32QAt5giR#hvn_K-Ykt z44Z1b>rvZ;-Ym6M-F-sNMM|em8j+(nkd$X{e%-qr)ve0|#`u7-MucUv+=w?Zi`+I$T@3RPPw7JM_8Y5Aniynn)cIa%~o7; zyPj(db6#h$Id9C#z2NPYyWpOK=IbnIzWxyk{`91F_o3+r*9U$tGZOjhLq+?^d_6iTHi|dRAXU2u&q=HtQbLu(@FnWgqQtkc@K@nl?vv$bDZxs4slwK+Y9N_cr5hJ#p9QkT;qo!-`m*zn=8?aL)&wb15_>-o4G!#CNbZA zN}!hi()^x%MAJ*;{%cvv`(XVuV4-nr%)}SM-2%PY856-$wGPkR=LRtm{kLOFY4Q~@ zA=|7L=C} zTVMRMKv#0VwEJaAlup+nHqs#py4V=aUw$7e;JJVRN{c9M8i`$iFIJ5dcpGRaWxBYp zTy*VhzxYzNOHGd3@_nry&sHwa=!zCS*;A`Zu#RVzAk4KliGHH5N$5||_S)^Hw*Pqh zf)FcKnYF%+L&r`YWchIwuh5{q;>&B~Nr!5&`2EjB`iEd2GGadHJQb8BLMv$IsgjYH z;%hsfi>=$#j)~U;DVXhbBI`P3<1E?N!53g-!De6*MAIc>@Xc>L*j!B*(PBHeIF&r7 zdSj6?s8%Y1lhXcAgr~G3gX<)~2=<~GYRV**Hy8qiWq&8!2`W(HA_d(F?KSpB8d?&s zGg?k~-y&Y0EOmw4Va}HAf~a zo2P9%{Dw#5m^ zXtjSk-l7Ij82{?AnVMnzJLUx)d>=%BUQPnJ@XW(kzuz=xm^%`6dp;Dh1zx7UR@gWs zoMFk#nY{>DDfKpfIc#h+XA(!sdJ~8Qw`7s8nj}9r05{~2UVX%Tb6TDL`V@AaAWqMD zT2)?4{#ZcDeMoT6J`--~7b)ZY{g*9&%iYU(qv0-hxxR#%>p{st?ql7~_Cj16Z|UEW zH{&}8Y`5_h-i+njw<0Di?*(t&vXyl<&gy9q!E+r?dxrO^Q|(4>8x=x0qb;uDkK3Q* z?!ftBW1f4i^`Ht9$F^i?ONx^)w66XdG;xEPWuRm%n$t3|<IQ`jc(?`nQ zrRx!$5c62Z(5fCEBqVCz8f+PJk$8EMgXeX2Aomsq-n4L=ySKZScOU(_6q_(}B@bw* zJ_(rn$HU6rcBmK(VY+-*Rdgp*5Evpdc{1i)u2~`SkM@vK52HN9`GHtQwSg>|{pz9| zp)h+<=LQn2H*&)AVJY&PKS-k9e>}!p!?YPX8KBmNiWW1pC`D&-#Y(T-IvcXy>CKoG zHzTyb>q6Xb_0IC0oZPneB2=8b+9#N0&-X3J2l4SLWvUbg#)@6Ls$znsQ40 z4yx$KiNm%j%l-3@`$cq_pcCgFTtZQ78C8F;KLRPP(K?;dZ)K7pCW*Q3>3BYC^Pozb z#43l5waWX{R({6vS3a`$lP6fVR8_NLRJ2Q!J~?ZQzy~NTerS@x%t`ah^g-tWu+F2d zHgLOqP8;b1y|u2vJ4c=+xPM^Ntxug~k$q~)FnIEMiTm+5m1wY!`1oQRPuMn#FcmK>*%XD@5}TG^|)P^a@OR09P5VukmFxeq<&`e@~X=8J*)WU z-Ok`o2|bVMK`?P(c`!9S3pP+GFr;fA-4g%`dQQB|@8DklI(yYUrB)O%OQM+hnSTeY zeW0Im%35flXoWyBi9n@2!toRU)oop1cB@Dlb3 zAdf>KTZ_7wgMm{lc&9rjmIb_UxNuNw32h#Jn~bq$${GAlQN2}DY-F(Fh}k$u158sPPu~^=cZG5nQ}je9Su83f&v>EcW6OV6G4W8D*Oh-4z?4#j? z8REUyMb_Cp=Bo)KNwct18J?DZ%VF3$gVo7&a6lybJ!Ap9!==cCX3K86dLOsAtaCuo z{DT0!tpJ~-0l@LsDL#h324<@;5=wV>%C2iQo+FLhxRCSyFMhYK?&=O%0YIATD@6_D zZ@`n;Ymse{CiuWGr}1&#O+{U&^<8EZW#t^vXbenb$oGo*A|BtJN}>%Cw>z5#5Gkq3 z@2uKZyu!w9fxZ_&>;;@t`vVbOEdix^!e6Q)Nj-5@YuEsG1O`~s7SR8GJn9=(hgYAU zIJeTs?U_%^5-Fk1k7)>-JWjhkVe7Hr12pI~0XOXM7RR_RW8;Vm0!Oe6x=5&hI*ayx z%>#2dIYdLzNZ^I?b%s3iVCDNp!s;&Teh=ADvyi$>5PaaZ`6$PrEhz^39|{T%NXWgP zdf6lzA0SUNHDvP_|C>hY&Abxa_D~tcJGfjW-|xM12(^Xw(@zG&CLReNo8P;OcqE=S z^5Us?gH$->=CV;N4tscq=q5&TV)ufaxJvXylOqIQiq@jQM%*#@hbM@SN09)6b@J{t zHrLH%pZO8XMsY!nQUo}99Y*SX;E%>St(TDMVhSYjydY0nShJdV6AL49)9F2?u!In5 zz}6x%-Hh(lF8!cPlLxjURaN9flbZL%n~40*M!O*P{^mZ7(BZTq%X50JR%0Ql1Cq8X zr#Vx0Xe^i#Bl;ma{5CtWhnOgsf-bkjjc}xtx3=C8Ye`F8H?aOXIAcE8R6ODvg4nWm zxq2-m`*tgsqJJc}R|r9_edmJCv3|qoJ=6QmuQ##;W=stCCX7!nKNHQz{T{V7$ERXO@)&J!f#EwB!EDjp!PfOgWBeP+TBCqNz?aj~Q-z5Au9ZsR z7t&%$Q=;typJ)h^RUmx5_zdG5SU$N@+S0GbE+YdBgnGkV=Bnhy1$fkAn1f5Qgr+C# zay*Vd^gsF}?0qs@!*9N>z8KEY>j#v9JT8wnh1O5lfXssTIY9|fX9Zu{P&xxgw?8(m zYb@`JuiUbJbPg6!KHfh7uwD^b)2F3;S9VgLZZ_ToOqOmL`0oi!`D<_kDZOSe)4$_n z9?)6CRj+WzI@ky)fu3@1Rg}MX?qB0nI$bTTJiUYyOpgFlF9RquGzSh?$)>%%;6EQ26swn`!>KDMp@v9 z-bRyM#8Rq8YAh80XkZ-;)}~t$7$YTWVH&@H+u&lj!nk|UD|&;L*Cmb#lI)8v7powL zHKXLHY31Hw!vH3a+9A=Ln4}C)5X%y<<|E1JJv21+vw`;swtIo?;Xk%s%On%DaS~|n zm5r;F=x1qpgp%^Mi9%KOLfQm~E8Q7_jQ5ZV+GAxW%>K^1bal@6mg*ENMQHmaSgio` zi^GiQm=2`%2Q?!S<8e=y;KEq!_QsuxFfH!%abb%Lmw1?r@ zm=jII9l*k_fa$m^VbalQGp>CtvtV;x8dlsk$r4DO`4yJ^g@Yc~tbvE6y|81#B}WvI z{4LoTfD9qZ#k)V+uN?Z#{A3Q=3{Skctuft2kDR-cVsK6^fo`5Pd_WFff#)4OKyJd_ z1?ZJh?B^^qmb%-YKn?O=KJH{G1&z<6Q|Q9upY(C^Q;Y|C$P9L&JYJFC*P6U)ze~It zu9`fOO4e+n>oq-sog=g{6US24tNS6RiU|i^y9iowX+-O|UW4gq*!L5{h^-d&gbisz z%POzL_=rAE*9(HnPWqo4C4E(kVRI3CgA5*JIdbaK)v|UV2g!fhzXzYQx z?5*bnH48fX3ruBOHvYz|lNrvT2K-@z_gXnv5ZCuZE8tuW{#Dk%?uDqZQO2vDH!;#J z>!`UFSVJ}z3B!b=GXj(L4UzhB!qRW2rz~spZTA7d=IcAY{6emF!?V(OJQP_IjA4ZG zvDQ!yX3DF8f0^<4LdwTF4@3e82`8?Tv;KpPd=t_ck@T2UU7%rkl%T!EX-b)rV7W*} zsE~zCFZvpC`6$#=3I@cU6I`Bez{d0^U*UtS-Y3d-BB{MFJ z68)Nb3xjIvx(9K)#Y$`oFj`BMZojBM^!wgZc#@jWp#M^Q~W0)+_Jm<5mr)L=l zY*hP*IM^(Kq||@B1zi`E%zS}mSAdDj;4xzyo?}qz!6)o+)kHT@7&%C6{mi=Z{u)Wa z(BfD>%D+GpnKBht`8I$bJW%X+QAL)z_D4hXkIHkkBIv|UPT*4!0V6H;KE_YuepqJ! zGY|HS+8Lg_hZ?s0^D4YQK}9+Z-afok0tpZL0Am6IL{TRbzo&#lUk_v{3(1eb zSPYO?g)MdBSA#>fc+Ea!R`Ol#CYNghK0X|jT)piDFv;fKMUW7_7=|GkF|sfu3+pj- z=noa#q$xgG`~Wa3+eT3E+U7W>MsgJt({ zCa4`w`~-zP0+2TBnvM5k0Cr0wbdmMo_WKfqr8Y?E_2u+dkss|=qc}^(_V;F|ny5us zCZHeS48UVLT$G>~BS@TkV-a7_lodgf6K06K`@-ahpyuz3-qtUHAM>W{O4?2%>P6~U zulq-bRt3?KYQe;+5ZJ?+rO?3&0%R6onAV_?Dt=S?z^KobdfLD%Iu*I}nV?^f^M@(M zP0@T7GrnDDyKadcT+69WUSll;j&7>Ym4PziOlTJbILsE+*^2l4~ zdspO6BLe*e!iPN!P{zG%{FNPh@uFq;;m_M;F-OuDTg91@VnQscv>=x9^7Ev*=h?}2 z>MEl-M#2{EzZ3Jm>DoQxdHcogI!|u~(`oOtRpclUPbl*G0DllSOUdo_rfNar6xh(8 zMG2|z^^=gy+{CYmw)U-yrxvh;m%K%5Qfk@UTbn+@X|GN1g;&+vX2IbiP^IjpjG+JJ znx!PMGyen7;_(v`lbLT!v<)0GNi1u8XViVr&9V}ps&h5=sIScTWL@?C5N*Qh9(W@@=d$6?=A@1TlzZ#ygEGh44n~DdVWIAOt0_H;w?5pKamxyahfs+Wnbn z{Vp$~70qI!n7h=MdoDr+F!{>cb$?KrTkz}sOo@ttQT$3N8$FXbp`%#CK(~?V`Q)#d zipAz(@Jti&6Bj z$8_vlkmsxJx+6k0!Yf+Cyr#wma)~mP5m5OGR(5v!tiaf6ze{9DL<-s124nZqt)u9x zB9sh2Vkra;SrJ{8TiaqtPYu`HG-yw*@#dR+;|L0>RVa>oY@f#a=5}W!9pxT z6Lxzhw|-sMap}q9&lLQjbJi~oog{L5UD^u_elX+Ce?^7olI}@o=_(l3(L8O*kzZQK z&~=SL;=^k*IG-XU^}KU_5!&^fr6mRjA_)K@NdIqyj0^QXmSt*KKPvUE%{Q#Rzv|W_ z3f#hy7HB_Py6oT=bc}dABfstKCf|2FMRWtY#c9UF9(O6WfP<|MGOI8)8KmO#$XP}0 z3r)Whws*d~nK|69PHt@g58xdt^zE>^L{6zrB_~%f>>G_tib=G7((YwrPRkHZ;-n3F zrxBzu-^6x2=EP+J8McQuCc2NXgtjVD5x0iQWEUvak~J}&4Y4Ae>wiu=?THfCbNy%# z#xN|*FMD@m@mh2)`7H??4N*QqFhyK;WcEU={oziy0Bh>S0w9XYzzq6XRw+hNOW@NA z1AdYL)m_B)eAze!@jzX!nriLh6l7idLObMG;|M9TZ19^%&A}*<$j$(4?h-*5gel3}NI){qKm=Ot*7y7&{J_ zpWu7YzvYr+6o8jx>8201}f09{|+ocG(`Z^VVemo{vhiFjr*u|AC@T$ z-O4xFMwBUI_>mTxt8mnXC?q2X!+-q*$QS8qeV|{;H-W&H=Ki2HWhu%GH}Rr0!2pTt z(M++F5km2qIRXb{R#l^+Zu5q<>eL~)RV$|R1ioH^4oiT!Z^Bf7#I^S_rg_!{-PorD zDF#dxLu(;B#!`ay5(73(r?Kh>S`6Xr$feyxwO1NI%O>qM!D@6Y zX0NXCYtlx8e_~dMTmhUZf##3_mJWh9$S5Z=rwZN~UrPH)~UV#T;aG+_=5{S5Qo>J@__Jmytp-!sC+OXe7-k>m1s>%i#WW+oIFv(;ny%&sGrr#Q#Dc?ks%*a!U@WPA< zRkOQs$^8$rurEC06N0AP*x|yA;Rxpif!`;0*z?X~cc^sWd)h6FEAc@;aT{D40EjK+ z2)|>$GilMLiPLc)6JLt;S%pVp7Xg z{|#{|@#HHTqOu~|=4OFzUAdi(K(t*FVggFp{~P z0g!XK*T-=Z3-tti(Ipn?S#SMz|J+{-OnW&36sbPE)y4<-5=W%(6`ZT-xiVbI%h@P+ zn)VcopOPoLT-`xnAD>OWttnrB>Ug@knXmGFAhr1n)jYb%#(Lmp9v#?Sgo;NH1;Mum zrji~{D!K#0)wk(Dl^3q1s>~2-it$fff8|(PUphS2gXp0m6mY`e&O7+f0f7cP8+y0TK-qWVyq%J&FKv1ZUSnw0 zX52oF)AqRm>E9}Mq?aSOFR#AS^NT(4UPh8XEc*DL&=~%0)W84QKtgVa_VFio{*nOf z{|lOEXwXnnkqgLCVAEB>S4L9|T4wj)gz5G_n=!9ZtNQtBy82v5Snpc?I@wgX_%!?& zYbE30W`set)1&(!r};p?nw>6GVgTCHMN?1F;I*rX{2Vc#O2#1Xy|j>UT8YFa?!F)( zPajHnDQfk7t-CCLJkHIABN6quq)Pa6R4Kxk1r3FRI8zojnlL`-hHBks=46#G_=mrX zcC{7?h_e%q!i*^`({I0Sob}U{7O^|u&Aj%B88TBIP<`*$NjsQv7UIAwJ@(kZ?B{d{}_cXp$Y|EXhYKDcb6v0S0S!f+; zz2jmuCzVw~5X`jE`VjZ_5m^0$r@|Lr?({cBwiN;^2Gd>s3@X1zl((Q>Yr&c@=H)2p zX;O;N3A;j3jM*bt%9%|7J>arn6(~X6JN7M_ZRLVGqu4b45i>i8wDw^n{^`@qmHJn4hGc77%!pEC_)d6OW0|XO9^_&d@>|l7ru!!8aBz&DJo-3)=om zjunwI&jm1P3$1zPPpWL~>#0uhQb%gBrS(=Fs^_vd(U9(9$?KC8VYz4YNJNz&Nh07t>sN^iZ6}wRuQ$L1Z5sicYWlR+DKu zNs5ra<|WIVs2Lh&ud)dmAK@^`^eVUr$YwijPqC|@@PyHm0MJWy==vjyREq=LeBrZU z)yk)K#p>eAxq7xIWO5mGy8fk8D&Pvu{}A7Oo{Q@yG_`{#G@Q6F6;=$-Dc%_52ac~u z)gLg!-5lkOi1;TvAYpKqz2t)7SHoxgvi2-ClIlOM=<(iNx3tE@AY(7oxE&w$VS7Rz zv!ZwE)o5p0B@qtj^4+n`O9 zoRXfXOpuw=&(Fc)USgavia_yE=PI;~*KqQW-pBb>7bcHQBnnpdpC9im9RmieM*;#B zp59>Uq346-Udo9MzgagAh&bSu!qX(%IhC;%xQuT@H8U6R@Fg2+99%A;INFcuTg&F> zErVh-goQx@rLq@#C|NcGuzs1;LlS!GhKb+5K>58-Mdn9*xz-t96{Vykj}W7iCoGI= zP2tt|h>Pko5Gx12*=+V6*{M2^L{rMBZwL7TqJppJVTAw1hb?kuD-!!Iw8lvZ_Ip{= z=v|GZApFSmaEg2o`fGyiQxK304`-8JNXe4QGG&QQS{OPg_n{^5v%~Q%+7Q>=&$r(h zXS3=zNnA(S+L#|k6cNd0a+Xc?r^QHR{N0WNwKpW<8H8%7IG&YQGJ9UgNm1;hmEw3_ z8u3rb@HE)SGAK~aEAWr=uKsY}=f0pL1oj3S%s4jj>{PYzr^L@s)Bl3S^w#hsXX{t1 zYl760t9E4dggUznw3pAlk-otUBnbBDlB53%9JFg37=h%2gc}Nn!)9lD;Il|qFI&Jt ze^qNmY&)U}SO>|W)u!&Oi<%j!Z5LN4BvIQ&CYi+5^?SfX@<4_x9J3H~^9@{epRBH* zg0RIcbTf=|KaYiYHKbMumutDLxW``L_vKkt$Ise(#SFjBPM%wd)2qz4`Ww|Y`ENUO zB6hI^geWmYreHWbb7nWhcf+htn`!kyp{!cjq3;NjWADTB z9#Mp^z&_jcZ1}M9Qj4jZ7x3GAI&Pn58uKxg__N!!071KX|U#a4~ZkwxRhc+n210( z!+WPG)V-GI6b+s7I{NpjsH2;$eiFV;7he3&$Am_4Us6;V4^ql1 z;Up}K97JzqL`&txc@fwb;ZBFZcx{lA97!JTI(XZzBwQ{Hsrj*f01A9h0*nA41wH)f zxBI!YP+hhMo$u`Ke=DhvHcPmUeg@pLHd59}-~wRjG>)0uFO?UPHZ%G(} z3(WRHO6gDZc%(xxPz;ApoMZ7i=hd6Stk%ptD9Ox-Mf=9i?T)DC`x@`jBeW^gb0M|R z%}kOI1*v8|`hCx&M1H75m0iTIMfzQL@A(regBfE5z6rVb-VN7h7V)>rGK6ZS&x##N z-t827dkKuqCmlCwYi=^NzZ3>e$>wKUfAs(QSh%GXw4^m84I5<%$K3QCM)^0KzQlOw zww1TM(Ye5$8#(`PW$K|wNQqxC6n{)7j;VdZSr)hahh^1LrS#uqk35$FWW_B-bQM2s zZ=8737dXy;Ioj@j)v2xh>E>(a*Wj2f8eKy^Lf>}BG>rqGS?1?S`eZb2_g4Ym8E<|LZQC+J>)>NJ-QmFMOvqf4xK;Wiftx{?BGyNxW zazM=m62N*2b_549p!F;m~$by-<*U8RBNAN@l)bFe_W` z^4>oGtE;y{=^64GuVUQok;V0YTjq`{wMH;D~%}5>aoMh08fz03~bthAr#1% zX#QhE4B~NcP~nN0n~n=Sve-n=0cH)R-I+86gnc5YdC8X|+n)4dxUW1EWTz4Jdv7|+ z;KHTdBcIHVmg@bSdmtcrzz2mfW&$jQ?aM6@$eWEC5=gi>pj20DZd(88kD}l~n?bgjHZ#^jU1);t68Y*M4|r#X?96V1f&wfGh`0 zsrG-Z9fXm$9GF>Ojh}d-D(X$K<#3=a^Hq#->m8Zr*W>CzX6}#Hr@WjL*KD?5?@0_ zs+!y$Z1|&L_pV3)^hG#93$~TS|KQq|y>_l1!!F_RYqa66mYK^bBpiiiC-;!lULfv@F$Qbt^nD;W3Tl9S!HE=_v<`1&e@WsIBCfyh6T z;XqM5c^Y~}Fyll~-z^m-7GN5;fW!{#;Z^8>c1jVpi`}bi)P)4h2y76V48L9Hq7q%5 z6m|%%SpHdsuO9XxJRlJzN*8TPV`V41f!17$5$VV87sYdF1r1a=X|Efca$9AI3u~7j z*n!Rvhq>rg{;b-{uPfa_BZys%e{gnvq1FLw&Z06=vLTJc6(Qcb>Z**l5STl%>gc(J z9E^IAr%I27PIdgf&y#rG|AL(N7sAzf@@eEp#9~K0kDSi1dIS zt!?FwKer_8k7oLH%Fd8)Bj@L?kyQu6v1;zW^W zg3(n=IE`t{PCka|8ITbm znew}-WIi79XLn&$(_CY^lb+(|v?H?5cu?=Kg{J^KbQoZo^z$CM#&r6#ql((kB{WDBrH|*Dl-+I`CIftEzWxlNR#_e&lq3w35GD)In!Pt4FEl-j?#h{a{*^2 zwh((Y;$oV5uRw2_HGj;J8ixr8s78k>YQMTM4mhq|HHDfAvnJUgd={_o%_i&VaFrAX zAlS>*CYdLY*_R`wgUiKk7-Tu5+l<(IHT&p)@sO7*x&FBY6#QFjdiIA&&U12QXxjxX zh|icT4im)pl=4RouJiikWT|u@%(TxRapwnVmsH9thbsI8sTdK3iJ0U4Kv&kvL)3Gp zqa8le=#bj_xGK;We*L){o5V|-NK6EGfl-e7jPI{U2gm80uyc#)7@11tE_Jp3`D%mJ z6K1|I`F2nH9!>E;v{J-T5662|OoNb}taoFAwB+My3l#YQnTSls{cbmZA|2a_H$6HK zs_%mMZN2i~Y%YxHeV#=f6ZX8{CZ*BiCgfzE{lcH1m3n0&kfIIr;(?2xaK67uuZ-Mo~WuGpaGM+$AFOSCrroIb-t8x;fb9=GhW-fx>K2 zX3RHFy?R>_l*@*Xgf{Y$U*~x6XBt*dC^H!47BH;KMzzq?SqPM*L5u>Wi@<)OFpA+3 zC?M^YI^6}+>_5|AAH>h*e2uKI%nlW!9*n>5Nf{dMaYv%=UCuo{+%S{!i7@B8 z<-zh&P-#|wj=Ih4jki%mpW+8J`)V>sD3v0z(`vzk6qAud;R`+i*8X%&oU2{!SCQ}A zO$DMX1_r6NRJM0jJf*@x*$V;|v`>Zb4~g1)2-#kL6fto#BK?`py$ZLys7~1{Az$Nc zm5SIW;UvKcuIlhLa3wpu`v44nv?K)XbAbzv)hL(|?X_7bIN;A?J3nr&F6B3$w2AmC z-F1tjtWM5U%jGr^XW6F5fORlM?b~LswMv6z7jJY_K|*a8Tb>NftA;clq=OXoUljC( zf=6WO?yzPCxNxl?@tp9{#|4Qja`twK_N#Wak)!$@#PqtzdW%=tTH4|^#yaf8?(zh; z0*+i_sj-+p%VsUV!iN8Dmmx1Z%ynvzj!c%(EHAhXr+HiOMDL);F}4=W*mD@O4c)0% z-}&7BA7YUF4>7EQ6evN^GT}y;_wBXNPQAxDft;`}?<-sOWATa*4EasMA#%fTI(=rL;OUcr$~WMR-CWl}9tYbC9v#lvFLJ9mHhWNo zz05wD%_Kmd0g3(-)sm}^Fu4)hL3I8U6|8G!Gd^$9ghG@h;?+o(brn>GPHZWd6soMW zR4ct|I#fvUpehMK!Y}*R>?cfGa7e*&NMH@n6d-@qjI5q|f-JAbO%v2&S^pQ;m{FQuyA*FX%G-S|i_^CS1E`r|6;+Og8B z_$%ldJEeEp`U8-OOPXTUK1vRL$YeG18r5nN&^+V$eCq=U>%^)|Z5}cp2On&9dS89% z5Nuo;?xtR+IECFhOHu{Y-B*A~%HHG!D6PqV5_yHiE9PUv>VNqNPX>hXTsb%?gxh45|5keIJ2g$I ztgV&SR^xeMX1aXzbqUr*psU=p-2RKpW{X4Be%ZyD zz|`xp>!lemdGl-pCyv&AR`?*EM!UyhiX8R{F5yaSR5iRefhR5s((QhAWW$)Len&r$ zBhDbbTZX{Eu%k+PDKlXX*J=RrUd0L930hzFLE^{|WSmJCRcOY%8K{6OZ*&jh?*7j4 zQQu?_UHwE~4(^gTdEsJKWfVEF6b}I}g$7bL!z}XSYJKOI%LaSjTX;d-YAVA6WS)J3 ztcaR+*NW>%cZ=9v_i{dkho9*{0+Jg+$MFzWBH2&y%B5hEnEJ^Yx$Aq`N6(vMjJUNw z6MhFsrTDoY)bG;W3_d`IXZ~oilVi|OK>PlfpoKfxz$X8OpsMeN^tzfK0>hsM1I#NC zB^lBL>5vJ_Zf9o_Th(`ojy6>rahR9WZ6plulJ(M2%!bb4Q9wn6mEZmABbwr ziNV8(Q%Ex7ZTX~{L3&+vjgo*Ek(_I)=-C6K0slMFkw!YWe!7t#sO(+$$~WnJNc7`R6qU`3jq$-e6U%% z$dNoNm6KPxz@=;Tsvb)zTV+u$WT}#}?LN8Bp0Hv)35RUeC!0>gk3Q_(k1K-ZDbNa< z=gHn;0QfrxTYnYYQor~4STi)I{*n?UT{m(4C(`5>_XU|0r6|tGyISoELwzq-+HY$_ zLj{2YtaaCOu;;m=pm#z^{>ob={2&_HJSi<64{?hxsNQNBO2OC*A4G#QT&ekR-svYJ zv62FkF+eN#vQyhah3S7jsb&>_U4EN|tQ6r*-uk2u!FMrBvm>p<-?%h;U4%K_&cP6# z#peiEWa77S!dMF{qx?Y}2$2x5u^kIX(sfh%3n6TS&v(@4mJk;ut;Q}UMhT`xgH{kK z{Fz63sBZdnI(A(@m7{a_P&s;K$t(lc9cM0ctp`O4U#S(hSMpXB|HSmr6t8o3+w_8?&d+3g1) zO#Xj$RE2?aD)y%iB4<fiF@2v03GH(H+=E5!-M#N{`6MldzV?qdeD+yJW z>TkqRu9tm66CJGTJL^ruQN zFkgiSg_zrH{>3DKp3czd)F7Hw*WpJPz_-_ee5|&I0Ayi4(A5Z+X|mCmRbxtrE11MR z4y=C!j6n~YDdRYDSW=A&6tZRrnbFh_sgaqGK#BapD8nhJ@*eZ7z5@bI;BDdcKnH_q* zceV0d&()4mT&^lQQ{AXu_!XxJJ3*u{e{HrnL}DdA>T$YBVl&D-B{$na^1fnUvM?){ zg({i<2v#Wa82ojgV-7A8^Sf8ud0#94I>x0Co1*0;QhxPbhj+br(8TeZw8suX0Dv4^7)0D;mb_DyTm$7|M(10#BxqL!zTXJL2ED6a@>Qo< z*289oB%E$H1%@AkMy?(tq9D#l#7!%UeI!zXCT!ZfcQD+EBi9jIDcr{b1)+okJFudU z8R*jPM(?2N`H!h7{qP8XTU#YlzcbaCsXk71#w-||Tcgo2690VJF3H*-*)dj{lpB=t z66lyUpFG1!H*&hZhal!TYaOL*I$JSEGe%Vbf3me9A0ZnqFrDC*=%a!@N&gqI@whdM>NCOeYre?nfQ z+A)60kSse+m6$f3pZstJ!NZyj{~Hg&=zC>baKAS8&RY_4lg8~y2{Vp~xLPPM{vk-5 z1=s($a!Hv@%)j;L`PyRoZX);F>s*<_TuxkA$(v(r zs?|2v!WDM^W$7AXfs4tAm_HUsjUCk>#m_5v({LXS@FK0y$&^WyQ zk?V8ukIi)AAT(gkP9oHb3$9v5+N2&Kw zw*<9wf6}B52(~>yD-jbmv#$uA9mS&{*V3Y~hMwrcEXd!SZRkJe zK}K1qX%rggWgeKL|GSb8!jJH_2+n*yc-ox0HA2=rv{AKE}_SzBc`M3#J1}}<}`ZCd4)vGd(|;)*ZRCE4Si3cOeaN|a&hq!G+Iw9WV`wjxTxQUdmE74k=;~0X^^IC zL5diccs7UW&zDcd)U@>vbr&!lR|khhxLLNn`Kje>emBQ7w<5t4La4!qHL7E5-FpIzVGjzO~0DQ0YrLqel?gJK=r&9wKSVYt9_2PDQEL- zLNGWNqr&th-})Ywp0Qd~)2V&1|JS^E^_a~=;y!r;$$vi)=45)~(7f!TMag&uKHV1J z$~oD*b6%vvGAqXv4h^?Xku&UbhJOk>9@bcZVVSW_9<@cd{^rO{z3>6Mc6LdDEn(SX zadj?1*uX^ZFqT+I;(8b}(VMjEpA3yCG4zMMhl}B;&M8{}2Y3`$aARfiO5368Rf`|=r2mQDbjA{6$7nl33U}#E;{?SGAG?mE^QXj zXTe{GW_yJ4UPqpaepgCF7HOG$+3Wt^IIW zJ-WEj#Q6q%Vt!Qm<)>X{{p{8(ScOt$nXwg^e~6b*v5Di-t&O_f&MlG;-EC0}nHgJ0 zH84FaknI|}{5m+A{vE)>qwTA`BRF(s9F5co)KFMGD$}Zua5w+N+f{F4AOM7=gjvE1 zpZ4!cyr3(W14|)Q1vaDwGbsz~b)5H{6(2+QLhNy&GbX1L`#^zu7eD__!KvoTi0MWN znf<-pjSo*+6uto=PjY%N{6{85bFm?t&zBV=w#ogo({%K)wo-aX zK{JP)AnGq`!#X=t zA?A5F%ni+02eJ807l!Q78DYc7jV-p^OHTk$uBo?$2;7ruUgbeX0^8sZ$kHAN{n}5- zl?Uy?TU`4*c@^|jXw(gT*A)0*Xe3g!AH17DiJ9-`1n$yJ#13@3zTkKh{A_G%JgAU& zkY0baH<8w*$Cm^7y1-2@Ns*d8GDt_)#&YXyZc)picjedSqG zXhM7MaggE1+(PoM)_9%Kn&B8Lh4;svt4)iY_ioHV)?m>h~x$mI`bIu(b+Tc)RSNZ_X zCI%GlSM|SXJ&_HKe2f|HoqSnD&hb9kO5-QLFk^%4A-CVVqmGVh=`(}kodU!Xn}oU_ z6G1D^VW>~KVLohwA3Regw_D50QOki(ESnDy1FjTZKMB!$1cgU?vzhrO*)8MZ5?jX{ z$Quw8dPjY^u#qqzWi(!2F3j$YhfF=M+z1Bp=e-V@g9 zkB(;32Od=f8n+0M5$K#oI9!ws;Vpz?yn_*@y^a@a$wWC>XAV2)|8IcdgR7S97kbSV z4%<{IJwXpG0i;a2*O&VZwse!C85w%wl$$CHU0X3YlgAw#KJ`UNaJoqu}g~F11#Vc!HAo`s}v_H zQ@0uBA{3gHnfN?$N!}RDk zS+#F?Le{PENK4ZEioM@M>GhtSudb)m=3R58Z(k7b0sl6eG^7dgz;OisFFvE%Ma4yx z`LVw-!Db}S0XFWRw99{)v3)gd;vOw)7%C8$GH~&tXFrCdu(Az#qV6oAZC}e{xt}Gz zWKTd2z&!Hw3rAg04f&`*kF=Ua4bH^Sq<5m5$nl*UHu~r&Y$eGC08i(<=>lf^xC8O< zn}C+=&&QEx#4TaJ|3lMP2DRCB?FOfKan~ZnDa9R%ySo=FuEm2(@!}LI?(S~I9SRh8 zcMX>0ddZzL%@- z^7+(`(6*D>uUtZt%oovzg*{j?{6Xfxv+(xXuby$Mrr|adE0lgX?{}ij8$6BA zEcz#6icfYlmES&H=K=Bb&P?hy$qX!WMnqUOp79yX7{BJE;>3;<>8%<`3E@OIT$*?C zjp}Rbhrhmk2O>V$@4*TcSuUYWE{HsgmR%a2RjN+@+pR)&wGSC$-b;xGK-e%QsUwFr z(`k`@mGSSs%>>i0ZrnNe9erYEUcA}!qHFl2UI_;xrzxI?efk^PZN zd<2@Sh3!&;XW=%kL`^Pxze@kwE0e3FHEo`nWJ;W%mfeXLlmR7afoUepZ~kK>b{=^KKy#T-)%^|=u36?} z@c3(Bzx(NWk$uXO|n#q*zDO+--|fnm5Dh1 z0Zrh^XR_{3MMk?2kd`l81t}ntdqE-w5OeeMU6sGpIJ>jpq@p=biCL+Cg@P{pe#;TM zBrYm@#1S=G+dhUNz)LWIC@ab!~^(Xr(qBgMR zgXI4$JYUM_wDY*JpPEXq>^)(fG zBCFQwh6*`MfN6eCeN{_yzZOaL(b2RVz~%kmL8iB0(7!C!#1)^r&-~sE$ElhGj zy)tSoY6Dqh4FkQLa-m5>Fc(G7k3gqhox6kzZdVz~%*cAm2x%mv;iP*K{ugzj z>}#xgy&@@cKR!m$01C4JSwrdlWiz=G>K~%bs!pjz;=~%RDWOC(MLY z-jfyj@B5lr_Rn9xzvds^B6+_?>Q8=v6{eVBs8ORLOo*(4sOVn9HQ094#J#X*)!fH- zQIWWC_L|mN_ z2D>{|@b3@Db^)7^z0Z=>m(;cx;*NEStMbw{g5-PgS6eyrlwWfY719emLY@2czzjVH zCup^MjOo-X9L9TgB}WLb>E$7nMxmXTV;oTR&*twzkbIn(bdKy4K`1&0xbqE-M2iDI~XW+ z^s?4V?65=R%7?BUfVJn6kgXAi6B9w*r~D^~Ml;kUAh$)pg#}mcy>vqWMyd>Ty5GN3 z^rgG;)L%R4z2M~n>xU7T4;Vn5Gn)rLppIoSoqU&i+mKGna0F45is5UP+%9(xX}(xN zeqY_GyO^@Ny8Yn*9|3t0w-J|mra-PM1i)Log$JyQS`L|+x ziD6v&r~UQpOK+3!L@+Zqc3-QQF5S4U17WlhH$wH|w!d{3+EvfQ{kobvOFFuw&L8i= z;fM2>ExWIkS3;-VcevZBg$xlI(d%>T86_My9Ze*2%b1zVCWwJMp>U9Yd_pUyeoGT3 zMwppj#b@$XqTq1v#0I_6U~-X(s%;qUA&IuSYliT4;b(}aC~ss2g5WY#F}17xkR8jOYFEPBfIqsMUzpJPM^0P>g@~$h z88G*ucZ}><4&d{M4)7S?+xMkjim;vhS%kj`q9*)K!GcAX6W%>Y$Zg>%7-1Ax+PF{B&;aA$S*z-R_*- ze`JLU^+r2t1v-bOO@S#x*lAp)bGXZ_8ilq@Z77oj)t&w zZh9yC%1R&21=2~;P3ldbavLKIHEFgJ;qSG5z0*18@;Q6hlUVO2i~AJsgTBM|%|9LU ztyVMZ#mSfTr)ZWh3%4RFG49L5x_?qwpP+?vXUcl9ACPmHm^E_&A~%FgDBD)OtR=%% zSD_7bC2RMUvZChwKnL4wPyuUI{a<7(jHbkB4M|Rr+CJAD)*@wjkipKK=!|AB+6CcO z$$|QVPv`IOF&Yt|9uosR^i#5+6x%uhTF+5DaZ+W{;Axl&Ij<_kQ{YE&oFJ+N>SSO@F!`d{@9r*?_OamZ%A(!fBXOtpUT4pbZtj(f1 z>o-p9DS4JZdvlj&T>j56=cteoj7Xi#Mg zC&9y0GkEa9YGMBwA}rZu=`GHQDs$dg;(kD%g8v@eZrderg9XD>a;rmrdZLQA3P+JA zL2j{X;XA$nyHHG^9IjrrKr{u*tkk|I&vtOpp=ySR)>9?(%+aAofXB0(j2LA#{Fy1( ziEZn_K0!hm%n_~b4WQ{nv#3Y?x88Mm*bYf1>s_oc+oKIOSfGVJ_N9q3RBe#cZUq0~ zGgu+&eXdwmdqDQO0Bv&sQOsPZi;jGlcE_azf)pcfcC)|Vje_$8?((3?Ck-KP94VcS zwYta~CZAW2ObKW2UO-HAd&~3J8VNc*Yc=or&50THgRMR5&gubZTPgwg*9g7uGvjx!#=(I43^)Z;g-Z^UPu9A^v)=MY%`;zT$=-GjMeFdWA zdsvU4i1gWFVjz*=Tq>p4)4z$yV|kkfeJ6wV%5d|eS6p1_s|aEWr+MM{GeBbhA6QHZ`BGRrAk>BK+dS1#0Nx*ZLLWe49b_?zcuW8?=zI&UE9tRZGGvIzXUpEtwUG1pw`$rcM2Ds z^!13>YC_rIB8tsGAN=?(W{_5QURFRBv(mb6TZ(!qIWLp&(m%9d5ssAWmYLdcy#TzD zPl3KcY{OSRcS9FFz{1-8%13JKZwQuk@?U>48V%RH(-s*)&CtN=QxeiV`}R~PXI7 zZ&wgwOJwRh!D#XKCOe?p~82><;PzWZ$kK_BI%6&cvK>JE*W%(;6kf z8kww`1ZL4P}lEVb&3c^{bfVBHB%BPuPU+@J< z1h<_v;@P`#9k`$H10vrJ_3vqij>A!J4Y~(~Q@?}ptU~ly^@Xp={O3ZN#R$D=RVDS+2^CquDgJrC(um-;Wya-?|je<(W1s>%7nP? z0e1t8Mn@<}d4SB}G8rUV9W{=>)O@}gMM|+0j?O&T%qi6MzIC!x%l3AlSL%qKJ@kpp zW0=w(>HPg`zZ6&2PS{nB`|6p2a0gtFQ9H440YfAnoC9)=Z5kIq+^1|Ax|?#LT{` z6E$|JU`Tg<8R=Kt9n1qfNd|g9G;QHzNICOc+&-rg8P^xcwS&X-sb^mNC_}TqzV&m_ z%w@l`^Ek=2S7K!LS<7vH+o@fjxiomj#~RT5=O=&`{M+JAm}0szmS^y7i+${{E4iQ8 z#Q-UnrsG5-iF6%K8}ofjOMm0`R$3zjopGoWx(tYq6HFu@CpzZUhHsNrX$Z+q*F1zc z2L;2b)2r|9Xx->2$HK0C$soy{SeConJ0H|_ESkuz0Q#cc2i7Os##FVspIh*W=y8$WK?5oQVBn+#R)iQ?a(-)=gN$L@nbac$DK6r`w2 zzNstj0k^HM99aDa?_c@Up%6I~tO2F`3VFo+{PhXf|I+sD#L`n2CAUwAf*d!sSsJ2k z=m#G@{Q2fpVFdKpC}Wl=H=URSTJs(ehCTP{7e0e*49KYU(B?B;i7=2LLOL6Dalq%b zTEB<0$4=_{;JHMAh{O$Fa`qqtH|I%Z5DZ~K>3(zvq^+jby zN;sUxw+vb?UA+H}@OCa8G;xJJP(u{Io8`AOrrm)xKbDv&=5UDxLlR={{oel|f#LqF zJpO4XvSNG!SHGtlrL#^F^7oT|-hM3J&BGXB?g9PoN=9uOvjIilda5r=WLGiDyJ!-#~IfjV2GN1 zUtTmO{Ce;?yriX<*GB4#grk|}UCN~d(dG}Ey=M96!ek>%XeMXM-JmE82aq#^Gxurm zjL0IG4u@df_KR+Qy{YAsrd25hQI|NZgRCVQ*i7nY!4?Qb7IM;4Mgo0n+M zTIB|HHIlAv%YP*Oi-j#9rswF%=ImsGnYodAevuwA_ua@&1d+mgpWu1fcrq8C0k**Y zoi-*wL!@uICuhI2$0tKq5}n~UT(XK>?RV>Efn9Yc8g9(J-Po3Dt$r_KOBMPNIkJ>9sJ&S(+)RC=)}` zYE)=OttNLAgb0ao7gRIwZrdTjILR^`p>s4=;`((J3<%I?zM$qyq*o#-vPhBa@4pFRS+R`3f??h_;7L9SjE9|! zC}ZL0;XujS$#(|RTkiJLE{-MtsuICle&%@p8>YZV16b1xG}Pe<^aeTlsfsUGzEdOk z(C~4AF}4C;WhQh z=G6F+-->rReo>qtjFLf-Pr>9HE!Wy_!CG(c(8J2zz=hgo&`M`G;HkZ`_kSP&$)mz$ z1wm+=0_iM0hSYW>$RKMfYtg97aT2Obc}EAA!Vtu^ToG+j7OL)T5cvF{qdc|oHnH_0 zRBv%HGA#y4igdjIs4*&P>rM}e&mxS_a80en!%j3j?-e`Q4SMwHih;I0gS~q^B?o(X zoi!Uj^BCvwe&O2y|8VC-P#4lx(To-yAl zMxiGCVIe;nX3;1VHBU?(?aC-e*#iX<1hofzx_2J#Y zo5M2K)%sfZtXi%VzCQmdT%!E12RoGg)%&RKPBuDT=}WO|*_sJ3pVy(0J9G*|=bR1g zmp&{b8Zg{wGnASndcKMRTlkkDl>*Os=j#4;-)hTNr>v?gUIk&dYpPDg0w@ZMnp{N>iqPh#kvlNGcS_H6q_Q1IVirfbe>jvte?HHJu=9;IhP==WM zC$f2o0*arZ{~>6M+5DD`c)8PtR|=)FU1b0yDsCJwuC zOXCi7*GusfX!Xh=j0%s8u*pO~|}B{U49xY8jaM1&(Dc=;{UAtT`Y*I(4~8oY^vy)5mZ!s<}I`h!8nu zs_)zPpFckRR9PhdyB6w_&X+BG=;MGh)lC^E3a?y5;@OZT>w_p+sN{Vy8NS#6Dzb@Q zd;!4o=^%8e5~yL@xanl-AtlN=K&|ME+UTog5Y$*z|4h6zZF*V#M6|v236- zO(^m~f1>Q9wBOBU0Vq@N4N}yzK7oLHp6yU!>Nl6z=Sf8ZPpfA~Q@GIWVwf&pIyQ7cR81Dz4Me+kVg30iW62g}N4kt@s5DWl-~@2US*xlTd}R z{c}Gl;`7jshKqj&7u~~$ZHl2TcodtSFo|_DlWG?DF20ZICrt~AJfJi}H`=d+)B9_V zC}|GMei#aRUQbJxnHIat1nTB$M)bARNT?ayXuBxfDwkeMLbb2*pk1cqf$kU~^zu3; zImmp!0PiQwRVbZy!M9HfewLjPC%T(Zqoo-k`jWi5D7Avamazwv8BM?1(j#+u0zK%h z^tNiCBb!mhGp$juNMg_w@gIWue1fG3(_(EuV$OqmCp`*ozdOU)hVVZB)9<0|hGqKl z4Bb>XS~R6D*hWDH_NctBWj-5$r{96hbw2#Bg<^ae;!4h{wdYh3P6 zl@1kq4CJ=!rHsHHd2v`Yk@U-dReCY|KSvF-E!=@$zjv}W=C!yBV%vi##sm4lU{2{= z%S`?F3*PS2>)`I5?uhp5&G^$9VcAzTpx_5^0sFT^4QM2|M@t!hEXdP&)YXpVe1Q!LujC8_p1{21?t=peIIPq*3tl-j(ZO?tJr~FNaxe^X_v(uGAOl-*hj~#fk#jWBbTQrgW`lI)?3V z?Epr-jI<*zC}hDo4Pu4K!;WyL077ey462J>4Wtmd`Hha$)aATG!(3lYk1jXNWQ2L7 zUpnvuo64BF10VJmXuz->K!o!^gfQ^BHjADQ2|PV0$chDwb(wB%P@qnaI4}=@ndO<& z;%(F;!zy03SaHcxC!rkIPtVKURNz{X-F;boolfT9V4UsazA00o{7q-KmteP-cdhT9 z*X>fzoRI|Dq4m zI=81UBSxjH!cANYMd$!zHGwperQR{pZfzbor#2Ql1&ZJ+oEoQNNx0&gZB>xb7 zg>15d#QuX3p4*`nMRc89AfV1<@3XQt_Vqd-B?S$&kHEELFQfHJ^|fnIENMCjj+kRv zMxBzIyfu4;`x_tJIm9vOVn*9c+KQ!Qq=mZi-_*!O+FldRncw@>%v%#^HzbDIBYF1jt)VO99q9gtWMJK;=oq~YA@3-$?rOuOx z1oiGj><_rfxRNo>el{8K`{e#_M60DR5S2#wui-`cIhY=+sf8HIG(L{9ABTLc(dt|B zMa&SFAZu}%-abS9Qa2&yS2<{bU0Uyh()0s}{Go7NwWCacg#+Q=BSAbUpggyAsp=rr z{_05I8$S7l(Zz#xGGzWTE|s;}2&xaF-iO6M2^-ULO=h@!;v%M89cLyxUFnEOq|fCT znHa(H%W*ahQ}aO!PYL`tP1RhCVS(5I{C21#jOtp0GatA;5>^GvaS;4q z7uR*U*)BUi6FK$lA{qJ8+s>?~&<^D`7G>TYU2t;#|H&WjV1<>&IR0!igQ*Q$URIPe z9ciR@Cpd5^cah6Fi#LahQ;C}t4}p)NAD+tD-15w~qsVCC-z|fRMunP1MoR!PenFnS zIbkThu2I?&+~dzk9~m7yh_o;d>9zGk#Pu}(6Q>T&-?6%xmctUE;R$i;3tNLvwHO+g?Q%UnHhk-MK zo(7T1s)GA7SAsie4GDm0ptXH6(Z!ZRXi4ybL<-aMic{ zr~0YgEGYpNLcfmTtI z397eo-xjMOOHK^aFo@!JDTY6DXe21UiBS9@5W zR|Z{rmzUiaDM-|Kzzv5!)xJt7Uj{CQ_Kko-qcj3vF{bt65N04HV-KpBPJ2;)GzQ?d z&yZH}CA%QA*t5`|KZrS%Dk?@i?-IujhTgW`VrW(cX~kvro&wm-cwz>7n~eUMSC{#u zLvLfCOr*;J=Wl~lhyJeOi;ZwvJ7r$8NXu}rQ`_;+Wd@0He*{t83hcXog-l`9;u>do zq{AutQCI9#_;F<8TGjJIbiwcslvsLh&LFumM+QYCvw>?#K27%JNw0R_7DYav=djT1 z8~xaY^`Mw%3L96hm((x^yV?@>gGATwX7*_Dh00PFj&Ze8QT$9K0p z%3LMPB2y2Q+^+GX=iVhnZo^l8Cc>YnG z08sgeBEp1K1YOO(=rc6|v7mkvCC1Bt}^CizBYqy9-Lx^aPq8tVSnltAN9MnN>jR@xezo zXzNDetMil)$h03dJRg;lKpp3+2=PoVp^YqZoja9ym$SwBM_Blz<&mrt{{X*L0khj) zrd#Zyb07ISJq18QpeOf6kiGKFLFxnNWx)|*Msm4T{b{qmF)WiLPc$5sNmAN5<-gx3 zm!wyt_FCeGyGj#gghssrQ?6`91%PTPZM@bP1ZH?As%iFxvTpqlr4eAZVMLg^N+>PT zW=<7pb~2@F=c~nWdqVx9p)5S~1ti+UD>i%9b&DHym(w%e(KTF{Z8|_}NxQt2rUKvr zd3->N(FuMya1MX6H0{K$tn5V(LJ!HDexDwBJBam(nUrE~C&9$r8-91| zPz>P@ROLJbJ-6*p2hqt~Rq0A<3jr+p`u9wj6d}{9ScBN6l;L!>@J7d(Z7Rl6RpLRb#-~gef>JvlN(>UJl#bbcldb|eHQE2*;%F+&pR!RfuLf- zIygP^Ui33*n}P{4>v#DcVSibKzb+rN;gwvj%YPJL#i2}9>F_%2`?li8azI|$X%b`i zQbKr2NARbMCF{yFa*bwP9VWO^V^tHX8=rCS^OQXP8tNcz%(8{E7QJG8w4ItxUwv8% zk0@!h)hCkP@^JuuX5hvMmXceTcXp+xZ0NBfnxvw2z0}R}L^tDn_%@a#cC0^Q%&t zLWUZj@EBlFrI(v4U3gfj32x4E4oweb{G(@qxDd^Ea5reJgCf8$P;nror>C_4;%<$? zri68JYb9)Of|U0xC^y)zHLTu0MGKeQ|&vufNyj`MVk!#b_hyb zy<)#!dv_0E)zk=Ky9xR7{X$J(Y7;BEihHc8pHSSphUebD7VRj5S2( z%oEf}LG(rC!O+InnRzRSvqMBCxtG>urCV`K5X~96ccxY*eJ@g?Ax|dy0XM1^wuF#4d=g?EaSKH=fL=izSt-W4j>{4)$SU|BN`Ma z9DC}LNBn80l6l=gEtkVwl$)IjvpQ3~B#v(8W;RS#F|a-4CNhuX2n4hvaCYn&aoZ+2 zjx?U9X-13q$*?7iGfhfIaOVR_IqU5!EPB=bwA8~ZE?%@Jkv7W9#n<^`xu#+mlSMMf z)GkQT*yhWT5SW-%mBv@U%`2q|ZrIOtd>x93*A6wulZ?O19Vs(Spj;k5PrHv9T3GJ7 zTW0^Ei9&&KX8#w~wvNt7Rh+j{3K6s?d8TF;puilgj(&8ucNCn6LRK6yp8LpT3F~@k z-H6Xxk~|LpTAUzW9aG@&>g_(<+>Ju5+?c>+Y&oi=Du`gd>lf*9`r$n&QkK_@tt^k*P1lsb*4ThUxk1e5(DKV2)WnUq$_ z-z@>H3k(}AAS>`q?&$c2VTtS@`j5hkpo+HwQX%W*{D~_I;kM}I&$^ABy+8Z?pq+|p z8YnK80f6sHb_jZE8o9N@fQg@{YUONcSx14TYeLe&{mLy3M%x8k&w(knSLa7qu+^P67#}>8;eoHPBzUBAJ%9Su zY;l81zy4*yVjIKk+bn;sRvs*n#%W{67MYocdV6=IFMo+Nd;>|gW6z0zqAE7s1apbX;0o-t` z)N0jW2L{ygb!I};8jG{bTB`$`_TMMvpch|NPscKn6_^!gNc3Meql4L`d1)ZB|^*dM}fcx%yYD=5N}#k z)~W&_;T*}DyPmDCbI%NnA&nAU8M zjN(S|)noFN5u8GyCe|0LQHT3bCr6Es1|ucQMp5pQY+SQ=-;RYn-QPu|0DY<{A|wB8 zo8|qA&5Q8Y7cY!gLXjVs;>y3Ap~l(oiTV&ao<;sP?hI(UMC$x*o0CfDm*4dwPabih z)Q5J>S;Yh2mlqn<|BKmyV^k34y;G60H*vNbR?T^Q;8$EywbK;1B#c_qR?`6|g7^8v zz9#fumylHn28}!lT_^M+aPs2JQc(RsyLN-mW<8ZU|LG1N%VK;wYoo+C(XDj~H#RN? z>l8_d`m@>n{doln6rzpe5!-H;x!?*&+5JF+`nAHm5n?dipVodFxk!Tg{!;bGmEeJ| z2lv5f^#xAQ#e9zD^e{GVm7H5G5!ijdGV%#avMiC?skG}|HVWfiy#Mt6?_*IbjHruNA#pN%ZW1@rhIosV3$3De8qh>GYh^D{i8sP~iM`(R4rf?sFHWt&SPwR1B>FAmS z^+_5n3G`^a1CR6IO^A8MW*4 zlD}Qfg52}^rBAvO@{cYpDqG_bdtdyhqB<|Hrn(`YqR?{=tqW`Pe_~LYtC*#|3-EGJ z^MGgC8-}C6F+h5Qef0c6%PkURhXP*6l&J|dQW4GbPstpp!8095hv!-_FhhMUlXlZa zl1$tNdDN7x5HrZlp9YSgg%P^~lSjd z*jOh_bO$ufGwSu4Yj3YO*S?yYjQrRsaUZNkvCM_ML-Yu;<^fOa};Ng9s^2_4hc z)arx_vrOZood>G2g-&@S)UdX%9co9nxM?R2<|XTy7N50ifGUyf9kX3i+6ndbbEwW6 znj=);apayFbC{v(=r>e@tO6D9VXz1<8f727xdAH4SrE1+j4&y-ia?F&V@FQn7zFsx zfH^tEd!42Ia9;Dm8Fh5_G&Jor*9;|PiDq`~sA`)>N|ZlX<5EXT3zsIrbXi!3jxZiT zuq#B|&E28eS-}G-H-7Q8{i{(Rp2|14;?)1s`bR8mitq(JP4sE)m3ubI}XGE_msmSJOb_iO(d^q1oR~^Ti$W(+c zsUpcCD~bFB@$}*27Rs;U`l#?ruxQPrx@+(<3A}9P@7HpDl^0fwwd(qxE?%!f&xBIJ zbTRz|I%coqO({(8HpX9q=RAHC*U&V6<>gM9nrcvzk$vVo(Vj^DiDsjo6eSmoY3AtH zo+n1Hm4#BoxY@{1q z_8d0YElMqIItP;eyMwOI3?}gnjfEDr1D^tL=meEEG#cd%pt zTrt*_ZtuSV>5=zIm2Szx3`AZDUA0c)3pX*plepJlHg?llFWXLb1z50%nnZ5n%46CE zH!VCjZG->>b=5!W>Yuw(7ijOj5>_b3<)PgU?*Za(sl!hhB$G3y*5l&8Mjt=~jXriH z+k-Qa+YpZGZAYGJ;Z`r~t58N4)_RKOj^59xp*vNgU(SU8vlOJL0U8k)n&9>mzIKq{ zWlV)pr&gw0n$9e5tc}{|&!b7kBGE;9gJgC84CRfOOJ|0D!#)v4gK^gz22%t>Aq0b) zx0&luQZZ1Th@0`HnBnX?P+KRNdxgEiOIAa7DBM2%<{mDX{)MzrP5WfXl{U%c?&eN= zkz#p$VE{9T&5v$gw^6F2^Si=;U_mC3`T=_4`~K}4;9HF)R)GU?3r*wnZbbK$#F6SN z%^X6aa;E5#WbJ2;Qsl$ek^9Q~{Qm}?^CRE7id%R@g`cr2>iE7hV=*lA^6BDjQolK~ zC4*Km+UY5Zavwi6o~H7=ZQ4*CRvPe*t*Mj?n=wDSTA!9rEKAwFM7j=LuO%v{-&G*@ z^NG0p9IBWeyumj1Xgrjm#HgpI*_O_rRQMzCJHt5VXsSQ?ZXo5D`;659>5&5{^i}MY z>hg%kvv*kYnkOxIq;JSti`Hrn@nfU^9`I6WwJHPH0=QuPd-O5hi+K9%Lng4C)PZ|i za92u&U?RTkO*<)+cM^H&t|1NZ7E>D=1-;+G92^!5O4vjprbItkmYE0`?C85|y-ngQ z3)`FBRjxMKj)5W|KE8?ZNlazcDiq$Tk1bR_Umc!}#DV74dkMcWX3ejnrV6qW^V6}D z3v72mpaK~}PrV7-eMkponrBLCkTqDB6#n4%&B38;b-%w5Hudxq>FBc<1ZGNkwR%`e z^N>y4nv;i@bxa@LyoA4yn@yW`tmmO}G8)F!N2u2y?qL7!x*@&KgO|g6(*6jaSlc9* zQ4>0cXc>=*+IGuT_h%?bdttrL-hjE-y%?AL#B5Q5U~dloZjmq(vNvh7$@X&e@z(3w zI^nl`X3~*^wG`L9`e*yXUc0ksftLso(0g06h&5`4j>c?5Cpq5+u_ zhx%_~H0T4F+P;Ed?$9xdS$3hPI``Y7cXCfjOZ^(bDoeFQDj8lCq`k5AEfx=e|Jy^P z(&3OrlNm*e9U5;NjD!j`z0E0~!Ib&CFb1eBHyQhNMkWF}QQb+Vg1`4dhmxN3S!iWi z2$o$8Xd&Rh9HX%hfX+Ixq3g5A-{b~*XiGa8crb;WJvA6OmuSou|oeG z-rgEu1YVx?@m;ZhpD$-bY|RU@T@>Mmw=Xi+K&R)rGboWaJ9|8w)|iGG^${MqyEyWn zjI#cUOWtnLX5NrU=tt7CN$9g=s@Mu1=>=C@FXg$KJ|nbm*`fr+3rTpkHHX$<*^EeX z+m=p&YjaXw#kioZo6a8@7LBQ_;B0O3<%F&5?8B zlHKTu5iML%zpNclc*dRgm+mh-1m5@d(kNx&r`(y6U(7P=;lf}h^N$i2w`uY4W@(|B zT57((`6S%$Lj4V=0-YUZ=$|5c)%?;0pU|d4-Wd}F`PLlE=926g*MC--Mr}aqA8g@O z72CvXt>#HcySbR*z4cqVXmY#8xF2L!V$|tZn=i9MQD`u@cA#C)`xk8`_=_57@z+i| z&HhW@7Z{~YVl2oN#G=tgX<^^7h>q8YKWlfXMKS9=E&D+HS!Oie3e znVUx#IJmk6I*0Q*myVkiyKqY1PpR=?4q1%P27p@=8eQK%3jJQh?H>$!rtLd?smlG}v)pUluuoFBPX2M=JJSO?KMfv`!&r zy?jmMf>)vpw4SQb@Bh(E#cR9mPu!n*ko~wH+AfNgodm+Q4my>#MD?gLmnPCqAJo!3 zIM;nKK*Khh|7M;vF7lXL+sl&sG#uDk@PZ)RL$wWsP}m(~5i19~q@0}6sVpr-ZVDYB zjvhfO2it{0Ce%0B0Xw?ar-YZ%h z6&fZhO~oXP^YBb6`*fM%r744p2|-Pw_!B4}-apRP0@gvr2AdjkjerCA+*8o^KeY&O67LvT9W6O1LgtLnErSVL9wE%OL7ynY zN!1Mk;isEGuyth&TzKE91v~a`I4f3)9w zqvC_OeaQ3Jw&dFEYU81U?TqQgY`P<`-}U}Ky52e{%CK((-6dBVN$F6!QMyrDItA$t z>5e4@B&Cs7I;5pLrMpu~x^sa&55C{~oo~*}`NJ8UVU~OE`1N&Ng9|qbd9$|zo(cmE zd%2iR!wh(9Ny-lhD+FQu3BPLduAeC#axMke z4l=%!u1<^+`yq_bM6J0DZoBxi_}zTj`$+U*{hdOTASh5Em=EWyraqIa+a9n8uN&Y9 z*1&vrny(|Z2w}01YohkB`lrhMOt|6#$GzTxQg_$> zXeG`bX82(CImkbL&vRj2<>D;>1Cauhb*|itL`ApRQDlbTe||}-`N{&Yt>8Sgt~tje z8FRj1MV@}mncB1Wl^KBa0G8ibRc_P0y1!VM4eb~$O7V%b#ym$7vTxhksEeA?^R&sMbV^XYrJoxblja2-f8W_By8irdLl13X4A8CI@lM96V%koq8J^3J0eWP$c$jEyO6L1$~=cf0;@ zyt67wpT%pPX^r7>fd$ZuuBI7R<)a1-^yX^MPxV+E2~!5pQy-OqbO8~Z+Jhz=*+94K zz$elh%*~wi_ks%5IztdI`IVB6!A?A57S2GE|Fn7t3Y$;Kwyp>S&M;C2F6)8_UxrQ{ z_5_`gVEgUz1^^T5-li2%-p1?^(+8a|ZNb}9k~*)Ez_cfuTD}9-CI?re2F8y&uP;Kb zeIwTj39;ifgC^pX&nL0uxI4-^RA91%Wedilr%`M^_xq@v>Q{|_MLZT@r*+^zEw}Sz zV!g;nl0WYQ3sXO8EfAyIp(|y;Ryi_Z_CNu%P5I#EgEQ zjQ|TqKP2V1ShTbQr2mz1iu@;OqF;kQnN2oQnfT5ftO3@fo3TP#RM#&l2Wq=b3!fGL zu$bfRm2&*WM$~O5w_+UCYP$=~!~kQ2rE3xGhIsLf^saqtR6>5>BAg<-6!RkvS8a<57>5)}bQaE> zRoHtBMo!J(_|z~E^m8DiF89^3sYL9EhKz+6vVpq+y1KmEOdtgPok*bbu>sC9Dhh`- zp)^5&%O!&tovW{IQV2Q;CWq@0T*_*ql(1#ur+5a8-Nm}IvlP2a480@O?B0%eRG(0o zR;$7$Ysnb~>iuDl#OcrdLNWt({LNdV9$aB&U$ivg=KuT+fwBNahxkgu?a;hWZpep> zyuUK2APWn}^URoRZehp|VWz-71Uy!Myy+td@1f$PsJXqG&11I+&Wy8fN{JA*=I<~e zXN`Uv7K7@*@0v+#_*D38G8e@-+57Kx^+>Y5g_ut>+uXE_3Jq!17B;r#0jXYv#fEF^ z`@K#1eDe6kzIuAt>}S2kNUhh9*7e8uxEw+3<)^;Ta1Il(vDj{5NDZ4$uPDO{Xj;$? z;~O_ppGzBlKf{NCI;KMlc-Ie2jperOXEz!^qLf>?N^_V38WhBi)rpUU3-;evBLmT% zh>~MX{LW|ed)OxG>;wsTp>sQ*3%M?c=}d+MFYN`=LTO_Xirc6bS@ZGg$Io+U*dtH| z%rCjf+xoV<@X$aHU&h1RpS1G3=?<%45Kd%LH97o`xTU2J8kYlmE;p_krewA2IXb*g zwymgfw{wd{{ad2V4U)dCD3w0Uzz+-c(Fq@ABnYnG>7%vaTtFdOi;be*->}g3e=?=L z($7ikj{Qe*p9-8jb4(5xew>1OWxdWR)3+Pu?|t&gx8XyVm*|)L+e^_|3tiO;ki-eK z@GWMPmL>{MN+wcR&NaT6Q#*>9R0nz<4eiY8P?Tg#O@FwpTbCBBV5E^#1?THHvUCKtsd_%7WQuTyP5Y z6|Yg`?QMUJ#4_`!;h2EST7CPqrM{E%w&BjOr8FmZe*j;vFyjX#y! zJhYwZit6VxE${EY?kwKieeN>?Wq#%TCZ%x+2B;oZxv7UY_8z-ga0p#z_Tbi5AkSE{ zUtvH0Ko0JWRNBEhK+JnG$Czed~%nyR3StQ$4s+P-!Pew=-qA-4o$rFhcW1C$9?n3l5)^`ErdRmYP7nET3O0<)D1i zdCs$zf`_PE@RwEn0yl@M_wh5OL`T3Am&utj+gm{e(m(-xO^V`4Me=QgQNykQq(|7X zzCWuVdq>P8*<31C-b?mErgrkrFArS%tJ11d#`YcuBu=z-$mg=W!8b`Cqb9&7k)}G7 z7L|KE#36JJ8P*Kpsb_OZTfBju9}MF>7VR?J#rWaQ=?Fa!zV{DOBjS0)Bat&%#e`Ju z$*!^fa=!zXFe}fL06kHtd?|bzHgZ&K^CQcOk>nXnY?Oa0mWO=@v zEeU;nAs0ofqy?k6zjdWK1nK1~ zG~Nx!AI)L};t4U?ri3z$1Z}^pTAX}n{w?qLCI8da4b4ycsa^lL*ZrMn-uP}|H)FE1 zu8RHg&W|>82+%LD&@%jzu@l$ML^2HX#@%*_^@2=J_;2-s=D89K|FU*7Gwwhg7j;TU z#V_Q=pJ-yjiaz-S-(D2v?bC8Eb|^4GOv2xfEnQHp>Q}GIAGaVu;lAz776vb}BpB!7 z*wzk7b4aHioLd{A=R8`XNzut?tT7sA8KXSs8LZde5wp7dJY=FxUSVO9^eHl=PaE}p zJ}m%ZTk^Ew`0d&yXBMSU0(7HwZ6V0Bf&j98zE_ts$vEcOANJLrosmv^j4XikVk zx-d>CAQAd@&zl;5e$z&eLv$hp0LIXMsCXLMMD-N#<$%Aj)He1!Nt8aXbt9uN4wCf! z#N|hFW(Iyg4{EGjWm71GIe+}xQ3yj1o31}O_}87Xv8|YX{>Sll&V&z=w#o4m6ySHn zb<^-jJci|e3T}%(k4}N}zYocqWyb?JnO|z0>kVrpnwcV#Y;uowzMHd(>U^d<)!gR> zwaIdraRF32Y1=OxTBE26t-(x@nw(a99Kt`s{P)#2a3_nL>}?Og{W5*2{v`42BJ$HW zy4Ok~*QoBf&{2v@Q6wQV1y^LETNXar9rndi%(8{+O< zyq|tZ%rQoKl<9HxXLu-ITye9WSfJ`zDL*4Ow{v=U(#PAhz3vJb z&g`@$w|ZH2gX3|^RG(7z=l6k^ev9=h-FY077~$2IchMP_jaS#z4hqlc&3Y0Q$M|bd z=nC4;_AOQwl&p%Epr$c@m!OrF4R9$WIY^%8&TPZHGqm(k99t(jjB}AI`1-jY ze_dTUTdgoiDPJ~3w*%(W;4zEo)}-x{%WGZ#_KP_`md3!G1(WSOAC4_vkzPXS zUEz>JjWM|lj!uAXrmWBn5-dfp&kW=an!aUmlS|J~+sEFGdY?n(!wl{zWn+0c&dE#$ z2lN_0PD)?4xcsC_9%K^^N8f3%(9wW^ zZorZo+93?*6EnbTtNn>%eJfq?Y>Z5msm<2xJ@YF5eE9tG&KkWaaj*}QKlz^z3Fd&h zBuC7r9lzYlfy*YvVeLSpuCY~Ipm2Xx;Y6McILM0li zmm`ZCK>PjsE~La#!RXiuj&}KS>v0r~;eHA?pGF*~oV*}yA|uc#lhrhJ#0+sglsQ#D zScAE*Tk?J1ym@^@M(AkAe-)sj2@uwK{_$*Y?p}1{dkasl{~1azP|x_pj;Iu7>V(wy z+;mnSzzhn68^EICipZrNp>b^7leUGGmtZ9k_TX4|#ztvtt; zd%jQW8sU?4I9gL3l)#vcpk+*Mc&>0kk>jx2tjQ_uqiI><6t2X~tJvR+6i8(@)Y({g zC&A6;%*-YHM#m4^-Us0Z&^`bK3{s*%x(QuPY?^vwRu5C;7>tJ{qADt8RF{uFj4BK~ zTxZXeO81Oy97I@bl(ofCR$&Ep`4a`R8TBcWI@&8wW0K+3O8(Aq{-!=9i4-L+;r_cee{C#rc8S_dds;)FPEi}UB-`Gl@Kg5Ou~&mmgt2=}CWJHofPyqvqBK zoSJ;8Bk;+nlQAAUxzg~4?bl;~fId2b5XLkO4*#=0=n5*)s^a<=F6m==X+aQ|)nw)X z>UEWMnTL=j`u)$31XOdh#vqEMo&6pFp0g@em#6CK0y}Gp+-8el?$WBX0Y-t@;lBKN zprP7O-!8SNj6`MQb$dQ3+0X{0%hmx2r zt2KR_k9|h9#23zRPqCY4L+G_Xr%0|}!^(qEC1Xuh_%I4iaRe(x!#y`d@lOH3VUE{* zBZo`#Zx0+obA3F*=S&Fg6R)7irm9a;Qi{iv8_cbKVfKN93hm}(&I1YOYFS{0g%~mI z*FaNtPCQeQ(w4297bRa2IrgRVLXjl>2?kH8!de^r2zjpg{Q3Rg(SVHI3iT5b4di+a z`@6l3031YS%K$;s=f0k0h=Ks&>*9uCBIeIOW`9&l*;Wy|s9F#z5Rf&$KflO|YJ`(# zxdSvFR$r9chHA*)bVQ!Z@0u67_S{pEEdKo3G!uV-U|TD-Rv-1IZ7rs)Uddx$Fk|*n ztNrH9WI}Su#nRA&(~g%+YpHph{@Rc;+%aG4c3%Tojx)>zw7{u8gS9^Qqv3`H^QEz{Jd(gK&esu#oMkL{6&FPxgprFb_P}u8eULiL5Hm`<}t#Uof>!DA9 zxb(WVMP_^?lQbY4_WQt#Uoy*CV)bA=G&oa1<~$RPSZ3He zNb_4{y&=sLQ#Z_VE4>a)o`jAcqrB%GlSHR2a5oe_dENb^n1P;~SmFTb6jZZ_1em=@ z!2({Qe~yc~p^#u$GEB*v9$W8h*w=N$!F5hxO9>A$NXmrP?s)dOB_wYx{QNkw(qR)p zz4Wh9&R@b7CC{G|4cX3sa-0l6m{u7mlp!)FWPpvAn}DW^{W)RPvrHHPyD}gLXkuv9 zmQ+1@zgPx!dbnGftMW_X%cl|~LEA@n3rrFXAI{+F1C;j*%fw}#s?oy_94PxQHw;iM zwZu4Vdq)%MzNP-}Ar}LOTtNNGF=f)srbgJ3ahEz3HdQ|W#IMh zlbU^XRijs_?MeWD`TO$0`OU`-7LkSzb(uEe_3FF#1t$u9R>x7tAFmb+z%mylmu10l z;_3JFI1oD3ekH^>-Jtq~XAQoq;QfId5t~t{z=&qurv&<+1hIp2jp;>Bek)7_{zvQ~ zxBQk(?Ek1ym6eC8&8$#Ckw&bfCf=p#ya>7!q$gaz^~n-Z=WQ1zE=!WD3EPo2%AGtl z${YcqG&$N1lVQ8<28HI&b%#0~lwN*#t5rY``Ex z?*Ljj={GCewhgHGyyrkZ>G_e6W%oa}Mjjw2?L**z&+_(OiY`g*dPe8$92&C%2#>a_ z4D7P^*cSrjtw?`-3Mzf3-x$BJ2J4O9aQEDB;|~-&h`m5Cb2Sux*at*>tOIO)*tHKh z!!+%?sI`kU-_Cx@93bQZaZQ(niS>&5uw0PhH@sP_5JEc37;O|-v#LQ!7H{zJRV zO-mlaAt?u9R`Re26%?Dsc;hYJ!uYSTRr!+fA8664Xu()y=AAYcZXPZY-xZa?-UtB> z!Zk0$Qs#&~Jc9GKR=x&K69<;H>kOSBG9gJa@jmt4-0Tv#x`co+W(08f@`b7FtVi9-Ipu?UfgRBgasN9F`Bgw@`@s# zK_tido*<%79p@uM3E1Oqzx~${+Wh>5aJo*D&b#5RxYIWID~pWgHffi_HY~U0wU{$>^zDWZUivTii=QX)-w9})Mj?af z!VN$JI+uO?A&;+h)VNk!8wc<YJ?nA98sJ@RnoCKl0J(oil^%_p`4sZ zv1F>K)=HsW%$NIlNocYEoqt#(Cc@ufd;Q7%&BpOdiHggwPW3zU1U`LtQD>>4x1fVg z7bp6w%Oas?)1jH>bPcTbD+7>JaR?V6Da%TCW>RZNIHkP@e>t0FopfzhfSS@GUG|<+cXjtl+waHkLq!TiF4(Qm{KZ)7%=w699gsfkao?W zD)#PG@FGVuP?Vf|QWOgU%qn5xZQElMzDXX27Cjzl^ka|ihvRMd9X3z+n=*@*wns(H zmw(K4)f!IN*jlRmnUeXa+R~Ea+dMosI)W@)P-EcIhPrODeGeyI6ekoxU+$J|Av}ZQ zMajY{(Py75|1V5fffYMeeL!wq~L-)LA`}^eE zWi>3T-YtK02uKJ0>&wQAv!(rGZouXB8vc9W0+aT4_H{5*#L|9e`^HB9mbjw)(sO6j z2jTefJs}rjHm2#ir~G#&fAa^{{8Z>|#+JJ@BoMu9F_*C;;4;cdyOthBFtcpyny2(@ zvan%P=O>w0ls&Bhsv7OshyJgx?X>zaGwMdTcfR!1?Gx!a^dXH2Q4>IDfhQEnzqIdEeiw-{xEXm> zxZ;S5^~hgQLY{Q3fLiBiU53*fEzkkRP@KY25O>cS6 z5g)`7z5Wp~-CnAS5q$4rq9GG7PqzdO7`XaBCx%e#tlLUN!ZT9N)K5JU=zt_=3=q{t zE9fP*0V>!y`Th&^4tmPJ1GRO&g)#}eJg(4uj^1^~P$g&2UwpCaGnn%HyzS<2EZX4p z6a8rrA&^x*%h7PHwqp)WRfkADC(S9|6>lxuW(DLd-`(6^PoEUdL37l=WGZ?^pnNvI zNdpajb|KWfA6-E;kBVpGT!t}zuOhL1iax)YEv=ec;GqbV?s$LDk<&_tGa=m>G~mq+ z>mRw5f@YrXymkjvc;K5=+>IYY-0{|!lAFS7*AA4+dsSUx}CaCM; zy`f&qdV16KTxQ_Q_u&LFzio)2W6|jE7A>}-rW1CZE+)VJBN$Y99GX4qWqza7u2CQQ zDwkKpzcy~I9E_2M2L60%A+;>Ze&b5tYefx+O9O5y{K-w>6P(*yJEbi_NdbOqBu=Ig zm-LI3yK3e?{YoIbhu+Gt2}y>fKT1(FIFJYo*O9ZyU_MmGO9s>H2ey-lHsT5jzjb0= z-%%7#Sv*r!u$o5L7P6wnB_aBy3i|hqJg>HwOPWAfDF$%55Qsfrbdw2RpRG{&)ra=w zUm*?laz4V*b8R?}bvL6oa0cOqWux3L@)Wdq%=^y*Dsyn#}; zlvL_p5@3MqF~`V|%asYQ@Yj3(whHy+U{Ut5pI6Z1RcXjeb>jiX+1#LU1nm@jNd%)8 zK-2M`uGi)@=lVgTepyuPU^h+=+b`>V%QfcJ+p!Ps(DL)@WO2QN*ZjvJ#mKRvr)`<1 zTBDm6=Ky1SmS=~tuA9BtZnwVqIV!bk3s^cw+)LOxhXn;^EnmRDXovh}$R8LQD1ADK z)I)R>Z9@{&L2t-AhG-bgsFzx{G;l9^h}VA^h1>GymMzX&O-?O7Q~(Ol=l3-?5W#rQ~3Mcf%c z4yDREGzEV9ORZ+84SxDhvL&`jE{imHg9fMNk3BXMSAXIxL{t?50rpc$**nZ3s-1Ep zsorg>Yqs@GFT0;duipV6w30Mq_kqcfr7K{+dU(p%zx$p@S}<4;P+-7;)O~(lR~U^d2zmiYTy+1fdaqOZ>OlgZ?vjen~KYt zvOW&G|6Hby*>5re9rab3VqRRO*&O&Yw*|#2g7S6X;Z=UX$~-&CeuY$|5GcdmqTvCO zC<}leZUGyf!G}e}839#iBQ}l?AO#z?Emi;DA~^I{m}}7n!k7Uw=o7Vb!4h-r=YYT~ z8#T`MlVpS-AeHrTwa+7+bumbf4wPB%7)J>QV z-f90aBa#2i$eVNfZa5C>u3ilXzC0Jjo_}=~S-=B(j6`3_1b7Vbj>NT0%U^&22_Z)& zdqgo_HS9oHFEel9l}@FU2wuEJJQGxOSSurIPA~l5jYbAP?Kw9p!p@!lU^-dF+1{Jd zqFqiygZ)dkbQrPUW1UVvhRn8bNil*)#0LVZtc~)=%TK*Gb&N5{hIA?&bw|ZpaiHvw8XJNCS{2@2X|M=9Kgp9c?z^5Vx z(*QbxfKP1(P`vnf2eO_fatUw9KR>rzXPjfqDw#k+t)6=G5(T*VxImn$32D&mTW&&xt(j_fUurZSoqMFmh;x598q~nn=n|zvk)LofdiEuc9S(mG4TIFE6 zNV6y~wOhP^PKk5X&WC4-JdwmB*C z86uwzJl@{9IA8!0t;76l@6p;{D2<}MMSZ5NJ*isI{RkU^_Q9uf>R)c^;H&pXEc zYA@MH@d}*26xs>2qNGZGN@SacDth7v?#fB==7Vt{!7qT`Y!8a@Bl;T5GKx8$7VH7h z2F=WYJz^_!^k>8WA+lVZjnUh46geK3Ebiw`HK3aMs58~I!&>k+giwSz_(u{{CqbG5R(>PHHrhg zH^H#ptdDro`d|eN;=Wuq%)d0qz%32->`+HcxoK)6HC&AVXc~xvL)+$&pA_sSC`zc~ z(JZCgC7u);+UgH+(4Ie8>TRS%G{XSR64#2)J@XXIn^En*`cRsc;#&Ba=C6RX`}3V` z4M=;1LfW}Pvn|50*C6D%hd^Ijp2kNDaXOVAfGC9V1zgI{eNbwsvulq11>EI~?cn?c zwC94kHw$%)-691}UCs}L`Dk>VGKa1V^)ABE0myw0xpitTEx7+-nfZ@PB*YlVDGZ5{ zl+Zx*H^r{thQ%MO+mi*LX?MjbM=%yhP@2@|bw)D;RvPxjH3CqDCxvZJc*upXg5@`^ z8CFv2v|D*{6nj@M7zRND9s- z2B@!%A_M>GGG2Av@8nGXn$o8q-K1qfJzNWStLUP|vxA5i2q6SiRE*KU@%Z26%t6rm zuqr_{{U*b{XMAew(r|QxW{*$ymCBTtimk26i`4k9pI}wlJ=$T)^uE+lE~t9+!40-y zPl@yX|0i*_>Moh!IkJ$R*t`lFz2H7^x=rV~+}JKx;eR|!rjqN;vRl?*eF1-Se*}Oq z(6Qxu;re9qJjP0GvfusD(Nuc+A- z6Lq(%S<{niYE}0Bva<=V+LYP^V2O&799{@Cu97&BHGiw)X|#w55E+_J5vx9;kpV^r zAnY^ff9Q0P5k9ZA6tXyK0RClyO)B6Wo_V`-(tdf-jggGJlbgv-Vak*-d@L__syjwF#OK4kdqxM7h?pW&L+GqwKADd!GfQc7nkfR}iGmzz$1r3OB|E zq5l3w`mBM=O;5~-PRzp$^2$Wx`y&y;TyDKMa?h5$RJ-nfnN{$2022raZjhvi-XfVW z10y1E<8NG3^C} zY#E#~;|`e>-&_^g+zJD{V(vWl7ICLU4;6^Lann>Upr#wekNm^;%pGhmfkFllkZ*HD zb;e=I`2)=O9sn~w#cqfRY%_BPJ=UGg`YKB?8aR!BoOI9!kWL(F1HNGucK2^zNuM1p zC5i0IQX$T=udtXyd#&5|VI#usK1+q@U%t76u^%Fk`eUl%Hj~cp|5N;vp&{#uGzR4DU7YB@Fc=q2n=lfTaSS;<=p#@P2wp@L`(7| z`70NakN8etp#qE`(OTfo-k_n@kVY29A~;})-v!8J;p3ggyYY=ElNqs0*wq_&AUlB6Z$VFN5?bgHr)Cx<<>lGN2i7P=49?)C{IMc z*bgACtq!H2mi*e&=ucNC{&pp`zQV3~LVoGmjKJeqa!JvUED~uo7x=p}+xXrn@YLP6 z7w)A2UGM=s>pk^r*fBp73F9+P!0Qr*YWF?9#JWsjmcSL?g9Dqdl0y?oCkPrKjsI?| zA;=su&GPIT(Q8_uDsJAH2=OIO67~ONONX|hsX+OFfC>`pw#Px_fkLWDw+27WI3IHx zHM<$lLQJ<#P7r3$Af?69rX!yny%z=MDb17O=lfgQTa*p_>hu!bD_LF-XqHUHT)3c$ z$K6kIJr2&$z8`|?0g|_X%n6pT;iL5ak}0nJg{2__wnZS!5%Y%4eFq z!rgV#t%t8Dn=p>x`9I~WiWA$d(?EYDx9WF0h?mZ7F;^QZLz*gru)A7f<(Gm|#|b#h zQ`P-45b3jObKMuQI5IZuJC_QNSb0rqnyilfSuk8taOBEBvM~G1dfHdh6l)M3^!h(6-4OswcNaTZPZGe={n3WpRF(P=lA?zRXwCsK zjf3<*r4H(x;OYdiEGJNI4%*Ll6JUU3bN@I(!pbE~^d^tc4-U*>>9!ES);q@HYv(<20Cz!G8d5rm=}cr)+rqLToUOi&0gb8ksk3bhw|hMqz@}Q%HCi zrYPiU_{<#THTZ5 zcmJE%RBxujg%Z9ckPaW1V z9bIACX5Fzhe$RLbz7ejm9&hd^d;K?+K}U}d$}d6S(_2o+ZZx8||D?wlGh;;dp7+nR zNIYG(`hCOJ?(;y7Ox;2M=2;|!^=Pq%FH>&0b-5}X+48|@(US86oPUMQy5Ye%eu``X zVpK~Mkem_q+csMym!5e<3mpzGw1K_P+8k9<@eBf7;gh%FV)e*;uHs)!a`rxrG-i<6 zP6=M|qg9b_haQtkt)72R2_PKmlzVXJu*H9HtrxBH={0y*5?F$^u9jHBt_ekOzd?DA z-{?_YLFccIF?=0E&RVt~z0z+wzX;$BpgIf>cgnJplS@d8+NJGWmLebkd*VCx0Yul9 z<;dnGKwSsyWXr8L(OY=9vogt$xY#F^Oq*Nd-+WnhA2N4J7pJgtsQz6a$95Ndf8(2s z^v#LSc464up3Y7$&$AMH+h{YuOzC#t6DTu^fh&*^FdwQs7b$OGnr#Z&n6Lg`QimP$ zR50Bt=SJ{%L3;_Li=>TAab;KZm#But*v)FN&z$4lf%6XE933_vO>bd%sU=9Aud{(a zhP-u8BraH}I#I7VthxT!2;1EKFgr?dEaRptg1vRmUgE~E1C$6@($eAgCGQh)N6l~| zqY$vk&51; zb&b8>J}#a=*rH#ON3@VPisB|fBQ1=74jyM8CquVWcgJw4 zVMTfBpaO%9J#*0p+m@x zgcvjSS6d1=g%>`34f>qg#50((*eAVc-RJy=NfPuQI6$2{I_Az3-_zm1Cn?81B{4vW z5Hd*c;d~UZdjTOd{^1HSe}$mq`y#OtN?DJQ8xzj4b59><5s(jb8`Wj65Hgog|EM2p zDDWlgWOq*r&@r3^qo-E58%O3Ny+g%ElR?bZ239^bQgtJea4t#&5O4q9LYGkfI!81&s3^=iJ-%H=i$)qD=;x@Wuw0*fUps=K^LAHT*r(zRN9a5~H| zMfj#uWya@P!1K3Me{QGYZs#k{oUOE)H>;yn%Bxo4zqnTjUp$0Bz5pXIretjHh^~aq0#_7 zmN)@fAkNF$%dOt2iw!UX+uUj{WVfWm-xa83j`I*lbBK9Z$Z4EmGIGBn>1~ zWj7_#KIx#ki4M4+p9Hh45|qRK_cUfGg!`;R+&Tq>0=hz zXZZe>3f~!1dq`&ZzTS1Cx-MYA7|5s;6jhAfJk$kP7gJGfHVNxgMO1e}^EP}|jB`Zx zCTv4lRl9V#j7;Gm#PX3N(po>t0YzGe!wLWU`0LFcI8reK_`4IZDPYN?{m2)rAb$|o#nME-CoftC zQ1}^5I4%EG*^rwz>A6V=^h7J*!N!1u$ zlwmnBd){^>10=rl4vrQ0@Q*o{QGweV!v1`@TEn&OkFI-Zh|BKw;{aoXJQyDkp9l85 zb0U#wpfbPaa*RSNc(nmo8hpHjzUTCF56Uh`f#Z@xaabU_Yk?vAXxqJyaU-;K|32+G zFi-ezsZOBePy?+hxQ=W>Vn^W|c=^v`zFKJ|C#vVE=tm0wy+>R?TPD!>TA02Z*^pUK zBi*||DZSZ+Fs{K5BDIM{lz>u-1)^e3syKKm0RSw~gFk@Lv;V9Xc$?M0e+rrdf5RPb zMYSFUw!xZR1lQtxI|pC#--Y;9;{L8miT?L2{{$>`1>3lZ(+Ot)aLATZJBQW#BaLzB z-s=RE4IE{&_aAiy_{xb8bIvY)T6y4L3D{(a_{F# zd@Q4#9LWg8nQN}{ciyQ-2H>D& zkbN7(;Sx~xxCz0sZ1v7~ju@=KL^Df&GmcP=hnSlV*M(Ai`}sd??Wa$^!03nr)ewI` z2AMGUWrTQ>I|;TRJv7tbqpdXzSsqzn{yry_Lydz?XAz|4TOz1iPyOpI;LS`6DW%bi z8=6Q7v8;-1=Y0LbinWk$@6qQ+Y%#8PMFwp}iPCoVi5l&vY^EoeL(5o@qFrV#8&KhG z$y>C&U_<13!dl4~#SrczwXfwURO)X)GXEhgpt!xGE(|tL3a(9YqLHef1h|kP!Djzx zcj#8Bb_TkicWDDD^8Yr&fKLA4i-LKpgoI?F{b(-I1s#To5y`J#eJa{~6l4256@AhD zAeG{DI#~0j%$tVs_m!OVFujU~uhun6K3A^1CPx;ND?SEL6Ww}{?~er)^zlUJSA*(m zX;f(oOgrPDXXChV8Y$d8=Wnk!8bFN&lH+{n(%7=}^61eWY7;+H%e~V%r${#y1X5F; zwze@5AM?LfR29kVi+DnB8#2ylWSG1#{pn@^_t~=^{^AN3C9XNX23tZS6y>2DhZm+F zf8s?A?giL;(G0NKpkH)(xh#`KMp1p>NuKrMNIv;*P^3e3QC@4 zNr7OL3S8=U*nn15)ssoqcq*3G0Y6zh$N>OE%qfSW*2xHNX*MtW$9Ydc-x&))4r~#K zeRNI-r1cQZ!ituRcnbuhX6*w{;@dEr4;z@uYn*;0zpycu)1ub?mN?5qKR7h1Q=`Q4 zNigKr7smrM{UOAbZD3D#c0tLv?(3W7)pg&SCk0~(gDzWH?Is!geFYdH{lvH2f0*~? zNAGrazX=o3vn<84?U~`fVsCP}e;q)9@_l~eIM6xq7QtTs1wezI%sdqf`At9yAP2a) zPAFvF5(uR; zyO_pMAxzh)5$LT0)GZC^|M8A;!x#Us(}| zBmCviLGce%jjLfBGv%)0^7|;g>rYVf(8VErAi`iU1|m^Q@gb-RAZ`EOP9yLW8MQ*X zfLa@75PE1X_ZkOM=MTK&oIhW}@3OkqI94lW&+I0=&>QAAQN9M0{S|MZe$Z(hxf!D4 zIK+!sR5XH8LNimKo5Hkovj>Dp?=$`1sy+kv4r@fdXVR5UaWweRHhWvq_2aMSVcdfO zt+!Lg!K5mODn%9n;>&ILl@CQHIoLD*Kdw>LP-3TD?iY@oj3*}_OK}>O_}0MY%_|AW zz(bb&EK?gArKsTg-{~+xr=n?j@e&tM!d}&vJrXei16*^opF2_HAcaBxDO5Y{-nw=6 zL&lKdOOTQ0JG#6Y1ciCUP8KRUn{~OW0=$Y;$9em#c6Li_MX8ve?D#s0 zs!@(QZ&5~%U4doWD60$$$#L2>2^$Wq%@*eVd6Tj1xQKeRSwR3i7D!!(FR<)TqZ?<$ z-!J{Ri^%@2X@ugyYn+2#tv975aejA_SVn#UAQWT|W||g#TCzSIJ(K7$ z?>w~D`k$)Zae7L&MsrYAn86e22XNDHAo7TXlA|GO0;s~u2v5-5KCkk%N?%a8zH1cc z%h$|O1@$`OFRTQ#1cxt<$3Lv4WwLEl-dzp_)UJuQYdy?rA$n>9ElN4J)pw&`74uvO zB2Yfu+}$z#TDRgK-5WmNCi$jWeW2M!lC2Z-Tf|=tCYHW;*p=%{aS(^QCRZ-0?RETi z0sq+`VlG(ub^WvRHk@oX!a8!mH)}rmW}l}-&GXkr1iXPKp}VSGqF{a=h$-3!gB&h2 z{KqrHZ8Z2eWkEv-Uu4zg4zT1<(W^A<4291Sv~^o60uyJ;d)0YLeVLOEZy6Cv!?uSf ztP9rKuwe&?)`wna^idEYgCUld&Vt)-bQ{**~|K-F&I^QM5oiL;#ArhN~aNoxjlO>w$cFk$*(6lPIE zq|O7X2RXw*Pr@qyD6vQ=g8S(;dzndcIZ{X1R6sbqfXrV<{Ls}JP-DsZGP-+=>}Cr6 z(y&tC6my>d2#5XzI3aprsX(9zB)c7ecw~UnW5my=-TeN*{jOYP1TOTnp~#k~nBF0u zsZ4P~L1aejVfW!t3VIQN2b26_j1|s2UtgumBvjgdfBy{~kP6_6A1HgbP>?xP17-Up z*z@&VbeK%-E67sYhSZoipiH~-gLv*B-OqJ0;(53;F~)1}ER@hV%fL{1>}n8MQi})| zu6oC|$X&v@5(5ojLkv59!a|=eUa%Ea6soMfj<{hC#E^!YL0~lNOp$^w;_jK~)~ItV zV3(iuJeF|$art8N?kWn?fAo;GhuA(ye=a|9@lZ@ZCu2k-n1A%OnnWD4H!~BtN13)k z8-cDU(Wxs48B|0-wn)mQ=ZMg)v;u>mCo9-8TsWeuKNn zzAN8>WE$YrpxM2HiIagBU54j${`PPlu|;Q2KD`El#=c)w735tNtgyr)y`#}>>`9Tz z`a^t!5%{nno9aO;frHM-v#Q9t)M;ChXQPiQ$gf2mz$=e<{;i+5u^ZCuJE_TI<}uJ3 z{gmV><&^08V6BLM{uDf1b-{O$Y(6bxP)wN!m>^C*0$_L%TZJ8~LJ-O1)S z!uP$N_xa9Wa9wB4*?XO}@3q#w?tM;Vpr9Bj=T#=T*Oa~KCfpe__q!gfN6nVr1-6^P z-6aI&FWm&hnqM+?<sulj;>v9HNm?7#}RCIUH2_eK{2@004I8p(NQ_1uYGU4jz=KKqhrb zU6~k1H|kw<`YR-qxz2H+uZB?z!`{bq)};qvElczTMdhQ{rOz2J`+WLtdb7)?eDN$o zNQ1yb%R#t;(fN|hxQY11MlCb_`{iVFCkK$%Q`_D?#d9qpr{(a-e(k# z9AS$1o)K{sim-Hi!`X93Xr*}WR*oGAOteDlU!^zB}H0L`IAx_lYHA%MgyIa{tLwE))PSAHEKAv+XaquZ)2pl(NNuSP@|56&jRW8&? ze3q3AjP#wrr&oW9zYLz`5p@EAv(qP?rk+ckY#BLsL{bg#;u+doIS49ZhlO;l4^HVK zw0YsY6doi^xI3-ml#4q%m$s&S(R5c|Gh1p|H9EU5#i4BSfC8mXV0wog=(xKppIPeH*a2Gk4*WOMQ*K9CU+{4(;|i!lP};Z#X077HpuJ~&Ek%Ucg z-A;Mgh=_kFF~@>e0y=3I`mWnWzHqwCa=ipeZ`>k7#laOWUGs8 zY@q30)Vq|}vy^=4)1`p=Nwgy9GfRr^ZTR{XWv#s$Q@T z&tuO)Su1wzQQEFIs<+|WuxI428M)rL87^MURny`ps^P{v@MG`^rQUX+L>Ed`V=gwJhApazP9itHez!N#UmLr-f#>q*sVmv>QOg!!nz^gBc# zkSsxSkzS8fzNLrP!{zX8!|M&BH_L&8bg?)jhyROyEu6Ep8#AiXiFux9-AAP0py_E* z_nF{jJ(2_Mc$u2zG=1${Z#52&*X8cOc?l?}%?Kcj;Z)%$VBJ##I- zN2cqtsOERv?!mDgQjj^8fTTC<;HkI8&#etcHw>?>Ea+{kzWLRxARz!YEA1h*%DvN5 zs3?>&yP=}!r#~vYHM_}p*agr{Dt$ETEfwf{sIWG?u&V9!k zT}Z&$4|<~sHrRs&`G*HJ5T4U5#Eg{^n(^WC_txx{7${ZC$FJVe{)k98*ES?x81d<#C0-c7!wmhwDtR7W}aiqkg3P@0<#wH%= zPb|C)_uBk+lb&(*6)?hhQiO|?sP{|OBwt(rCk5&zB6{BQf<6&tYc>t=_E4t`XsFKo zPg6SYCmJoT&)~ZQ(3jcWgkA8aoLR_9jQ{?enAYbNB+jV064HUi>GK4e$Ao#nRLjch z6W9I6L6Pp4Zw}nVg^C5vN3^99h!``h!|A|ys?HY!5Dnzxx`JJI=#?e^QkFzJi#!dr zG3sY~BP9%bmfjNd@-=P*wCPQyepknt2i^Q4jmV8CquKhdM>1O?wo$;v3T&TZov?Kg zH+0qV$5gzGxOpSX;i?=fMAZU~_z>oChx17Su#z!C%Hks&JRa)t$O#$>J3%)SlMw3T z1*rn1W(Z09QQNoA)*|F1uTBJcHpRGnjxMbJ^mBtKrlI+bmgUz$g7X{)A8DqPip&Id zuy3B@eblQ3;V{>^39F|a<(R~J|3~HRY4~~ma=ly@%BA|H0~ZX~oH5qa2Px%JlZ`Y3 zZ6>53Q-~BPLG7M1%dnT_&Fm}dn^MMQW{GncXTH3vE! zDCL<=^YkDd7S&M6Cf168@xxTP7l}Y?lrO6NYv8TS389;xw0n}Y*B2>!BT^vfRZ=QX zg2+3yJ@i3K=(+?Hvw>M;8jfYJE!vfGRyH;BBoC0SrZ8?KkVs7nu&tA3%G=xd6CM=3 z#OwOKd6_8gduK)?&x-^)lkqvm5Kj(59D{Rjg~}Z84t&H@%9Nb5a#umcYi}RH9qemX zVu@1?L;`I|iaMx3xOY8rp2%k>z>4K0JOTbdyc3O3r;a#Wjek)8Zp@IDGtGsj47`Cd zGS6g6$;`e8b?v6!h+$XUlHfVj$A3Q8U z+FiP8^j?CU^iAUD8wQuT1+-h9m2ZgAi;#q8TwOeNwkRoee3E?rp>#`bS8c|npruUu zVWsUF{YC9BmAhiKR;!tNi1`c>)33ll0|GCAD%BOF@N?8f(7mt+B?|&HP78ec{(_^& zp&wTZJ4L=2GDC$G^}Eu>EZjYF@(!~+Db|Yg7oO#1ZE2EuAVTInEmw_cjlc3fUbQYb zH^UB6`D!Ybi<*-5e?s=83J6z9xVTx=b?IrMSg5sacp9eQz9)fA< zBE0$P(Lx3I*A#E?EunEp@&G|QDR*tLH7CG$pF`!BWo&^zjBgZ(p=H?bTHsTB7EEM3 z*|1-k=Y?1CPd68v-~1A{$ND@VZS{~`P%zb{>C$!Ftyd*w0O!cGED$X?`EJXsrby!? zZK2pY?DKvy-|9FAvwXG-Wh(W1pM4y~{Dbv|o%%SQ?*}>|sj2;9I_AW9p^)A3$B?~A zbRaJTnJvC^DcCf0IiN&mZ`kdv4aWpUf6em&nOcwrC^wpVr5^;6B&a>7n=dvsHA-+- z=Yf8h4qI957K6PJ@mKX9>jV={7N-QwaZxLH{YCri;pUg-n4YAX)B3*dS*`d-I=CE+ zOzmsl2y}DdlRTNeu%;MHgb7T^MF7DUO?< zDjAx>k~w>K_cyW(kIK1$_X-i-K;|6%x^llKLX4M=ofF2k6Z6N`N8)rFDhf$_B+-P9 zeS#R`;MeLC$7KkPEc|HF*HqVDtSGt8ay6RcWF6JaN@ad(;ExTyL&?*HI>1!F0LCl) zsQSHK+iP3(D-jubVqWvq>+m0DVfw@soF^w9S68vKHB!_ZN}+uHqRu2BtRp;Q62++@ z{E1XM4!n{_LSu=+hYIr60D8Ec(hA#RL+%J(b5*K4vFwjE)Hn6=vPfEx-qq{x_T~v0 z6dlN;;}Oy`aG?G@G>!dDZ0^IGQHb z0;5-2>|7{YM^S-1?eDr42?L+$b{N~@P5!jb85nd4Un`vejx^aY8$|&OZ+|NL3=#RNKEk2?TWN@S#k7jnyjC4M@aTa$+ zx)mex!^z_YFkX0S*q76y22lwM-WK-j{RC&p7^lxMGYN&Z$xddM3~S!lKjlS8W^X+F zl|l9qhPVGUx8EpRDK)VbChkOb^;pl%;%o8KUwfsthE1jp)8+2i8z5osZPLuS6TNKh z*UM!|_Ux$Hj?eZy^QT24!&HV1ohJ#gJg3*CKuG*ol63Ezuh#5fpv?sah#+_j*c;{es;n9_;6gY zDu>yg1m}ff>1k(C9uWriLohz0YE<}0l?};Kwh_m=;?`;=^jgt(b+Np5td8G-e}l_D z??V$l7c`{J#!+t$Xa1yS7zY=;?XkXLQCp2JtS>IUl6R{V#$-MVuRmcP3T)O(p4?WU zuZxPDDQ3|6Af9mX}51DB9P3=bJ^gtA>~{{S#eTdx$Mj|Cvzp zqbi>9(@(H#^JN~){#=9_XN{yp`0I+JNyvjE{P;2an;poJ(xsPLVIa*$fBkO9{@0|Y zEWM?y+MiHiaRn$%6n8u%_iB+G;8jW?S9Hf*yz5y!T$at={H%)VkEdi3EE7SdXd$ko zu0xF5X5SnjqVl6hm^5Qiq3Lr~8r1t36H?u5^$jDD6s~7DrQ~|QhhOl=b;EWbdDy!) zGPChuh@%NLJ9cBYnEENH4de}=1K6daiHF_M*DwORA0=>4ZYw*D@pi2tMmJfy9r;f$ zYJd(T{4g_yU zaYcyOXUW^pTQHQK|AI$(@`j~i^S>9!__LUw7BKg`H5Xk{Ja9KGUCJqVun7Is<;llM zQ07kuRwIklVyK(R+mY=V|0l!^Hmkt5hA9!oU&7FfVWU}^^nQvSv?8ouN z@WKsLVtkFY6)aU(o~L^;d6zY_B@xy?T8va1&?2vRN3T}X?K?<>z>A3OE& zU4~PQ6XYaXqB&UsvnW$rA-gd0(M=EDODw&c_W2<{eNqW25oxIu?3Ap1N-fOa)W1zo z9X2RlRV!iNCp?pNG^kDie^V6}ZzZ=I7lgYJ7ZkuA^lG3Zh6HRm zqziX?rOmy&i+bt~HsO;HFGc)8Z*LLLc;n3Zm@RHpcH|fDAV9 z%*7*2!%7-)2TRcMqQxDaB0bjRNhmQ7WSAZ1_Ty-}c*@RDhXbz0JWY7D((hhs(xd&MY_sQkJdc0{cb^ z%Bj_?S%`5k2{ML{Vji!}!0v>%cD$+^tEdw8P|{aX`lOroL<1tuy9(#svr){QcHk@- z1$}A$3WTxaMWtI2c^5-#&HQF3mh0)qck7Fc4y3neG&cfq`DmB5ql`*Xy{@P$9Z(`= z)BG*FlVVdt-ydeawCT?(L5oSprKI7vD5!Z$>dTJ;-J_sF4pC=zc^O;4e)KJV~T z&W*=lgWJ?Gu98HbJQ!p_pQ!H@Z^ABC(?wTq#$<3>s2A;{5|@8I#hUW{3;t{FZYQ^R zY+2B3hc}oz_r_pT9X$w9K2R6G_x{&BPth7zN>#o}#v%2f$fGs=E=$b9af@3`NsiT) z!L>}amECi#$M{NG$Z|Dp^r+JT4RU{X#ttOA?sD(@#TBM}RthkF_Upf@D>4_~oU+b6 z$nXK)D?YKxF87V1qN@-aTw@XW48)6gur789k`3n5@;mzW{?mZ)5adFu2<*9RAe5^R!EjM-LQ ziN^Wvn-s4uH|g%lmZl|O-VkzrByq5UM#2NHfhr$`kn4_VdKdoS9ObH7`BspT1Z938 ze5yh^?DH)-?-a3p0a~Axhzj3EeGc_`tdTyIrQ&0jn7kQA=f!2}Y|;)+eBUx%#iqit zK6Hwwu8Du4drLf%Qf)I@p8YX46x3fNAF9ATgQN<~_X;l0bJgFhiG5ktzfik8wR|fl(RAlH2X=jofO$P$aiX^5mitiv|3W8g?7PsO5f~imLY()IYaNO1-Tp9I zX{tVZn?s4~V-mo1O-mV81?Mr52gr5IwZ*jqjE6+heug06eV7N4hO@8qR&?)Mn-raf zFDb1|TF|QMiIOAEHCyfN_bk@y&=feD=FhJs#+67l%;MdzAz)IGvE5>X!LS@8(@pZG4nWHF6-LQKGe1XC8F|u$09W#@9E&9m~HDmxmjc zMotI2_IavDi5GS;jx_K*GT&a_<)z;0Dl;(slEt8l#6+${VZG(L{6LS3sr5*dztw}k z6qO2*xOuj`IPNB!?2n(-cgQ;$LOX|?)<3?YP#>z~?Q;H>pbm@H_23?eL?ITS(w5o2R+8~NHGH~LJl-fnIeggLe&dF;u8Q6KRLKmAP^e4qSFJNET|~`<$I-haI5z*i%<+-+5k5Z3>VbK@?+*mkW9^4Vb$neSTJO&Rh;Mwi zO=g*75!;*ocLIcmrAjShiTSa)6LFi=@&+|U&WekznVB1}RThV~;EZkkH9O2h-WB?NIPZ5ujTbDWIj;J z<$?Kj9TZ--o4qt&#LQ0(;JnNQ7o7vXXo8X?^>gE9PVIcXhL`b;>t^M`_{zoiF_xRm zDAG({_)YtP!p5d;vze{h*6mKb-Q3aIQ|n?yuUj;>5JFEN_&LP z9ikyrl21|$KaPk>Yvf&P@^Kl)KHdNZ>LEONQp7d)%|wma@3y$Rk|MZL5p24~L8I z^p}3B>ls`B@U6yMlc)Y%E6#>Pb~cMvq3=YA<`dv9ndms^b-+7~uF$mel=UT1%A7pF zt_6l(nRHT)e=nqZ2%o<;v3n3|$JPTnhop*;IXdKTc0_3w^=gvm-O?w_I^fB2UzaBy zj)THyyMlGp7PRt03dq{db@U@&AqLP-B8f3mywbms4VRU*zqWmdlGoL zxlN(l0^HisZ@7<=R_g;32p8HA%n<_6i5@_}vSnDoqP-ZX`c)}6yl5E(9ojl|vn|46$~L!>rIl@N#p1UWW-@@>Y5d3z z*mNzep5711ydCdcMykOY zegjO^BJZ7pfq=b8RkCie3a>j~(^Jsnx|5g1c>4YAMbcz79rygp>BtI?6+lzY;*EM;ElW=Drblri0J_AZ0qzV=`7quc5+fszI zR9p-ZEb|qvrT)Ah#l&((Ve_7J$<1>YmC#inA2R#P@qFfGJXSWFhTpO8C!8_<*HaiQ z7(KqBa~H=bm$&c>Eei_#%f8WFm@@>cxAoRzShKtMV@rm&kXB&`J1+)^0mlge>u`S zYyi*o@4A|dH8P@SV7te|;_&0W^hoQaV+3wuCt2y}_dICnKo-gUdhtwAqFsn@x87umH;0OG(2++Sm9%@Rz| z-dDUR!Iv(o|Hxtij&OxK z0ujb!{;bQCdxp)jE)KpJ6dobtDxsGgTk%ud70+IF91F>lN{gZLn#27 z`N2hKsq*SSwQ3xDi@c8A6Jbp{jqtPcU351#WDH>nn`rpLuOOS}3kOODgnt<~Vu4e9 z_4uZ{7kc*HO(8DeUAsJF{mXga8Zx`?Qyx~l^Lx#~%j%+zQ4R4E9LAitKGRU8Yi2RH z@iuSbEj27;>P+VretisVX{7?$b`g<-0>3@h#@GwV5Nb=!@_;oyKs=t&if_n1MA;yP8&!2j??-1D^~q z(zLxT6yx{>kCi`lc4{ednrDhp3_CqOfvkX7X)Qem%p`1Q7lC}=f7zsPxkRG-L3pPz0hj_Ik8{2W5@b0(gVDvSp-#y@g2eEX;0{L^>E3*vCMt+0v^>xZm@Mp~{Cnf2*RLCRgwpJZC+U79k?< zVo+`EcrhTf6XvVGc?e|tg9B44TLRrtC7~$H^+V!Mt0E-lyaSj(fk2cX2Q2g-!jOcn zOaBn(Y79gPDD-xNty3!OY74p?m0X3O(r#cz#GTSZjA_cQ%x2~|t!^vk(NsUZVC?c4m4FG~Hd!;?HZJuD~rQMy{o-xaM}vbtYX{ zq*=5%0k^d`!|TT>b1EM_-Mj0OGr#+j{`}t6k$ZJ-Bj}?#xtec%hCkS=L)`E>Kq?(2 z!d(_xjygoB8vFmzi@r;-3QnLp(r-83dZAI>b5S+f29O-AxC2Ha9=-d^6`s z-oqW|%@v05TyEHLinY@_LJ~dLy5@dhI_#{zsgsvAncG-78YE=?vqV7e`@+|2?x!MJ zuureUk6gi%Ru+){p1C;MuI$qVQf0 zeb>_V?)bIkPeg5ccZm3GfW(CFkFrx{$i+eO7vj`@qp=Ux+bU3Y(Npo=&xS+vE!8LY zx|1;D)DsiaWzb+1S5#tH13X4#Tx#07%NHy=zE&}m8gm;kz`QhY#fi z(1;w<3mZ_P`?Pg$pBgVmMxS1U61hDcyVNS&sWlCwVa5Ke%f;s)nk|@28t&zskam;d zr5cWH!>%|y0XQDwGmghi$+y8uP5oU{%}GVds|s(SCVot-nYV`JuG79B=Qeh5+|U?H z)z?C#UwYkqH2mpDDeNIX%m)$Ik4a(Rc$_FPeCVONFT*0Q^aR^$#Ts8*1~UC3BzC7G zr2EGZOhI>!8V+sDHMqiZJLCE8Sx6YJ=7G6s^hLy8vh!NWW{TGNiu zZsrv&t>Vu^J`~Ip3%H5xop@ef9n1znsjnFt;kojD92DaKt+66P-n}jJuz*z( zIdDWa@8LU+>t5*GeF3X)mY^pi`EcWGDPB{I#~G=OCB+3cyK?H6rD;Kq0z-Y5obdW{ z5{j1;iQxwcFREv<>Gl)oP5b=Ngl?*AcJ`yhSkxEp>_&pymV;;>#Vo;8RB=Kghf=y?1r_k(0xcyea3gG2xiJsgO&GE%`lt zme;d!H}wtQXI|XpONFox(;T(CYck+gpIc`=m4yZT^N(e?c!+oB_csRd9NJKILvlqc zN3X`U%-bYGwQINdA`nYY`;%w1c0C*wcxIlxiidDCCV8v0k*;8K$dmz38#2UKs)mu* zT->`OZ*gZoUSb7XV|;W<))@(WByTl)(q4xUyA!Wcvrsd~v%s^yoTA;xqrFWByNWhA zkauiYAbJV#`NN^0tng_zu~#==Mb3Wc(jys~yTkedNllat<<;2^ZT8pdJA?_;Y7uny za;)<9@ltX~sk!2uf;FNc=l_LG85N?!>pKqLnl49;&$%CU{fvN1=wpWA4c0u^hNL|| z&nJaB@r3LkV-pP9mkFFqnaPBHXX(V~_WCQM^@lvQhUZm>W>S%^foGOxpEWLx53Z3= zB>t?YV(#8GVBR3p#03(DQq{UqU>Lk59jXZ6_RwtqWRn9FVjS9$T9cBPts zaZoOUkdfd4u`DVYv_{h>_4Ldiww@0Fous~#!B?p^+Xb+?sBNiLU9*A0pWkSuOp=T* zS>eWSix3>`0WveAhPoN^>9QX#1wYBtjM=$uY&OrW>*>O{WT&~h?@{LYdohX;{A!!e zdd|=6+$&VaQ)k?dYkoixVpn~)2v>z%`VdW>Y67~EuL449-JL%QZFAcWEGh zUExxo?uj$vHrMP8yTtPtTdh^C6OjGH6rinzPn(qEzEq#_{`fit#A)}_?L_<}*J-?k zl4;AEf|8P@$E&(X+q_aS^V{0W8+q}5iy5E*L3^EK9BD>(gE*uxXsPkRLi2SqY;Ul~ zu9+`?67ykH8J82DDioGfZrYY~BGK{MWyP^-@j6KHV)5{@N&Ns(x`NU;&ctl2_{LHe zLt>M(6MSc!f4W)3U(fcpV2DA{aeviY#*{;b&QE4)Pl|sMXjpMoG535l(GoLseezKO<-FCSALRUVTbGoeV%)NP8pO-OC}6DxQ4(E zK9&NN#Hfg}7O4Gf<(NKl_1fa@ytRU7XM9C1qqiXuj{%e!f2n{*(nWIb0SwpG`kq(K zc^H|13~HH~a(5d)k<%GhP3nCzpp-IQ9|~Ekk6CfdU+=rVwfcFbe4> z%}%h=*iLA&-HscagnAEj_JfcM_aqzQWOaUu0Jy&uS{g(dT2-maQ*`ab#9qJ_7n;|Z z_QT9gu2WBzZ0C$v>~0rHp0LT=AC`o`zIgYVq&7S9rr$73Iz$aepbg4?T;CBv%e8p1 z8+nTG7%_XV2Bdp0U(uzTVR9Elr}gU&&GCTJyH+3MAXSu_LGKL3a-HY@()+C3{Wa`H z-+ve67zH#x0(PtL%dk6>>Y)w7K9hQO8Or{a>R8WUp|_uID^l(NIT)Y>eSYRdf3dL{ zqWy4Mcfw%zYg=8*a!= zQ(rWprlI<%gKGTu5(F|iXH-3h?O2I=r=$9RWIpa<3#8R{2f}hNdM>jot&RM`mA-~c ziz22M_u+lL1J0>+5|E#2Yr_aN2PGR;}MC@HyA0?y2-+Q(Yiu9YB9{M-a*JBNRS&#dS}vjE0lL9? z4GDF$Dx%~-&ol?2AXLp5d&m5w?7Kc8GxuJkM$vd4N0ELPfOa@c`g~3J**XN8ZP8nd z`e^r-GCLtp`o`0QP05FB<|oaGOZpIV%hjb*#Bj;^Pp^j@o31~VOuin@yFPa`%0vEo z#_@xaha)7>;@1vzP@?j-*59r7cQ4x1yHalM&Mc#BQQLAD*Roq;K1&&__`jK<# z=$E|DQBfVxf98uo-=`>L#XjP%Svlcgcjx*UL3y*kW;!a5VL|r{=@(nLW`Go#9zc5k zEV?#&pZtV~Mmrg4&m4T9%qgoRLCS&#)zx2x?MN*$2H;}e zpmzF6R=%sh?cQD_%P09VmWIhP8tfKW-fdlJx(ALpJd3y!M`oDOwI?9Rg9iH#TMfw! zLNAtc8YeOUQu5RBt)<5k_^I+k;*WH^$v&%jM_&m%uU5LyuIBi}#Br#0tWz%g=AMdK zwX;X##3j($eGg6$NSL?mahHbM`E8@J{5{wHfkFQpX5Of1(6L=->poEX&j?wlj|^xF7wv&CecqLbx-5x6tRwet$WSCuLD zRlwTCvnr^%>v1z~PO1fFz!R(>X79lu3av$zmo&GrgOV^APXWkONc-NrOJ1RE&Rq4O zS;svk^UILAUXr z428#)O&?$JLPJ*;EK;OuhtA7%zJ=)&=_85eBslhCs7>>a5|;^ z(d2Bl4bk!%cJG;2rL>tfwMK(c(iei3@76rXu(!|8MqQ&W^&XiEWfdOg&)ormrc#ez z_TA#1nO|L1dSqC#@G$WeYO0rA;U+3nkjqZA^jq3gFc*{SRD4bD_v35e=Lg2lYO zOT<3L8%A$HZm-O2ni`k+J!lvv8}H0yqHWB~zh&Tt`{Jci*akldVjWSM8o%c``iuL@C z;MtPW^H(7na{zaP7g2D+Z@t4dJEzu^`|f69_RZtQ^ISrh9qc?_vuwPJ{BfoZ6CN;s z|6#bM++4uNfYUBG)q}>ZU~C!vUny}xu=bsQYj!A|nJ)FX_OXF34x22!k$yNSAZxu= zgXE0kH;%5``u1D3^KC|AaU4`Bt=@f%I!|Ea*9nKS_Ecp{<6jsWA8I!P>HMBn!k3w2 z3QgbW%p6f~4ADHEZ0*co^FSXdYgWd^>{fwGoI<>(dWxMEQkzBe1~fI^Plsn5{(s4L&8JzQLZ3VV)qNrQJtlQe$=-?0;e)z5NFq5;-xV!bE4G zj%{`i7bHfQ4i%_JW@ke$rU__)gZ0Nh&bV7b@cIz6uHO$;>vb8th`Ru|W%x4R>h)}Q zy0m-KHnmKIi8MfvzpsV+VgBUxsx#`m`Dr4}_}ikkvLm>Lo}R0dPoe0~C%ZSh&xo!c z9g92%FG)NDnE|eS-f@*0_8Jw_aIj#Kvk(9NS~IuhIy=aK3+9KvhHN$63DSjpr9YGJ z#Imb+?~PAxHf>f@GBt7~UCRJ{*>$^AY$2=E5SyA2=(NF=?YTLXk48bXi%|@h2`dQy zO|uA;(S94}X_^ee;4|Dnvj!>)XCX`g}BP_SvGCErvo49 zh%W?2yjKQYru#!_-9D|8x<$(X8r7kQ~4o=ptT1)B-2lve5J!LYZ; zyd04YGhV)fr>)g@5;3e~WW$%m+T+f;L}#^%d9sevzp>rJ4jZxF{i@l)HRhZR*3cCX8>t z_5mYCY<3e5mqs(ouG)s&{PBAHmoCSxMBgegzkYSd7HVk(4v6ni#p7st4aM6W#>RG$ zIhA2wwcgx59%3_H&_eD#3$lV7g#P+&$sTa7wKa1uqX5BUKn#p90AM@x7HS zrtDREVdi&lyb@yd9al^)-huEswvXdG6+yf;`DKfUHu+H5PdD3i=uB`i;3W8+Hq_o% zukBPQ#mTQeD$-SAD`Bp}M489y69ye!*H)c-325%<6EZQw6s8XpJIM69{V?budNaF$ zV{#w$JzUx*%9yZKxnwqpuekhThU)s+Hj>tTA>LZoi0!G~?b?H6*gU*Qu`a}WKT$y! zIzbU(#IgChuH-O*8YJ>2B42!GG|zp>h|r+fGrvOS#imM$iv?vPPJ>}%Q;~sXcWMWD zzx|Mi!;pQ_#&*B;Uyb5M^s-jJ;C^;Eew&tFA``teV?9QAt!XO3wLXWo_o%Ddmy-lKD!`<66Y?(ZeJ;HcQ&HuAMmrG z2Z%AHWf|@Nr2Z+9qfLT`5>XIVkMZKHs4*3sVoN>=?L7T=nNym!y)Z%*N(JR?q&COJ zXEgqV3I0u&cR@&G|MM6XN&~r^NjP~ly;*BF_oh(xsbfbdZG45JwjBmqK4T?QyRH98 zVEgch=UovN{cCk5Thx%5h9C{Ef8uYTqi}T2b7_lZ&PCPlm-(D_EFnjN{k)>9yxd%P zRezpFx}=7~lJ6AdD*TFlZFo_`dQ10{!#ste7OmK8o^9}Xe}}|<{r2^(ZTiBoCtPx)V>k zf#X!n{7Ni%HU728$ZY`3 z5zuMzEA0u$(xZ_6bAYU!G{nK43t5|ORyWSVJ~Lx8LscN<2B>fR75+4`W0%*<)rz~@ zsODc6u|9JOyX6LOh6MQQQpH5;+S24cKu#{87xQMjD zT*%nvR^o~}HT!HfqJh)Re~q~jjG%Ee)k9K)vXi=<)FgyRGt+LBYFu~A&QJG+@9$%g zq|d@#5nOgtIG^F>hcnkDPS)AK3!Wu;lI9z1+2y?sV3F+E63Byz`VB-Lsb*)p^RrU5 zUm~yBrhbK;s?{>RSs5JZ4%>Z?yRt}ztAT8qXLm)ES}{6gdM@r~K-$f@^g{-=ZcuGk z_d>U^)^uTM#hpJ}x~YQw)*-f4GSgK^wi82dI%~fHd2ICJI1To}{oSyvQ}ZZFfb(H} zM4XBEW19}Ude-+ja^uoD_myU52gm_1>! zw$@Zo?dataCOrvq0@u{mhxi$3y-$I#DxRrP`a`U1W;;jp`?~<~(ne}VDflF2YK0j? zHblO`W;ZKJP*4-qel2>>&jGGodeAr-qfv)l#0E#Q0Aj^0w;+Ee04uHmcRN#vhm4Mk z_Ft-yolp@>5j7TQ;SC)v@v6aBxrh7g0~#NgOISE?;J_=IALlzHQ zB{a|KB6U@uAu>I)V9W^2LLUh-{&+?_00%A5AAP2If(rW&n(}nodO|FGFSBh0=56L0|I&-y?zF5bX} z39^%g{e{icAxG;nTXaQOKP!+HNcPi^7ItBfC zI-tw{|D1l|&(neJS$~{9r>=vqs%aiQ6Rp+OqV>*H{^O#u%x9ZbfkXEECy=rPS6a80 z)|t`%+HS_KPJ^t5!TDQo)c?aqLtTHEbR_iuXQNx7KTQgpt`E%e|F+TPtAChO4vM!^Io9V+p zhR(88;=niiWEsx*Pm}%k;BNvCSAdgX8um|~A0Pzicx~FEaKD%47k+?qzZp-cRg7?X za_hH0H>4F}ftujAb2>PpO3$P%P!|yPGO&nqbGJ4qe_JX&=$tG9aIT3$ejakbqW_l@ z1z6u9`lOc%`fXoEKw3~Urj5smO}~7&rNOMw$@T(p!oOXi0W`o5jZ(>f|1eFSm?b{F z>7-x}Zun1@nBuz*Dr$fDdxQZ4fY`45d$kPpzY5BNM8HQVErA<4I4@QM>mBeRkZ{C* z9fhSdJ)ZC0DE{E*OOxxrGq=BUt+QN2u<{%E?}s|13D}SH^HD+eKRAHwOTgqG6@HHj z#HdKjvL!CW7|;W`*J*_WhD7zZ0}}@fY&1;v`$t1^zy-eN^8pWvCj`*VPs4jV|H-Gg<$<6H9B1ox z$QiiSOA}$H{|k(t_x>^XgG>LP!7E?+WAN2gBcC_9{>kW{#Q!vUB)}#Ee)aceQRe>R z%5n)C^J<5!1a=#jJLz;FLR#x;pQMvVK%5w98ld1~lCO>WKS&r^f`>C{`d{yg>FKb|W3 z=c%nuewY6pvHs3#mmdHK_38ta*qLi&-UZSX-2x|k(b-nk{|jT@7SO(n3#9@b(Uzb6 zs8tW?pEtO3PF7qJ*Q#j`*(MYjEm+Tn)|3Ae=%h_k8KVr9FX!GM4{&?4Xxu-KF@|<1 zUuBk7gqh<%JeMD?zc9ThYG*;<=XvyTG+LB?4k3;M=Q=u^-v#G+`-(Im@(#fj%^23m zSwxB2@Ss4zEWL6QFC8Rxy|WZ@6^E~26g>5N$4lvU5r7_7b64RK+M=)u_q(-bLOmLj z&t|NN%u{8QVQ*N}QfI3}gzBclk z^i*?3V8zy!Xq}Iw8%C1EA??j#CG13>6g_wwJ*er)i$vKPExdCBvR{fQKW@W3`4ncu z>brZb%$#=Lb@AZgEy(@d;hgl7IuWg1--!>usLUga?`GU1z1!O{9%fPFb9=Nj>~sH{ zul}i_{0r;2H=oc5;C(slmm<>UqGsoVry)M*&m#;4Y3%Wv_bengM3pg92N?gSXQG*-dn%L^?PA}gAHzl;_jt5w73_iNb#b@ zwKx=;!HT;Uw^C?vDeh9dw8edJDKhvB49reH-`#zl{R{So-TPB=Z=RFfa^9p! z)MozC*XjLlvq$ZU2X_Ova<<)QWvl?V%)lG+(D(Y`D-ZY2Xy(_0Hy>TK_C7YW+>OO( z3DU1yOl__nI|N?(n{*xBoWg-SfpOO~NMb{D5-Q8G29km5wpq~_&y^d<4GKvY&B+@+U!+aAyd1Ir^?r3mq~*19I=GIOvfhNs zL7=Cbfp#v8>TBA7#;gb%EOfTfvq=lN*bB~GT0^X~Ycs0Xyh*fp-@VYEh0=y^HJd~P z;4*gwBBFnt>ESijxASJd0Co5BG~g(;KKI8r@XEr!evZ+JAjOO-bujt%6m!lZ~J-03iQ6R!2*P z5RV2A^@&hT_0=1|e<&XffCEImG4ralM`Vfn-yH=lgC9r>-p;U?;1arhIm z7Yyghb1+N~x-N(v`aT)48h6qDIjKXV+{57xp; zGcTUbCP~Q|bA!61!tPIN;&-2xa_%njs@L@W7p{@tjw~%hig4dHJ3f0W==;?1_nWTL zr=b+QN<44TP?4ekHzWOAfCND+3=9EK*hSA9JcUoS;k9d^Nc8gAvuRkeawMt1x6U#O z-W+wn;<-PNNf}f-?9n@u)F(?LK}EwV7*JQGQL0ALtm$mb>7?7a|5mnhq?a?mKY zuU8*_Dnh6|WZbFn1zxCmiO;t_!|@s$R~VF>hhW*KcbYYCl#z#3TD~<=Sl~BPkTp98 zp({etVbuVFa)20Ys`K>G9Y%qd?Q2DC;c%gO|8wk(kA>)lSNe}B$*yXC{)r4H$r3iZ z@z3V2kAM4-2*UTNc!1b)ZzBUh?4Q`wqKKlCMGEXek>X!NWPK%Bq&x*g5pR4NZ|F(o zodKof0XEg!BA_r{JDQAjVT)bPG6$W#Gv=4_zk~^1(+Q)+Oyl)^1qddRT0Vh@Dt;^n zNF54rUET(+o0y~XIN+h}zTeT#0ovU%gprU>zAJ;<31++fw8?svwcp3 zkO9$(z%ZWF02=@Ikp_VlX9&oN1NJ6w00|#Mm7a%czKYlwagP9k|Nadn4>trH{$C%5 z@}5Z6pqWg%V5KBELhoU2zaZLOYTkeVuK!amnfo{?XYo@xhb>-MjtV`o-MQuny>W!> zghR*8Xc0*bK;lWA3dow(Njo%nOSD8?Wz@Xyy*{)29}jP-DG_huiZNsnJco?bRY- zt{Ol+?s0?B=l(OB96Vx#LNhwFdC;fthBZOgfY>VaZA9H>li;OXzG87@W5+A;Bh@a^ zbc7Ss0jb#sS)h~adopCm*f5+BdeN&H5I-hIcP6DNm8bPMgO<%NH}*0S2(CE0)@??| zK}X2%iJD-~L#8is27tXOTZRC0LPUzwBkJG4U!eW`pFcd6OQ8UX>*CNLmSodypxBEJ z9X-(&3vyw#;ujT1eKZIY89h2yutJbYrp^iM+a?u@&2zk(-0MU+3g7OFX&uDsj~I|lhk<�N2dR6*Y( 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..91386bac17d7349ebd59621a9e2cbff3b70bcab9 GIT binary patch literal 29921 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3214756d28313ec15952a8650c0a4578a3ce71ba GIT binary patch literal 20129 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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/clip.rs b/src-tauri/src/clip.rs new file mode 100644 index 0000000..ecc2076 --- /dev/null +++ b/src-tauri/src/clip.rs @@ -0,0 +1,11 @@ +use anyhow::Result; +use arboard::Clipboard; + +/// 写入剪贴板 +/// +/// Write to clipboard +pub fn set(context: String) -> Result<()> { + let mut clipboard = Clipboard::new()?; + clipboard.set_text(context)?; + Ok(()) +} diff --git a/src-tauri/src/common.rs b/src-tauri/src/common.rs new file mode 100644 index 0000000..5122ccb --- /dev/null +++ b/src-tauri/src/common.rs @@ -0,0 +1,10 @@ +use once_cell::sync::Lazy; +use reqwest::Client; + +use crate::manager; + +pub static CLIENT: Lazy = Lazy::new(Client::new); + +pub async fn init() { + manager::mirror::init().await; +} diff --git a/src-tauri/src/config.rs b/src-tauri/src/config.rs new file mode 100644 index 0000000..2a4e56f --- /dev/null +++ b/src-tauri/src/config.rs @@ -0,0 +1,83 @@ +use std::sync::Arc; + +use anyhow::Result; +use once_cell::sync::Lazy; +use parking_lot::Mutex; +use serde::{Deserialize, Serialize}; + +use crate::util; + +/// 配置 +/// +/// Config +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Config { + /// 是否启用代理, 若不启用, 默认使用镜像 + /// + /// Whether to enable the proxy, if not enabled, the default is to use the mirror + pub proxy: bool, + /// 代理地址, 为空则直连 + /// + /// Proxy address, empty means direct + pub url: String, +} + +/// 全局配置 +/// +/// Global config +pub static CONFIG: Lazy>> = Lazy::new(|| Arc::new(Mutex::new(load()))); + +/// 读取配置 +/// +/// read config +pub fn load() -> Config { + let exe_dir = util::get_exe_dir(); + let path = exe_dir.join("config.json"); + // 检测文件是否存在 + // Check if file exists + let exists = path.try_exists(); + if exists.is_ok() && exists.unwrap() { + let config = std::fs::read_to_string(path).unwrap(); + serde_json::from_str(&config).unwrap() + } else { + Config { + proxy: false, + url: "".to_string(), + } + } +} + +/// 保存配置 +/// +/// save config +fn save(config: &Config) -> Result<()> { + let exe_dir = util::get_exe_dir(); + let path = exe_dir.join("config.json"); + let config = serde_json::to_string_pretty(config).unwrap(); + std::fs::write(path, config).unwrap(); + Ok(()) +} + +/// 开启代理 +/// +/// enable proxy +pub fn enable_proxy() { + CONFIG.lock().proxy = true; + save(&CONFIG.lock()).unwrap(); +} + +/// 关闭代理 +/// +/// disable proxy +pub fn disable_proxy() { + CONFIG.lock().proxy = false; + save(&CONFIG.lock()).unwrap(); +} + +/// 设置代理地址 +/// +/// set proxy url +pub fn set_proxy_url(url: String) { + CONFIG.lock().url = url; + save(&CONFIG.lock()).unwrap(); +} diff --git a/src-tauri/src/lang.rs b/src-tauri/src/lang.rs new file mode 100644 index 0000000..d0991ab --- /dev/null +++ b/src-tauri/src/lang.rs @@ -0,0 +1,21 @@ +use lingua::{Language, LanguageDetectorBuilder}; + +/// 获取翻译目标语言 +/// +/// Get the translation target language +pub fn lang(text: &str) -> String { + let first_lang = "zh"; + let second_lang = "en"; + let languages = vec![Language::Chinese, Language::English]; + let detector = LanguageDetectorBuilder::from_languages(&languages).build(); + // 第一语言翻译为第二语言,其他翻译为第一语言 + // Translate the first language into the second language, and the other language into the first + let kind = match detector.detect_language_of(text) { + Some(lang) => match lang { + Language::Chinese => second_lang, + Language::English => first_lang, + }, + None => first_lang, + }; + kind.to_string() +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..9aa59d2 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,88 @@ +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +use config::{Config, CONFIG}; +use manager::api; +use manager::api::TransVO; +use resp::Resp; + +mod clip; +mod common; +mod config; +mod lang; +mod manager; +mod resp; +mod setup; +mod shortcut; +mod tray; +mod util; +mod window; + +/// 翻译文本 +/// +/// Translate text +#[tauri::command] +async fn translate(context: String) -> Resp { + api::translate(&context).await.into() +} + +/// 写入剪贴板 +/// +/// Write to clipboard +#[tauri::command] +fn copy(context: String) -> Resp<()> { + clip::set(context).into() +} + +/// 获取配置 +/// +/// Get config +#[tauri::command] +fn get_config() -> Resp { + Ok(CONFIG.lock().clone()).into() +} + +/// 开启代理 +/// +/// Enable proxy +#[tauri::command] +fn enable_proxy() { + config::enable_proxy(); +} + +/// 关闭代理 +/// +/// Disable proxy +#[tauri::command] +fn disable_proxy() { + config::disable_proxy(); +} + +/// 设置代理地址 +/// +/// Set proxy url +#[tauri::command] +fn set_proxy_url(url: String) { + config::set_proxy_url(url); +} + +#[tokio::main] +async fn main() { + // 全局初始化 + // Global initialization + common::init().await; + + tauri::Builder::default() + .system_tray(tray::new()) + .on_system_tray_event(tray::handler) + .setup(setup::handler) + .invoke_handler(tauri::generate_handler![ + copy, + translate, + get_config, + enable_proxy, + disable_proxy, + set_proxy_url + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/src-tauri/src/manager/api.rs b/src-tauri/src/manager/api.rs new file mode 100644 index 0000000..a259252 --- /dev/null +++ b/src-tauri/src/manager/api.rs @@ -0,0 +1,111 @@ +use anyhow::Result; +use reqwest::Client; +use serde::Serialize; +use urlencoding::encode; + +use crate::{common::CLIENT, config::CONFIG, lang, manager::mirror}; + +/// 翻译结果 +#[derive(Debug, Serialize)] +pub struct TransVO { + /// 是否为单词 + pub word: bool, + /// 翻译结果 + pub trans: Option, + /// 词典 + pub dicts: Option>, +} + +#[derive(Debug, Serialize)] +pub struct Dict { + pub pos: String, + pub terms: Vec, +} + +pub async fn translate(context: &str) -> Result { + // 翻译目标语言 + let lang = lang::lang(context); + + // 转换为 url 编码 + let context = encode(context); + + let url = { CONFIG.lock().url.clone() }; + + if CONFIG.lock().proxy { + let proxy = reqwest::Proxy::all(&url)?; + let client = Client::builder().proxy(proxy).build().unwrap(); + send(&client, "https://translate.googleapis.com", &lang, &context).await + } else { + send(&CLIENT, &mirror::one(), &lang, &context).await + } +} + +async fn send(client: &Client, host: &str, lang: &str, context: &str) -> Result { + let resp = client + .get(format!("{}/translate_a/single?client=gtx&sl=auto&tl={}&dj=1&dt=t&dt=bd&dt=qc&dt=rm&dt=ex&dt=at&dt=ss&dt=rw&dt=ld&q=%22{}%22", host, lang, context)) + .header("Accept", "application/json, text/plain, */*") + .header("Accept-Encoding", "gzip") + .header("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6") + .send() + .await? + .json::() + .await?; + + // 识别单词状态, 检测是否有 dict + if let Some(dict) = resp["dict"].as_array() { + let dicts = dict + .iter() + .map(|item| { + let pos = item["pos"].as_str().unwrap_or("解析失败"); + let terms = match item["terms"].as_array() { + Some(terms) => terms.to_owned(), + None => { + vec![] + } + }; + Dict { + pos: pos.to_string(), + terms: terms + .iter() + .map(|x| x.as_str().unwrap_or("解析失败").to_string()) + .collect(), + } + }) + .collect(); + + let trans = TransVO { + word: true, + trans: None, + dicts: Some(dicts), + }; + Ok(trans) + } else { + let tran_list = match resp["sentences"].as_array() { + Some(tran_list) => tran_list.to_owned(), + None => { + vec![] + } + }; + let trans = tran_list + .into_iter() + .map(|x| x["trans"].as_str().unwrap_or_default().to_string()) + .collect::>() + .join(""); + + let trans = trans + .trim() + .trim_matches('"') + .trim_matches('“') + .trim_matches('”') + .trim_matches('「') + .trim_matches('」') + .trim_matches('《') + .trim_matches('》'); + let result = TransVO { + word: false, + trans: Some(trans.to_string()), + dicts: None, + }; + Ok(result) + } +} diff --git a/src-tauri/src/manager/mirror.rs b/src-tauri/src/manager/mirror.rs new file mode 100644 index 0000000..ba97ee2 --- /dev/null +++ b/src-tauri/src/manager/mirror.rs @@ -0,0 +1,46 @@ +use anyhow::Result; +use serde::{Deserialize, Serialize}; +use tokio::sync::OnceCell; + +use crate::common::CLIENT; + +/// 镜像 +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Mirror { + pub urls: Vec, +} + +pub static MIRRORS: OnceCell = OnceCell::const_new(); + +// 初始化全局镜像 +pub async fn init() { + MIRRORS + .get_or_init(|| async { get().await.unwrap_or(Mirror { urls: vec![] }) }) + .await; +} + +// 从网络获取镜像地址 +async fn get() -> Result { + let mirror = match CLIENT + .get("https://cdn.jsdelivr.net/gh/Borber/tran@latest/resource/mirror.json") + .send() + .await + { + Ok(resp) => match resp.json::>().await { + Ok(urls) => Mirror { urls }, + Err(_) => Mirror { urls: vec![] }, + }, + Err(_) => Mirror { urls: vec![] }, + }; + Ok(mirror) +} + +pub fn one() -> String { + let mirrors = { MIRRORS.get().unwrap().urls.clone() }; + if mirrors.is_empty() { + "https://v2g.borber.top".to_string() + } else { + let index = fastrand::usize(..mirrors.len()); + mirrors[index].to_owned().trim_end_matches('/').to_owned() + } +} diff --git a/src-tauri/src/manager/mod.rs b/src-tauri/src/manager/mod.rs new file mode 100644 index 0000000..418f33c --- /dev/null +++ b/src-tauri/src/manager/mod.rs @@ -0,0 +1,2 @@ +pub mod api; +pub mod mirror; diff --git a/src-tauri/src/resp.rs b/src-tauri/src/resp.rs new file mode 100644 index 0000000..d93526e --- /dev/null +++ b/src-tauri/src/resp.rs @@ -0,0 +1,42 @@ +use anyhow::Result; +use serde::Serialize; + +#[derive(Debug, Serialize, Clone)] +pub struct Resp { + pub code: i64, + pub msg: Option, + pub data: Option, +} + +impl From> for Resp +where + T: Serialize, +{ + fn from(item: Result) -> Self { + match item { + Ok(data) => Resp::success(data), + Err(e) => Resp::fail(1, &e.to_string()), + } + } +} + +impl Resp +where + T: Serialize, +{ + pub fn success(data: T) -> Self { + Resp { + code: 0, + msg: Some("success".to_string()), + data: Some(data), + } + } + + pub fn fail(code: i64, e: &str) -> Self { + Resp { + code, + msg: Some(e.to_owned()), + data: None, + } + } +} diff --git a/src-tauri/src/setup.rs b/src-tauri/src/setup.rs new file mode 100644 index 0000000..cfbf2bc --- /dev/null +++ b/src-tauri/src/setup.rs @@ -0,0 +1,21 @@ +use std::error::Error; + +use tauri::{App, GlobalShortcutManager, Manager}; + +use crate::{shortcut, window}; + +pub fn handler(app: &mut App) -> Result<(), Box> { + if cfg!(any(target_os = "macos", target_os = "windows")) { + window::decor(app, "main"); + window::decor(app, "tray"); + window::decor(app, "panel"); + }; + let panel = app.get_window("panel").unwrap(); + + // 全局快捷键 + // Global shortcut + app.global_shortcut_manager() + .register("Alt + X", move || shortcut::show(&panel)) + .expect("Failed to register global shortcut"); + Ok(()) +} diff --git a/src-tauri/src/shortcut.rs b/src-tauri/src/shortcut.rs new file mode 100644 index 0000000..5f4cb07 --- /dev/null +++ b/src-tauri/src/shortcut.rs @@ -0,0 +1,36 @@ +use mouse_position::mouse_position::Mouse; +use tauri::{PhysicalPosition, Window}; + +use selection::get_text; + +/// 鼠标坐标与选中内容 +/// +/// Mouse coordinates and selected content +#[derive(Debug, Clone, serde::Serialize)] +pub struct ShowVO { + pub x: i32, + pub y: i32, + pub context: String, +} + +pub fn show(panel: &Window) { + // TODO 先分析翻译目标 + let context = get_text(); + let position = Mouse::get_mouse_position(); + match position { + Mouse::Position { x, y } => { + let pos = PhysicalPosition { x, y }; + panel + .emit( + "show", + ShowVO { + x: pos.x, + y: pos.y, + context, + }, + ) + .unwrap(); + } + Mouse::Error => println!("Error getting mouse position"), + } +} diff --git a/src-tauri/src/tray.rs b/src-tauri/src/tray.rs new file mode 100644 index 0000000..e4477bb --- /dev/null +++ b/src-tauri/src/tray.rs @@ -0,0 +1,27 @@ +use mouse_position::mouse_position::Mouse; +use tauri::{AppHandle, Manager, PhysicalPosition, SystemTray, SystemTrayEvent, SystemTrayMenu}; + +pub fn new() -> SystemTray { + let tray_menu = SystemTrayMenu::new(); + SystemTray::new().with_menu(tray_menu) +} + +pub fn handler(app: &AppHandle, event: SystemTrayEvent) { + // 右键点击时, 显示托盘菜单 + // Right-click to show the tray menu + if let SystemTrayEvent::RightClick { .. } = event { + let position = Mouse::get_mouse_position(); + match position { + Mouse::Position { x, y } => { + let tray = app.get_window("tray").unwrap(); + let size = tray.outer_size().unwrap(); + let pos = PhysicalPosition { + x: x - 10, + y: y - size.height as i32 + 10, + }; + tray.emit("tray", pos).unwrap(); + } + Mouse::Error => println!("Error getting mouse position"), + } + } +} diff --git a/src-tauri/src/util.rs b/src-tauri/src/util.rs new file mode 100644 index 0000000..ce805bd --- /dev/null +++ b/src-tauri/src/util.rs @@ -0,0 +1,12 @@ +use std::path::PathBuf; + +/// 获取可执行文件位置 +/// +/// Get executable file path +pub fn get_exe_dir() -> PathBuf { + std::env::current_exe() + .unwrap() + .parent() + .unwrap() + .to_path_buf() +} diff --git a/src-tauri/src/window.rs b/src-tauri/src/window.rs new file mode 100644 index 0000000..2e1a2a5 --- /dev/null +++ b/src-tauri/src/window.rs @@ -0,0 +1,22 @@ +use tauri::{App, Manager}; + +/// 增加窗口装饰 依赖于 `window_shadows` +/// +/// Adds window decorations, depends on `window_shadows` +pub fn decor_by_window(window: &tauri::Window) { + if cfg!(any(target_os = "macos", target_os = "windows")) { + match window_shadows::set_shadow(window, true) { + Ok(_) => {} + Err(e) => { + println!("Error setting shadow: {}", e); + } + } + }; +} + +pub fn decor(app: &mut App, name: &str) { + match app.get_window(name) { + Some(window) => decor_by_window(&window), + None => println!("Decor: window `{}` not found", name), + } +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..2a95697 --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,91 @@ +{ + "build": { + "beforeDevCommand": "pnpm dev", + "beforeBuildCommand": "pnpm build", + "devPath": "http://localhost:5046", + "distDir": "../dist", + "withGlobalTauri": false + }, + "package": { + "productName": "tran", + "version": "0.1.1" + }, + "tauri": { + "allowlist": { + "all": false, + "shell": { + "all": false, + "open": true + }, + "window": { + "all": true + }, + "process": { + "all": true + }, + "globalShortcut": { + "all": true + } + }, + "bundle": { + "active": true, + "targets": "all", + "identifier": "com.borber.tran", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + }, + "security": { + "csp": null + }, + "systemTray": { + "iconPath": "icons/icon.png", + "iconAsTemplate": true + }, + "windows": [ + { + "title": "Tran", + "width": 320, + "height": 320, + "fullscreen": false, + "resizable": false, + "decorations": false, + "transparent": false, + "center": true, + "visible": false + }, + { + "label": "tray", + "url": "/tray", + "width": 30, + "height": 60, + "fullscreen": false, + "resizable": false, + "decorations": false, + "transparent": true, + "center": false, + "visible": false, + "alwaysOnTop": true, + "skipTaskbar": true + }, + { + "label": "panel", + "url": "/panel", + "width": 256, + "height": 100, + "fullscreen": false, + "resizable": false, + "decorations": false, + "transparent": false, + "center": true, + "visible": false, + "alwaysOnTop": true, + "skipTaskbar": true + } + ] + } +} \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..66d938e --- /dev/null +++ b/src/App.css @@ -0,0 +1,3 @@ +.container { + height: 100%; +} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..0e7332f --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,33 @@ +import "./App.css" + +import { useRoutes } from "@solidjs/router" +import { lazy, onMount } from "solid-js" + +const App = () => { + onMount(async () => { + // 生产环境, 全局取消右键菜单; + if (!import.meta.env.DEV) { + document.oncontextmenu = (event) => { + event.preventDefault() + } + } + }) + + const routes = [ + { path: "/", component: lazy(() => import("./page/Setting")) }, + { + path: "/tray", + component: lazy(() => import("./util/tray/page/Tray")), + }, + { + path: "/panel", + component: lazy(() => import("./page/Panel")), + }, + ] + + const Routes = useRoutes(routes) + + return +} + +export default App diff --git a/src/components/Control.tsx b/src/components/Control.tsx new file mode 100644 index 0000000..5d8a123 --- /dev/null +++ b/src/components/Control.tsx @@ -0,0 +1,82 @@ +import "../css/Control.css" + +import { appWindow } from "@tauri-apps/api/window" +import { createSignal, Show } from "solid-js" + +import { Close, Maximize, Minimize } from "../icon" + +export interface BarProps { + minimize?: boolean + maximize?: boolean + close?: boolean +} + +const defaultProps: BarProps = { + minimize: true, + maximize: true, + close: true, +} + +const Control = (props: BarProps) => { + const setting = { ...defaultProps, ...props } + + // 模拟 hover 效果, 解决 tauri 最小化/关闭 时, hover 效果不消失的问题 + const [minFlag, setMinFlag] = createSignal(false) + const [maxFlag, setMaxFlag] = createSignal(false) + const [closeFlag, setCloseFlag] = createSignal(false) + + return ( +

+ ) +} + +export default Control diff --git a/src/components/TopBar.tsx b/src/components/TopBar.tsx new file mode 100644 index 0000000..536ed02 --- /dev/null +++ b/src/components/TopBar.tsx @@ -0,0 +1,7 @@ +import "../css/TopBar.css" + +const TopBar = () => { + return
+} + +export default TopBar diff --git a/src/css/Control.css b/src/css/Control.css new file mode 100644 index 0000000..b2622e0 --- /dev/null +++ b/src/css/Control.css @@ -0,0 +1,33 @@ +.control { + position: absolute; + right: 0; + display: flex; + text-align: center; + justify-content: center; +} + +.control-compromise { + top: 1px; + right: 1px; +} + +.control-item { + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + color: #5b595c; + box-sizing: border-box; + padding: 10px; +} + +.control-item.hover { + color: #fff; + background-color: #373737; +} + +.control-item.control-item-close.hover { + color: #fff; + background-color: #cd1a2b; +} \ No newline at end of file diff --git a/src/css/Panel.css b/src/css/Panel.css new file mode 100644 index 0000000..8fb90c2 --- /dev/null +++ b/src/css/Panel.css @@ -0,0 +1,95 @@ +.panel { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + text-align: center; + background-color: #1e2227; + color: #ffffff; +} + +.panel-control { + display: flex; + flex-direction: row; + box-sizing: border-box; + border-top: 1px solid #434244; +} + +.panel-control-item, +.panel-control-hide { + flex: 1; + height: 16px; + width: 100%; + /* margin: 1px; */ + /* border-radius: 2px; */ + fill: #b9b9b9; + display: flex; + align-items: center; + justify-content: center; + + transition: transform 0.3s linear; +} + +.panel-control-item:hover { + background-color: #4e4e4e; + fill: #e0e0e0 +} + +.panel-control-pin-conainer { + cursor: move; +} + +.panel-control-pin { + transform: rotate(-45deg); + fill: #a7e3ed; + cursor: pointer; +} + +.panel-control-copy, +.panel-control-copy:hover { + fill: #a7edb1 +} + +.panel-control-hide-hover { + background-color: #878787; + fill: #e0e0e0 +} + +.result { + flex: 1; + display: flex; + flex-direction: column; + color: #ffffff; + margin: 4px; + padding: 4px; + text-align: left; + border-radius: 4px; + background-color: #262a30; + overflow-x: hidden; + overflow-y: scroll; + user-select: text; + line-height: 1.3; +} + +.dict { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin-bottom: 2px; +} + +.dict-pos { + padding: 1px 2px; + border-radius: 2px; + color: #000; + background-color: #07c3f2; + font-weight: bold; + margin: 1px; +} + +.dict-term { + padding: 1px 4px; + border-radius: 2px; + background-color: #434244; + margin: 1px 2px +} \ No newline at end of file diff --git a/src/css/Setting.css b/src/css/Setting.css new file mode 100644 index 0000000..d15dc1b --- /dev/null +++ b/src/css/Setting.css @@ -0,0 +1,61 @@ +.content { + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; +} + +.setting-title { + margin-top: 30px; + font-size: 40px; + font-weight: bolder; + color: #787878; +} + +.setting-option { + display: flex; + flex-direction: row; + margin-top: 20px; +} + +.setting-option-item { + padding: 6px 12px; + color: #ffffff; + font-weight: bold; + font-size: 16px; + background-color: rgb(91, 93, 96); +} + +.setting-option-item:first-child { + border-radius: 8px 0 0 8px; +} + +.setting-option-item:last-child { + border-radius: 0 8px 8px 0; +} + +.setting-option-item-selected { + background-color: #67c675; +} + +.setting-mirror { + height: 40px; + font-size: 30px; + font-weight: bold; + color: #ffffff; + margin-top: 30px; + line-height: 40px; +} + +.setting-proxy-url { + width: 180px; + height: 30px; + font-weight: bold; + text-align: center; + margin-top: 40px; + border-radius: 10px; + outline: 0; + border: 2px solid #d5d5d5; + background-color: #2b2b2b; + color: #f2eeee; +} \ No newline at end of file diff --git a/src/css/TopBar.css b/src/css/TopBar.css new file mode 100644 index 0000000..00ffcce --- /dev/null +++ b/src/css/TopBar.css @@ -0,0 +1,4 @@ +.top-bar { + height: 40px; + width: 100%; +} \ No newline at end of file diff --git a/src/icon.tsx b/src/icon.tsx new file mode 100644 index 0000000..686125f --- /dev/null +++ b/src/icon.tsx @@ -0,0 +1,82 @@ +interface IconProps { + size?: number +} + +export const Minimize = (props: IconProps) => { + return ( + + + + ) +} + +export const Maximize = (props: IconProps) => { + return ( + + + + ) +} + +export const Close = (props: IconProps) => { + return ( + + + + ) +} + +export const PinIcon = (props: IconProps) => { + return ( + + + + ) +} + +export const CopyIcon = (props: IconProps) => { + return ( + + + + ) +} diff --git a/src/index.tsx b/src/index.tsx new file mode 100644 index 0000000..34280f5 --- /dev/null +++ b/src/index.tsx @@ -0,0 +1,16 @@ +/* @refresh reload */ +import "./styles.css" + +import { Router } from "@solidjs/router" +import { render } from "solid-js/web" + +import App from "./App" + +render( + () => ( + + + + ), + document.getElementById("root") as HTMLElement +) diff --git a/src/model/resp.tsx b/src/model/resp.tsx new file mode 100644 index 0000000..bb69d15 --- /dev/null +++ b/src/model/resp.tsx @@ -0,0 +1,5 @@ +export interface Resp { + code: number + msg: string + data: T +} diff --git a/src/page/Panel.tsx b/src/page/Panel.tsx new file mode 100644 index 0000000..0e0d7fc --- /dev/null +++ b/src/page/Panel.tsx @@ -0,0 +1,132 @@ +import "../css/Panel.css" + +import { invoke } from "@tauri-apps/api" +import { getCurrent, PhysicalPosition } from "@tauri-apps/api/window" +import { createSignal, For, Match, Switch } from "solid-js" + +import { CopyIcon, PinIcon } from "../icon" +import { Resp } from "../model/resp" + +interface TransVO { + word: boolean + trans: string + dicts: Dict[] +} + +interface Dict { + pos: string + terms: string[] +} + +const Panel = () => { + const panel = getCurrent() + + let pinFlag = false + let moveFlag = true + + const [pin, Pin] = createSignal(false) + const [copy, Copy] = createSignal(false) + const [result, Result] = createSignal() + + // 监听事件, 显示panel + panel.listen<{ x: number; y: number; context: string }>( + "show", + async (pos) => { + Result(undefined) + if (!pinFlag) { + await panel.setPosition( + new PhysicalPosition(pos.payload.x - 40, pos.payload.y + 20) + ) + + // 刷新 固定图标状态 + moveFlag = true + pinFlag = false + Pin(false) + } + + Copy(false) + await panel.show() + // TODO 错误处理 + const resp = await invoke>("translate", { + context: pos.payload.context, + }) + Result(resp.data) + } + ) + + return ( +
{ + if (moveFlag) { + moveFlag = true + pinFlag = false + Pin(false) + await panel.hide() + Result(undefined) + } + }}> +
+ + 翻译中... + + + {(dict) => ( +
+
{dict.pos}
+ + {(term) => ( +
{term}
+ )} +
+
+ )} +
+
+ {result()?.trans} +
+
+
+
{ + moveFlag = !moveFlag + pinFlag = !pinFlag + Pin(pinFlag) + }} + onMouseEnter={() => { + moveFlag = false + pinFlag = true + Pin(true) + }}> +
+ +
+
+ +
{ + let context + if (result() == undefined) { + return + } else if (!result()?.word) { + context = result()!.trans + } else { + context = result()!.dicts[0].terms[0] + } + invoke("copy", { + context, + }) + Copy(true) + }}> + +
+
+
+ ) +} + +export default Panel diff --git a/src/page/Setting.tsx b/src/page/Setting.tsx new file mode 100644 index 0000000..85cf9e4 --- /dev/null +++ b/src/page/Setting.tsx @@ -0,0 +1,84 @@ +import "../css/Setting.css" + +import { invoke } from "@tauri-apps/api" +import { getCurrent } from "@tauri-apps/api/window" +import { createSignal, Match, onMount, Switch } from "solid-js" + +import Control from "../components/Control" +import TopBar from "../components/TopBar" +import { Resp } from "../model/resp" + +interface ConfigProps { + proxy: boolean + url: string +} + +const Setting = () => { + const main = getCurrent() + + const [proxy, Proxy] = createSignal(false) + const [url, Url] = createSignal("") + + main.listen("tauri://close-requested", async () => { + await main.hide() + }) + + onMount(async () => { + const resp = await invoke>("get_config") + Proxy(resp.data.proxy) + Url(resp.data.url) + }) + + return ( +
+ + +
+
+ 设置 +
+
+
{ + Proxy(false) + await invoke("disable_proxy") + }}> + 镜像 +
+
{ + Proxy(true) + await invoke("enable_proxy") + }}> + 代理 +
+
+ + +
🎉Enjoy
+
+ + { + Url(e.currentTarget.value) + await invoke("set_proxy_url", { + url: e.currentTarget.value, + }) + }} + /> + +
+
+
+ ) +} + +export default Setting diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..56227d1 --- /dev/null +++ b/src/styles.css @@ -0,0 +1,213 @@ +html, +body { + height: 100%; +} + +html, +body, +h1, +h2, +h3, +h4, +h5, +h6, +div, +dl, +dt, +dd, +ul, +ol, +li, +p, +blockquote, +pre, +hr, +figure, +table, +caption, +th, +td, +form, +fieldset, +legend, +input, +button, +textarea, +menu { + margin: 0; + padding: 0; +} + +header, +footer, +section, +article, +aside, +nav, +hgroup, +address, +figure, +figcaption, +menu, +details { + display: block; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +caption, +th { + text-align: left; + font-weight: normal; +} + +html, +body, +fieldset, +img, +iframe, +abbr { + border: 0; +} + +i, +cite, +em, +var, +address, +dfn { + font-style: normal; +} + +[hidefocus], +summary { + outline: 0; +} + +li { + list-style: none; +} + +h1, +h2, +h3, +h4, +h5, +h6, +small { + font-size: 100%; +} + +sup, +sub { + font-size: 83%; +} + +pre, +code, +kbd, +samp { + font-family: inherit; +} + +q:before, +q:after { + content: none; +} + +textarea { + overflow: auto; + resize: none; +} + +label, +summary { + cursor: default; +} + +a, +button { + cursor: pointer; +} + +h1, +h2, +h3, +h4, +h5, +h6, +em, +strong, +b { + font-weight: bold; +} + +del, +ins, +u, +s, +a, +a:hover { + text-decoration: none; +} + +body, +textarea, +input, +button, +select, +keygen, +legend { + font: 12px/1.14 Microsoft YaHei, arial, \5b8b\4f53; + color: #333; + outline: 0; +} + +html, +body { + background: transparent; +} + + +a, +a:hover { + color: #333; +} + +* { + box-sizing: border-box; +} + +input:-webkit-autofill { + -webkit-box-shadow: 0 0 0px 1000px white inset; +} + +#root { + height: 100%; + width: 100%; + overflow: hidden; + box-sizing: border-box; + background-color: #1e1e1e; + border: #434244 1px solid; +} + +/* + 禁止双指滑动滚动反弹效果 + 参考资料: https://developer.mozilla.org/zh-CN/docs/Web/CSS/overscroll-behavior +*/ +body { + overscroll-behavior: none; + user-select: none; +} + +.no-drag { + -webkit-user-drag: none; +} + +/* 隐藏滚动条 */ +::-webkit-scrollbar { + width: 0; +} \ No newline at end of file diff --git a/src/util/sleep.tsx b/src/util/sleep.tsx new file mode 100644 index 0000000..55f6269 --- /dev/null +++ b/src/util/sleep.tsx @@ -0,0 +1,7 @@ +export const sleep = async (ms: number) => { + return new Promise((resolve) => { + setTimeout(() => { + resolve(null) + }, ms) + }) +} diff --git a/src/util/timestamp.tsx b/src/util/timestamp.tsx new file mode 100644 index 0000000..6955f8e --- /dev/null +++ b/src/util/timestamp.tsx @@ -0,0 +1,9 @@ +const timestamp_number = () => { + return new Date().getTime() +} + +const timestamp_string = () => { + return timestamp_number() + "" +} + +export { timestamp_number, timestamp_string } diff --git a/src/util/tray/css/Tray.css b/src/util/tray/css/Tray.css new file mode 100644 index 0000000..cc96cfb --- /dev/null +++ b/src/util/tray/css/Tray.css @@ -0,0 +1,26 @@ +.tray { + color: #fff; + font-weight: bold; + font-size: 14px; + overflow: hidden; +} + +.tray-item { + height: 30px; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + line-height: 24px; + padding: 3px 0; +} + +.h-2 { + height: 60px; +} + +.tray-item-hover { + background-color: #fff; + color: #000; +} \ No newline at end of file diff --git a/src/util/tray/page/Tray.tsx b/src/util/tray/page/Tray.tsx new file mode 100644 index 0000000..cdf121a --- /dev/null +++ b/src/util/tray/page/Tray.tsx @@ -0,0 +1,71 @@ +import "../css/Tray.css" + +import { listen } from "@tauri-apps/api/event" +import { exit } from "@tauri-apps/api/process" +import { + getCurrent, + PhysicalPosition, + WebviewWindow, +} from "@tauri-apps/api/window" +import { createSignal } from "solid-js" + +const Tray = () => { + const tray = getCurrent() + + // 模拟 hover 效果, 解决 tauri 最小化/关闭 时, hover 效果不消失的问题 + const [settingFlag, SettingFlag] = createSignal(false) + const [exitFlag, ExitFlag] = createSignal(false) + + listen<{ x: number; y: number }>("tray", async (pos) => { + await tray.setPosition( + new PhysicalPosition(pos.payload.x, pos.payload.y) + ) + await tray.show() + await tray.setFocus() + }) + + return ( +
{ + await tray.hide() + }}> +
{ + SettingFlag(true) + }} + onMouseLeave={() => { + SettingFlag(false) + }} + onClick={async () => { + await tray.hide() + SettingFlag(false) + const main = WebviewWindow.getByLabel("main") + if (await main?.isMinimized()) await main?.unminimize() + if (!(await main?.isVisible())) await main?.show() + await main?.setFocus() + }}> + 设置 +
+
{ + ExitFlag(true) + }} + onMouseLeave={() => { + ExitFlag(false) + }} + onClick={async () => { + ExitFlag(false) + await exit(0) + }}> + 退出 +
+
+ ) +} + +export default Tray diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..6de47ee --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "jsxImportSource": "solid-js", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + "types": ["vite/client"] + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..26063d8 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..f509437 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig, type UserConfigExport } from "vite"; +import solidPlugin from "vite-plugin-solid"; + +// https://vitejs.dev/config/ +const config: UserConfigExport = async () => ({ + plugins: [solidPlugin()], + + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` + // + // 1. prevent vite from obscuring rust errors + clearScreen: false, + // 2. tauri expects a fixed port, fail if that port is not available + server: { + port: 5046, + strictPort: true, + }, + // 3. to make use of `TAURI_DEBUG` and other env variables + // https://tauri.studio/v1/api/config#buildconfig.beforedevcommand + envPrefix: ["VITE_", "TAURI_"], +}); + +export default defineConfig(config);