From 547bb6494519eae9144bb96d09ec4c70667fe46d Mon Sep 17 00:00:00 2001 From: Bruno Bernardino Date: Fri, 12 Sep 2025 20:21:44 +0100 Subject: [PATCH] Remove all code, update documentation --- .github/FUNDING.yml | 1 + .github/workflows/build.yml | 110 - .github/workflows/test.yml | 30 - .gitignore | 24 - .nvmrc | 1 - .vscode/extensions.json | 3 - LICENSE | 661 --- Makefile | 19 - README.md | 64 +- app-icon.png | Bin 26845 -> 0 bytes biome.json | 34 - index.html | 14 - package-lock.json | 3446 ------------ package.json | 43 - public/chosen.svg | 1 - public/logo-white.svg | 121 - public/logo.svg | 120 - public/logomark.svg | 111 - src-tauri/.gitignore | 7 - src-tauri/Cargo.lock | 4744 ----------------- src-tauri/Cargo.toml | 25 - src-tauri/build.rs | 3 - src-tauri/icons/128x128.png | Bin 5161 -> 0 bytes src-tauri/icons/128x128@2x.png | Bin 11093 -> 0 bytes src-tauri/icons/32x32.png | Bin 991 -> 0 bytes src-tauri/icons/Square107x107Logo.png | Bin 4107 -> 0 bytes src-tauri/icons/Square142x142Logo.png | Bin 5746 -> 0 bytes src-tauri/icons/Square150x150Logo.png | Bin 6042 -> 0 bytes src-tauri/icons/Square284x284Logo.png | Bin 12370 -> 0 bytes src-tauri/icons/Square30x30Logo.png | Bin 937 -> 0 bytes src-tauri/icons/Square310x310Logo.png | Bin 13672 -> 0 bytes src-tauri/icons/Square44x44Logo.png | Bin 1451 -> 0 bytes src-tauri/icons/Square71x71Logo.png | Bin 2685 -> 0 bytes src-tauri/icons/Square89x89Logo.png | Bin 3394 -> 0 bytes src-tauri/icons/StoreLogo.png | Bin 1636 -> 0 bytes src-tauri/icons/icon.icns | Bin 107359 -> 0 bytes src-tauri/icons/icon.ico | Bin 18175 -> 0 bytes src-tauri/icons/icon.png | Bin 23919 -> 0 bytes src-tauri/icons/sync-done.png | Bin 3660 -> 0 bytes src-tauri/icons/sync-done.svg | 1 - src-tauri/icons/sync-error.png | Bin 3223 -> 0 bytes src-tauri/icons/sync-error.svg | 1 - src-tauri/icons/sync-running.png | Bin 4046 -> 0 bytes src-tauri/icons/sync-running.svg | 1 - src-tauri/icons/sync-unset.png | Bin 3253 -> 0 bytes src-tauri/icons/sync-unset.svg | 1 - src-tauri/src/main.rs | 536 -- src-tauri/tauri.conf.json | 78 - src/App.tsx | 377 -- .../ChooseRemoteDirectoriesModal.tsx | 98 - src/components/EditRemoteModal.tsx | 305 -- src/main.tsx | 5 - src/styles.css | 59 - src/types.ts | 25 - src/utils.ts | 40 - src/vite-env.d.ts | 1 - tailwind.config.ts | 8 - tsconfig.json | 26 - tsconfig.node.json | 10 - vite.config.ts | 28 - 60 files changed, 34 insertions(+), 11148 deletions(-) delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .gitignore delete mode 100644 .nvmrc delete mode 100644 .vscode/extensions.json delete mode 100644 LICENSE delete mode 100644 Makefile delete mode 100644 app-icon.png delete mode 100644 biome.json delete mode 100644 index.html delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 public/chosen.svg delete mode 100644 public/logo-white.svg delete mode 100644 public/logo.svg delete mode 100644 public/logomark.svg delete mode 100644 src-tauri/.gitignore delete mode 100644 src-tauri/Cargo.lock delete mode 100644 src-tauri/Cargo.toml delete mode 100644 src-tauri/build.rs delete mode 100644 src-tauri/icons/128x128.png delete mode 100644 src-tauri/icons/128x128@2x.png delete mode 100644 src-tauri/icons/32x32.png delete mode 100644 src-tauri/icons/Square107x107Logo.png delete mode 100644 src-tauri/icons/Square142x142Logo.png delete mode 100644 src-tauri/icons/Square150x150Logo.png delete mode 100644 src-tauri/icons/Square284x284Logo.png delete mode 100644 src-tauri/icons/Square30x30Logo.png delete mode 100644 src-tauri/icons/Square310x310Logo.png delete mode 100644 src-tauri/icons/Square44x44Logo.png delete mode 100644 src-tauri/icons/Square71x71Logo.png delete mode 100644 src-tauri/icons/Square89x89Logo.png delete mode 100644 src-tauri/icons/StoreLogo.png delete mode 100644 src-tauri/icons/icon.icns delete mode 100644 src-tauri/icons/icon.ico delete mode 100644 src-tauri/icons/icon.png delete mode 100644 src-tauri/icons/sync-done.png delete mode 100644 src-tauri/icons/sync-done.svg delete mode 100644 src-tauri/icons/sync-error.png delete mode 100644 src-tauri/icons/sync-error.svg delete mode 100644 src-tauri/icons/sync-running.png delete mode 100644 src-tauri/icons/sync-running.svg delete mode 100644 src-tauri/icons/sync-unset.png delete mode 100644 src-tauri/icons/sync-unset.svg delete mode 100644 src-tauri/src/main.rs delete mode 100644 src-tauri/tauri.conf.json delete mode 100644 src/App.tsx delete mode 100644 src/components/ChooseRemoteDirectoriesModal.tsx delete mode 100644 src/components/EditRemoteModal.tsx delete mode 100644 src/main.tsx delete mode 100644 src/styles.css delete mode 100644 src/types.ts delete mode 100644 src/utils.ts delete mode 100644 src/vite-env.d.ts delete mode 100644 tailwind.config.ts delete mode 100644 tsconfig.json delete mode 100644 tsconfig.node.json delete mode 100644 vite.config.ts diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 30b98b4..7b2bfef 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,7 @@ github: [BrunoBernardino] custom: [ + 'https://donate.stripe.com/bIYeWBbw00Ape5iaFi', 'https://paypal.me/brunobernardino', 'https://gist.github.com/BrunoBernardino/ff5b54c13dd96ac7f9fee6fbfd825b09', ] diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index c9fe9e1..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: Build Tauri - -on: - workflow_dispatch: - - push: - branches: - - "main" - - "feature/**" - - "fix/**" - -jobs: - build: - strategy: - fail-fast: false - matrix: - config: - - os: ubuntu-latest - arch: x86_64 - rust_target: x86_64-unknown-linux-gnu - - os: ubuntu-latest - arch: aarch64 - rust_target: aarch64-unknown-linux-gnu - - os: macos-latest - arch: x86_64 - rust_target: x86_64-apple-darwin - - os: macos-latest - arch: aarch64 - rust_target: aarch64-apple-darwin - - os: windows-latest - arch: x86_64 - rust_target: x86_64-pc-windows-msvc - - runs-on: ${{ matrix.config.os }} - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - - - name: "Setup Rust" - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.config.rust_target }} - - - uses: Swatinem/rust-cache@v2 - with: - key: ${{ matrix.config.rust_target }} - - - name: Install linux dependencies (ubuntu only) - if: matrix.config.os == 'ubuntu-latest' - run: | - sudo apt update - sudo apt-get install -y libwebkit2gtk-4.0-dev build-essential curl wget file libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev - - - name: Install dependencies - run: | - npm i -g npm@10.1.0 - make install - - - name: Build - run: make build - - - name: Archive AppImage - uses: actions/upload-artifact@v4 - if: matrix.config.os == 'ubuntu-latest' - with: - name: bewcloud-sync-linux-${{ matrix.config.arch }}-${{ github.sha }}-unsigned.AppImage - path: src-tauri/target/release/bundle/appimage/*.AppImage - if-no-files-found: error - - - name: Archive deb - uses: actions/upload-artifact@v4 - if: matrix.config.os == 'ubuntu-latest' - with: - name: bewcloud-sync-linux-${{ matrix.config.arch }}-${{ github.sha }}-unsigned.deb - path: src-tauri/target/release/bundle/deb/*.deb - if-no-files-found: error - - - name: Archive dmg - uses: actions/upload-artifact@v4 - if: matrix.config.os == 'macos-latest' - with: - name: bewcloud-sync-macos-${{ matrix.config.arch }}-${{ github.sha }}-unsigned.dmg - path: src-tauri/target/release/bundle/dmg/*.dmg - if-no-files-found: error - - - name: Archive app - uses: actions/upload-artifact@v4 - if: matrix.config.os == 'macos-latest' - with: - name: bewcloud-sync-macos-${{ matrix.config.arch }}-${{ github.sha }}-unsigned.app - path: src-tauri/target/release/bundle/macos/*.app - if-no-files-found: error - - - name: Archive msi - uses: actions/upload-artifact@v4 - if: matrix.config.os == 'windows-latest' - with: - name: bewcloud-sync-windows-${{ github.sha }}-unsigned.msi - path: src-tauri/target/release/bundle/msi/*.msi - if-no-files-found: error - - - name: Archive exe - uses: actions/upload-artifact@v4 - if: matrix.config.os == 'windows-latest' - with: - name: bewcloud-sync-windows-${{ github.sha }}-unsigned.exe - path: src-tauri/target/release/bundle/nsis/*.exe - if-no-files-found: error diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index ab7b128..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Run Tests - -on: - push: - pull_request: - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - - - uses: actions/cache@v4 - with: - path: | - ~/.npm - ~/.nvm - node_modules - key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} - - - name: Install dependencies - run: | - npm i -g npm@10.1.0 - make install - - - name: Run tests - run: make test diff --git a/.gitignore b/.gitignore deleted file mode 100644 index a547bf3..0000000 --- a/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 805b5a4..0000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v20.9.0 diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 24d7cc6..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] -} diff --git a/LICENSE b/LICENSE deleted file mode 100644 index be3f7b2..0000000 --- a/LICENSE +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 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 Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are 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. - - 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. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - 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 Affero 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. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - 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 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 work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - 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 AGPL, see -. diff --git a/Makefile b/Makefile deleted file mode 100644 index f2909e5..0000000 --- a/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -.PHONY: install -install: - npm ci - -.PHONY: start -start: - npm run tauri dev - -.PHONY: format -format: - npm run format - -.PHONY: test -test: - npm test - -.PHONY: build -build: - npm run build && npm run tauri build diff --git a/README.md b/README.md index 8f28a2c..d71619e 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,56 @@ # bewCloud Desktop Sync -[![](https://github.com/bewcloud/bewcloud-desktop/workflows/Run%20Tests/badge.svg)](https://github.com/bewcloud/bewcloud-desktop/actions?workflow=Run+Tests) +> [!IMPORTANT] +> +> The native desktop app is no longer built/maintained, and instead now I only provide some commands here, which use `rclone` to sync the directories (the app already used that). This is simpler and safer, to be honest. +> +> If you're looking for the last working version of the desktop app, it's at the [v0.0.5 release](https://github.com/bewcloud/bewcloud-desktop/releases/tag/v0.0.5) or [this commit](https://github.com/bewcloud/bewcloud-desktop/tree/585620e5017f43680265fd9a790e04f54b4c7e47). +> +> If you're looking for the last failed attempt to upgrade it to Tauri v2, check [this PR](https://github.com/bewcloud/bewcloud-desktop/pull/4). -This is the Desktop Sync client for [bewCloud](https://github.com/bewcloud/bewcloud). It is built with [`Tauri`](https://tauri.app) and relies on [`rclone`](https://rclone.org), which relies on [`rsync`](https://rsync.samba.org). +If you'd like to keep a local directory in sync with a bewCloud instance, these are the recommended commands. They rely on [`rclone`](https://rclone.org), which relies on [`rsync`](https://rsync.samba.org). -Usernames, passwords, and sync is all handled by `rclone`. The connection to a bewCloud instance happens via HTTP and a remote via WebDav is created in `rclone`. - -The app runs `rclone bisync` every five minutes, or when it's forced to do so. +Usernames, passwords, and sync are all handled by `rclone`. The connection to a bewCloud instance happens via HTTP and a remote via WebDav is created in `rclone`. If you're looking for the mobile app, it's at [`bewcloud-mobile`](https://github.com/bewcloud/bewcloud-mobile). ## Install -You need to have [`rclone`](https://rclone.org) installed in your computer, as the app makes a shell call to that command. If you already have configured remotes they won't show up (unless you manually edit the `/config.json`), but bewCloud will not affect them (new ones will be created and also shown by the app). +1. Install `rclone` from the [official website](https://rclone.org/install/). +2. Setup your bewCloud remote: `rclone config create "bewcloud" webdav vendor=fastmail` and provide your bewCloud DAV URL, username/email, and DAV password. +3. Create your local "root directory" to sync (optional, but recommended): `mkdir -p /home/user/bewcloud` +4. Per remote directory you want to sync, run the first sync: `rclone bisync -vc "bewcloud://" "/home/user/bewcloud/" --resync` > [!NOTE] -> If you use a password to encrypt the `rclone` config file, [you need to have set `RCLONE_CONFIG_PASS` for your user, "globally"](https://rclone.org/docs/#other-environment-variables). - -Then, download the appropriate binary [from the releases page](https://github.com/bewcloud/bewcloud-desktop/releases) for your OS and run it! - -Alternatively, you can [build from source](#build-from-source)! +> +> Some people have had issues with synchronizing empty directories. If you're having issues, you can try adding `--create-empty-src-dirs` to the sync command in number 4 and below. -## Development +## Sync / Cron -You need to have [Tauri's dependencies](https://tauri.app/v1/guides/getting-started/prerequisites#installing) installed. +Assuming you want to run the sync every hour, you can use the following cron job, per directory: `0 * * * * rclone bisync -vc "bewcloud://" "/home/user/bewcloud/"` -Also, run `rustup component add rustfmt` so `make format` can also format the `rust` code. +Alternatively, if you'd like to run the sync ad-hoc and keep some log to track things, you can create a file like `sync-bewcloud.sh` with all the directories you want to sync: ```sh -$ make install # installs module dependendies -$ make start # runs the app -$ make format # formats the code -$ make test # runs tests +#!/bin/sh +rclone bisync -vc "bewcloud://" "/home/user/bewcloud/" +rclone bisync -vc "bewcloud://" "/home/user/bewcloud/" ``` -## Build from source +And then your crontab can be `0 * * * * /home/user/sync-bewcloud.sh > /home/user/sync-bewcloud.log 2>&1` -Don't forget to check the [development](#development) section above first! +And you can simply run `./sync-bewcloud.sh` to sync the directories and check the output. -> [!NOTE] -> If you're releasing a new version, update it in `src-tauri/tauri.conf.json`, `src-tauri/Cargo.toml`, and `package.json` first. +## Uninstall / Remove -```sh -$ make build # builds the app binaries! -``` +To uninstall/remove these sync scripts, you can delete the `rclone` config file for bewcloud (`rclone config delete bewcloud`), and remove the crons. + +## Migrating from the desktop app + +You should only have to follow the sync/cron section above. + +You should also remove the app. If it's not deleted, you can delete the `/config.json` file, which isn't necessary or used by `rclone`. -## TODOs: +## I _really_ want a desktop app, though -- [ ] Build binaries for Arch and RPM too (https://github.com/0-don/clippy/blob/master/.github/workflows/release.yml) -- [ ] Create release with signed builds on tag push -- [ ] Actually check and delete local directory's remote directories when they're removed -- [ ] Actually delete local directory when a remote is removed (code is commented) -- [ ] Implement directory watching (kind of complicated right now as `notify` or `hotwatch` get their watchers destroyed after Tauri's setup) +I'm sorry, but there's not enough incentive for me to keep maintaining a native desktop app. I've heard great things about [PhotoSync](https://www.photosync-app.com/home), though I haven't used it myself. Any WebDav client should work, and if it doesn't, feel free to open an issue at [`bewcloud/bewcloud`](https://github.com/bewcloud/bewcloud). diff --git a/app-icon.png b/app-icon.png deleted file mode 100644 index 25a09cac96622c12566ef62af78285d430b98b26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26845 zcmeEu_gj-^`}d7luw~W9Dk4k2GD;CpkiE24XqXx*BgiVslz>2pVOuKH2SuB(rwkq{6PhJ+ai5JuQ}ulRi5_kVbg@5u69GSQ^6ClT=i889UBV!!aYyivke;;4Iq;V<;n$tR9fEzr z(O#i5mKy^Y#k4s~H^Xo5L|V13_mY*e_Rqdyu=t#N^)fy*kHV30uK0UMTYgPQ=hWbK<(L`jQVKE(i z9`dY{K!}20C@Eh^@Dtf8_%~$gDfoB1!bQQ)6{*vLpBJLyf}fAVf_+2tLc)Tdjrjk* z_Ft6g;lFVbDB-_B0Vv`Blc4aCC<(>;lkQrJC`NmxD5f~3 zs3(Nl*pjUmStCVqIoaM0i^X@1(Cl9`oml~zK>8?EEuDfX*y8h_kGUbwTL7A>oda8QhVp?&k zx^-SOC1uWx7;RAzB!3LD5d{@VQ|Mw~D345?zd8+zSv{K|Is{kDWkuoSK2w&zC!0}A z0~Rf<)fBT*xdRm`X4Qey+3JB`l0i9h9K5XK-`*$gOExLieAdnA8_vrQM2HGOV8t^oBNSdkw`UburBs<5 z$5xQcN>d81Al_4)FlZbJIs$!65rX2|XIabS_Tw%XA9#Kq>mA)xF2bV%FRgrcj2Hb+ zRQG3J-%sGXyYGOS&ygZJyV^x@Z7xLGQy6lXl7tVr6;PLUmDkyzH(P+{gsv!pts5xm z`z*F39Bbik5oR!234MKlC>U*f?Cvf1RLzE!(30F~!m�* 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 - - - - - - bewCloud Desktop Sync - - - -
- - - diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f15ef00..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3446 +0,0 @@ -{ - "name": "bewcloud-sync", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "bewcloud-sync", - "version": "0.0.0", - "license": "AGPL-3.0", - "dependencies": { - "@tauri-apps/api": "1.5.3", - "preact": "10.20.1" - }, - "devDependencies": { - "@biomejs/biome": "1.6.4", - "@preact/preset-vite": "2.8.2", - "@tauri-apps/cli": "1.5.11", - "autoprefixer": "10.4.19", - "postcss": "8.4.38", - "tailwindcss": "3.4.3", - "typescript": "5.4.4", - "vite": "5.2.8" - }, - "engines": { - "node": "20.x", - "npm": "10.x" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "dependencies": { - "@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" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@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.24.1", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@biomejs/biome": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.6.4.tgz", - "integrity": "sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "biome": "bin/biome" - }, - "engines": { - "node": ">=14.21.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/biome" - }, - "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.6.4", - "@biomejs/cli-darwin-x64": "1.6.4", - "@biomejs/cli-linux-arm64": "1.6.4", - "@biomejs/cli-linux-arm64-musl": "1.6.4", - "@biomejs/cli-linux-x64": "1.6.4", - "@biomejs/cli-linux-x64-musl": "1.6.4", - "@biomejs/cli-win32-arm64": "1.6.4", - "@biomejs/cli-win32-x64": "1.6.4" - } - }, - "node_modules/@biomejs/cli-darwin-arm64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.6.4.tgz", - "integrity": "sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-darwin-x64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.6.4.tgz", - "integrity": "sha512-uo1zgM7jvzcoDpF6dbGizejDLCqNpUIRkCj/oEK0PB0NUw8re/cn1EnxuOLZqDpn+8G75COLQTOx8UQIBBN/Kg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-arm64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.6.4.tgz", - "integrity": "sha512-wAOieaMNIpLrxGc2/xNvM//CIZg7ueWy3V5A4T7gDZ3OL/Go27EKE59a+vMKsBCYmTt7jFl4yHz0TUkUbodA/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.4.tgz", - "integrity": "sha512-Hp8Jwt6rjj0wCcYAEN6/cfwrrPLLlGOXZ56Lei4Pt4jy39+UuPeAVFPeclrrCfxyL1wQ2xPrhd/saTHSL6DoJg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-x64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.6.4.tgz", - "integrity": "sha512-qTWhuIw+/ePvOkjE9Zxf5OqSCYxtAvcTJtVmZT8YQnmY2I62JKNV2m7tf6O5ViKZUOP0mOQ6NgqHKcHH1eT8jw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.4.tgz", - "integrity": "sha512-wqi0hr8KAx5kBO0B+m5u8QqiYFFBJOSJVSuRqTeGWW+GYLVUtXNidykNqf1JsW6jJDpbkSp2xHKE/bTlVaG2Kg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-win32-arm64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.6.4.tgz", - "integrity": "sha512-Wp3FiEeF6v6C5qMfLkHwf4YsoNHr/n0efvoC8jCKO/kX05OXaVExj+1uVQ1eGT7Pvx0XVm/TLprRO0vq/V6UzA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-win32-x64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.6.4.tgz", - "integrity": "sha512-mz183Di5hTSGP7KjNWEhivcP1wnHLGmOxEROvoFsIxMYtDhzJDad4k5gI/1JbmA0xe4n52vsgqo09tBhrMT/Zg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@preact/preset-vite": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.8.2.tgz", - "integrity": "sha512-m3tl+M8IO8jgiHnk+7LSTFl8axdPXloewi7iGVLdmCwf34XOzEUur0bZVewW4DUbUipFjTS2CXu27+5f/oexBA==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@prefresh/vite": "^2.4.1", - "@rollup/pluginutils": "^4.1.1", - "babel-plugin-transform-hook-names": "^1.0.2", - "debug": "^4.3.4", - "kolorist": "^1.8.0", - "magic-string": "0.30.5", - "node-html-parser": "^6.1.10", - "resolve": "^1.22.8", - "source-map": "^0.7.4", - "stack-trace": "^1.0.0-pre2" - }, - "peerDependencies": { - "@babel/core": "7.x", - "vite": "2.x || 3.x || 4.x || 5.x" - } - }, - "node_modules/@prefresh/babel-plugin": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.1.tgz", - "integrity": "sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==", - "dev": true - }, - "node_modules/@prefresh/core": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.5.2.tgz", - "integrity": "sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==", - "dev": true, - "peerDependencies": { - "preact": "^10.0.0" - } - }, - "node_modules/@prefresh/utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.2.0.tgz", - "integrity": "sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==", - "dev": true - }, - "node_modules/@prefresh/vite": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.4.5.tgz", - "integrity": "sha512-iForDVJ2M8gQYnm5pHumvTEJjGGc7YNYC0GVKnHFL+GvFfKHfH9Rpq67nUAzNbjuLEpqEOUuQVQajMazWu2ZNQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.22.1", - "@prefresh/babel-plugin": "0.5.1", - "@prefresh/core": "^1.5.1", - "@prefresh/utils": "^1.2.0", - "@rollup/pluginutils": "^4.2.1" - }, - "peerDependencies": { - "preact": "^10.4.0", - "vite": ">=2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz", - "integrity": "sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.0.tgz", - "integrity": "sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.0.tgz", - "integrity": "sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.0.tgz", - "integrity": "sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.0.tgz", - "integrity": "sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.0.tgz", - "integrity": "sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.0.tgz", - "integrity": "sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.0.tgz", - "integrity": "sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA==", - "cpu": [ - "ppc64le" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.0.tgz", - "integrity": "sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.0.tgz", - "integrity": "sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.0.tgz", - "integrity": "sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.0.tgz", - "integrity": "sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.0.tgz", - "integrity": "sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.0.tgz", - "integrity": "sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.0.tgz", - "integrity": "sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@tauri-apps/api": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.5.3.tgz", - "integrity": "sha512-zxnDjHHKjOsrIzZm6nO5Xapb/BxqUq1tc7cGkFXsFkGTsSWgCPH1D8mm0XS9weJY2OaR73I3k3S+b7eSzJDfqA==", - "engines": { - "node": ">= 14.6.0", - "npm": ">= 6.6.0", - "yarn": ">= 1.19.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - } - }, - "node_modules/@tauri-apps/cli": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.5.11.tgz", - "integrity": "sha512-B475D7phZrq5sZ3kDABH4g2mEoUIHtnIO+r4ZGAAfsjMbZCwXxR/jlMGTEL+VO3YzjpF7gQe38IzB4vLBbVppw==", - "dev": true, - "bin": { - "tauri": "tauri.js" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - }, - "optionalDependencies": { - "@tauri-apps/cli-darwin-arm64": "1.5.11", - "@tauri-apps/cli-darwin-x64": "1.5.11", - "@tauri-apps/cli-linux-arm-gnueabihf": "1.5.11", - "@tauri-apps/cli-linux-arm64-gnu": "1.5.11", - "@tauri-apps/cli-linux-arm64-musl": "1.5.11", - "@tauri-apps/cli-linux-x64-gnu": "1.5.11", - "@tauri-apps/cli-linux-x64-musl": "1.5.11", - "@tauri-apps/cli-win32-arm64-msvc": "1.5.11", - "@tauri-apps/cli-win32-ia32-msvc": "1.5.11", - "@tauri-apps/cli-win32-x64-msvc": "1.5.11" - } - }, - "node_modules/@tauri-apps/cli-darwin-arm64": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.5.11.tgz", - "integrity": "sha512-2NLSglDb5VfvTbMtmOKWyD+oaL/e8Z/ZZGovHtUFyUSFRabdXc6cZOlcD1BhFvYkHqm+TqGaz5qtPR5UbqDs8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-darwin-x64": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.5.11.tgz", - "integrity": "sha512-/RQllHiJRH2fJOCudtZlaUIjofkHzP3zZgxi71ZUm7Fy80smU5TDfwpwOvB0wSVh0g/ciDjMArCSTo0MRvL+ag==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.5.11.tgz", - "integrity": "sha512-IlBuBPKmMm+a5LLUEK6a21UGr9ZYd6zKuKLq6IGM4tVweQa8Sf2kP2Nqs74dMGIUrLmMs0vuqdURpykQg+z4NQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-gnu": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.5.11.tgz", - "integrity": "sha512-w+k1bNHCU/GbmXshtAhyTwqosThUDmCEFLU4Zkin1vl2fuAtQry2RN7thfcJFepblUGL/J7yh3Q/0+BCjtspKQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-arm64-musl": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.5.11.tgz", - "integrity": "sha512-PN6/dl+OfYQ/qrAy4HRAfksJ2AyWQYn2IA/2Wwpaa7SDRz2+hzwTQkvajuvy0sQ5L2WCG7ymFYRYMbpC6Hk9Pg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-gnu": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.5.11.tgz", - "integrity": "sha512-MTVXLi89Nj7Apcvjezw92m7ZqIDKT5SFKZtVPCg6RoLUBTzko/BQoXYIRWmdoz2pgkHDUHgO2OMJ8oKzzddXbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-linux-x64-musl": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.5.11.tgz", - "integrity": "sha512-kwzAjqFpz7rvTs7WGZLy/a5nS5t15QKr3E9FG95MNF0exTl3d29YoAUAe1Mn0mOSrTJ9Z+vYYAcI/QdcsGBP+w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-arm64-msvc": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.5.11.tgz", - "integrity": "sha512-L+5NZ/rHrSUrMxjj6YpFYCXp6wHnq8c8SfDTBOX8dO8x+5283/vftb4vvuGIsLS4UwUFXFnLt3XQr44n84E67Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-ia32-msvc": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.5.11.tgz", - "integrity": "sha512-oVlD9IVewrY0lZzTdb71kNXkjdgMqFq+ohb67YsJb4Rf7o8A9DTlFds1XLCe3joqLMm4M+gvBKD7YnGIdxQ9vA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tauri-apps/cli-win32-x64-msvc": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.5.11.tgz", - "integrity": "sha512-1CexcqUFCis5ypUIMOKllxUBrna09McbftWENgvVXMfA+SP+yPDPAVb8fIvUcdTIwR/yHJwcIucmTB4anww4vg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/babel-plugin-transform-hook-names": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-hook-names/-/babel-plugin-transform-hook-names-1.0.2.tgz", - "integrity": "sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==", - "dev": true, - "peerDependencies": { - "@babel/core": "^7.12.10" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001606", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001606.tgz", - "integrity": "sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.728", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.728.tgz", - "integrity": "sha512-Ud1v7hJJYIqehlUJGqR6PF1Ek8l80zWwxA6nGxigBsGJ9f9M2fciHyrIiNMerSHSH3p+0/Ia7jIlnDkt41h5cw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kolorist": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", - "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "dev": true - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-html-parser": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz", - "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==", - "dev": true, - "dependencies": { - "css-select": "^5.1.0", - "he": "1.2.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/preact": { - "version": "10.20.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.20.1.tgz", - "integrity": "sha512-JIFjgFg9B2qnOoGiYMVBtrcFxHqn+dNXbq76bVmcaHYJFYR4lW67AOcXgAYQQTDYXDOg/kTZrKPNCdRgJ2UJmw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.0.tgz", - "integrity": "sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.0", - "@rollup/rollup-android-arm64": "4.14.0", - "@rollup/rollup-darwin-arm64": "4.14.0", - "@rollup/rollup-darwin-x64": "4.14.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.0", - "@rollup/rollup-linux-arm64-gnu": "4.14.0", - "@rollup/rollup-linux-arm64-musl": "4.14.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.0", - "@rollup/rollup-linux-riscv64-gnu": "4.14.0", - "@rollup/rollup-linux-s390x-gnu": "4.14.0", - "@rollup/rollup-linux-x64-gnu": "4.14.0", - "@rollup/rollup-linux-x64-musl": "4.14.0", - "@rollup/rollup-win32-arm64-msvc": "4.14.0", - "@rollup/rollup-win32-ia32-msvc": "4.14.0", - "@rollup/rollup-win32-x64-msvc": "4.14.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-trace": { - "version": "1.0.0-pre2", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-1.0.0-pre2.tgz", - "integrity": "sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", - "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/typescript": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz", - "integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vite": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.8.tgz", - "integrity": "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==", - "dev": true, - "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "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 - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 208e843..0000000 --- a/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "bewcloud-sync", - "private": true, - "version": "0.0.4", - "type": "module", - "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "preview": "vite preview", - "tauri": "tauri", - "format": "biome format --write . && biome check --apply . && cd src-tauri && cargo fmt", - "lint": "biome check .", - "test": "npm run lint && tsc --noEmit" - }, - "dependencies": { - "@tauri-apps/api": "1.5.3", - "preact": "10.20.1" - }, - "devDependencies": { - "@biomejs/biome": "1.6.4", - "@preact/preset-vite": "2.8.2", - "@tauri-apps/cli": "1.5.11", - "autoprefixer": "10.4.19", - "postcss": "8.4.38", - "tailwindcss": "3.4.3", - "typescript": "5.4.4", - "vite": "5.2.8" - }, - "engines": { - "node": "20.x", - "npm": "10.x" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/bewcloud/bewcloud-desktop.git" - }, - "author": "Bruno Bernardino ", - "license": "AGPL-3.0", - "bugs": { - "url": "https://github.com/bewcloud/bewcloud-desktop/issues" - }, - "homepage": "https://github.com/bewcloud/bewcloud-desktop#readme" -} diff --git a/public/chosen.svg b/public/chosen.svg deleted file mode 100644 index cb75631..0000000 --- a/public/chosen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/logo-white.svg b/public/logo-white.svg deleted file mode 100644 index 6d096f1..0000000 --- a/public/logo-white.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/logo.svg b/public/logo.svg deleted file mode 100644 index 31a66ce..0000000 --- a/public/logo.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/logomark.svg b/public/logomark.svg deleted file mode 100644 index 2764c14..0000000 --- a/public/logomark.svg +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore deleted file mode 100644 index b21bd68..0000000 --- a/src-tauri/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Generated by Cargo -# will have compiled files and executables -/target/ - -# Generated by Tauri -# will have schema files for capabilities auto-completion -/gen/schemas diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock deleted file mode 100644 index c6a8006..0000000 --- a/src-tauri/Cargo.lock +++ /dev/null @@ -1,4744 +0,0 @@ -# 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 = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -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.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" -dependencies = [ - "concurrent-queue", - "event-listener 5.2.0", - "event-listener-strategy 0.5.1", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b3e585719c2358d2660232671ca8ca4ddb4be4ce8a1842d6c2dc8685303316" -dependencies = [ - "async-lock 3.3.0", - "async-task", - "concurrent-queue", - "fastrand 2.0.2", - "futures-lite 2.3.0", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" -dependencies = [ - "async-channel 2.2.0", - "async-executor", - "async-io 2.3.2", - "async-lock 3.3.0", - "blocking", - "futures-lite 2.3.0", - "once_cell", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" -dependencies = [ - "async-lock 3.3.0", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite 2.3.0", - "parking", - "polling 3.6.0", - "rustix 0.38.32", - "slab", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - -[[package]] -name = "async-lock" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" -dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", - "pin-project-lite", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-channel 1.9.0", - "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite 1.13.0", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-task" -version = "4.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" - -[[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.2", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" - -[[package]] -name = "backtrace" -version = "0.3.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" -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.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bewcloud-sync" -version = "0.0.5" -dependencies = [ - "async-std", - "chrono", - "cocoa 0.25.0", - "serde", - "serde_json", - "tauri", - "tauri-build", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - -[[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 = "blocking" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" -dependencies = [ - "async-channel 2.2.0", - "async-lock 3.3.0", - "async-task", - "fastrand 2.0.2", - "futures-io", - "futures-lite 2.3.0", - "piper", - "tracing", -] - -[[package]] -name = "brotli" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" -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.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "bumpalo" -version = "3.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" - -[[package]] -name = "bytemuck" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" -dependencies = [ - "serde", -] - -[[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.2", -] - -[[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 = "cc" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" - -[[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.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" -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.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets 0.52.4", -] - -[[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.2", - "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 = "concurrent-queue" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" -dependencies = [ - "crossbeam-utils", -] - -[[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.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types 0.5.0", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[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.58", -] - -[[package]] -name = "ctor" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c" -dependencies = [ - "quote", - "syn 2.0.58", -] - -[[package]] -name = "darling" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.58", -] - -[[package]] -name = "darling_macro" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.58", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[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 = "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 = "embed-resource" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d" -dependencies = [ - "cc", - "memchr", - "rustc_version", - "toml 0.8.12", - "vswhom", - "winreg 0.52.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 = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" -dependencies = [ - "event-listener 5.2.0", - "pin-project-lite", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" - -[[package]] -name = "fdeflate" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" -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", - "rustc_version", -] - -[[package]] -name = "filetime" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "windows-sys 0.52.0", -] - -[[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.58", -] - -[[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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[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.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" -dependencies = [ - "fastrand 2.0.2", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.58", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "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.2", -] - -[[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.2", -] - -[[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.2", -] - -[[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.2", - "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 = "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.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[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.2", - "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.2", -] - -[[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.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", -] - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[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.2", -] - -[[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.2", -] - -[[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.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 2.2.6", - "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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" - -[[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 = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "html5ever" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.11", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -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.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa 1.0.11", - "pin-project-lite", - "socket2 0.5.6", - "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.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -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.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "ignore" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" -dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata 0.4.6", - "same-file", - "walkdir", - "winapi-util", -] - -[[package]] -name = "image" -version = "0.24.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-traits", -] - -[[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.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", - "serde", -] - -[[package]] -name = "infer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f178e61cdbfe084aa75a2f4f7a25a5bb09701a47ae1753608f194b15783c937a" -dependencies = [ - "cfb", -] - -[[package]] -name = "infer" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" -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 = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[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.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[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 = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -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 = "kuchikiki" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" -dependencies = [ - "cssparser", - "html5ever", - "indexmap 1.9.3", - "matches", - "selectors", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[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.153" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" - -[[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.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.5.0", - "libc", -] - -[[package]] -name = "line-wrap" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - -[[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.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" -dependencies = [ - "value-bag", -] - -[[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 = "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.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" -dependencies = [ - "adler", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[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.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[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-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-traits" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" -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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[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.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" -dependencies = [ - "bitflags 2.5.0", - "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.58", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "os_pipe" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" -dependencies = [ - "libc", - "windows-sys 0.52.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.2", -] - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[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", - "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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[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_shared 0.10.0", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros 0.11.2", - "phf_shared 0.11.2", -] - -[[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_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "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.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.58", -] - -[[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 = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" -dependencies = [ - "atomic-waker", - "fastrand 2.0.2", - "futures-io", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "plist" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" -dependencies = [ - "base64 0.21.7", - "indexmap 2.2.6", - "line-wrap", - "quick-xml", - "serde", - "time", -] - -[[package]] -name = "png" -version = "0.17.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi", - "pin-project-lite", - "rustix 0.38.32", - "tracing", - "windows-sys 0.52.0", -] - -[[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.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" -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.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -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.12", -] - -[[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 = "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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" -dependencies = [ - "getrandom 0.2.12", - "libredox", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", -] - -[[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.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.3", -] - -[[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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "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", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-native-tls", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "winreg 0.50.0", -] - -[[package]] -name = "rfd" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" -dependencies = [ - "block", - "dispatch", - "glib-sys", - "gobject-sys", - "gtk-sys", - "js-sys", - "lazy_static", - "log", - "objc", - "objc-foundation", - "objc_id", - "raw-window-handle", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows 0.37.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.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys 0.4.13", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[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.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" - -[[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.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.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.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[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.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" -dependencies = [ - "serde", -] - -[[package]] -name = "serde" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.58", -] - -[[package]] -name = "serde_json" -version = "1.0.115" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" -dependencies = [ - "indexmap 2.2.6", - "itoa 1.0.11", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.58", -] - -[[package]] -name = "serde_spanned" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" -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.11", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a" -dependencies = [ - "base64 0.21.7", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.58", -] - -[[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 = "shared_child" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" -dependencies = [ - "libc", - "winapi", -] - -[[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.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[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.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" -dependencies = [ - "libc", - "windows-sys 0.52.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 = "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 = "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.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" -dependencies = [ - "cfg-expr 0.15.7", - "heck 0.5.0", - "pkg-config", - "toml 0.8.12", - "version-compare 0.2.0", -] - -[[package]] -name = "tao" -version = "0.16.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a794e476ce829420b58059f4ac23c2b991dab2ee552be740f931aea95ae9c8" -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.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" - -[[package]] -name = "tauri" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f078117725e36d55d29fafcbb4b1e909073807ca328ae8deb8c0b3843aac0fed" -dependencies = [ - "anyhow", - "bytes", - "cocoa 0.24.1", - "dirs-next", - "dunce", - "embed_plist", - "encoding_rs", - "flate2", - "futures-util", - "glib", - "glob", - "gtk", - "heck 0.4.1", - "http", - "ignore", - "indexmap 1.9.3", - "infer 0.9.0", - "objc", - "once_cell", - "open", - "os_pipe", - "percent-encoding", - "png", - "rand 0.8.5", - "raw-window-handle", - "regex", - "reqwest", - "rfd", - "semver", - "serde", - "serde_json", - "serde_repr", - "serialize-to-javascript", - "shared_child", - "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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9914a4715e0b75d9f387a285c7e26b5bbfeb1249ad9f842675a82481565c532" -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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1554c5857f65dbc377cefb6b97c8ac77b1cb2a90d30d3448114d5d6b48a77fc" -dependencies = [ - "base64 0.21.7", - "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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "277abf361a3a6993ec16bcbb179de0d6518009b851090a01adfea12ac89fa875" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "syn 1.0.109", - "tauri-codegen", - "tauri-utils", -] - -[[package]] -name = "tauri-runtime" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2d0652aa2891ff3e9caa2401405257ea29ab8372cce01f186a5825f1bd0e76" -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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "067c56fc153b3caf406d7cd6de4486c80d1d66c0f414f39e94cb2f5543f6445f" -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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ad0bbb31fccd1f4c56275d0a5c3abdf1f59999f72cb4ef8b79b4ed42082a21" -dependencies = [ - "brotli", - "ctor", - "dunce", - "glob", - "heck 0.4.1", - "html5ever", - "infer 0.13.0", - "json-patch", - "kuchikiki", - "log", - "memchr", - "phf 0.11.2", - "proc-macro2", - "quote", - "semver", - "serde", - "serde_json", - "serde_with", - "thiserror", - "url", - "walkdir", - "windows-version", -] - -[[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.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand 2.0.2", - "rustix 0.38.32", - "windows-sys 0.52.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.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.58", -] - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" -dependencies = [ - "deranged", - "itoa 1.0.11", - "num-conv", - "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.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" -dependencies = [ - "num-conv", - "time-core", -] - -[[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.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2 0.5.6", - "windows-sys 0.48.0", -] - -[[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.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.9", -] - -[[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.2.6", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" -dependencies = [ - "indexmap 2.2.6", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.5", -] - -[[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.58", -] - -[[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 = "treediff" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5" -dependencies = [ - "serde_json", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[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.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[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.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[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.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" -dependencies = [ - "getrandom 0.2.12", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "value-bag" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74797339c3b98616c009c7c3eb53a0ce41e85c8ec66bd3db96ed132d20cfdee8" - -[[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.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" - -[[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 = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -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.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.58", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.58", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "wasm-streams" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -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.2", -] - -[[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 = "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-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" -dependencies = [ - "windows_aarch64_msvc 0.37.0", - "windows_i686_gnu 0.37.0", - "windows_i686_msvc 0.37.0", - "windows_x86_64_gnu 0.37.0", - "windows_x86_64_msvc 0.37.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.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "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.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.4", -] - -[[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-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.4", -] - -[[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-targets" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" -dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", -] - -[[package]] -name = "windows-tokens" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" - -[[package]] -name = "windows-version" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" -dependencies = [ - "windows-targets 0.52.4", -] - -[[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_gnullvm" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" - -[[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_aarch64_msvc" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" - -[[package]] -name = "windows_i686_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" - -[[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_gnu" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" - -[[package]] -name = "windows_i686_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" - -[[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_i686_msvc" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" - -[[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_gnu" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" - -[[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_gnullvm" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" - -[[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 = "windows_x86_64_msvc" -version = "0.52.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" -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.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wry" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad85d0e067359e409fcb88903c3eac817c392e5d638258abfb3da5ad8ba6fc4" -dependencies = [ - "base64 0.13.1", - "block", - "cocoa 0.24.1", - "core-graphics 0.22.3", - "crossbeam-channel", - "dunce", - "gdk", - "gio", - "glib", - "gtk", - "html5ever", - "http", - "kuchikiki", - "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-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 = "xattr" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" -dependencies = [ - "libc", - "linux-raw-sys 0.4.13", - "rustix 0.38.32", -] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml deleted file mode 100644 index 79764d2..0000000 --- a/src-tauri/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -[package] -name = "bewcloud-sync" -version = "0.0.5" -description = "Desktop Sync Client for bewCloud" -authors = ["Bruno Bernardino"] -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[build-dependencies] -tauri-build = { version = "1", features = [] } - -[dependencies] -tauri = { version = "1", features = [ "http-request", "fs-read-dir", "dialog-confirm", "dialog-ask", "path-all", "fs-read-file", "fs-write-file", "fs-exists", "shell-execute", "dialog-open", "dialog-message", "system-tray", "shell-open", "icon-png"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -async-std = "1.12.0" -chrono = "0.4.19" - -[target.'cfg(target_os = "macos")'.dependencies] -cocoa = "0.25.0" - -[features] -# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!! -custom-protocol = ["tauri/custom-protocol"] diff --git a/src-tauri/build.rs b/src-tauri/build.rs deleted file mode 100644 index d860e1e..0000000 --- a/src-tauri/build.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - tauri_build::build() -} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png deleted file mode 100644 index 5bc05ba6cb9b8ac3a81c0acbfbb6746bf9dee534..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5161 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 LW$8Le)6o9|OifFb diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png deleted file mode 100644 index 9504df7c0f61e577854d0c94a238e896afaab58a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 991 zcmV<510ei~P)|9hMjspz{;8fZ7#$E2bcWywG{Y7_S2*5BV3!aOWCyT}I3WwAz>{re?rKN8a zHZDkK%O|I>qg;SRW8O?iBWs%KGXq%A0F(jR%+HmH_51IMt+A27XQZ-i!+YUP#f3*7 z<>bN_Vs(uZV9gk|WZEEhQ0;SiAVO#0qKEt12?_vhVhVZrcbT@Vke782hx#oOw5$O! z_}F({NrlYXbc5dt*T6YFmF+10B&U9^lPNYGYExtJcFth7Be@5b1_HtU6g{OgOudWV z%6Zj|5^_hdb;`M$gH;(*PZRZr_r}|^)7X|87g&!x6nW39WV%%chr0ei9d{P-!F3w=9e3%brAmfwS@x*ATrc92bELoL(!&kEsnx#f>d8R~c zJX=K-sL0n&Qj128jDuD+l)KhHoOnp!zq- zOaRhId%YXF6_tyHNj>0e{zNUaPZYjZ^I;k^v|wjDo0*9d#e6$O4^)olm7My@c8kl1 zqHH3@y4)lpm35Hp^hi4iij4(%(MaP+emEiK`b)9&R=J#z7Kd-=q_KQoU@e5m6bWML zntk`gPQ?-}m~aC$k70CFJU&>P#pc9C;(LEF3aEs4-pN@{D&!OlF5|7rnUwIykXS4l zoq(6ylH*nY%xZv6Zln>18We1}7FHgg9z@RYnV-f-o0?^d}egceMuBciZUK{`b N002ovPDHLkV1m|X*dG7@ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png deleted file mode 100644 index 9ca175c1759f0948b3c2d5a0ffbcb713f527dadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4107 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 OaWtWNkV+L~=zjo=0K^Lb diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png deleted file mode 100644 index 6611bf51cd87a3c8a085e11ba87162861d23220d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5746 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 diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png deleted file mode 100644 index a2ea2ab412f009aadfd40475a62e2b659a69e718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6042 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 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png deleted file mode 100644 index 14f9c9724708a6cc4661b5002ac92f02151ddb37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12370 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 N1sPT8I?3;0{{vs5#DxF= diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png deleted file mode 100644 index 7f06cc2503684466d729f3a57a4e6581c38e2d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 937 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 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png deleted file mode 100644 index bad3841a6b2d5b291c29337216959f58f79c1f49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1451 zcmV;c1yuTpP)k|Jqv9(PAH*LR(`q6mgj9_X zV)$XuA2lXoEn=umDiSIcNvl|!HkR}Wg;Kg(yRVt+In$ZCw7YFrmLOzrvf0_0bMO7` zIp6utnYBnM;d&aD>k4fca2RkHa2RkH@QnqSiYC$*e*h7Hg#6TBEf$Y_5;$ai)iEg>7@|b$yoC9VXp417< zE3$X_I@SixXNts@`)(HdX)8fDc}roK>LVE11P#~>?@woBX?dM`(5lcq+A1?1|6G)U z-_4GO?n_RX)zl|fwqB4$OyXfTzzZefwFmRX?ooUb!EprmtYQk_K>=pZuqXN)GUKI# zYO7a+NS^*!p?LG5d{KdTxqWTBws}v3_NiAwq|*bibFFfF{#-nMvRmHMW0$!!-xeQ* zJ-M@>Ate?&{N=?J0X7%gbyVH|eVcrWz4u(Pc)oOj*vo5?r!5?E<^rppDhxv zSFBYQ?^>r6yt7hSUy^~}@^hCLX1rUg9_bm9Sz;8l2wK*B$597HuB_%k47%ZJQdfQ?37=z`oMO(o+GZK0! ze9$>4Z!su=QvrYRHt{Nf?dOP5gxm~*BfxyujQRI35S1K>5f2F3Z@IqqIEHgNT1mbKFUSIE}6hxme(2k3o7> z8KF^R`3DswHy9iE&J*LL3mNQ?6B5em)Wf}Y$Y9ry96@n9e$6%>6>LU_CiFrQf)
wM|rpAv@q$)jn8j=CRSD9T9ShsGvQaez<` z+K>2}T=An?)oYhIZpxfBIpQM%J>ak6Stc-PR5zQM3KaH;4~WN0)3AmnTScfEal?Ip|vB5=61Mm_OcpIpKT$7L1a>J64M zhOsOYtGC^yY@$6~a_1_v7R0zUDr;S{g|a>Onh8Dnj;*cx+lj{l=a1 zu*y&>5h$8|yEWel`fHCWXCj2|z04Q$3@Z+Bk{JgOMwkQc6|lWD-wHzUS~Cr$5QI=n z=e=*re%SZb{i+P^n}g7D4F3Zk1{?+)1{?+)27E&U{s&)-grp(fFR%ar002ovPDHLk FV1jE2ygvW{ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png deleted file mode 100644 index d8c96feb8e8c2af6d30ae5b9bcf596585585c5b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2685 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 YA6hY5tAd}gh5!Hn07*qoM6N<$f&!zesQ>@~ diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png deleted file mode 100644 index ddd12f991a75ccb657e372e3182d32c7e57402bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1636 zcmV-q2AlbbP)1_8M`=!U!-v`5M2p`bym|T zO#qt4AQtPn(wLhFS$i8g`g@1!g`OdDSgI z6o}(Ba{Q8C^n+xK0}XD%3_$On9F`0v@h(<-rBU`PyCf%6`=DPB7wFfUK^vF|6{{X| zj7vf=K>;y1ucZyT5?ch1kb)fof>Stg{8|$vFWeS9)erzLEt3=r)rC1)VeTNdjpRy= zrU1BqEE5aX9~JMR(bCrfd`w@quc$!Fr~8d95O=XbrXfA!-43Yl6UQnsw;B~79)Un~ z2#8vI%>n(39jD}cqLbGHXNw9PIlVk^87u{p7FU!ZN2=t+H+SoMHH=&Xf|)UzuRtdx z9XuzdBe-5Thhvll(yn?`3fuK$7GIT-%u1!X41}Xw)Id};F8W{qM&mS6%#G>&;tFh=rg0E0UVe z=rI135}6J~#Gn(NNGgw2$-EB_icgCx#cawABCprO{%eoJtw*|-9j( z>>sk>?0WA-$Mv{JKkkTE<{|sTB%H^fv2ek%k>45> zM;nwf_6*xjibVthD|LV*c4$vlJ}?RXq-KvCsuEp;&fhRuv@^!8a`7zna8w|(`mkaP zNc#~{5_+^s7GMMbCC~YME}uI&gRjRZXu9nB?J+r$Jig_Gc<%58`3T9pCkA}EgZO4k zq4bD>P*2$<-C zMXRLbU->XDBv^2`zO89g zvUsHt`e0L7hJ`Q5qFA>K%8eLq)+y}AU`hu2`lX559HUzdBiU_sziQ`JensB5x>$T$ zSu00CHw}uq%K<^GA0<;q@S+K6?1$D44mmGW8?V5SXHdQJvF91U8FcCYbhJ3O^mVBT zP=@{2X$1fx*!qUuk977A1W|&bCXz+^{zx`fwA)9yRAZF^>iJGO1xw#^-L$F^;I$F^h6f@&aBL= zr?N923nN=608oLRg%Kk&06?P?E-xzv2aOF4007`5#Dx_B0HB{+AOIxz&qdp@)bwW( zu7t3FvisU)7F4E=NYc05=DY6mxsS|Tmb2M58(|zjBv7z8tQP+ZO)e!h2??keKhXD= zgYr;puK!7nN#ZTDKYJLkXfvWK6cJHCtuc|6nH;AC{b|>>qunHj%eiYhqF~SRriWD4 zH3j|V^^?|h)qRChiEI|MI8}fFCNtCxl|H7E0gygs(0_;jH5-f&7CsB%UJ~`^-uHR4 z(gG|XvDy>$C8k$`zha}-gMZ<@DATHWPA4exOrw#)?lI>K8xyWTzOz16Hdef2i1 zH8bPJHg3>F$6#s{lRqpzI3+0Oh^Gd;DnKJxnuTT9+A+0nrbX?Gw5yr!U#Nq zZ3qsjW{MJ}BEkuwt7Tu19}36|3=0B=KOz^F01hsCb=J+mC=0jVJG9gM(AHzNS(KxJ z8Jq)%<%xEkSsVKvrU>J!>B0AH`3cfaK#WQ?*HcfPF?vDz9n_05$wibK-s=~Xwr?+wVcG>jx_=WAG z%NlcZD%!=M`)id4utE{-AA%tm{aMDiLJ1DModOC)4Kv_Hfq>$d$*23_A)d!B9$T^t z zIyEg&BV4;}FxbewDwI6$b0QDhmZ?H)db^*WAsk{1dabKZ%Vpjds?Or2 z?-r@Xa0&v`%P89MKBoTFrWWJ#f%lv}330%EcG&>@Vy5=G>k94bEFmiE@K5yt(h*qR z>kIQ-Oij84A6oOw3rvAB{{pTMgBCE1$b`)DMTs?Yt=7ut>(KDd%z}>-&6foCZ7&XK zSPCkT9)qhwt=sj4dd{UpJ%Ij^5v?0}KxpvR3v3S?ryCd@ZFII$uj4rJIiAILX%&zV zS)VjJ>?}{WX-{RpiWCg+?KufXsXFiWiGTDO&#-I+K}Ud^148%r6@_?He!B9jaisV9 z5PBxU-8VB(=9ApF6u-mlX*ppR-O;D$9SGRF&5 VncoLv3nFnA)BMRR_Ew`E?Qu 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
SM_Eio&&>|s$q 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 z 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 CShy7c diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico deleted file mode 100644 index 4c925c1da47675602d16ef8a4185aa35d1531bf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18175 zcmeIZWmKEd_bwQMyS2EsP^7d#(H02~rNy-rr^TgM@dS4*?i8mKx1s@x6e#ZQF2OA! zne_Kxb7$79xpU{sUF&|h=R?*xIq#eEa?Z1#{p`J8000aC4uFLPfNm^+L@WTn65S&s z`>(M%5CFJCe@8>}Ut@1f0N^7o0KmuhUtp+mN^+Y2nM7ZJhlB39dV60209XcZ<)pPeF^<drLhJcMlJ>(SJ+6 zH*Xk*Jmp5Umm+TR&sU=cA-w6_D z-|dXk*S=jdS0~;t3bM;>&f^(}r(6P{4{p%e-XgE2)L1od^zUqsrIm2m z49=xNr>^don;>VmOYiJ2a;2yr8Nh7-`mh8RU-#{7j?P0UT6I@UAKvW=!-!72^BP`sn+P2F1FbIp5qh z%u-&E4YT+U3ed7ucY!WN?)E{5rn}co46{h;4l}Rhu&gl^e|Y7f-Do8{e4SpZ&X;C?U0;ylcCe+3g384ittRi6!0@3`08WT?80I4Mq26~jENg3tx}2jykO>0L2nRc?Xc@REusyOe9;^vM20Nz4~0GXMa{^}jqNK{1md%-p>GDr|C6 z%50;|T^9+(N}tFR<%+ogIA>XSIZ@KA3zNL}Mc}J}JB-n}tEdob0B|u_OR;{7;n~>aGqAxbRv=K>4nSgi)KyhJJ*J-p7bZ+-S7v5Xt zb8&AT6&utp!~r_kErI6hF(#S5XRbe*qiZg8%rCAmZatz1O={$hF&q zS>I~#TFvYpslf!Tc2EHB?O3jZ8X{1Hv&zf7t6fMg_AM$Mx&pp9HWBYQ{YOPz0?DRZ z&HtE>(w~y>1iKUfbh>$S6I=(r;(b`Y{(;62KAC?2*=yl@j_ix);M?+~8%!mwr2Y6m zQST}r>cq|~l=;pA?}{qpOeEU7vTdHo4GQDn|Bd2A6D{BqJ%FB;z_gNV)KbbHJ4LBd zs`1Vv?;Q3U1e}fTv4UGXMEwsC_Ro#d{0Cuc9ul_z0H*Z+@(6=G;YKx=B6jo7bEDSe zIf8CyS#PQ58eSL^Nn{RA!vnDU zsO!fNm)6y<);x|&3dd^A0)jgeLX7RcbL09i&&yOe`<1P`S5pjWmDvDVcTuP{V=I#$n7cp*UKq1HDSg( zFqNho^awuNK8AeBSV3)XK3&}yKXaG0AkUvRrJ;LhMVz{62k!sFmuAqq6;m!VgzpQ2 zezjKoypK`hwMy`xH4FpIs5IokODM7*DFe@hll+YcIl)>mfFW7wEarWZy z_sUh#M%~I8`vzgh?(tz+HtjC-PVFMISq9K0P{hTahFq6~9&jLC;0^NqT|VvhcYR*l z04Y;IfWu`6FLkb)ccNHHAw69b-PU5ezVGf!7M75iXo9G(BL>~YDR5$Hx_kyQK^ z%foMig-C%-s>HT(k7M8!9`AY#7zEK4sPC0tII;Y#sYa^#yyoar@b{8)YQy$jS zQ5ErbT<^6s!RO59S|&#Z4>N5pN$6cpwj$uaN-k&@vO*$Mq1z!vPMqc&A&GJ?6&t}P z_;=%BnEjyJ$D2XT-GEw^42t{*wEg|ALjJxE3d1b1<(tFW2;pau_NlSE%49wzI9nI7 zKeRzxA`Z(UfQF5))7xD33C3ABt$KJ34y6?OerN33;RiH)Vjw|+*k8i8=Hnf5qW(g2 zI>mXpM~5~*M9C;aZKSKl-DoceNE0Ee?@W2a@jtMlZAuU)I5g%#TUS3p*zh1rYL2*ORmsm@b{fTj~l*T9= zm)5UuAR*`9tGuJYE5%BJIRh+!fV)}g#=E9!{0KxNXo&Z29XhPGl>U28D$q{2*{@)7 zrE87SinLi;3SX3N?ZJdq@`TakNk=U^V>fF?r{QXKkP5W;m{dc^f-gl7 z&fw{N;^Lrydt1^8wYKA^-c-r0V5Fn2{!0$wT(=Qklm%MdAyYlzS4}<(A?({)#^r58 zhZ65We+4S&1)?pJACD##D;0LOnf?(*(V^*m1w23s56`tztHe-z>b;s87v}}1j;h+h zzKsQq^4_08{;1_p&mFx+aa9?uTvnZ&XCkkRzy}l1uRh*{T=^*dcL5TxncqQy1oL%oR| zbexEFf+dGKnOXyFXBbBnqF!bLDq7tIqkA`MFGVxa#xBk*FDOMSS;--O8I0U`yNht4 zXq&d!v|BkJzhAIxbSn?$WpG}u0HV8p*_aVEIflXILx!N_Z_=zM`Gd!jEG^-Rrm{BJGUQPTk^765P|WV@86UFV4{+_vzGtQAd{$ftDLcIKf!%AKyPrG-+^yS5Vr75IEm+J{$?#5Lql+h@!B>(M$kB% zjCd?lg1h5^n3-ucwRp-DFF`y}ZpM`O6o)hp_NKY3mrQ(LylNp@=DokCFgLGMhGr1P z8a;{=Y9TZ}?H`ssmD@f#)T?L$t@t>~bh|_NuF|3S(fDmDZG4Q3U=Arhy_@|=?_uNB z)`cRt_aRx0`R8kA`w?u+jSr>b%xJ#6F7ddH={O!;5XlzXV7(wH5%#?Q7c*RWeFliO ze{a2=tqb-d|EJ&al6SwMj}qe7WO66~X@78`RtKI)@;P0lod;bE@(J!3RSRQDh4(?o z=-=K>L{fSj!^!2VB_^AXX{iA{u6gH%Y(%G+kZcp0K)TcL$@>RANW7!Z9sLy{K!}E& zOc04V-;;D{WOh}qHgMDG*@N$|n7uceD2Ujqka;5gcjXyidkNU{&*TduAT^RlZT+hYMq9n=~E~McQt#{e_e;Yr+k~ zm&yKzjmy*<#xIt-X7-4ZZ!B0gd%%?~jWc)V^T@LVioyu8feV>NFGuuIe7%l8gx*vw zP)qD*nJkZ;sdFVQnFkHPu2gG6kbZGyN3wAmFNyp;C!hMX3Tv@5>5TXBz zfq27JXr7=6nOH~*i}uM~D(hk!-Y4V*{$D6bGIdNZO6k9`{D0R0pzsoUT0SyYJ%9E; zaDY7*Gn6Me~^FiDHFx>FFTX7KM}ck!+0w_6hR4ey3T5~ zeAnc7#o!WxrrbUVG5RuV9DCbv8~Yw7i5IKKH;z}W636)_V90P;ilHuM?2BK!B_o@P~=xK+=1OjArQ=Wi-`IU0Wq-+(&Z6g3F(X>8NMn$ znEv9PX&&`y06MvV(2a|5s^OxD*=57rcy$4j-3G<0DAhY5HW87`s4&Ew7GXw@o8T*Y zN+vf$HQy;4uKHATw3YyG$ay-1b*LKfZ!5fc`o$(LIQ@dHNa&=){NO zB?Lawn@bY>_J?c$%2YcH3I6BLMkQERVdW?m=))Ec<=TVLa!~9cKJ2RY%(=>~4qOwy zTb;27+1IGqBtC~R7ugi@qgDQjV+C>gt< zy|D2=^JDt*5cY6%IhDd=Yc^*x37r_e-&ccVp9>p(`5=&NML}i`oHKGc5`YvuENG3u zA2)i>3?u|}V>v!NI*vf$i`200=Foa!1$Y&-bcEtWXy5F#1)oc3WQW4fIX>Yu3Sn==0qMj|J8UR9POPD; z`CqyO^(qj;5fqtrJ!_8|ces0*De*qW%j6F!B-zu%KV^z8TAUd;Ynt{ATyAy6TBW}N zQ3m8=dG)h{io-?QyIjW2{8J1Y=Oq!YlIY>!^YlsJ(6oZ{$}!% zU5Typ`SK$WravEVz94sCYO4kah0YL8H(LE9#i5Fd{e9!td>c6H9S;5nHCr3!DZf<)by+BN+W`;TS{gkT2Q=ZEVCuCHKLLJ)r7 zm`bU4Egjv&V&eEx@onK~e{`C7AN3*RK`06xxZPHH*PYLKc$MAeqesycH0sp#xXiPZ zpwq`2l+fFlp&^G+(WZ>FVKH5w=Z#Rb&zyA$@$AAwCfm!HMj*0F;0}^I)C_J+nQRy)x8c9)4r zJ;==Zv{mh<6-X1f8@DF^DgHaacN|vFj40xOx2wLS5%CGVk~1`%IIb*(+ubieUTWA? z1k&_CHK~c1Z)~?^@<+Ow|BZgU|ynwg;iEabekg5>#(xvnPf(jM!p+5dbdEbK$V&yqu*O#K8M zXD>hQhaPz>lA`Xi!3FZTerDoydrUqt$kX2@?2-(o%5U&7u|9=wLE}3CfQYTdO3hyAno55EaLgAgV9vEg)SN)!msp%6sPe7ohgL_ zwYqDXPnL6P2+{F!)EYKAO98%woog{ca!u~1aLW1jNoJ<5Pq1vb|7~qvI2SSGmIykefcs+KpxdXz-uJwGB|rB=jJ+fp zX-q6~=c}LoJ;PzdIVNPXqmn4-wVa& ztK00G?>vhIi`XAy>_B6G@t{HT{`W3Q7v3z!dscl+dsvV#FRQi>Guftk;E@X7x+^$G zgb&%8@pSFs+jgEr9`@lFt=EzfJBQploi*Lu>OikX&*^hqR(RVbEZ$GX5U=ch-n2j~ zI<&rmXy=dy5Z4H7P7sTEFa66oEFI7~E?yOYuJjgR?dVW3M3B)GS&nb-<~*>E&a0J+ zqaiOHm`xj`(p=590{^^O_b=h&jZXM%pbH&dV03JM?BR6v(Qm}5K3B52D|p>HpM(;R z59P3C z3~9v8M3UPfekjhYgX<`~!|*PA)~giE5RVbywT>>pkOg7k+%|J;!BJD2=aVO5YhA*q zW45_H(U$!*yV|FI_;whvNnwgS#OIq@ zTe~cF1l0{Ji)#rqghx;_)(%JI|MU4Maa;600WYe8(B+?3e-!+0nWf?>c2-H|cToKQ zKNQRVL(KGnfEvxL#wvsf=*rpuSHc{j*!4$P#YMSRiE1{1 z5?6p3jR5{Bmnn^_8HOoM(EtAUpSA~oSPE}s8ID=I^Der4g?Rurc(g4^rf)~*LXdIM ziy!yhjr?B}N~!5p4+M_J3lT!@F%M!F)+8zVc_`1xC$NiDIFjL<@Z;bzPJm z?@$9>AF)iHW~CP8K-ld2DRCmyTt1Nf^~YujIg43o)E+&#@BcV9<{>g<*6@PQ(jq9! z9~ws-X0~@i^&#MyVK^yQ=STI`J)q)v?c#W6=8&trp9bDn;=hz1hoVe>$D7xD)l8T( z%pg2o#wER7!FX%V(z$LXyVDJfHy@jp+N>)(>@%J_i>sx{|gx zZOTaDWB6dx;u1&9f+ANOwV4 zM2&2?1mDkI<2gwya_Q!Q6@!X*=d9PrdO!A@<>;hf(sPhfjAk2resEVv*3Y3nHwIuo zm4bztuVsAod-a&g{}F(AY{s#}UhxK5!FYbb>)?!XUj}=Y|_E8dn^3MN zjKuEbe|4|sz_N8-;34De-&mTVYn?7&u;hB@JX19;X5AI0FX&_H5v9ksk4f0cuh0q~ z)JHb!#rh!_Z*qolx5N*Q>wvdbdUxwz3BYb|6;z#n>t5oy0M&hvG>3|M@0*wi3=Vv- zH8}H+hzqHC0R3dIC%4aCkwjPs;6n_GP${(zNd#`|PwUej^&nmYQHy&4% z+N?2ZGJa}vGoHo24*L+oHz^4#G&3iRk~;Ve98^@Ehvie?5k;cyPuttqJ&kL4LnP-_?}wj`{Ve zH;7uTzQcF8Y-aTjrIhp9x>RHra4ak@p*-0~jE?2YWYow+V|W&MzG?1})~4R1{ijn= zccpZ1?zr6ZI~$F7E z)cT!xZGv_N0ZF%&80HU{3c}8d%X2dtjNu4sbNqg>F`|1H()P3C@a{og)Or_#!D3TR zTVAa)+=iEZkI#=UHRg|MeLP}B?W)xwG3up*^$B6?2Q8iaqnNX+=^Ca9h7 zxZ?P{tpUDFNLt?|YT%Yc3E1~Gmaekm4%UnAag32V9EF-Pd$=T*u8Rju1)vv-e>3s0 zxP3xATImYwwubQRTrYTPA2>t;*(?|nv-GBwKQaH&Ty=1^@)Vk*zSZGQ1)f4|so2oI@Zi#0R_&5hsf(!En zy$-3&PN@7^K==K_y#u4RsyoOi-*IfSu~b>dKOLiddZW=vqj!BHITtn?p)1E#YQpApVcO|O3{fgPB8D3>!nZ#1f=nrQDw8Fx19T8c6D)K2V?14$bSwH*c+rz+? z?P52`rsaO;gKE4mEPO&nVxcz{WHg$b#w|C#aQiH;ynV$R%B!KmSL#ExZJMEBNPzk* z!90B7laOjtthLKl_zMU1>G>zP8x~Qgu;w)#x#C^9)Aiw7#shvw%_srJMTMkr2h4NR z=Oa0SIFctr`hqcwi)K14UBLM8h664rW<`9%+Weei0!?(GLgJeE8zE7`pf6w6*$x-5 zOZ0E-HV=Q$#~;CzZ7?5gA-+I=BDc#&qV|fSVJhGt(4*U(h?&PG5+mOAtz*C5q?h@; z&;M>@357BjS1djsovSw)S(tsv(G>hW5?JUq!8P!ffjy0-{bK*cK)rTR(LIKjxvP%k z&ol$Bl=qd7-YKSpOBhv2yHiN-YO}$CmjXP12pa6>tvOSe{?5|U!^aht214CBCTV9aCL2W+~u zCSzSvCQZk58@f7&Av~g-bv2{v^;V@oyp^BmcWK!@wno{TvdYhUOf$i8`b0XkO_e=z z`O*VgNsr{An@4hsr{*=j-pQT^TefF{INTmK?9^;MZWRJLc=~`1hvqk@VeMwyq$Xd4 zsjyg9Rd^26EWjFJj;Q34g$pRZvG@xKi^#}F4i3m_E4!yy;QF}_6I2N$W3@YSp_oZT zQ&ad|7yVJWh9Z+4!=R30UETKj-iMt1P!s+ zW05MCTczAu@alk#yC{W^P|)X6&)1-#I!ea!Kfji+sr*Hq-C6(Uwrwr7yEL^)@;?7w z)J{PxwUM^kor8+Bv(k^_-c$?HaqYm%?$T+ zu(;FDt0xjHi9cAawpuR1cC`1t?X|rRBy`d_v8w&kB&F->v=!^@8_kDST$?4sZzg~6 zC!A@$HyvcD*{n^hc$fJ^d1?bmu+_JzZ)_e9V?)1Qhxl|man{KGPIs{|D*!Nzr{3b? zO!D|m0>^UQl#%c98BxGEUZbdA0aZ4G-<+|JYr+tYUu@V0Mwdny{2>fE2}(JOs!+di^w#@oj%eD!te zqp|q30bdKzK^b+!q^CI76#@~Mem!i>LeF2zL`H_X8E^L+d?P)v_UyA2Za2B-E znOVPj?8C2ij7V$IU4~2<-UlF|6zMpvb@ium#G8sV*Uh6k8^d{WOdq#q&-HI*Gn<#+ z_B(h|#Hk~3iT>j5KG&*%O`a&|;xutKSiB<9P?jNE9DlOATFu$Gb4BNsf9xe2;1*q6 z1Gqfup7e4No*DXataARI0zg{=SCjX${;_}lb_P|{F8t7w8DSntKQHv&pJm}2Z2x53XvX)DN z=t>LN;4O)J1WQ;hlu0o$S+_1>mR}RrasK1~RUTj6jhKt-^3?Xm>4w*%3bX1_MzZRY zPT*K#V&O7M2)^|iqukEHPkc_h0QN0nX1Uu=oL1=ONAKVJC8ZjBZLYRxSw@5Jsb|=r z%Ub&;aq2Ct!==^lcuPcKax4-HU%h?*78-w2{_A>OF9lX9P=lFKNUy)q?%Y86;LoB%}d={evOl=I6B|YNuwwuCt^e}d2f!~?8AH7 z*>DXX1uViKi|tI}C!#;taRW_^c~aKv5|?=+6v zS-);D;L+qw`CeHwW>f#zYwWdUwddDq-8&-&=2pKXo~KuX;y(iI*U4mG)AX{=X&Ld% zko*mDfBH_In82>$MQ;~ACTlGe^QXk{E8b7CcPmshEv@pgi<3l&r1eA2dkLS%?*otW zQr+hi%lg=WwSu^7PIk*-p-JJ#7yaS050M&W-pl#`Nld7Yy+b_5{1Zu3g13}g*fBY~ z`F@&<24VcX`>AzgG>`29%h}(-7w4_oKGjVmBF!iD>|Q>PfK!utRGql4q2VD~xF4c8 z^g6?en)8p9jBeRr1inZ5&#!xhh+TR@A6#a>wVwyRXmBz98-Q^9JUXShwc=}ts8;>)=R z`qs+VIrFvtPlT(mp!siJ45gov`IQqE4e~lKfF8CXo<~15W-tZ9B8$93jAs`Q+%Ydz zjov}7{9u($Zu&d8UD82I%1u!vodrTywHqNS=d~h@&9j2;oz{_ia54I;4Z%5Wp@GKl zdzI`Xt0(O&Uu>mQepK^l))3L+V#Ease{JR<3W?F6VIm7F#`0OBi9dU6-i-Q|?%Uyp z*@Uwd)p9Ogqu?Y%(X^I8uDP?^rAn5F6A41uR!Zz&H($?o@GS^{UCJ5fg?3MVu;kt9 zlf?reu^ljMK*(T=E{36wIdQIjO!KOLW!xT zWE=g}x9kma34>?H^#$bSohJqKR`a>=D{;78B2L6rrPJlwW7P)A(uC5lpRX)&zZffE z18uS){)5eaH`<4!H`z{c63qsPMy?}=bjvIABh@EbWWc*?%e&24+a=m0&Z($x&JQ?* zo#O@tRDh$$+?~(8*JVhTKdj>e^59LFK0TNRX&50K54`#k>OWoDDCZ_G zl7HPG34w_nqN)f=lw7FOhmP@^b*my;y2a-%${1~(Yck{4lXXWhh*PoOvz01hu|awz z!AP|b1;Zo2+IO83%ok?7CQqin1?vMyeow~)cr$Us8cw)-x+S}W*M^dS1yx3s%mtCx%kylRB2q3QiUd&NuHnI)aa$Vnj z)^@hhAU0aVkrLXINfU(kOtU2`&!+Dupy$iA8C_&2aJoa&p0g9UX2khD)!iV)ktjtk z7o?nEktIW?=ID?$ZzT8v$4gqh_4Zfjl+l?HG9twMod(sBv!n$LOB>T%A17p&)bfKB zkLb8JR-1Y56H~^;eSwy1ZA6mpO$--h4C&t{D>WLH9P5+!_9$TBxn${|fpVb}s0B-N z&vjrl*CaKK1mRdaumYsl3eNp$*rb-z*!*^6K^vDtIAr@YmQy?a`EFmc%`>Cz(%?Qv z4*@0+nf^Ci2h5A!`-&JBKAaxwcjRz9oRTLep5Tv;Sq{09R!N?#@|%=Ya*6W-;|G#- zRlDYwOhIv|-JRYM3sHAZ8^=bv{(d`wsgC>#Gfvc`f!BkIK(AWo1yJ*eNT(9U7=isE zOI+(_9*>tpc@}Eq<=wPH%z4rX%~m3uZfe@9?q^T;&1IJOJGV49$E!P?I}+Kb-XAgU z=YQ4L5=SU$v8QGCqGcXP)tc1A?2`0zmBnx;J+sY8wNuID*J{giJ(RDfhnk!5r~C{1 zC;7g-jcHx0eY?>#9g@Go`y%%UW-~=5m7IKa(5zueJ6%tIH<_BcHCX^_M#Z#G zGceR`YteFMIYyeXEsWcgI6u9FKgJ$j#GY-sPAIA#oX$)D{~Z5*rf5DliEBDKY&Acb zd^R+-D7D!Vo>ZY0vA`x6-4`dZKhwIqFbM)_+q<_7DsiO?sO6yZW{OlYG*-ABk0MH4HjGv| za;~Yn&9*WZm&>h3G2e|!vcciBtN?E(32NR#_!_~@kHcIK;mRd;Xewne%hjbD|31Ip zFHyPgyFcH(y7|jQ3)<5&;<4oeG)|f%$ttYu)1nmjbk&$Oo?Q26{y9bo0*y1ieA(fv zx&Dhk6Qg2wWwdb)EPX1??>2U;$UA>9QeaW0t}R%AEoB8Rv&kC1s*ijc)Pe_58(^HFSjcFL|;N?+6hTPjYrY&Wi>{=-POG323= z%8R7=-g9aCqd^4H7vci(5E&pKa^q^6D`ccWtW>n%trWPD$H;JsaHcFvittg!Kzmm| zvKV#5jlFA*s&4(|lJOwB(6Jmj3AUz+ICyJndP(S$@i|>tP4%3Q z;U?0A*LkJK3*pj`nwOjux+pZgSR42uJCcVEL;DzCe2G3rFpknHjrj9k-j)^GVyy zcZg5824-?o&y$BUYpeiBKL1znXGCO9ePTpo4pi4oLucTR?`AyS!h5B(*+Yq(#&PcM z(6J&+-DYRSab}M?pDn25xUJR!Z}Yv3%7>1*4@^LVKjgoEd$neKVjnppwIh+0f3N4G z5f#n@2XF40hKV)hsF%29& zQX{@e8~l#fTYOUPA@qB0*xluPMYpY?b8e@aA+}0OVUpC{jHapmt?r}LsO&NWhHnvd z71pWH7CC#o%j(mC@1arrw#51Iw|>2tn zOHw3y%^WZ(VKH-*%&`?!xlTn7vCONqc#C(fk73>Gb2oPJiC3p=&OJ|*At0-brJn7% z%KJZp49PzjAiM{p=nRt{=<&zd^=|#ecTF*3mC~|!Kg4qBgDY0wjCZ)Kh@OR_IQkdq zqJjSBr_MPqB~-B4LQ;MAbP8wMeT_PL1nL7^K>EbsM1Fq>(&ji ztnr1V7uDIDe$!plK!->auh-O!(r%7V;H{qN#Q7Objs_QYYh70Zswc}%ghB$m# z94D;qQZvq80Hp)(lx3oA5En0?5;Ppz7pLWP`q%sByf<^JfyPrTc|;r=iLMb;l0W)P zH1TcZT>NZibl0=5>SAir+>1N$Rs2w{b;j$*)NgHV-INLa4}Vy<8Hk>5+1|8;FgG{N zHg>Zu45`pcdW!v#Lab9#L<4ZlG8{8L8@;be9)vgXml1jwN+0F9PcZRzX7GRytI3Fi|AfooqQgt($9(8i%g%F5oWGlS0<_3?^bHqGy!s53f7xpzii!zpDR5{ z>!7P%bXnK)Esqx0t10wlZxYj^Gbw;9mvhLK&m+s|j2ro5p@YE=<{Tv_F}^fD^`8^4p>_}@ zL~Md_vTynPuQiP_&-2PNsJCQM4e1N2avibv=C%40*#3Q6f+LW2g%MA?u(nFR!Y73f z8f}TTm;?;2(|XhqDhEB7R{Q*CL4D+Gipp= zcg|Rxa?HGG`s~9|XA;QzLz20}#Vcn{kdv7X;Q8StCCD3!X>}#}+S?*qT!e#cl>{`k z!wCq_9viGR+PT%wn^9f$EJyU+^ zMIo3t#&kjPswG$F+pKzL`H4WATw7HvZG#H#B(?gTh(UCtWiCUDORA4MSa*pLzoLUQ z93WRh^tcMZ2BFCi#28C<&RQO>eYC4NijPfkn7l8v=T&cJ@iMl&I3+4sG)n4otBj|M zto1JI(SvM5Mf_*N5B>sxq00+T#Ar{*_G5QvX5;M@1qZ^m6==V(oI~v3-xzN4cN{5E zFAms4z5}H`J{bqL>G*6N?eHa0?fP&2I>QGvUnk8({b+*?+RPA_#5Lsn9MnkH$@T9u zB5yOin>QN$jA7~>4b7gi1bc&t4m5OETXM5M=kgaDPK`Sg{9xeXj?#+y=6L@S7nQ~&TM42?jZmdu z^m}BZ25)TD`l1#BC3y)+z>dM5fh2`8RJNLd{uA(XM>c}$JAWUU6vmqq&Pxj6mb;3k zEXUEOn{h4i+Xq=kzXKr$XbAhSlmwc2haNu8!OoDrp9U=}EfUz@5m=&D#1q#BAofg+!ooU_)L3$g2LApKZ}xz{v;QvA{p$ zwmL$O{^_N5ED|Wg26XBu4XSUv|ro1t~QScP8*|rvWq*x5x!civRfaVIh zsoZNZ85-`s_PH?QIUp~lU4r0_CT*xu&QL9>e%;cB#GYB}+1EYFzm5`mr-S<0tsM+Jm|XvZTv^WIh>mYsM;|W% zeV6LaNzsWzl|u@uijB>;Af~nAo5uo00E+?=mMfPwDH1{2GaPp8TRIi!Oa-&_0?9+@7jvhq@;z zdJ{<|8jT)pB2g2Z)FFlt-`r55A%aV7aZJtWdOP!sA;WW9(w31w0lDtRQxoJ7+vUYVsHu5}q9zO*GTgG4bzd zOcf)FI3BaL#=S+_%oG(2^8v9tbw=lyH+{f*^mbjhX=<5FZ z&CMU)QQFVTpl0AoIVah02)dRk67G|LWARC8C&@Dhigd-x?a9k zk7~=1SSql$>H`vfwJOxxC4z2JYlw&$mED*+<0ooQbYfNo^4W-UTEFTYV;#1l!Yg{u zCeZ(Kca!X$5F+n`vtubu-{L&{O$!_oI`~(}Lx%H6hNLl==Lfd5ohs+oq|arm(>MZt zA3VNUl4ZPM6>XM5tj}H?mA`N@QdTB?o7hYfuIz>#DNB~A@q)?6EC@mSqvr6>FKqv> z_!Ol(szAW~i#CcZvd*>3UCwxUWtVr1-a`?Bc{WoTgxWP+vUG}Y?)X35H5m0o95 zf3)H=e&5Pn<7LvDA=ak0HT%EBQk9ve-SQ%Z;9At1BmA_8y|3%=X`)tIRQ}@b!fxrS z^%jSc`?tzppXG652)pOaNwjMsIB-5Ya{kc`NLzV?eZ|`*N=2Q^PxsaW?0`^P=AZ2l zwf4{LubfY7H-Ey+)ejlp2R39-w{ zq!J^otW4HhXMkXZus+w3WcbbU(p~kKJb9uOcCbJ5c~`aC7_&+=#;$1n$5awIAaZLG ze~B97c1314=34bNeHa!G@I5!nm9BeNU-h7o*Fj(UbyHYsr}RGYhl2eKzYJw2so7hb zk59LjYDF9Cg@7De)p&dZvIi}G81_;Ab=nQoDh-vWbL~T3?T^CA0tjzqWqg3t?8~kZ z-A4f*O}yGjep8^E8bfm#Z=SF9q(eN>>hM&|Crtx@ZAdp@&n2 zL4Z9%8G#q|$+Z+fm+6_QLHy^3TQ;rq+XHaY?q4&dKc&8N79J9|k#v6AThJ1V*x+@T z`TEZk48 zBvpeWanHa@DIBhlQCh zueN|ytfrET+(?_ZRcGp_qph?j?8OxTh7q&p0NNdk;UN0HgtrGSYaN9ji2K(BQ$6m;1VY zf5dz6oNPJRd)DZh^_iJpn(7L8*p%1+002)(@v}Anfc*N148TNxz1{p+cmx2<1eHF^ z=>Awe+rY{))k~Iwx?lL|Et(KE)LI7p#}r3G_~sL45b9@gO&J#o8Z!BZ%EDc4wlXk% zVd2!jGQPsLf}dk`>~BWG=vD4e2{Gd&Ag4;+zSZ~VFS+hpmFh&KLF9h&~OH%vL~WiVD%Fo?H|CJ&)4G)#q8|q9{HZ%YEmxX^fGoUywi%?A|VMZ zUC(=$N)o%Uj*$tf7y zDwcqce{cVme=l9a>kEs6-_=?p>sB*VYqU3k2q|;FcArrdWFz^qK0QV2b17LDu95H8QkK)nQ&Lx5C$kStMAAi5=2@a{{ zx_R5BR3jdzPsH|;fsl9KvR@_PFg78Z!C_Q5PPQ>L_WA_s_SFWhCLRtO#Rm-5x?%-s zD<$VS^!fq0A-=#G9wJf!fCNLh0_Q!{u)T532#WEqgc{=t;5j=SXnY>Ct|qz^Y-rna$(( z)fG&)3lmz$X0L z`TK497v*WY7?oWx|8XTBw~KbkjQjLrkcT)J_j&#-&{IKw-LX^Ziz!ITfTInE{wJ(n z(IwRvWKro?75(DYROK3%0n*};IE*qshFpe}Yti|8D53*IMP3and{oZ&H=g}qvPW{# zz1d7{a{!rhb0gi>m(7;OpebkDW|R)AdqV_3PL236Ie+K~bVb|V&yknqYi?js8NE*e0T;FTUI#DRmA z8Q!u4PpHlcIeZvB0;MZH z0nMAt#S`3#EqGU>d!H?)`vQ;Z@!d&#JNhxdiKFkAbkt`+-t#*ozz-VjgVghfPY%5` z>9#wfVqfj5eU^!+PLtO^Nh&EnIm&FcndX1ctF4UxkN)70{RI2yXRfUUj+XlD7@zzR zP?fUiT-^J=)demJ>9RdZ|MhRts(`%juRj+4Ply&k^hyj;00a%ie}`R!W(Q8^2657v2&rLR68k-%>M zp#tbVZMT7XD(#&)0vEuJS<`vjBmQ#?R(v?&0z;4UTAA+_K_;rV(-}r}ysAhOe_MEl zJ6!YSqV#_8K9*wB>w9rRa19ceHy9Pr#p;Zdi5l3dNq_;z#(zdYC#|ej{U~yow~<+b5peQD0V?td_gHOvN7z5_azD-?el7Uo5~8et$62t zUKnWJH6Q5An^ycc-(>41Ce`mY@q(A&UzLfFnDr7$NWHUi(?4o&-K;d;1gu!<|A$N3 z1nIy6Xfh}Q`cw!P+VyyL*b+z{;qLkEu=v{p>lpLIinp*>5+&4iVE_f|OlJn|OXtU9 zhtw!6+SL9;rb=An2$U!S02>w)U_1H7gTTrX5eWa6pM1CAxBRE|)Ts!^%1Sb{Z|kk4 zAb4!Ji0V28{bok0_gh&HykUNUMP%%)!PieOl$i`j(&3+88Hr11LS=yS27c=-?{aPL z&JkSY+2>HSX``N$N)?g?GcJCdt3jIl1s0uA^t8d%0fM&5`|s7yGr3tlm!SiQi3kBl zSF5d$R^U}{I-yi9|51OjQajx=&s~6}vENTdJ?bpX&oa_GaF*7xnS#n841~ub>TS{U z`{_k6ZUquRE(jIS(bQB69DBH&&vcBv5V!7Gp0StGjlYpmn3GZ?Uj$+|4CKA1CU?8X z$rjMvcnlit$Fq3sSVmn0fEiv@VWyw&+@7p)c_C@dZ47OA&=SncPwz{9LVJ8r;W;1$ z)zz-(p`>*CeRH`@-d*^nT!PCnK@2z&Rs`gY+X1hDUC}qyvBO)AqF*G<;yv*KmIrR& z^vNqK2Ng)q9j8tOu&S@e;|LdfX!dNk8QO4n4BIS#+VAyi6(y7C1}qK#We&fAip0 zM*?%_&uk&q0}FuSG$2O^%k}LpM{*QLs^^Q=)rF;H2_O~zyIak2T0$n^v~oTKq4mt+ zMwlmp)z=09TL7>C9=;E01FF)qSB`?uW2V=UY|dNrT;T~IGI~Cw;IOnZU={qVu`vXc z^MM=(1BsgRmDhQ!=hVoI!55e^F^xPgq7P3v zS@E>Fs@LV>X342BUHIbw(xpuEu%?12fu!COBeBP+a=$NXvsSyusSOqe6E&m16G#(IHGbH65voq_B8^SI#lbE zV**dlDo(YT#NG70ebX%1hl>Oj!h2efAJr9eHu0r9C@%5PqJ+)NmZaqP;ct}*#8TkJ!c z=S!&5ejjcwoevWdAe`Wp26nCO!*p{aX^nTk)D07?wOeV?VO_uNAjD3AW z+S7&rd+KRu&6Mzs@jw~?{QGsM9?QupFnvr83V6soT)if%iljR=T4WCC)l;JOrV~x? z`{9Dbc;YqgH<|3Rho5dhimSED^QkC_Q(xIgr+Glsp zeMhy29=(N$`{bACy;2|eNLdje@GTnu3IvAir zOQ%jR3$i2+$EK@ByO{T(#sYWcCDH!5Hk?VmK1*!P=_YMd58S-_jv9gse%85)Y7nQe zE5E&sN|AS()o&ppJn0$!-~FJi0qx&-;}U<#ye2k`S3Z6WTh9Efn6efs?bzyX8-h-> zcY2jr1eFMIJU8VM8Mwly=OUMn;YOg*uoPWJ;cz(jI zKN;5^57RQ9a;$$u75O~ z%oB0MaA!ykaH*ytv=#fRS1ob2a(1Wc#GY%stSaHq;4dxmF3$5#gkqaI|N1PGUJTuB zfavPsaw57h7?OxyLHeEw7drIn6-LTJcOS=FR<<7%{`I=d-*8bEiO!3IAk(q!-)q}_ zsx#ZZY>niX6@;b4OjL%KXdx( zdWiez>k#iO!I3kXyt<$_eGan704vswxzwC3wL3n7KfM!nPxsFOHby(sZVvn@OFgJ7 zDAhHd-PS{zx5K*_6&UFF%NjY;zwoTq&M$%`Fu0Y-RVlX}cQ6!QzTgLz3(L5mAc^#i z*E*drramIBxROk?9i|>nSe~Y6Ztu<}Q^It^_m+$Vl@^P2bkSgK3S4hPlZ|d)#A7)wweismwDFgovTLMn_tGenU7N{lh1$sly#8(%q80~ zA8;5o)0-iziAXmotUf!ZQa&**MggeYg01NDnrr45OhN6sG)t!i=l9}{n=RjRA4YP1 zTI*fKPlweE%uo;_adN>+e%??FS60^MQau0nLE_D}z-t_8*a?_AdmOm@c z)h6RE2)vbm6^QJ@56=Wl?$_@157{_FFy=q!Wp#eDM0wX;`s<$&V~E}Il%@uS&=4UX z3Sjkr`Uojh?qfcL4QHO!NLE9Hw*K>8e`3=#*am( zbWjT*X#RA2fjwk#bD%AOH=qk37ycTtf>CL(64uGogr*~DcOPLZVPjqaAgrSXw%7vz z5ka}Wl(0oc&)M-idk0ZP8RI9XJ&+BzSf?Cz+ext|iLLF<=P%I`4?$!TsjZ8d_ukX( z@86}&-sy&sP$oO!FWN8CA#NS}_Y3_J6F5}CJpcd(79h#AV-EO5I4uws0|R=6-Qgr> zFzAFa!u7P}@u{vqcXL8Ed#PyrZxa$1m0P!Ck{%MT+*9qXN`8Txa+p1awBN$!ajYL{ z#wS`IgtKM~6P%;Q8%@A;?xtIx`pZKWZJg3+{DFkXp*8=H+D?K0HPOK{>(WrHu1(vP zlnB>&d38$Dqs1K8M@I?o|KJlg(@VYMENIZU!d#qZvvyY>TZTGcvDw;`!CZg0knVN` zyj#q&_mxQc))J?-c}Kg>SS6++>Rg9oYH|GxGJx0c*kl>gl{A*SYT3E*fyaE6D~|{- z*=)-#NsCy}rLwo=)61Uw{0&(tzLp=%i%W-80D~yEV$5yuCl2S?Wu)f?A>YkmUa$~qr}RHYU&T0h&5PmX7tOjo5`sH2N5sdSCyQ*F311iu;%&O>;_HsM{>sf zOAGe=fugJ_jELpy#r_;_sz{6 z{5*wPG>Xbt5#hA{x%NFaBBFUCb=nb2ZKvrrKm)#TvyqWxqe9ZL8X$@_I+-|zP4xzPNCC50;op* z<;l|qBUiFos$C|Kmk+6Ota}Jar9`Yl|8}mr<*_n0W6i>1Ymw{Zjw~)xRfNf_UfIjc z|G8vkXQlK;O!#RpjXEU6fxYWn@!%4vq@YMa>hju{jn_*4q5%J0u_wR%tdp4d#LCX< z-1bHax*)&ieN-{7!oi+|CL2vx{EehjtD-vgqrMIeXmcdiN{2-^lZU)~DLi5cHOM$% zN3l7Y&ctD{a(O&_jr!B$~?v6RRN=@8dV+An;|{5b8bhy zJI-~=pm{!=^*}2MVZhm-ub~1uIUj(o*9Ad0%wk3LgE{cO_F`6`DRo=BJglcHey|2y zH7vwMZZ3Im6PGa26B^M2Pzk@eD9v4T@OKj9vU-4g+NAF_v94^ZrX>-$ugssUj`w|q zCz@ewNC)@iPAazj;^D^5M;G9jL!QG$A3+*)&*j`kcR;%(<}fz`5n{Gu~a6Su}r4 zu8STC*@cz20v0sAXcx%cSuY_xKNyW8yf;lf>eo+umAje{?xFdG{zUI!-p256U`Md7 znI2ko8owbI`J#!GuQuK7#2+M&JhRYoJh$Y~s-jH5sPl3NDjjIMaP%cCXvg%fJQtJN_$QFw zMX{|X=2y?lqaA{F`J3g(nphwPp+ZmEti?9Vi`UKVUaP>RVS?M5qGMh~#td%+^UGK%Mc+Bf_H=8>br}hxb5@c=XXe-J_OLad* zzS#RI`t;zocd@8pT2h18aFxC4s;1_qBo}X>E5C0xO7Z3hVki{x+V>E|707?T*5ka! zF*zM_mu7pi*;2X)#A@QH$=H`E&>xWada3Qn@-*I5x}akBpVYx9kKKRB-m2#AO2|c# zVu)siQc&{Vg+MDWH^N3y#fE$}N!eus7I<4%%P z_ZO+Q+R>iGrw0tu7L}A^B%r*b%?j@Wo?3=yb`bGbaD`F#?nguam_deWXoLg z6Ib&U?itit(pW z;`gYC7@wClW~76EXeYZ*^Fcw(Vi=|*;E=#r>Um_ACV7e!0#$6kEx;l3!5w|hgok-{eP>zu=d~uz-d7EP0?6wu1?SWz2ECv z-J#78drxMOs|JY=tU-^3I=6BLG0OzpTh@N?9i!`6Ig?Y?hdJRQQKLYGDLwD|2FX6T zA6spMAs!8zK}^V|AAP8(vnD6R=P2|%7!P}g(xI3GCqtm$V6v5aq^ z(8@G|9UhQ!y01GRL2pT&%T&(AYbUkaqp&UI@AymF4CgJYx<-#pa1Y$E@Rrf;mMO{T zZSm$0Ec3&4g;!45v+rx~TH{_uHf9He3n09qKb3XVqt~(ji=agux9{AHhK$gT7k}A- z7Du9`m$t5CoE!{B`WcI|bMHjGQ9`x^d=Y)53qp*Hk|QY<3BRr5uan>MSz!yb^RDXmxksKQUv+_a3 z2{N{FD>$^9+n(=)q!+jnpMtRZd);y`sbzmSb|7b-fA}kL*s(G7IID9xZ;A(-Tcxr5 zO<#_lci(>V>Ken@rW_)@`inyb)+iN8@prn<5c7r(lac*{v)t?wDb~m~=%T`-Uq0^0 zH*p{JsUdu(j;p=x#7?TRUnu|KqJREz^i15l{K<&D9wY!6G&ybUfhqDIZpwM3MTmUV zRB8rixq#w=D)%vc$zjLvd4O%zR4)9dp1ra8nU?cLbKK67FV zW^G21xv)dp<7!ZfWd%!&YUx#tu3S5f*hYL@X1Hv0NdpbpThfs*0 zzHvv!p{_r+(vee{db0q{uSU0-*oLp=+S$|l+X5}8#I%5Ge~&8wKbkwpg#_tY7&)c6 zH>_)4)!x;P}Du{M(l8te!O#L!s4>_k&83^GBo9AWp^=|2Tz)+0xFxr3UO466+ znAFI^OW6B}L6ga-FjC5_sTUq=hbeotuR4{ET`XWVHAAxA8a)9V8tEgWt2drBpv^XNm@)LBOb1IsZN;% zl%QPpoa*|N6NkSZ?-mdNvxdzvmNbM_N}KFQMao2`;_?!Fd6|!D4h#AeVD6t(IO!gy z(zR$*yAQ8kiEIDU}|>h?oLbu6X-Nl*U1yk)W-q( zKI)|%-~Xc(EAB}SLmQ>gZxX6+BDI>nf(slAIZMen(z7e(-ENf^=>Y;pZEq*G&pk9G zOsu}a8Y%Q-0C)3KL2H-Yi;^TbHdJB-_@aB zK;!PL@RneHN$L?UmfnP&SJ4QY4<{Ic%p1%->N;d#1Ff3#y3Y<+`Akq?@cy<^ZQ ziI-tz;>r5{m*0+lr7>n%N@E#K8WXy=@2rBnv_iMe&jY7tRsvXKP@kYg%L0Z~R}sM6 z)>8MK-Y{LQQUnF3--M0bZ&nNlhAD+n{#F~GiV$|ewJ(M#^hKKiCtxrZ-n_F}Ju{C*IScY{|>w&xC*Z9h%m<$-gVHgzQfS6E^6JT?$ z6v8!JWb(F`%=HA=j(HGG_3V8yf~3nsz$zVCuY;3t%Xl-fyIAsW1Cmdg*fnLg2O$aW zM)foz0*+$z+IS@SqdvbKyK47QN$*yBo>k2EKj>ql%YPQ{&OLZ4AGnCyN@c+a6ZQTS z$AYAs02b>NS2Dq#!3f9Dh89*tYtFOZ(=|dW z&<5r9U^=;BJm-Bc7Y^s>dFqwHTya~o8oqB6=G3w6ZfB8uQ<~X2zO*s%mG}*l=&^HA&GA4Kns$RBVnQ`b);4*zE#W zvUg_5I~d4-T`6UBuAKG*e>?~aNfw+P^6JG9g+z$(teVF+v&wyZEj=^)xj9&to_;UT zfnhG`+OT_I$!v4DYpt3s8)@(5CDUDl-`|2P&Hbk#jlr#|v}GB45_DhUF0^)-2nUIU zeY1*B;-n0uT5OlS#|)bT#Ua*kNEV*gmusY_lyLKgL$}54E(tvTngmeg!GFP= zRtdtH9{Dv58f7rgY1R$8aM4vO(lV{jY}}&f7k$OB93-Lik_orH4}uJD~B>p z2%?0ua7tKfGEwU2QTF3=Z)KK2O~Qf@Jzsfl&ix^-$G3ECR8wblltSq`h+ zd&OP2zgwY3AUNgA9iPuO45CUqcSq2@Yg-codl!2`1XsP!|0&C~QXe9ZdYEz3CV4Z^ zkE35(M7K4#E}lj17Pp$eSs&^LVl%znJa@i&34P_Ix+$4dP=VOYUBmxmQ~t@S2K{r3 zFjmR;=R$n`88}E%fc$z%N3YscbC%;s6nnAwX({a&;_g4AxyHFO76bJS05|mdurA2t zsXB}@%u5H9@(F!!a~We#khTllF}IN8k%<%&tvGQZ+x&w!IaiU%m2WPuXsa@@lLe&z2I?6b!eDnA`KwYt=jzsvHsZM(qya~UnK!v z0+A*5$JxP2&bG+3n$wv;_t=c}>eXOJz>LBb@ZB1-{ zaTTdCKawZoFi=iCd^^6IOvBGgpw}$r>kZwnEJfYzv|7}-cT3-3Ik8i0&a27^*VXgr z3ym1*Il0H#jZILk{lg%m@OoCE7D(nsdTr{UAa2o2=Gru3=Hh@5q~I)IdxywT)Nv}? zB+aD3o0>$tkW@J&275LY=8kKf^TE>(p#~aw>WB-@U=0lkb4NaQqINforEO=on+n$wp+bW>ol8;5o$7R4%Ee{B4(mDRkL{2X|W3vF?#U z>VlNH{gV$~OQKwG!Flq+8GP~b-b%R`*XvJR3!^ajb@Ok+*1L}YhZQ;Z6qx4fH2~gR zqJ6pjE3>ezZo7c!EE>3JyH;Nkds>{y@XxxjBiqsFEcbca8l0SuhPa5@UT`)ie|E71 zX;b@~0-Mf1g-m0UAVDbO4uv`hX1T~vx8NXWEcJaGG!8Kkxa= z$9ta0u6u4=zf#Za^whdwZrc{`%NRFjqmO0%`P}?wGw?w9T z)!Of1AY={M8#X!)k{b)$eL7LwNMJX>zId!rVrI>(*h9Vkqvb0nIo%405u08g2~Zb4 z#@D=t{0G3!x7KMV6!Umne3L z{&Zhqz*JJB2HuY^sWT&myqniS1NpnzvaSe?P6^wsQw1up%`?2 zN=Ty#wv^s);zU)d4>d}TFLrA_tW+7JS4jMRnf)-Jdiz@144Hp0tWFX@8KcM2q=qt5 zB>5n4E+@6)arwD1LDvF<@4!O;NO9|H77pd_$K~i%jb*d~I4SH%xK`8_rHsDG4}Oe} zBdSo81Gl83KMUQrbmDcC4FIMuQEY`+vns6sNA;?Y9@@tT@Bp!Us>Wb z8q6;)kp5*b!4LD4t!&=Ujy>_QL_o$I?ri6hDEA0OT1t~j z%4CnD<&ji>62?mNdC7u(?eWPtMPhJZNII@}4f!(`taV@gaoPN%u@s?oVnAVBZ@1uU zM^9VzNEOvarRj`@{M_7?qi*xJMv0elvdPe=MlWMozUZ|rRSBzw>L}ROaOyBFFmV11 zq#{F@^ysC5(!thBh-Z+shYZ?bYyNjPm=aT|+VYRKzt;EHz|i z9uEJ_+;1L3#EKLxG>Ol>$Ml7^msp2y_3XW2!e0hi*@3u;9$(Rmj>E|{Cz@JBQ86}n z`KlQxOO4!H?2xQtrI9k{Ar?_nR-D0XG9ef1{F7(JM>^Y&UPIP_1BSewbW?d-t=>W) zFv`uv%cxS^-+T0{MeQnOi5sfj_qAv9ys>y6(l8ww1a>}HPsC15`XyVqz~dy!1H(W? zFftCaSEKT;3yb|Y;fnpE0d?S8WoblFPDFJfq5rM)&)s1n^+f(eiYA<+@1!?S7&TD2 z^q55dF5)EP7p;$rJM|JMhJ;_q&q z=@?T7jnob%v_`3@ zP?|e>T7tkYwm`L%oJ!~XSGdY;BOa9!3!c(hi+nBv+vFlc&&?LjwF^%P96h*J6U?t+yXS?X_* zJ~yLh@hL_1s#7QEEFLxw^!;FbwABr+JIGU^#+4- z*RN7zEhlkWZ2b*Os=m5blNA3i;s zP}-VCcZH_=2(zNkwH%rYJ}9ks$@B#; zuRhZdEmC-wxiG3(Vw9!VNwP`Ax#2ejvjA_8>F3l*v-Q>7zL&4AlrS+h2gGgp4CP|A zyA*~n;j3@$q8|xtaM~_^Rh4q2d#>HtMmS$Nz@A$%;lt*lnQY>YKkd6*T%hqwOO}p- z9PqTSLdEG+QZIq6QJd#Znug>@Bp1xo!8L=cAtshJD>5D%Suhnux3IbXmTIc<_F?X@ zU1V=%*ImM&8r5nnVC_qR0+ zT%d^JXDOp;+WuY(r7gx(q<@s~$FN_=4wET4rA$UVcZN7znJK4^^@rj;v#JT#OhYU( z7zFtEGRyQQw<@E#MpZH{{1tH}bP|n|+Dz-LyxxVs#tG#e4PHvb zZu7R6)_&#dZ*2c`w=83Z=efI^TpHP7YIRvsLGE9;;ajYNtGTx)@*A*8vcVSr(kmJ+ zh;7xu)n*pi8TbIR6XfHy*_mQV+!+KuhzkO9!!Dc(4j_!dIBoj~z&luKga_KuwEF!0 zO-%tt+sA)HSftlTBR9R+J=ittPCRRCd-6!~q>G<0u%ub76B-SJK~1)iG_YHR!ePqm zJI3`xl5x5C4)`YxjurgB_%R78QYCIa1&;JzfG@}f?Ow#_$jS~paVa218eyByF7RdR zigtf@^!{G{y%+X*L94B}UMed8>UZT!#D3CwDFU*`8IXlxp}*{IvftwXZ73nKGa^dR z<{wy5IGaI8ogb_7PLfp%E`qR)apA%FP#fu^iH zFWHGcuV4vV-S>pj_P$*T;>?9`7IP1ioqRe|O}+ih;(Ks;3Ce#N|Pq`N^vFl>lDE zmM6->+{07C3gB%APCURv)DD^|q~Wor#ULB?W_RhWfO*az&JZ2-EHnW z+ffcCEtcSE%VW^#5-#g(MC_#Z-#AC>O}p93KzSHNjjTo5ETfDC>%z{R zq9e@F*gQ~FeLSiq%$+{8>C+<}sjfCZ?`9qh(iykq1TI%-554#9FZ63YBhHjoT3~7myh9)lO!6PN(}35;#jMxpx&FWKyX{e!hm-&h}%LwrT6&*={)I-0c(V z-E3vgQw#JN>t%7ME58q&cxOOAaIPM3v!vx~t`?IMkznN$x#YkqhB{XDt_Gm$tYnR6 zwAG0Om4u+~F>#?Hs1Aq7cnodMZONXy1M!MU(smge3sSc&+VQpGSKAT(=gNvWNpDiLl$b#ZYea4939bRW3KWIoYA@ z(+EwDY;41~b9GI(&X^kj^LTxxl)E$P;62Yd=aa$~yxJm#jKl!yh($d5#L!|V6~fDq%~bS72>N)m~Sgf=68A+UD4d2ynNG8((fGr8xV4e zw~@&>eH#CmgEBfGEf*>K+^UA>O|jYdTfK%=2w(akON0T5O^0_-3B6prHTURIVRE{y zLt>@EGMtM#JH*r|c0Qj5Z{Z@pxg~Y|z|V*vuc~+h5D@Ll)(B3 z?l5e5biaZax;yq>KS23RGe1JbZDHGAfSY-Xw>Z0Ej6Xr!QXFOkQzMC>3@4w3wZyJb$3 z$T9(}{~C|@8|V4f2yMGVPjQqW>lfQv8Cn&yA4HClR-63 z%X93Ey7SD&@}x237C z!{h65&m{Mr3wfzJxd-PwA}IY;Enz_#5ikaqkfN(`g;IG;&mW>k6@rbrmlQVyn|Oi|h#BS**7 z9Kyx{s2ywg#f+D{(u4$<7>a*4;=)V52rw7N4H+BzoPUEDz%LL>9Y(BjLGF2$AK-Iy zvCUpGriT_a#!YQPF0#Fp#=qbB;pxqkct_7rHAWo6+6AtrVYEs6DIm|v;&YI>P1q_6 zB_+DY0Nk3gxi;N*%)^O$-@$HDWnr4u|DgV(V~D42Mt$q_>P8=}({pSY0sDL=n}#D! zERuA4{ipzw@EaY|(gk}bsfju{-(FHu0za=#k)C|LaX9MIay(cOFc!YHbFnN6v2U;+ts+`n(p>s`P}OmaNBgp0 z>f$ctRqbWm9_{B(%h&@ind6( z?{ik5h71o!9J~%2Do+HIe)X(H{*NL6+_1Nq5vGgRTdNSIT?sV&#%=)dx_&>j<>ijx zM5Zi|s3m{(EtI*()Vcc#bu8trIX&Qfz&5rH-G?+KfpTbK~PMcM{;+f`88teng(+dfKdq%dO@`4cV)l0T{f?kBAM9YYqQT_^O*! zR@bY4)(Z%Pq2bS@E3QMA$4>^YZ3#3R3Xaap-lTt&oV#Z+Qg@U418Xax>WSY?mECxw zHAqq8w??Z2((|dzM9mkkVjn_CyRMV=Xjbjno}iIlir-I1O+$qt`DABo7NBsPB4TDT&i}o#_$-jCXbV&BO z)K?2~aD(+c_C^qruX_?-^q6LA!LwP<4^;n9N86$t9>=_iqn(8Wr`B^CCIE9uvF7C9 zEgjDXL>2#SOUrv>#GLQ4=j8f5?c8&0FEi})b=XAvKEzUB;4j(>KBYuv4}s(3(}w8R zGkf<0a^g9>!9`>t(l7tM*ry2#8}6NFdX(oq6KDixOFxbD4e?RM|t%zb@nBT2IDD%D_ihG8ytn` zcG3c)Baf2Ojq8QMbH4l7m89(!b+soyWCIg&*@OuPWGi@n*7{;cV1R0A9yt4{eoh~Q z!o&=g@&O$XAvdOJ`f2(IY+S94!GHyP%2T5NV0yJ!Gl_sN zC!0FQ1Eet$=bEB!3`T$Y3Vkxy|MPSrFZK;SektV!rOE7}P)-0SLSOqzpZih*U)I0e z?FHEjNs&X$rZEgT2?3%poZTj^F$S}C+JYz7|Gi@Z&?q8Hjc)QQ{o?$WrxEMilt}9Q zF}1d;ne5EDM5#S4cuaLIAX1&2QZ>9rsU80ngI1DQzdIE>{ttCY z+U7|H;KP|IjxYe5V@cc2W5~P3W#UP%eI3JbYNU<$Ysd&Mzx50KAv&X`6*$o$>TlDT z>Gr43gg5hxaAlHbEB=7G+Vs;2q7cqfT>Z>;!nhso2!9)~bHEIHGo26cx#!18hebS~ zZ&rou#+CWj#)18*Q}5CyXXP6rJuw(*(a1n0)~dodtLaW9a2-Xiq~}*KA9}flxp&MX z&M4s%c0U~;g43+I@x`O-U)BhdivS`F7fAAGzIJxEYkPB#&mh^sinp%0166Jp8QC>P521~uRVfJ{9ac@efKufidpbw*Tw=2IN3YT~jk_ukI z+Rd$iiRV0S=h})2MGmAARpY1dy06kZ=Pykc^QCCHx1=lg-%fI zlh&F_7d4mw&YvvVFa-uRmIycM#Ct?q2mOmHK9Lx|?E9;#J!aJU+!t+26-)NV3gLg) zAOJ*6;~{^aTFYP3lzU6In~a|Eo~mc~o+pmE-uljqGNx-~YfE`w98?f_U7FqPk9Xs{%|{4k zq<7yFfhkZwKbcFh_DEquJlJ#Hp{cYtZWnSw5DQc9#UBASzEmkNG;jjuyk@T(Rdy0y zqJUPJ;(S5z-@g7{!IvdwhV0!kn%(8TVb&MxCLB15Fl>6ir?Q^cCMN{MPFg4YEp!QC z^n2lK_faRL-tmM403g=u*w3}wySpEwu~y|~JGL)d!kfchWXXP(b0z|)K8xbot@OTm zK5Rt;t%(HpWdua#ibG4J{T~c0TgK?muQzBme3XO5LwGD_YhqQ5(qErhp9`! zDpO?Rr3KV$(Vgja`1SpI;@!itDMIo20|sI?`#lVYQRk&YuWYyk&tRIU9TNFEb)Cng z+JMb5=`)MJ6$qAhBh)l}Q$}v;&4qzbgWPXAF~*>7Y0$DxxYeiO(|rEK41y6iU1zGO2rh=d^OjfN)LXE2FPHw}$?=@U9nIx$UK^i=+^i z{r@hEWHN_t<|@}C&o8kE0L95(?ZfWZNh=wxhvWL}Ek6no)i)2XxzQmjUY=;Xnx84Y z95R&BawhlvvHR;J;@EG8Gmx%L!Z}#|(ZkZ})7XFZvwwq}7CB$1&j8BBGl*W#?(~_z z(iR@PK^<(%26hXsk-2RQ9VPFKkm&1?7DAJ>-qU|Y8>-Ie5%KD7SCl0RG04Om2WTz)x9Bap zAUcEGdfZy{GLopHGs7@r=9&AycwYQoo)_m_``Xvu>#X%%>-%YC0CY!+XQ$MW_G4Av z1w-5J2y$U0$47QvFQ`={*liQ*HkS*u0n^tUga4Y>Td#D=WQ;rRUyYLZ%IhoC_K`Q|p=mwQ+7 zU1>2F;_He+k_#f`;4(uqu9e4`2aw zwX8|?=W`XjDYlJ$HdE5zU!(AMsWs92?2SjoYVL_k-3bGDnu!i0;A%Cg&AAY7xoA{c zY3d*4`PykfvTv-q@AGSVfEJ(xeQ2Sbwypdb^6)UBz)|wJu#dm%v@Z$3R1`v*mQHybRlgY|h)KxT{RW)S0x=4mkbHvwHK?DuaBc z^Gwe(|3#ND!c1o?jEwm1v(Sjd z{)Xr1WY>nqMZwy88IyHYcRMja(TYZ5VbRfTU9qiD@D93=t#*J0#A z8tlYyAkMi4Jr7M1ml2-wz-he@ioTSm+g8{n+d)DT0RS{Hh&8t+8F@E#roSrLsr+vU zbB7PC8Tn!wGq_0i)w)ZEZi^JyVFu7Pjl2n@xaXw10NFA2J$2y;5Hu|Zd!Vl#jbx(*-87* zu(UZ1L)!;~!kVkzvKMaA08a%y*}I(GykasARK2=-r)R>Os3j|hFJ$mpA6CNZiAcL4 zW$LWjC~aWyg!;Dr2=5IsFJ}#$aBaZ9}O2d{+RC{~=0??8;BC*b97@u)!-P z_L0ji^$o5}1N!?N9pdGme)HRquj+OEx!=g0Mo~|D_K?ujT_UH?`isrAp0!~T_c}?j zD}f^Bgoh(<(aV{9m{JR|-jqX0t$T2r{4h-BNu)>FH52?~p4+@=vXMPrnR%C8X;FCm zM&9n;z?GZ5TX5h`VPhM2?TXHufmocn`)kjJ%GfMm(3*;DUtXC;?;l-aWzO;BAakrp zp{-TAVDbG|r9!FrcJ6qeOp>0J-GN*EeTR2l7i5t?k2-v3g!%khTuGkpL}L2>qE?6$ zfePqLF{}=tB87ds-}UWVYH7fj3ESeIfm>Z~Xr)8%!FKLo^^`79FBKX!;}i0(MqcKk z97Oj#3hkmygIM_^Qn{|+TfNa=eqVIXj=kwoU%O%MH^Uu;_J>@;liklK0Au}`77*FI z{N$0tk+UD{EH=rrf<80`vrm!jDff?gF-!S zygc$3*z18TjuFLn>=1KLnH^A;q{n38FZ1SKhNvGEUOqj$DzZ%R)b_X;WK9?iD!d27 z8i~*+cG`~LQC_=wjw_y0Ew8?o780D!l{_`X*7h<{H>JabJo&Opbt4k8CK{A%?<4_i zRlVG4;!8+>CD67#ft$6+dS6OasW)+vULsh$SprhR>=pYZm17z zy&+4<-aq43x_mk>EoyZG+ij+FQ-SB~K0C-n^osm*cymaA7qy{|8tqj1Rw zTa;PWHUp2DA?=(fQ`{ZOx_G*rDq+hXB6OCxK0-JIfDYZZo`m}qCA%bI)Xw%kZ7lrWBz>N0uJl)W)|XlH8IBgFD3VAPbS@0a`Y;*uY%~#uC@Mz zPj%oJY)(l}tr`j9R%>Nlsav}}Xh_~xt@}_Rmeh>v!_h#hp5wkVZTmnDXgs&$rNr1jSW5Mr$pFb2j+~)PrKSJrxxihFDl}YBN zNs4*~6aE0oDyqUNVNL<$e=1=h3@VCD6iNrMq+cGaO3r+Wy#}637Ma$w(@85gXIv@| zCSJLmPR5(rmEP8^H|>x9F7aE znH!A?mdz7C7i>a0ebk4{K2}ZhDv@8J`nHnr13<_LrvI30F&Ltp&v33dyL|a%{A2KIL!qaa( z2>&pFQx8=Oq;M5yR~Tqi^iC_~P&RvG&O%kKU#S5b>hbFfW2nmGCI(X6&8dfapCx zGJzt!3ujN*P4Yaw1*vhM1RtU!_?*21QX44FzkoOIdk7(MLKW1*|anP?5seZ3xQsJp$@h*>43+D^h;E zN*uAR_ZLA@_tc11wA-f;2V@Oqkt4z**IQ{69aF0t;Y>LYU{$d3+jhU;Q1h^;*{7%i z&3^fz2Su9!Sz#ZQrW(Z*=kx;ZFElGQPUd?pEf`U`I+j1$z>pZ<*Tw}yR25)kzbHm> zpxnZ=9JEauJqZ#41>xV#UwfKrrGUKWU6v$4OiJ628^}CIaHEO;(E4pg2h2&z-m3I& z^+~aw?2ORISH~u-mN-yyxs_k!HAp(ib`}3UPX`UCKM+9~oIf4V%)j z#@BYwZpS2N`%K#VPc=K!DGeG}mJ)skzcnYPf|IJ%d&kxl9WM+qQb>(w#Zwe|ifD^A zYDXHG%)+_esOr*3^L*^)W9w~~gtyuBQ2>zVbe@%}I^Y3tS(X+x6ON^j`(4$>N*7f0kHElez*NbLgiPKHS_v zb!5w28OytmXqWz!J&Kqn##0>J0QRYp`-J|efV1So+6EuZt8RKpitSH)4S-T1nwLtt zyZSwC4cb?ce@f?jFgjEgytJ3Rf0KvK$VGyuGn`>QVTo7zlTcPoib_vi>U{u2KPdQw zXIInflPY|wYL$nHsKP=}S$%*H1D52vZD_W7q)8@JSmx}L4700%u>^U@Aef2RFu9tL zN>u*y{4Yz334H&b-~-po5H-Oua^kPWe**xqey4$J-g=138|Z=iaTD$>*9yfeF@-Oh zn$nKF`%7m`#QenuG6`D%m}V-ns<*Hy+XGiPJ2(2fie&0RMkYLD(zpetX+g7H`teRB zy{VDXH3R@&DbMo}1X6^DFs3nr)E?lC&flYMl>3fZBRb0R6xMotvT*{6$Y@FB_^Lxr zEt~LliQOMO1Q(w}RMaYzM;ll$nfZ>xDl}j;mmAPZ)%P}Ou8IkeCCx_59J706aQ*94^w(-KybGS>7EYl|rf|m7mscEXJ%?yv zr=sZ&TFwhsOA9oYj=So6`6J->pbSzp1b4-G$p@=42pkOgkyIvL58k94KH1~q;RO&% zecBEcneCPh6w(7V-&liz6au&6cndQaS__lI%>C~0*q{{6ozxa0g zaS($OfDqc~H}!Q&ja0XA!~T`ct5o-2V3~Gb4|cbG3g`m1Ky9G?1DsY`#1w5g;aoma z(jDTaW!bu#aGf3K{(Y}Ns+!Mi?sJ)~3-c71aIxH@aGl^($3Fn0CS89_v&uNPmUnk! z7Yp&*<2sq?V+aA8q#4=llJ%=YS{tZ(^Wn}h!T;Ztv(bh~BYmzyC6jup%AS`VPKVqA z6mK22oi!$p6UZ(f+2<{4!C%25dGlmg5McKav$-=9lk&lBvxW77Aw9Pm9_G9nV4Z6F zX#y>KgItD0>NEb*IahCUv%>^3%ucAPO6mxZ0gA3dCl}TF>y_RDXsZ%05@G&gq>R}_ z1?OVjWVM;4UTU7sDhx!2I5+E2dVO(m8HGRWstpveINVF@>jnXb=_w~7b*Y>uKf>NwZ;0&c{&6($3_v@Dv2Hhl(o3Ql#p)0j-t6Wq4u_wl^k6zA2k6xKW}ym$ypHdXQs_tylORpXL(xIjWDfOaLQx4M z#*3Wyd%-@Q>py)q#9Z`7Oydh47`J$CC2s5Sfvb3`8|gc2kA;Hcr_{NXKzr#bC8^^# zg$OEi!hlvdgg_xi;hW1~gR-)hv8(GLfMtpcte8ms#;@*ySO8@u@J4z`2*g2mb!A;hXQNS8vu0y`(6pa-SZ5 zjOjiJKzEJ}pq9W!4f0&^L;=*g{Zqh}3NSXbsV$}Uq)*NawI9gsVvqO z*MKGhgPw6XJRvZkUQa z=bOlT37aaI^>)l!0ylBc*i@>Ufp%5w!%=8oei}wT@UAH@e0LquS@zHUH%@q#dGqYuKPYvNuAl_fNzhCGy|{sBKF>>4T)<)wPBZ z)(-W%fKSVUGlvcmt~`vYaCFbR#gDLOu2ps;531w^)LvO>01lfQZRLD=5JKUeuSSg9 zmG0Hc1HcvwSxyIlM`YL{nTM?TzlZO3`kQuEk8 G;{O0zhe^u- diff --git a/src-tauri/icons/sync-done.png b/src-tauri/icons/sync-done.png deleted file mode 100644 index bc9e8d44ef693790155448c56e3c92030eee61d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3660 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 diff --git a/src-tauri/icons/sync-done.svg b/src-tauri/icons/sync-done.svg deleted file mode 100644 index cb75631..0000000 --- a/src-tauri/icons/sync-done.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src-tauri/icons/sync-error.png b/src-tauri/icons/sync-error.png deleted file mode 100644 index d008ea2111d95f20442586d462e2368a3d15a891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3223 zcmZ{nS2Wy<7RLWGWAxq`Bn+ZO?=?mz+7LsOXfYhaC?kUiqeO{dh%OOCiOWGGN`#oG zqZ3ZFgi%8rQSUj3;kxU-+=qJ~zP;DCANE>%?T7u_X?8YdER2GT006L9m>VOnGU4B% zr@e~3`d%Yfi6O+?B^&^BSpO~1Xlr@mRZ#$E;*4{^`r+_iVfO(%9xopd92oB76>?u5 z8-_0VsVfKo%;FZthK`ZXcV9eeaxxJfG{`ClWOb7S4dy2CJBoYUwqP=p=FYZLlzlQ| zIx53fgmX9{o2S-#t9-ApiyVsfZl}n7MG%6yGT3diQV|d9@q(-PPjwLem;Una6lE= z3xTi9G2->oX7dbkw7ftZGsa5hi5Njpk+qPOnFW)c$wzP@A+MheXSf45Kqv?va*YjR zb=L#>)69cokFK@K$eWks>?yAtt)N^IFHOQCV4p>l8X(8UOI0IMv1^IvEFR}t3E;X+d0fclR4w6VR?7Q=#$X`FyW zhZwYqB7?vjPud9K8jy&LL34%hC^rl})|~}KLtu*7b0gBb=(7qneUi2(eaMZ&w!+D4 zCwfTKdm@T$5>iXd60BaPy-oAw;ajPD@`wTXM=aCbAUDSI=@OHO!!3|D#MW!+q?=Zr z(iadzD9CO}>`&gFFd4A8xg__GHCJGa#OYb+byh_7kId3Y?|H-Ka$Xcvc;QXqGZ#MV zJ<<&iesa3MTfW%?Dz&hzg(pXZciXzgWP%1D-3S97ZJMt%=c5Ip*~%P+Y|ra0Y6yYZ zW8&XWIBzLXY`3U~+^h3%NhusqPqBT?Gt_~Iujv7PmiB}nq6&w5aMg?s<+dFdMt4cm zZg+?xLVxz}8Uf2R@=E3!TqmU|hv@^og)Gb|UXuBa?Xl2f#Mi2b>4GXUzvzt9dJ7r3 zYuAUR@K9xp!5&6? zy&5d-6DIMzII|9$Z#&z-zE__YoMxKvP%S`R^gI0STi(sz*fl|q*1Bn9X6>WYnFlZd zElk@F_T7%I@AFv~Uy%6RxHl1i8imzb@G)jP8JDDc!(`!NsebZEABpN{h@#y-XIbcf z3=D|Ege~NNFWOSFOaU^o;r)KT!peKLt3D((7p5>#!glcl8+iGFosH994=s1n1-7X4 ze!e%w>j2tvgF20unqS*lx1I?}(1I{#-Im(ing&*)F3^y-n@4aGL|`PuWGWgUXl+gK zEEQG}j52 z>TSXc+KQ!OISX7-_RxLZeGThk7)GUy=N5|=yr2)U%1E?x1W8eptc$0dZQO$j66nN0 z?Ai!XCI#0Z<-d(@jPg|!r^&wVohLiX)MnEGuxUTcB4lextC176mZ-XAn25U+Z5W`7 zf^JphxMV;uP(|d?X?XtW*+6ArR_!lrdV@_w&}aEpFn{@JOve3>AC3rGfv=9SUe&qkF=!k)+j?%%32iNSC} zL-B-L7Op637mWZ{C+hOjZuNoR)G77yi=@LM`B|WOW&rw;v(k-L z;3Zp-u_Z3zw+P5th04!_|_n{;_xm=MIf64SUtsh|j z6Iw<sD!wzNFKJMn*II-=pmVM~Jr^2HFhz;0FjIFN`RwbBn&~Mnl{*%zFoDBH zc3ebzB6CXUTY3upnFnQLZu$3}XFJ3Ihc)uaUGXI^%(2N&0n63UoC#*hXG(MX*Aqzt z2IHdSuwt}R!tcvzq>rr=xJlx$Lhq;=NmoJj`+oXI)V%9aOfxBMAf#aww|Y2TMD_uZjJKM1i>(+RbrAVV|&7W zJp8Y6eBDCE^A@(D`(%EJ06{8R+%&wJ7B>ZvI>rMt#9#5}9tp1pE1MCEa||c?XKJ}F znyEdTKio*($Fla2Y^ExNH)q?v$)1zA3J(>!2+P(iLd`$c8mzRG05TX_`5V_ zz#f17ga;v46d>VKd)SkTlX&_|sOEZnQ?tDOf*Qo2mGJ`ZduL*#~4$E?=A0rB;MM%Y23+xxepB@(4{ z8dqm`BN-x8Ze~| zd1^?TB6)23fVGArHe8ZvjPxRvXbp?gX|~(wIuPv^DKoV7t-aGWKb3!zTqZpu^Wr9) z=-#EuXOA_Gm0Ij{o?(qLV_1wAf-MqPb*Kb1(du>dsp7Cw7rX0hPQ$@0JQjGbroX-n zQQdlq5zVqb?dl~b58YnX8Jwk?zt_&ADY1b^fnLImiDLwZ3csouh-K{;?&%8JlsqI; z9A-E}QVynRPej#L3es}EK|^x^`0U*jh14L#7u z7tFZYv?8|PFRN@bmt?FqkBk#k0{s;xCt}CM8UHGfx{Zn(H~P7$~}{;C(orGV=#6_~& zF+3UFVu_ufj2BMW@oba%g37LihKEY;_~!^Ge=5Km7N-}hq`>|o041H=SZC|(kl745 z`0^qv62X%!##m;^r7ZE`3Q;vxz8~Vn+<%F!$9$x6>=L+LfI$^t9^Ec9pBnn;U6$=W|466&9c#$yjjOHsHt{ARo=TQ+Uu;RtSbwKiqH&`c pkYP@Z5_Han{D0W~FBCtz7i~V9!Ws0OeDzcS7A7{v4G7PKe*r$z!-D_- diff --git a/src-tauri/icons/sync-error.svg b/src-tauri/icons/sync-error.svg deleted file mode 100644 index 02097a1..0000000 --- a/src-tauri/icons/sync-error.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src-tauri/icons/sync-running.png b/src-tauri/icons/sync-running.png deleted file mode 100644 index 2c64c4e4b0ec1cdf734e64c9f858934acf2123a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4046 zcma*qSvb^<_Wo;4SJlr zbzBFI%ZVVIxbF#+$9NFsy(z{2?~4}GIBR6GI~Wb z?|1I*SLUtlDc?K$4ut6ahVf~21l4$JwDt@8n6#n_q%!y>)OvXgUesSDq?cu@9CNP1 z3%FuA1U${7fG(^5-vUwkB^WUUL&D+x&M?sHn1~`-n)1OgIain*ydGJrDw<2NYQ$cXVgoY~IO5 zp#F^Ku6`vBf`sOAMR87czIwXuASz)@m5QBOiKo9G~UhV;YT z4?}IBCWsU;0TjwVSEwC?1sFIZ3Nx=|U+8ND<*|H;OPiH_BH1O`<=p?w6w}zkMH9Z0 zJzV-rOlMVF3#w%h_CZdw&xYGN>Cm>eoOHJ!L1eYFE{Ol@pImzDUDsLeq3_@=JypsC zCzSr`F-<4N(jlg=%fD+I*pifzh0F9~ zXYeq~tYz)>^NlV*1z;OHqaEGJu2L`u4rCqe!-)|O7NX|$Ml>#f=KxW7S*9S`rncG= z7l25Yx(QI;qR_?<$SjHILi@ zMnFj*yQ05t-7fQ_re`+d&qRv^r%xNo4b*|9z#+vxnF?oU4HnS@zXoD3T`)SfKf{=t z#+nm*&>fB3fwvEL!)^;XYToW@WX7(lRq0TSNp8Y=A`Bj-{zfJr5&KGw{?1J!?mVMJ7xQEPw~aWha}om%?Zkw4R@I94S@3+#9GZHPvRz0mboq3&$zhA{Y*bwD2K)E(NeNezX0OyO_T;27U0d+mVQCe$<`ibW}h%VmF=a z*F+PS*+}j!;|=7Few4_SiYs+wBT+L8ys3YfruW0*Rt?Q^N$B95q>l3Hc=9V(@uPb@ zzYL`FPNv&&_FqWuy%a0_w3_@y;jX9=b@Ciqm*22-~3sGB$E zp=*k03%RB8_i~7DQmz{fZw!9Qm@Oyduntm*E#p^RPA_PYxC{;;+Z>mjrJeNSuNn9+ zZ0qOWu#o2;c^@!ThJS?W3UVo+4hF_>WU%?Xsi2c@Oqjapi_zq;9=_rl*$Q8x2*kP$ z-L`OD5OSV6$BT7S&omhksay$?;R4P6dHk@RqjidAbO()wLDzU;bSof_!P-_1-L@}uV3O}i^uG{HSAj00z$z^0;6nYY7FSby6VaoXm@lH} z;4-pb*h5{%x2@Gy%DoX*f3B4V0E_Y{x64JwdbmSRaVwl~O{89HVs$5Zuz5@$M}Ubh zr8PVZ%?ms*<5RwGlWjIx#F+t#l0y?%Gws%Io<-ZG&Wwd5kxwD?yex6E=X)t@4xJkT zE?kbjibfDu)kt#^G!SHIZ1~P?l!eJ7GDg{Eou;03@JkJ%H z>c{)zyy4;gp2eoq{24l=<~P zC$!!Vr%g5iE3!QH?8eR;rv^`Cd}$9?|61cwPO#x~hNw+54n7uaQS8$K62nXucRE?* zQX~fcsgCJH^{;bANyf<8=28mGE=6&=WnLwD)FKY+%I(4bPQG973= zcbSM>SkVdo3?-he97pi0Sg)BBQHg~kQQP})pe$!HUd+JoE6m@Hi*A>t2T7+4^aLNZ=tm&r-TaaTyt7#Us!b+ zxzM42M`5f!b@1q=$(((AdV>AA2T(%4d~?P;Qyma--YNG??yKXR<7U~$OLvbo4`2Hf z1@H3k)On)$p_l|Q*Jgt6#1bxTOv-IaeXZKaNjQJr6_Da~n84u^1Liy*zEnh+L?@Kg zOllE!W-pjF%U|^WzJ9Ro4wOe%S$J$9*N=9eeLJD0Z;(VzfEx*xTqwELd2vb)T7u{l z{@qDJzARWj)BSh&$LbDpUI7h06t%|Q+>!>$f#TV2iR))w|c%mY!yDoiiS47%M=Upd%I`&8x_PC5u77`-@AByDy{MOvU!Bb9w2VR z^u^nzJPj~sZa*&vUD97zwdJku9I@~{TL)sr9eATEalIjCbfE7CJs#Eg;d7yUb-bP_%+;Rg_SigF!nGWqP1M|+vkX5RgS!>ql$8$8Fg+f~CLmx~*vxxm)1Bj{NuPf%T z=-T(n)m3#MwyzJRCv2amH1M}GTk@^#s(BDgAnT9fd0$kJYp}h(Lojr3){bQI+F8ob&CFWQ6{xRZ(A+nmiW6PpPJ#)xc)fF-Dpo1wID2@0y-3toFs$s20f>P*Uf0n7N2*6`(Jp0rfxew&B4*xOt7}!m zV0`MDz;rH#tVaBOXBy%0bHNQo&!@kTJ&T@DZ|b?29B$y#r0?R}R^-r9B0n&qH&g2- zs^G}gR#K<=S)Hj%!`I2vvFO>;^(wDvl{w;%m+e3V>a~_IR^uXt#b%#?Y-)Qdb@;Sj zMpH1$Gm{LNnr68@-4CB#Z-exGLaPD_Tu6`xV8ZtG&VSP`hviA9{$ej?{^4gfF zPU#$kZ#AyXzHn)${YTe97a#MHO;4#9syhf2!S{^gISr3p;ZsbOSjd!Pv1yVXz<(8wE zBMSE1c@~34q8!H@C<>VU>)v^lCLl}uNj#>*!Z`2RrID3mIJio1L`I%aJBgRIz1rvo z6v=#70M$wjf-d1#)m$-@PaZyp(|Mgb#p=vgqC;JD`Do5#icuTD@odU20W4A_?a@9v zLdd>HAih;jCUORt%DT;$KWscTwkeqkwVuZjm3@L*`OSLKO@zqeFDZOy2BzMMnJ5S4 znK#Gj`8`SE`o$$x!Y$S~18I^-8WyN6B_gj2{Pc^tR4MOZd`RJmWAI&9=9?j?L1)OA z-7{^CT=@6f@V%}9(oK?5m?Xq|$f@#3e?a|?B5~OH0o08+l \ No newline at end of file diff --git a/src-tauri/icons/sync-unset.png b/src-tauri/icons/sync-unset.png deleted file mode 100644 index a821a6937b57e553f3941597dc6cce3c07efda7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3253 zcmZu!X*kr27yivKM3%_DubHuL*<)zz6S7S9bu3vY6tev^wuxcLZj^15o4qKN%(aBb z5^*)Ml_e@$3R(W{^Z$B3yyt!1^E~In`{6wAIRqOkQ&wgHW&i+K&CO7@rwsm!GYqG- zTi|^qz>7LOo>i!ypU@X2D+4OxH@UYe(#82O<5JnjZJAMw2d>+NWil;nQf0!s-yk59`G`h}vYH(~_GoWg!aC9D7BS}4?N|e(K z1rU2y}Sw{PBvgIwVV1< zeq#ffw<1G*oP~Wqc6U!Sly11S?(-a#7nE^h@=dXot$%zK(Q1RZ>1zDY1<{H^Ty#e` zm~AD(xqPFa!tLy{=yL^Go2RObDuu3uvBOQ(u!41K2}I5s{3 zuG#;{5OPzYyj?$lnFQR(t$Ep=2J>X8Bj9pUeNoi0%6x>Gfc#Zc>T^cd|R_zzY$-Pw%5UEOF2J7I6aovJq7$>DK@!ZNtT=zCF)WGz9g@N9P z8m~zadm^H~9mhN+PqEKlcoNh9P+mU-Tn9ZW9xw~jg)-dVlr}RdW|L>In#{AK_T}_S zt?b!?n0f2f&)Zy_(>v+x;%nens?VxHuUmiSVps!g(~C}Bf~V2kW;uA9wl7vSD})bM zNUzk&Ui?)7L;<2Ia82I5hO}Sn#0^hBKKIPx7F5@+OgT4G;p7z$jD&{Knq>}u1)!HQ z1P0#V;)5N2a_DX_1;eT~4%vEE&z8+)Ktqj1MNhrsrkgBb&zUosq zd*jmZ2yMwKTEVn69gSz8S~w2eh<* zIVuSsKWFVF?+QmkIHH4zs?5{Ro~eZTXnR374*M)UidXWTGjzR`5f+nmPe; zN_uHSe}c9ko)$Byu9<+#qYk(APAaZNbl~1a=Nz#q=Z3}lqJ7uDIHTzK@Cl8x-bO35 zCdQ7!pAtXYjIJ!oQqk`=E@|C=ww%d0x*lxs|ADPGdqJ12Am1t3tuK z!y`o-YE_BqJwhAf0)5*!b<7N!90obOLt5A|8RHvg^PCGMp=}6y3;W zR_1KhbS7Q(J>Qa|qj)7<)JIFz_fyI@r2blYsD~>4c-my-FTdupfD}KuaRs(Ed7_O) z$Rpbm9g2OaZwE};W%PyY1dWncQuWPlcrUm8@I|Y|k#vD+{kTc`%0(k|`o49RUB2!k zvLa<7g=1X-KCo2fL%7>O{~G%v_R7T5X6?W-4GpT;yNw$x)F_}6B|qy-zWYrlt0n$` zZ76P8jU;SYvzOPdl&0Rfez2^tX9H>xvi!s!yIdeU$cGu7=gbLy+d-wV4j$yTbH4C* z`OUnEuwGI!JxMJXztbM{p>Qa_KN-53+SJW+vmjlEsM2~nB%G~u_Os=(1=a}Cl3Xh| z?l&+#WqYfppg)8Q`8%~wCA{+B9D0x@m9O5>cRG(d-fz7MtaRJ(TgS+DLONh>!-hlG z)Z+(S2?>qB9NqDC$6M^1@!c(^NsY#&&k6Ia-7T-N4JbD_GQ+rR>83~aamaV5zPUO+ zg5zLRmgIN{C&cpzY zN?G`q+=AtDI9aJ@8V>&9u3gK^in;Ml(5ys2bT5}*4-USQ5i^IKdBy)}RlsS>$jtGG zR7`3*n$XY?XkxKpnZRYe~R)4d^Xf0wFvx}?Av11nv~wq_+5hEfa;#s@=d!YyI$puK6Km8H$*B~5|uf^Py_3;=0mEJru5L>;!;O-s# zhFAq$S~X1?@lI?DMOyKf)*yEH-t%I5SearScVg*q{zDquLzh;kg3txeA9HdV`xRF7 z%X-(GH@z5guYTQ$C!g%FZah-0%w~e|du-Kuq?51xCmm(6!MByl!#O!ZedB3<-}B<3xGx zH2U0p{`Q~l>PMKQJ!=CK(NEGp6`R2dXa`Z zwt)%BE6o-IYCkXBQxYsEU+6Jao^3h|pXWK4+wa;y=|^eu6`Wk+WQyx4MeV6U|ETh9 z;l4_^SVoHdEj1E*5ALLhWJ}cfe>}=-+(t>)3K^DBKcwFX=(52sZ7QzCLTWjl3tq*J z56|JNn|EjTNi%0`yiZg5$lFxAQOx9?BC~c78imM6~>Lw7`5VC#ww(PPLhU(pa zkB~ey7(ubkP2vYK>(LQnK-f-~tC%vA8vjqM3{FkIOpgI;2tnq;4U*a$%LQKMEJR+) z-Ra9$s^BNYy{?Qdvwjs4Mk7U^Of6>cWY@s~Gx-@IDZ40gaFukH*qQUw2~YaA^hEIE?WXgWZ-?OAbwvt7mwq}y0#lUkPFS@gT~Q00bi}_P&H57d2R*| zR6_Hf3pk z47)rCb;&6@a+ok2^67vhwX47pv9PJ8NMr54-KCtPR5+O&G$*Q{c>%~8tfmCQc?A9Z zD87I6HP`fmunuG0D{D@W165`x|K}`D>0`Z;CQCqz#|D3OH%)lz0rQbLbN}4 z%7CwUM^jQzg@I>Kq-IJ9$G7!9{}0jzJu^ep|`>dGX*5E5=>1Cq~kiLKDX f`nCUC?j#1qTIznI@E4xG9Dup86{^9=^UnVOaXj!G diff --git a/src-tauri/icons/sync-unset.svg b/src-tauri/icons/sync-unset.svg deleted file mode 100644 index 5f33e64..0000000 --- a/src-tauri/icons/sync-unset.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs deleted file mode 100644 index bed55ba..0000000 --- a/src-tauri/src/main.rs +++ /dev/null @@ -1,536 +0,0 @@ -// Prevents additional console window on Windows in release, DO NOT REMOVE!! -#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] - -use chrono::{DateTime, Utc}; -use serde::{Deserialize, Serialize}; -use std::{ - env, fs, - path::{self, Path}, - process::Command, - thread, - time::{self, SystemTime}, -}; -use tauri::{ - AppHandle, CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, - SystemTrayMenuItem, -}; - -#[derive(Serialize, Deserialize, Clone)] -struct ConfigAccountRClone { - remote_name: String, - local_directory: String, -} - -#[derive(Serialize, Deserialize, Clone)] -struct ConfigAccount { - remote_directories: Vec, - rclone: ConfigAccountRClone, - last_sync_time: String, -} - -#[derive(Serialize, Deserialize)] -struct Config { - accounts: Vec, -} - -#[derive(Serialize, Deserialize)] -struct NewRCloneRemote { - url: String, - username: String, - password: String, - name: String, - local_directory: String, - remote_directories: Vec, -} - -#[derive(Serialize, Deserialize)] -struct UpdatedRCloneRemote { - name: String, - local_directory: String, - remote_directories: Vec, -} - -#[tauri::command] -fn run_sync(app: AppHandle) { - app.tray_handle() - .set_icon(tauri::Icon::Raw( - include_bytes!("../icons/sync-running.png").to_vec(), - )) - .unwrap(); - - let config = get_json_config(&app); - - if config.accounts.len() == 0 { - app.tray_handle() - .set_icon(tauri::Icon::Raw( - include_bytes!("../icons/sync-unset.png").to_vec(), - )) - .unwrap(); - return; - } - - let five_minutes = time::Duration::from_secs(300); - - tauri::async_runtime::spawn(async move { - loop { - app.tray_handle() - .set_icon(tauri::Icon::Raw( - include_bytes!("../icons/sync-running.png").to_vec(), - )) - .unwrap(); - - for account in &config.accounts { - run_sync_for_account(&account); - update_sync_time_in_json_config(&app, &account); - } - - app.tray_handle() - .set_icon(tauri::Icon::Raw( - include_bytes!("../icons/sync-done.png").to_vec(), - )) - .unwrap(); - - thread::sleep(five_minutes); - } - }); -} - -#[tauri::command] -fn add_new_rclone_remote(new_remote: NewRCloneRemote, app: AppHandle) -> bool { - if new_remote.url.is_empty() || !new_remote.url.contains("://") { - println!("A URL is required."); - return false; - } - - if new_remote.name.is_empty() { - println!("An account name is required."); - return false; - } - - if new_remote.remote_directories.len() == 0 { - println!("At least one remote directory is required."); - return false; - } - - if new_remote.local_directory.is_empty() { - println!("A local directory is required."); - return false; - } - - if !path::Path::new(&new_remote.local_directory).exists() { - println!("An existing local directory is required."); - return false; - } - - let output = Command::new("rclone") - .args([ - "config", - "create", - &new_remote.name, - "webdav", - &format!("url={}", new_remote.url), - &format!("user={}", new_remote.username), - &format!("pass={}", new_remote.password), - "vendor=fastmail", // technically this should be vendor=other, but that wouldn't work with rclone bisync - "--non-interactive", - "--obscure", - ]) - .output() - .expect("failed to execute rclone"); - - println!( - "rclone output: {} {}", - String::from_utf8(output.stdout).unwrap(), - String::from_utf8(output.stderr).unwrap() - ); - - run_first_sync_for_account(&ConfigAccount { - remote_directories: new_remote.remote_directories.to_vec(), - last_sync_time: "".to_string(), - rclone: ConfigAccountRClone { - remote_name: new_remote.name.to_string(), - local_directory: new_remote.local_directory.to_string(), - }, - }); - - return add_remote_to_json_config(&app, new_remote); -} - -#[tauri::command] -fn update_rclone_remote(updated_remote: UpdatedRCloneRemote, app: AppHandle) -> bool { - if updated_remote.remote_directories.len() == 0 { - println!("At least one remote directory is required."); - return false; - } - - if updated_remote.local_directory.is_empty() { - println!("A local directory is required."); - return false; - } - - if !path::Path::new(&updated_remote.local_directory).exists() { - println!("An existing local directory is required."); - return false; - } - - // TODO: If remote directories were removed, remove them locally (comment out the code after). - - run_first_sync_for_account(&ConfigAccount { - remote_directories: updated_remote.remote_directories.to_vec(), - last_sync_time: "".to_string(), - rclone: ConfigAccountRClone { - remote_name: updated_remote.name.to_string(), - local_directory: updated_remote.local_directory.to_string(), - }, - }); - - return update_remote_in_json_config(&app, updated_remote); -} - -#[tauri::command] -fn delete_rclone_remote(remote_to_delete: UpdatedRCloneRemote, app: AppHandle) -> bool { - // NOTE: Removing directories programmatically feels dangerous. For now, let the user do it manually. - // if path::Path::new(&remote_to_delete.local_directory).exists() { - // fs::remove_dir_all(&remote_to_delete.local_directory).unwrap(); - // } - - let output = Command::new("rclone") - .args(["config", "delete", &remote_to_delete.name]) - .output() - .expect("failed to execute rclone"); - - println!( - "rclone output: {} {}", - String::from_utf8(output.stdout).unwrap(), - String::from_utf8(output.stderr).unwrap() - ); - - return delete_remote_in_json_config(&app, remote_to_delete); -} - -#[tauri::command] -fn check_if_local_directory_is_empty(directory: String) -> bool { - let local_directory_path_buffer = path::Path::new(&directory); - - if !local_directory_path_buffer.exists() { - return false; - } - - if local_directory_path_buffer - .read_dir() - .map(|mut entry| entry.next().is_none()) - .unwrap_or(false) - { - return true; - } - - return false; -} - -fn get_config_file_path(app: &AppHandle) -> String { - let binding = app.path_resolver().app_data_dir().unwrap(); - let app_data_dir = binding.to_str().unwrap(); - - // Make sure the app data dir exists - fs::create_dir_all(&app_data_dir).unwrap(); - - let config_file_name = "config.json"; - let config_path_binding = Path::new(app_data_dir).join(config_file_name); - let config_path = config_path_binding.to_str().unwrap(); - - return config_path.to_string(); -} - -fn get_json_config(app: &AppHandle) -> Config { - let config_path = get_config_file_path(app); - - if !path::Path::new(&config_path).exists() { - let config = Config { - accounts: Vec::new(), - }; - let config_json = serde_json::to_string(&config).unwrap(); - fs::write(config_path, config_json).unwrap(); - return config; - } - - let config_json = fs::read_to_string(config_path).unwrap(); - - let config: Config = serde_json::from_str(&config_json).unwrap(); - - return config; -} - -fn add_remote_to_json_config(app: &AppHandle, new_remote: NewRCloneRemote) -> bool { - let config_path = get_config_file_path(app); - - let mut config = get_json_config(app); - - let now = SystemTime::now(); - let utc_now: DateTime = now.into(); - let last_sync_time = utc_now.to_rfc3339(); - - config.accounts.push(ConfigAccount { - remote_directories: new_remote.remote_directories, - rclone: ConfigAccountRClone { - remote_name: new_remote.name, - local_directory: new_remote.local_directory, - }, - last_sync_time, - }); - - let config_json = serde_json::to_string(&config).unwrap(); - fs::write(config_path, config_json).unwrap(); - - return true; -} - -fn update_remote_in_json_config(app: &AppHandle, updated_remote: UpdatedRCloneRemote) -> bool { - let config_path = get_config_file_path(app); - - let mut config = get_json_config(app); - - let now = SystemTime::now(); - let utc_now: DateTime = now.into(); - let last_sync_time = utc_now.to_rfc3339(); - - let config_account_index = config - .accounts - .iter() - .position(|account| *account.rclone.remote_name == updated_remote.name) - .unwrap(); - - let mut updated_config_account = config.accounts.get(config_account_index).unwrap().clone(); - updated_config_account.remote_directories = updated_remote.remote_directories; - updated_config_account.rclone.local_directory = updated_remote.local_directory; - updated_config_account.last_sync_time = last_sync_time; - - config.accounts[config_account_index] = updated_config_account; - - let config_json = serde_json::to_string(&config).unwrap(); - fs::write(config_path, config_json).unwrap(); - - return true; -} - -fn delete_remote_in_json_config(app: &AppHandle, remote_to_delete: UpdatedRCloneRemote) -> bool { - let config_path = get_config_file_path(app); - - let mut config = get_json_config(app); - - let config_account_index = config - .accounts - .iter() - .position(|account| *account.rclone.remote_name == remote_to_delete.name) - .unwrap(); - - config.accounts.remove(config_account_index); - - let config_json = serde_json::to_string(&config).unwrap(); - fs::write(config_path, config_json).unwrap(); - - return true; -} - -fn update_sync_time_in_json_config(app: &AppHandle, account_to_update: &ConfigAccount) -> bool { - let config_path = get_config_file_path(app); - - let mut config = get_json_config(app); - - let now = SystemTime::now(); - let utc_now: DateTime = now.into(); - let last_sync_time = utc_now.to_rfc3339(); - - let config_account_index = config - .accounts - .iter() - .position(|account| *account.rclone.remote_name == account_to_update.rclone.remote_name) - .unwrap(); - - let mut updated_config_account = config.accounts.get(config_account_index).unwrap().clone(); - updated_config_account.last_sync_time = last_sync_time; - - config.accounts[config_account_index] = updated_config_account; - - let config_json = serde_json::to_string(&config).unwrap(); - fs::write(config_path, config_json).unwrap(); - - return true; -} - -fn run_first_sync_for_account(account: &ConfigAccount) { - for remote_directory in &account.remote_directories { - let remote_with_directory = - format!("{}:/{}/", account.rclone.remote_name, remote_directory); - let local_with_directory = - format!("{}/{}/", account.rclone.local_directory, remote_directory); - - // rclone bisync needs the local directory to exist, unlike copy or sync - fs::create_dir_all(&local_with_directory).unwrap(); - - let output = Command::new("rclone") - .args([ - "bisync", - "-v", - &remote_with_directory, - &local_with_directory, - "--resync", - ]) - .output() - .expect("failed to execute rclone"); - - println!( - "rclone command: {} {} {} --resync", - "rclone bisync -v", remote_with_directory, local_with_directory - ); - println!( - "rclone output: {} {}", - String::from_utf8(output.stdout).unwrap(), - String::from_utf8(output.stderr).unwrap() - ); - } -} - -fn run_sync_for_account(account: &ConfigAccount) { - for remote_directory in &account.remote_directories { - let remote_with_directory = - format!("{}:/{}/", account.rclone.remote_name, remote_directory); - let local_with_directory = - format!("{}/{}/", account.rclone.local_directory, remote_directory); - - let output = Command::new("rclone") - .args([ - "bisync", - "-v", - &remote_with_directory, - &local_with_directory, - ]) - .output() - .expect("failed to execute rclone"); - - println!( - "rclone command: {} {} {}", - "rclone bisync -v", remote_with_directory, local_with_directory - ); - println!( - "rclone output: {} {}", - String::from_utf8(output.stdout).unwrap(), - String::from_utf8(output.stderr).unwrap() - ); - } -} - -fn show_or_hide_main_window(app: &AppHandle) { - let existing_window = app.get_window("main"); - if existing_window.is_some() { - let window = existing_window.unwrap(); - - let new_title = if window.is_visible().unwrap() { - window.hide().unwrap(); - "Show" - } else { - window.show().unwrap(); - window.set_focus().unwrap(); - "Hide" - }; - - app.tray_handle() - .get_item("show_or_hide") - .set_title(new_title) - .unwrap(); - - return; - } - - let window = tauri::WindowBuilder::from_config( - app, - app.clone().config().tauri.windows.get(0).unwrap().clone(), - ) - .build() - .unwrap(); - - let new_title = "Hide"; - window.show().unwrap(); - window.set_focus().unwrap(); - - app.tray_handle() - .get_item("show_or_hide") - .set_title(new_title) - .unwrap(); -} - -#[cfg(target_os = "macos")] -fn hide_dock_icon() { - use cocoa::appkit::{NSApp, NSApplication, NSApplicationActivationPolicy::*}; - - unsafe { - let app = NSApp(); - app.setActivationPolicy_(NSApplicationActivationPolicyAccessory); - } -} - -#[cfg(not(target_os = "macos"))] -fn hide_dock_icon() { - // Do nothing -} - -fn main() { - let show_or_hide = CustomMenuItem::new("show_or_hide".to_string(), "Hide"); - let force_sync = CustomMenuItem::new("force_sync".to_string(), "Force Sync"); - let quit = CustomMenuItem::new("quit".to_string(), "Quit"); - let tray_menu = SystemTrayMenu::new() - .add_item(show_or_hide) - .add_item(force_sync) - .add_native_item(SystemTrayMenuItem::Separator) - .add_item(quit); - let system_tray = SystemTray::new().with_menu(tray_menu); - - tauri::Builder::default() - .system_tray(system_tray) - .on_system_tray_event(|app, event| match event { - SystemTrayEvent::MenuItemClick { id, .. } => match id.as_str() { - "show_or_hide" => { - show_or_hide_main_window(app); - } - "force_sync" => { - run_sync(app.clone()); - } - "quit" => { - std::process::exit(0); - } - _ => {} - }, - _ => {} - }) - .on_window_event(|event| match event.event() { - // Keeps app running when regularly "closed" - tauri::WindowEvent::CloseRequested { .. } => { - event - .window() - .app_handle() - .tray_handle() - .get_item("show_or_hide") - .set_title("Show") - .unwrap(); - } - _ => {} - }) - .invoke_handler(tauri::generate_handler![ - run_sync, - add_new_rclone_remote, - update_rclone_remote, - delete_rclone_remote, - check_if_local_directory_is_empty - ]) - .build(tauri::generate_context!()) - .expect("error while running tauri application") - .run(|_app, event| match event { - // Keeps app running when regularly "closed" - tauri::RunEvent::ExitRequested { api, .. } => { - api.prevent_exit(); - - hide_dock_icon(); - } - - _ => {} - }); -} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json deleted file mode 100644 index e668c85..0000000 --- a/src-tauri/tauri.conf.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "build": { - "beforeDevCommand": "npm run dev", - "beforeBuildCommand": "npm run build", - "devPath": "http://localhost:1420", - "distDir": "../dist" - }, - "package": { - "productName": "bewCloud Desktop Sync", - "version": "0.0.5" - }, - "tauri": { - "allowlist": { - "all": false, - "dialog": { - "all": false, - "ask": true, - "confirm": true, - "message": true, - "open": true, - "save": false - }, - "shell": { - "all": false, - "open": true, - "execute": true - }, - "fs": { - "all": false, - "copyFile": false, - "createDir": false, - "exists": true, - "readDir": true, - "readFile": true, - "removeDir": false, - "removeFile": false, - "renameFile": false, - "scope": ["$APPDATA/config.json", "$HOME/*"], - "writeFile": true - }, - "path": { - "all": true - }, - "http": { - "all": false, - "request": true - } - }, - "windows": [ - { - "title": "bewCloud Desktop Sync", - "width": 800, - "height": 600 - } - ], - "security": { - "csp": null - }, - "bundle": { - "active": true, - "targets": "all", - "identifier": "com.bewcloud.sync", - "icon": [ - "icons/32x32.png", - "icons/128x128.png", - "icons/128x128@2x.png", - "icons/icon.icns", - "icons/icon.ico" - ], - "category": "Utility" - }, - "systemTray": { - "iconPath": "icons/sync-unset.png", - "iconAsTemplate": true, - "title": "bewCloud Desktop Sync" - } - } -} diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index 5c1eb88..0000000 --- a/src/App.tsx +++ /dev/null @@ -1,377 +0,0 @@ -import { useState, useEffect } from 'preact/hooks'; -import { invoke } from '@tauri-apps/api/tauri'; -import { appDataDir, homeDir, join } from '@tauri-apps/api/path'; -import { readTextFile } from '@tauri-apps/api/fs'; -import { open } from '@tauri-apps/api/dialog'; - -import type { Config, Directory, NewRCloneRemote } from './types.ts'; -import { fetchRemoteDirectories } from './utils.ts'; -import ChooseRemoteDirectoriesModal from './components/ChooseRemoteDirectoriesModal.tsx'; -import EditRemoteModal from './components/EditRemoteModal.tsx'; - -const CONFIG_FILE_NAME = 'config.json'; - -function App() { - const [currentConfig, setCurrentConfig] = useState(null); - const [newAccountUrl, setNewAccountUrl] = useState(''); - const [newAccountUsername, setNewAccountUsername] = useState(''); - const [newAccountPassword, setNewAccountPassword] = useState(''); - const [newAccountName, setNewAccountName] = useState(''); - const [isRemoteDirectoriesModalOpen, setIsRemoteDirectoriesModalOpen] = - useState(false); - const [remoteDirectoryOptions, setRemoteDirectoryOptions] = useState< - Directory[] - >([]); - const [isEditRemoteModalOpen, setIsEditRemoteModalOpen] = - useState(false); - const [editRemoteName, setEditRemoteName] = useState(''); - const [wantsToAddNewAccount, setWantsToAddNewAccount] = - useState(false); - - async function runSync() { - const config = await getConfig(); - - if (!config || config.accounts.length === 0) { - console.info('No configured accounts found.'); - return; - } - - await invoke('run_sync'); - } - - async function getConfig(): Promise { - const appDataDirPath = await appDataDir(); - const configFilePath = await join(appDataDirPath, CONFIG_FILE_NAME); - - console.info(`Config file path: ${configFilePath}`); - - try { - const configContents = await readTextFile(configFilePath); - const config = JSON.parse(configContents) as Config; - setCurrentConfig(config); - return config; - } catch (error) { - console.error(error); - } - - return null; - } - - async function onNewAccountSubmit() { - const newRemote: NewRCloneRemote = { - url: newAccountUrl, - username: newAccountUsername, - password: newAccountPassword, - name: newAccountName, - local_directory: '', - remote_directories: [], - }; - - if (!newRemote.url || !newRemote.url.includes('://')) { - alert('A URL is required.'); - return; - } - - if (!newRemote.name) { - alert('An account name is required.'); - return; - } - - // Connect and choose remote directories - const directories = await fetchRemoteDirectories( - newRemote.url, - newRemote.username, - newRemote.password, - ); - - if (directories.length > 0) { - setRemoteDirectoryOptions(directories); - setIsRemoteDirectoriesModalOpen(true); - } - } - - async function chooseLocalDirectoryAndCreateNewAccount( - chosenRemoteDirectories: string[], - ) { - const newRemote: NewRCloneRemote = { - url: newAccountUrl, - username: newAccountUsername, - password: newAccountPassword, - name: newAccountName, - local_directory: '', - remote_directories: chosenRemoteDirectories, - }; - - if (newRemote.remote_directories.length === 0) { - alert('At least one remote directory is required.'); - return; - } - - setIsRemoteDirectoriesModalOpen(false); - - const homeDirPath = await homeDir(); - - const selected = (await open({ - title: 'Choose the local directory to sync into', - directory: true, - defaultPath: homeDirPath, - })) as string | null; - - if (!selected) { - alert('A local directory is required.'); - return; - } - - newRemote.local_directory = selected; - - const isLocalDirectoryEmpty: boolean = await invoke( - 'check_if_local_directory_is_empty', - { directory: newRemote.local_directory }, - ); - - if (!isLocalDirectoryEmpty) { - if ( - !confirm( - `"${newRemote.local_directory}" is not empty! That might cause unpredictable issues with synchronization. Continue?`, - ) - ) { - return; - } - } - - const addedRCloneRemote: boolean = await invoke('add_new_rclone_remote', { - newRemote, - }); - - if (!addedRCloneRemote) { - alert( - 'Failed to add new rclone remote. Please make sure rclone is installed and globally available.', - ); - return; - } - - setNewAccountUrl(''); - setNewAccountUsername(''); - setNewAccountPassword(''); - setNewAccountName(''); - setRemoteDirectoryOptions([]); - setWantsToAddNewAccount(false); - - await runSync(); - } - - function onClickEditAccount(rCloneRemoteName: string) { - setEditRemoteName(rCloneRemoteName); - setIsEditRemoteModalOpen(true); - } - - function onCloseEditAccount() { - setIsEditRemoteModalOpen(false); - setEditRemoteName(''); - - runSync(); - } - - useEffect(() => { - runSync(); - }, []); - - useEffect(() => { - if (currentConfig === null || currentConfig.accounts.length === 0) { - setWantsToAddNewAccount(true); - } else { - setWantsToAddNewAccount(false); - } - }, [currentConfig, setWantsToAddNewAccount]); - - const timeFormat = new Intl.DateTimeFormat('en-GB', { - year: 'numeric', - month: 'long', - day: 'numeric', - hour12: false, - hour: '2-digit', - minute: '2-digit', - }); - - return ( -
-
-
- - the bewCloud logo: a stylized logo - -
- -

- Welcome to bewCloud Desktop Sync! -

- -
- {currentConfig && currentConfig.accounts.length > 0 ? ( - <> -
    - {currentConfig.accounts.map((account) => { - return ( -
  1. - {' '} - // Last sync:{' '} - -
  2. - ); - })} -
- -
- -
- - ) : ( -

No configured accounts found. Create one below!

- )} -
- - {!wantsToAddNewAccount ? ( - - ) : null} - - {wantsToAddNewAccount ? ( -
{ - event.preventDefault(); - event.stopPropagation(); - onNewAccountSubmit(); - }} - > -

- Add a new bewCloud account: -

-
- - setNewAccountUrl(event.currentTarget.value)} - value={newAccountUrl} - /> -
- -
- - - setNewAccountUsername(event.currentTarget.value) - } - value={newAccountUsername} - /> -
-
- - - setNewAccountPassword(event.currentTarget.value) - } - value={newAccountPassword} - /> -
-
- - - setNewAccountName(event.currentTarget.value) - } - value={newAccountName} - /> -
- -
- -
-
- ) : null} - - setIsRemoteDirectoriesModalOpen(false)} - /> - - -
-
- ); -} - -export default App; diff --git a/src/components/ChooseRemoteDirectoriesModal.tsx b/src/components/ChooseRemoteDirectoriesModal.tsx deleted file mode 100644 index 2bbff6a..0000000 --- a/src/components/ChooseRemoteDirectoriesModal.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { useState } from 'preact/hooks'; - -import type { Directory } from '../types.ts'; - -interface ChooseRemoteDirectoriesModalProps { - isOpen: boolean; - directories: Directory[]; - onClickSave: (chosenPaths: string[]) => Promise | void; - onClose: () => void; -} - -export default function ChooseRemoteDirectoriesModal({ - isOpen, - directories, - onClickSave, - onClose, -}: ChooseRemoteDirectoriesModalProps) { - const [chosenDirectories, setChosenDirectories] = useState([]); - - function toggleChosenDirectory(directory: string) { - const directoriesSet = new Set(chosenDirectories); - - if (directoriesSet.has(directory)) { - directoriesSet.delete(directory); - } else { - directoriesSet.add(directory); - } - - setChosenDirectories([...directoriesSet]); - } - - return ( - <> -
- -
-

- Choose remote directories to sync -

-
-
    - {directories.map((directory) => ( -
  1. - - toggleChosenDirectory(`${directory.directory_name}`) - } - onKeyDown={(event) => { - if (event.key === ' ') { - toggleChosenDirectory(`${directory.directory_name}`); - } - }} - > -

    - {directory.directory_name} - {chosenDirectories.includes(directory.directory_name) ? ( - Chosen directory - ) : null} -

    -
    -
  2. - ))} -
-
-
- - -
-
- - ); -} diff --git a/src/components/EditRemoteModal.tsx b/src/components/EditRemoteModal.tsx deleted file mode 100644 index 6145b7b..0000000 --- a/src/components/EditRemoteModal.tsx +++ /dev/null @@ -1,305 +0,0 @@ -import { useEffect, useState } from 'preact/hooks'; -import { invoke } from '@tauri-apps/api/tauri'; -import { homeDir } from '@tauri-apps/api/path'; -import { open } from '@tauri-apps/api/dialog'; - -import type { Config, Directory, NewRCloneRemote } from '../types.ts'; -import { fetchRemoteDirectories } from '../utils.ts'; -import ChooseRemoteDirectoriesModal from './ChooseRemoteDirectoriesModal.tsx'; - -interface EditRemoteModalProps { - isOpen: boolean; - remoteName: string; - config: Config | null; - onClose: () => void; -} - -export default function EditRemoteModal({ - isOpen, - remoteName, - config, - onClose, -}: EditRemoteModalProps) { - const account = config?.accounts.find( - (account) => account.rclone.remote_name === remoteName, - ); - - const [newAccountUrl, setNewAccountUrl] = useState(''); - const [newAccountUsername, setNewAccountUsername] = useState(''); - const [newAccountPassword, setNewAccountPassword] = useState(''); - const [newAccountLocalDirectory, setNewAccountLocalDirectory] = - useState(account?.rclone.local_directory || ''); - - const [wantsToChangeRemoteDirectories, setWantsToChangeRemoteDirectories] = - useState(false); - const [isRemoteDirectoriesModalOpen, setIsRemoteDirectoriesModalOpen] = - useState(false); - const [remoteDirectoryOptions, setRemoteDirectoryOptions] = useState< - Directory[] - >([]); - const [chosenRemoteDirectories, setChosenRemoteDirectories] = useState< - string[] - >(account?.remote_directories || []); - - async function onClickOpenRemoteDirectories() { - // Connect and choose remote directories - const directories = await fetchRemoteDirectories( - newAccountUrl, - newAccountUsername, - newAccountPassword, - ); - - if (directories.length > 0) { - setRemoteDirectoryOptions(directories); - setIsRemoteDirectoriesModalOpen(true); - } - } - - function onClickSaveRemoteDirectories(newRemoteDirectories: string[]) { - if (newRemoteDirectories.length === 0) { - alert('At least one remote directory is required.'); - return; - } - - setChosenRemoteDirectories(newRemoteDirectories); - setWantsToChangeRemoteDirectories(false); - setIsRemoteDirectoriesModalOpen(false); - } - - async function onClickChangeLocalDirectory() { - const homeDirPath = await homeDir(); - - const selected = (await open({ - title: 'Choose the local directory to sync into', - directory: true, - defaultPath: newAccountLocalDirectory || homeDirPath, - })) as string | null; - - if (!selected) { - alert('A local directory is required.'); - return; - } - - setNewAccountLocalDirectory(selected); - } - - async function onClickSave() { - const updatedRemote: Omit< - NewRCloneRemote, - 'url' | 'username' | 'password' - > = { - name: remoteName, - local_directory: newAccountLocalDirectory, - remote_directories: chosenRemoteDirectories, - }; - - const updatedRCloneRemote = await invoke('update_rclone_remote', { - updatedRemote, - }); - - if (!updatedRCloneRemote) { - alert( - 'Failed to update rclone remote. Please make sure rclone is installed and globally available.', - ); - return; - } - - onCloseEditRemoteModal(); - } - - async function onClickDelete() { - const confirmed = confirm( - 'Are you sure you want to delete this remote and the local directory?', - ); - if (!confirmed) { - return; - } - - const remoteToDelete: Omit< - NewRCloneRemote, - 'url' | 'username' | 'password' - > = { - name: remoteName, - local_directory: newAccountLocalDirectory, - remote_directories: chosenRemoteDirectories, - }; - - const deletedRCloneRemote = await invoke('delete_rclone_remote', { - remoteToDelete, - }); - - if (!deletedRCloneRemote) { - alert( - 'Failed to delete rclone remote. Please make sure rclone is installed and globally available.', - ); - return; - } - - onCloseEditRemoteModal(); - } - - function onCloseEditRemoteModal() { - setNewAccountUrl(''); - setNewAccountUsername(''); - setNewAccountPassword(''); - setNewAccountLocalDirectory(''); - setRemoteDirectoryOptions([]); - setWantsToChangeRemoteDirectories(false); - setIsRemoteDirectoriesModalOpen(false); - onClose(); - } - - useEffect(() => { - if (account) { - setNewAccountLocalDirectory(account.rclone.local_directory); - setChosenRemoteDirectories(account.remote_directories); - } - }, [account]); - - if (!account) { - return null; - } - - return ( - <> -
- -
-

Update "{remoteName}"

-

- NOTE: You can only delete the remote or change the local or remote - directories. -

-

- Local directory:{' '} - {newAccountLocalDirectory} -

-

- Remote directories:{' '} - {chosenRemoteDirectories.join(', ')} -

- - {!wantsToChangeRemoteDirectories ? ( - - ) : null} - {wantsToChangeRemoteDirectories ? ( - <> -

- Add your bewCloud account details to list and change the remote - directories: -

-

- NOTE: This information is necessary because the desktop sync - client doesn't keep it. It's all stored in{' '} - rclone. -

-
- - setNewAccountUrl(event.currentTarget.value)} - value={newAccountUrl} - /> -
- -
- - - setNewAccountUsername(event.currentTarget.value) - } - value={newAccountUsername} - /> -
-
- - - setNewAccountPassword(event.currentTarget.value) - } - value={newAccountPassword} - /> -
- - - ) : null} -
- - - -
-
- - setIsRemoteDirectoriesModalOpen(false)} - /> - - ); -} diff --git a/src/main.tsx b/src/main.tsx deleted file mode 100644 index 2780c2a..0000000 --- a/src/main.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { render } from 'preact'; -import App from './App'; -import './styles.css'; - -render(, document.getElementById('root')!); diff --git a/src/styles.css b/src/styles.css deleted file mode 100644 index f7b0837..0000000 --- a/src/styles.css +++ /dev/null @@ -1,59 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -h1 { - @apply text-4xl font-bold; -} - -a { - @apply text-[#51A4FB] no-underline hover:underline font-semibold; -} - -main { - @apply mx-auto max-w-7xl py-6 sm:px-6 lg:px-8 text-white; -} - -form { - @apply px-4 py-8 max-w-screen-md mx-auto lg:min-w-96; -} - -.button { - @apply inline-block rounded text-white bg-[#51A4FB] hover:bg-sky-400 hover:shadow-sm px-4 py-2; -} - -.button-secondary { - @apply inline-block rounded text-white bg-slate-600 hover:text-slate-900 hover:bg-slate-400 hover:shadow-sm px-4 py-2; -} - -.button-danger { - @apply inline-block rounded text-slate-50 bg-red-600 hover:text-slate-900 hover:bg-red-400 hover:shadow-md px-4 py-2; -} - -.input-field { - @apply block w-full p-2 rounded-md text-white bg-slate-700 border-transparent border focus:border-[#51A4FB] focus:bg-slate-700 outline-none focus:ring-0 shadow-sm; -} - -.input-field[type="range"] { - @apply w-auto; -} - -.input-field:required:invalid:not(:placeholder-shown) { - @apply bg-red-400; -} - -img.white { - filter: invert(100%) sepia(0%) saturate(7500%) hue-rotate(42deg) brightness(99%) contrast(112%); -} - -img.green { - filter: invert(47%) sepia(19%) saturate(6698%) hue-rotate(114deg) brightness(91%) contrast(83%); -} - -img.red { - filter: invert(18%) sepia(45%) saturate(3518%) hue-rotate(337deg) brightness(110%) contrast(101%); -} - -img.gray { - filter: invert(30%) sepia(46%) saturate(356%) hue-rotate(174deg) brightness(90%) contrast(82%); -} diff --git a/src/types.ts b/src/types.ts deleted file mode 100644 index 854997a..0000000 --- a/src/types.ts +++ /dev/null @@ -1,25 +0,0 @@ -export interface Account { - remote_directories: string[]; - rclone: { - remote_name: string; - local_directory: string; - }; - last_sync_time: string; -} - -export interface Config { - accounts: Account[]; -} - -export interface NewRCloneRemote { - url: string; - username: string; - password: string; - name: string; - local_directory: string; - remote_directories: string[]; -} - -export interface Directory { - directory_name: string; -} diff --git a/src/utils.ts b/src/utils.ts deleted file mode 100644 index c5a778e..0000000 --- a/src/utils.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { Directory } from './types.ts'; - -export async function fetchRemoteDirectories( - url: string, - username: string, - password: string, -): Promise { - try { - const requestHeaders = new Headers(); - requestHeaders.set( - 'Authorization', - `Basic ${btoa(`${username}:${password}`)}`, - ); - requestHeaders.set('Content-Type', 'application/json; charset=utf-8'); - const requestBody: { parentPath: string } = { parentPath: '/' }; - const response = await fetch( - `${url.replace('/dav', '')}/api/files/get-directories`, - { - method: 'POST', - body: JSON.stringify(requestBody), - headers: requestHeaders, - mode: 'cors', - }, - ); - const result = (await response.json()) as { - success: boolean; - directories: Directory[]; - }; - if (!result?.success) { - throw new Error('Unknown error!'); - } - - return result.directories; - } catch (error) { - console.error(error); - alert('Failed to connect! Please check the URL, username, and password.'); - } - - return []; -} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/tailwind.config.ts b/tailwind.config.ts deleted file mode 100644 index dbc4083..0000000 --- a/tailwind.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { Config } from 'tailwindcss'; - -export default { - content: [ - './index.html', - './src/**/*.{js,ts,jsx,tsx,css,md,mdx,html,json,scss}', - ], -} satisfies Config; diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 21abced..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "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": "react-jsx", - "jsxImportSource": "preact", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index 42872c5..0000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "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 deleted file mode 100644 index 3dea145..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { defineConfig } from 'vite'; -import preact from '@preact/preset-vite'; -import tailwindcss from 'tailwindcss'; -import autoprefixer from 'autoprefixer'; - -// https://vitejs.dev/config/ -export default defineConfig(async () => ({ - plugins: [preact()], - - // 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: 1420, - strictPort: true, - watch: { - // 3. tell vite to ignore watching `src-tauri` - ignored: ['**/src-tauri/**'], - }, - }, - css: { - postcss: { - plugins: [tailwindcss, autoprefixer], - }, - }, -}));