diff --git a/.circleci/config.yml b/.circleci/config.yml
index b9f291ec..ad5b7f54 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,11 +1,19 @@
version: 2.1
+orbs: # adds orbs to your configuration
+ jira: circleci/jira@1.0.5 # invokes the Jira orb, making its commands accessible
+branches:
+ ignore: feature/i10n
jobs:
build:
working_directory: ~/Cider
docker:
- - image: circleci/node:16-browsers
+ - image: circleci/node:16
+
steps:
- checkout
+ - run:
+ name: Set App Version
+ command: echo "export APP_VERSION=$(grep '"version":.*' package.json | cut -d '"' -f 4 | head -1)" >> $BASH_ENV
- run:
name: Update Package Managers
command: sudo npm update -g npm yarn
@@ -15,42 +23,44 @@ jobs:
- yarn-packages-{{ checksum "cider-yarn.lock" }}
- run:
name: Install Dependencies
- command: yarn install --cache-folder ~/.cache/yarn
+ command: yarn install --frozen-lockfile --cache-folder ~/.cache/yarn
- save_cache:
name: Save Yarn Package Cache
key: yarn-packages-{{ checksum "cider-yarn.lock" }}
paths:
- ~/.cache/yarn
- - run:
- name: Install Playwright
- command: yarn playwright install --with-deps
- run:
name: Install system build dependencies
command: |
sudo apt-get update -y
+ curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt-get install -y dpkg fakeroot wine64
sudo dpkg --add-architecture i386
sudo apt-get update -y
sudo apt-get install -y wine32
- sudo apt-get install -y x11vnc
+ sudo apt install -y gh
- run:
- name: Start X VNC Server
- command: x11vnc -forever -nopw -create
- background: true
- #- run:
- #name: Base Functionality Testing
- #command: yarn test
- - store_test_results:
- path: test-results
+ name: Fix Versioning and Add Channel
+ command: yarn circle:script
- run:
- name: Append Commit BuildID to Version
- command: yarn circle:append-bid
+ name: TypeScript Compile
+ command: yarn build
- run:
name: Generate Builds (Linux)
- command: yarn dist -l -p never
+ command: yarn electron-builder -l -p never
+ post-steps:
+ - jira/notify
- run:
name: Generate Builds (Windows)
- command: yarn dist -w --x64 -p never
+ command: yarn electron-builder -w --x64 -p never
+ post-steps:
+ - jira/notify
+ - run:
+ name: Generate Builds (Winget)
+ command: yarn electron-builder --win -c winget.json -p never
+ post-steps:
+ - jira/notify
- run:
name: Move Build Files
command: |
@@ -60,7 +70,10 @@ jobs:
mv ~/Cider/dist/*.AppImage ~/Cider/dist/artifacts
mv ~/Cider/dist/*.snap ~/Cider/dist/artifacts
mv ~/Cider/dist/*.yml ~/Cider/dist/artifacts
-
+ mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts
- store_artifacts:
- path: ~/Cider/dist/artifacts
-
+ path: ~/Cider/dist/artifacts
+ - run:
+ name: Publish Release
+ command: |
+ gh release create "v${APP_VERSION}.${CIRCLE_BUILD_NUM}" --title "Cider Version ${APP_VERSION} - Build ${CIRCLE_BUILD_NUM} (${CIRCLE_BRANCH})" --generate-notes -R ciderapp/cider-releases ~/Cider/dist/artifacts/*.deb ~/Cider/dist/artifacts/*.AppImage ~/Cider/dist/artifacts/*.snap ~/Cider/dist/artifacts/*.exe ~/Cider/dist/artifacts/*.yml ~/Cider/dist/artifacts/*.blockmap
diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml
new file mode 100644
index 00000000..f1befd57
--- /dev/null
+++ b/.github/workflows/build-macos.yml
@@ -0,0 +1,146 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "macOS build"
+
+on:
+ push:
+ branches: [ develop ]
+ paths-ignore:
+ - 'README.md'
+ - 'SECURITY.md'
+ - '.gitmodules'
+ - '.gitignore'
+ - 'LICENSE'
+ schedule:
+ - cron: '44 20 * * 1'
+
+jobs:
+ analyze:
+ name: macOS build
+ runs-on: macos-11
+ permissions:
+ actions: read
+ contents: write
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'javascript' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - uses: maxim-lobanov/setup-xcode@v1
+ with:
+ xcode-version: '12.4'
+
+ - name: Checkout repository
+ uses: actions/checkout@v2
+ with:
+ submodules: true
+
+ # Initializes the CodeQL tools for scanning.
+# - name: Initialize CodeQL
+# uses: github/codeql-action/init@v1
+# with:
+# languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # âšī¸ Command-line programs to run using the OS shell.
+ # đ https://git.io/JvXDl
+
+ # âī¸ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+# - name : env
+# run: |
+# export EVS_ACCOUNT_NAME=${{ secrets.EVS_ACCOUNT_NAME}} && export EVS_PASSWD=${{ secrets.EVS_PASSWD }}
+# export CSC_LINK=${{ secrets.CSC_LINK }} && export CSC_KEY_PASSWORD=${{ secrets.CSC_KEY_PASSWORD }}
+# export APPLEID=${{ secrets.APPLEID }} && export APPLEIDPASS=${{ secrets.APPLEIDPASS }}
+
+ - name: Sign in to EVS
+ run: |
+ python3 -m pip install --upgrade castlabs-evs
+ python3 -m castlabs_evs.account refresh -A ${{ secrets.EVS_ACCOUNT_NAME }} -P ${{ secrets.EVS_PASSWD }}
+
+ - name : Build
+ env:
+ CSC_LINK: ${{ secrets.CSC_LINK }}
+ CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
+ APPLEID: ${{ secrets.APPLEID }}
+ APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
+ APPLE_ID: ${{ secrets.APPLEID }}
+ APPLE_ID_PASSWORD: ${{ secrets.APPLEIDPASS }}
+ PSC_NAME: ${{ secrets.PSC_NAME }}
+ DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer
+ run: |
+ rm cider-yarn.lock || true
+ xcodebuild -version
+ yarn install
+ cp resources/verror-types node_modules/@types/verror/index.d.ts
+ cp resources/macPackager.js node_modules/app-builder-lib/out/macPackager.js
+ yarn dist:universalNotWorking -p never
+# - name: Perform CodeQL Analysis
+# uses: github/codeql-action/analyze@v1
+
+ - name: Add license to dmg
+ run: |
+ npx dmg-license resources/license.json dist/*.dmg
+
+ - name: Import
+ uses: apple-actions/import-codesign-certs@v1
+ with:
+ p12-file-base64: ${{ secrets.CSC_LINK }}
+ p12-password: ${{ secrets.CSC_KEY_PASSWORD }}
+
+ - name: Create PKG manually
+ env:
+ CSC_LINK: ${{ secrets.CSC_LINK }}
+ CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
+ APPLEID: ${{ secrets.APPLEID }}
+ APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
+ run: |
+ pkgbuild --component dist/mac-universal/Cider.app --install-location /Applications dist/Cider.pkg --sign ${{ secrets.PSC_NAME }}
+ xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider.pkg --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }}
+ sleep 5m
+ xcrun stapler staple dist/Cider.pkg || true
+ mv dist/*.dmg dist/Cider.dmg
+
+ - name: Upload a Build Artifact
+ uses: actions/upload-artifact@v2.2.3
+ with:
+ # Artifact name
+ name: macOS
+ # A file, directory or wildcard pattern that describes what to upload
+ path: |
+ dist/*.dmg
+ dist/*.pkg
+ # The desired behavior if no files are found using the provided path.
+ - name: Release
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ dist/Cider.dmg
+ dist/Cider.pkg
+ body: signed Develop MacOS Builds
+ name: macOS builds
+ tag_name: macos-beta
+ prerelease : true
+ generate_release_notes: true
+ append_body : false
+ fail_on_unmatched_files: false
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index acc6dfb9..2e957229 100644
--- a/.gitignore
+++ b/.gitignore
@@ -318,3 +318,10 @@ keys.sh
package-lock.json
yarn.lock
+resources/b64.txt
+
+
+savedconfig/cider-config.json
+savedconfig/config.json
+savedconfig/session.json
+savedconfig/window-state.json
diff --git a/Assets/Install On Cider/install on cider.afdesign b/Assets/Install On Cider/install on cider.afdesign
new file mode 100644
index 00000000..5a621a62
Binary files /dev/null and b/Assets/Install On Cider/install on cider.afdesign differ
diff --git a/Assets/Install On Cider/install on cider.svg b/Assets/Install On Cider/install on cider.svg
new file mode 100644
index 00000000..7bf4d965
--- /dev/null
+++ b/Assets/Install On Cider/install on cider.svg
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index 92a02f3c..1966f643 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
-
-
+
-
+
+
@@ -28,6 +28,8 @@
[](https://winstall.app/apps/CiderCollective.Cider.Nightly)
+[](https://flathub.org/apps/details/sh.cider.Cider)
+
[](https://aur.archlinux.org/packages/cider)
+[](https://flathub.org/apps/details/sh.cider.Cider)
+
### Compiling and Configuration
For more information surrounding configuration, compiling and other developer documentation, see the [compilation docs](https://cider.sh/compile.html).
diff --git a/cider-yarn.lock b/cider-yarn.lock
index 07525a10..02bfe31e 100644
--- a/cider-yarn.lock
+++ b/cider-yarn.lock
@@ -12,40 +12,60 @@
resolved "https://registry.yarnpkg.com/7zip/-/7zip-0.0.6.tgz#9cafb171af82329490353b4816f03347aa150a30"
integrity sha1-nK+xca+CMpSQNTtIFvAzR6oVCjA=
-"@ampproject/remapping@^2.0.0":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.0.2.tgz#f3d9760bf30588c51408dbe7c05ff2bb13069307"
- integrity sha512-sE8Gx+qSDMLoJvb3QarJJlDQK7SSY4rK3hxp4XsiANeFOmjU46ZI7Y9adAQRJrmbz8zbtZkp3mJTT+rGxtF0XA==
+"@ampproject/remapping@^2.1.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
+ integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
dependencies:
- "@jridgewell/trace-mapping" "^0.2.2"
- sourcemap-codec "1.4.8"
+ "@jridgewell/trace-mapping" "^0.3.0"
-"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.16.7":
+"@babel/code-frame@7.16.7", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
dependencies:
"@babel/highlight" "^7.16.7"
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8":
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0":
version "7.17.0"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34"
integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==
-"@babel/core@^7.14.8", "@babel/core@^7.9.0":
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.0.tgz#16b8772b0a567f215839f689c5ded6bb20e864d5"
- integrity sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==
+"@babel/core@7.16.12":
+ version "7.16.12"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784"
+ integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==
dependencies:
- "@ampproject/remapping" "^2.0.0"
"@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.17.0"
+ "@babel/generator" "^7.16.8"
"@babel/helper-compilation-targets" "^7.16.7"
"@babel/helper-module-transforms" "^7.16.7"
- "@babel/helpers" "^7.17.0"
- "@babel/parser" "^7.17.0"
+ "@babel/helpers" "^7.16.7"
+ "@babel/parser" "^7.16.12"
"@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.0"
+ "@babel/traverse" "^7.16.10"
+ "@babel/types" "^7.16.8"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.1.2"
+ semver "^6.3.0"
+ source-map "^0.5.0"
+
+"@babel/core@^7.9.0":
+ version "7.17.5"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225"
+ integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==
+ dependencies:
+ "@ampproject/remapping" "^2.1.0"
+ "@babel/code-frame" "^7.16.7"
+ "@babel/generator" "^7.17.3"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helpers" "^7.17.2"
+ "@babel/parser" "^7.17.3"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.17.3"
"@babel/types" "^7.17.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
@@ -53,10 +73,10 @@
json5 "^2.1.2"
semver "^6.3.0"
-"@babel/generator@^7.17.0":
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.0.tgz#7bd890ba706cd86d3e2f727322346ffdbf98f65e"
- integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==
+"@babel/generator@^7.16.8", "@babel/generator@^7.17.3":
+ version "7.17.3"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200"
+ integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==
dependencies:
"@babel/types" "^7.17.0"
jsesc "^2.5.1"
@@ -87,10 +107,10 @@
browserslist "^4.17.5"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7":
- version "7.17.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21"
- integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==
+"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6":
+ version "7.17.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9"
+ integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.16.7"
"@babel/helper-environment-visitor" "^7.16.7"
@@ -182,9 +202,9 @@
"@babel/types" "^7.16.7"
"@babel/helper-module-transforms@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41"
- integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
+ version "7.17.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz#3c3b03cc6617e33d68ef5a27a67419ac5199ccd0"
+ integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==
dependencies:
"@babel/helper-environment-visitor" "^7.16.7"
"@babel/helper-module-imports" "^7.16.7"
@@ -192,8 +212,8 @@
"@babel/helper-split-export-declaration" "^7.16.7"
"@babel/helper-validator-identifier" "^7.16.7"
"@babel/template" "^7.16.7"
- "@babel/traverse" "^7.16.7"
- "@babel/types" "^7.16.7"
+ "@babel/traverse" "^7.17.3"
+ "@babel/types" "^7.17.0"
"@babel/helper-optimise-call-expression@^7.16.7":
version "7.16.7"
@@ -268,10 +288,10 @@
"@babel/traverse" "^7.16.8"
"@babel/types" "^7.16.8"
-"@babel/helpers@^7.17.0":
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.0.tgz#79cdf6c66a579f3a7b5e739371bc63ca0306886b"
- integrity sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==
+"@babel/helpers@^7.16.7", "@babel/helpers@^7.17.2":
+ version "7.17.2"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417"
+ integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==
dependencies:
"@babel/template" "^7.16.7"
"@babel/traverse" "^7.17.0"
@@ -286,10 +306,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.16.7", "@babel/parser@^7.17.0":
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c"
- integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==
+"@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3":
+ version "7.17.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0"
+ integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
version "7.16.7"
@@ -316,7 +336,7 @@
"@babel/helper-remap-async-to-generator" "^7.16.8"
"@babel/plugin-syntax-async-generators" "^7.8.4"
-"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.7":
+"@babel/plugin-proposal-class-properties@7.16.7", "@babel/plugin-proposal-class-properties@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0"
integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==
@@ -325,15 +345,15 @@
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-proposal-class-static-block@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a"
- integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==
+ version "7.17.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c"
+ integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-create-class-features-plugin" "^7.17.6"
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-proposal-dynamic-import@^7.14.5", "@babel/plugin-proposal-dynamic-import@^7.16.7":
+"@babel/plugin-proposal-dynamic-import@7.16.7", "@babel/plugin-proposal-dynamic-import@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2"
integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==
@@ -341,7 +361,7 @@
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
-"@babel/plugin-proposal-export-namespace-from@^7.14.5", "@babel/plugin-proposal-export-namespace-from@^7.16.7":
+"@babel/plugin-proposal-export-namespace-from@7.16.7", "@babel/plugin-proposal-export-namespace-from@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163"
integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==
@@ -357,7 +377,7 @@
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-json-strings" "^7.8.3"
-"@babel/plugin-proposal-logical-assignment-operators@^7.14.5", "@babel/plugin-proposal-logical-assignment-operators@^7.16.7":
+"@babel/plugin-proposal-logical-assignment-operators@7.16.7", "@babel/plugin-proposal-logical-assignment-operators@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea"
integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==
@@ -365,7 +385,7 @@
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7":
+"@babel/plugin-proposal-nullish-coalescing-operator@7.16.7", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99"
integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==
@@ -373,7 +393,7 @@
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-proposal-numeric-separator@^7.14.5", "@babel/plugin-proposal-numeric-separator@^7.16.7":
+"@babel/plugin-proposal-numeric-separator@7.16.7", "@babel/plugin-proposal-numeric-separator@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9"
integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==
@@ -382,11 +402,11 @@
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
"@babel/plugin-proposal-object-rest-spread@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8"
- integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==
+ version "7.17.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390"
+ integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==
dependencies:
- "@babel/compat-data" "^7.16.4"
+ "@babel/compat-data" "^7.17.0"
"@babel/helper-compilation-targets" "^7.16.7"
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
@@ -400,7 +420,7 @@
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-proposal-optional-chaining@^7.14.5", "@babel/plugin-proposal-optional-chaining@^7.16.7":
+"@babel/plugin-proposal-optional-chaining@7.16.7", "@babel/plugin-proposal-optional-chaining@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a"
integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==
@@ -409,7 +429,7 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-proposal-private-methods@^7.14.5", "@babel/plugin-proposal-private-methods@^7.16.11":
+"@babel/plugin-proposal-private-methods@7.16.11", "@babel/plugin-proposal-private-methods@^7.16.11":
version "7.16.11"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50"
integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==
@@ -417,7 +437,7 @@
"@babel/helper-create-class-features-plugin" "^7.16.10"
"@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-proposal-private-property-in-object@^7.14.5", "@babel/plugin-proposal-private-property-in-object@^7.16.7":
+"@babel/plugin-proposal-private-property-in-object@7.16.7", "@babel/plugin-proposal-private-property-in-object@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce"
integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==
@@ -435,7 +455,7 @@
"@babel/helper-create-regexp-features-plugin" "^7.16.7"
"@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-syntax-async-generators@^7.8.4":
+"@babel/plugin-syntax-async-generators@7.8.4", "@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
@@ -470,7 +490,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-json-strings@^7.8.3":
+"@babel/plugin-syntax-json-strings@7.8.3", "@babel/plugin-syntax-json-strings@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
@@ -505,14 +525,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+"@babel/plugin-syntax-optional-catch-binding@7.8.3", "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
@@ -599,9 +619,9 @@
"@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-transform-destructuring@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23"
- integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==
+ version "7.17.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc"
+ integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==
dependencies:
"@babel/helper-plugin-utils" "^7.16.7"
@@ -667,7 +687,7 @@
"@babel/helper-plugin-utils" "^7.16.7"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.14.5", "@babel/plugin-transform-modules-commonjs@^7.16.8":
+"@babel/plugin-transform-modules-commonjs@7.16.8", "@babel/plugin-transform-modules-commonjs@^7.16.8":
version "7.16.8"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe"
integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
@@ -732,7 +752,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-react-jsx@^7.14.5":
+"@babel/plugin-transform-react-jsx@7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4"
integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==
@@ -908,7 +928,7 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
-"@babel/preset-typescript@^7.14.5":
+"@babel/preset-typescript@7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9"
integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==
@@ -918,9 +938,9 @@
"@babel/plugin-transform-typescript" "^7.16.7"
"@babel/runtime@^7.8.4":
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.0.tgz#b8d142fc0f7664fb3d9b5833fd40dcbab89276c0"
- integrity sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==
+ version "7.17.2"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941"
+ integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
dependencies:
regenerator-runtime "^0.13.4"
@@ -933,18 +953,18 @@
"@babel/parser" "^7.16.7"
"@babel/types" "^7.16.7"
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0":
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.0.tgz#3143e5066796408ccc880a33ecd3184f3e75cd30"
- integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3":
+ version "7.17.3"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57"
+ integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==
dependencies:
"@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.17.0"
+ "@babel/generator" "^7.17.3"
"@babel/helper-environment-visitor" "^7.16.7"
"@babel/helper-function-name" "^7.16.7"
"@babel/helper-hoist-variables" "^7.16.7"
"@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/parser" "^7.17.0"
+ "@babel/parser" "^7.17.3"
"@babel/types" "^7.17.0"
debug "^4.1.0"
globals "^11.1.0"
@@ -974,7 +994,7 @@
ajv "^6.12.0"
ajv-keywords "^3.4.1"
-"@electron/get@^1.13.0", "@electron/get@^1.6.0":
+"@electron/get@^1.13.0":
version "1.13.1"
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368"
integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==
@@ -1002,14 +1022,14 @@
fs-extra "^9.0.1"
"@gar/promisify@^1.0.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
- integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
+ integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
-"@jest/types@^27.2.5", "@jest/types@^27.4.2":
- version "27.4.2"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5"
- integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==
+"@jest/types@^27.2.5", "@jest/types@^27.5.1":
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80"
+ integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
@@ -1018,17 +1038,22 @@
chalk "^4.0.0"
"@jridgewell/resolve-uri@^3.0.3":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
- integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c"
+ integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==
-"@jridgewell/trace-mapping@^0.2.2":
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.2.5.tgz#d5061cc513fd3a0a949feb56b8073989865b1abe"
- integrity sha512-K+Eths78fXDFOvQ2hgJhCiI5s+g81r2yXmACBpbn+f2+Qt94PNoTgUcAXPT8DZkhXCsZRsHVWVtY5KIBMcpDqQ==
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.11"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec"
+ integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
+
+"@jridgewell/trace-mapping@^0.3.0":
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3"
+ integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
- sourcemap-codec "1.4.8"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
"@malept/cross-spawn-promise@^1.1.0":
version "1.1.1"
@@ -1053,9 +1078,9 @@
integrity sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow==
"@npmcli/fs@^1.0.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.0.tgz#bec1d1b89c170d40e1b73ad6c943b0b75e7d2951"
- integrity sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257"
+ integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==
dependencies:
"@gar/promisify" "^1.0.1"
semver "^7.3.5"
@@ -1068,162 +1093,215 @@
mkdirp "^1.0.4"
rimraf "^3.0.2"
-"@playwright/test@^1.18.1":
- version "1.18.1"
- resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.18.1.tgz#efaa3aa9c7f8aebeb75cd45fd9737529e9b30fbd"
- integrity sha512-v6jAM2GpRvf4MUvSLkrAXg101XT9mLu2X2NbCnEoj7GHBXwavDlAJDMwh4Hn8oipDxB6MS6FTcr7opXsIMNwrA==
+"@playwright/test@^1.19.2":
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.19.2.tgz#429d1aa70f5e4cd521cdc8a5d9861ae4fcda3f7c"
+ integrity sha512-5oCmlYHjtOL662OxSkZBYGnoHWIQui7b4YHWNeSCYwhQjmjVcV5njRc8oBZlU8IwJgG7ZH2yhDk1haU96ygbWw==
dependencies:
- "@babel/code-frame" "^7.14.5"
- "@babel/core" "^7.14.8"
- "@babel/plugin-proposal-class-properties" "^7.14.5"
- "@babel/plugin-proposal-dynamic-import" "^7.14.5"
- "@babel/plugin-proposal-export-namespace-from" "^7.14.5"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
- "@babel/plugin-proposal-numeric-separator" "^7.14.5"
- "@babel/plugin-proposal-optional-chaining" "^7.14.5"
- "@babel/plugin-proposal-private-methods" "^7.14.5"
- "@babel/plugin-proposal-private-property-in-object" "^7.14.5"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-transform-modules-commonjs" "^7.14.5"
- "@babel/plugin-transform-react-jsx" "^7.14.5"
- "@babel/preset-typescript" "^7.14.5"
- babel-plugin-module-resolver "^4.1.0"
+ "@babel/code-frame" "7.16.7"
+ "@babel/core" "7.16.12"
+ "@babel/plugin-proposal-class-properties" "7.16.7"
+ "@babel/plugin-proposal-dynamic-import" "7.16.7"
+ "@babel/plugin-proposal-export-namespace-from" "7.16.7"
+ "@babel/plugin-proposal-logical-assignment-operators" "7.16.7"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "7.16.7"
+ "@babel/plugin-proposal-numeric-separator" "7.16.7"
+ "@babel/plugin-proposal-optional-chaining" "7.16.7"
+ "@babel/plugin-proposal-private-methods" "7.16.11"
+ "@babel/plugin-proposal-private-property-in-object" "7.16.7"
+ "@babel/plugin-syntax-async-generators" "7.8.4"
+ "@babel/plugin-syntax-json-strings" "7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "7.8.3"
+ "@babel/plugin-transform-modules-commonjs" "7.16.8"
+ "@babel/plugin-transform-react-jsx" "7.16.7"
+ "@babel/preset-typescript" "7.16.7"
+ babel-plugin-module-resolver "4.1.0"
colors "1.4.0"
- commander "^8.2.0"
- debug "^4.1.1"
- expect "=27.2.5"
- jest-matcher-utils "=27.2.5"
- jpeg-js "^0.4.2"
- json5 "^2.2.0"
- mime "^2.4.6"
- minimatch "^3.0.3"
- ms "^2.1.2"
- open "^8.3.0"
- pirates "^4.0.1"
- pixelmatch "^5.2.1"
- playwright-core "=1.18.1"
- pngjs "^5.0.0"
- rimraf "^3.0.2"
- source-map-support "^0.4.18"
- stack-utils "^2.0.3"
- yazl "^2.5.1"
+ commander "8.3.0"
+ debug "4.3.3"
+ expect "27.2.5"
+ jest-matcher-utils "27.2.5"
+ jpeg-js "0.4.3"
+ json5 "2.2.0"
+ mime "3.0.0"
+ minimatch "3.0.4"
+ ms "2.1.3"
+ open "8.4.0"
+ pirates "4.0.4"
+ pixelmatch "5.2.1"
+ playwright-core "1.19.2"
+ pngjs "6.0.0"
+ rimraf "3.0.2"
+ source-map-support "0.4.18"
+ stack-utils "2.0.5"
+ yazl "2.5.1"
-"@sentry/browser@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.7.1.tgz#e01144a08984a486ecc91d7922cc457e9c9bd6b7"
- integrity sha512-R5PYx4TTvifcU790XkK6JVGwavKaXwycDU0MaAwfc4Vf7BLm5KCNJCsDySu1RPAap/017MVYf54p6dWvKiRviA==
+"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
+ integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78=
+
+"@protobufjs/base64@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
+ integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
+
+"@protobufjs/codegen@^2.0.4":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
+ integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
+
+"@protobufjs/eventemitter@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
+ integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A=
+
+"@protobufjs/fetch@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
+ integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=
dependencies:
- "@sentry/core" "6.7.1"
- "@sentry/types" "6.7.1"
- "@sentry/utils" "6.7.1"
+ "@protobufjs/aspromise" "^1.1.1"
+ "@protobufjs/inquire" "^1.1.0"
+
+"@protobufjs/float@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
+ integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=
+
+"@protobufjs/inquire@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
+ integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=
+
+"@protobufjs/path@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
+ integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=
+
+"@protobufjs/pool@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
+ integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=
+
+"@protobufjs/utf8@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
+ integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
+
+"@sentry/browser@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.2.tgz#8e794b846f43a341068c83420918d896683d903e"
+ integrity sha512-4Ow5z9GxK5dG9+stBNKb7s6NoxE4wgEcHRmO66QTK4gH2NNmzV4R/aaZ7iDoS/lD86sH0M86jm76dpg9uiJPmw==
+ dependencies:
+ "@sentry/core" "6.17.2"
+ "@sentry/types" "6.17.2"
+ "@sentry/utils" "6.17.2"
tslib "^1.9.3"
-"@sentry/core@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.7.1.tgz#c3aaa6415d06bec65ac446b13b84f073805633e3"
- integrity sha512-VAv8OR/7INn2JfiLcuop4hfDcyC7mfL9fdPndQEhlacjmw8gRrgXjR7qyhnCTgzFLkHI7V5bcdIzA83TRPYQpA==
+"@sentry/core@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.2.tgz#f218920f269ccdbaee20a092bbc90a71a007cc88"
+ integrity sha512-Uew0CNMr+QvowrF4EJYjOUgHep/sZJ3l5zevPEELugIgqWBodd+ZDCV3fQFR7cr6KOqx1rMgVrgcKIkLl0l+RA==
dependencies:
- "@sentry/hub" "6.7.1"
- "@sentry/minimal" "6.7.1"
- "@sentry/types" "6.7.1"
- "@sentry/utils" "6.7.1"
+ "@sentry/hub" "6.17.2"
+ "@sentry/minimal" "6.17.2"
+ "@sentry/types" "6.17.2"
+ "@sentry/utils" "6.17.2"
tslib "^1.9.3"
-"@sentry/electron@^2.5.4":
- version "2.5.4"
- resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-2.5.4.tgz#337b2f7e228e805a3e4eb3611c7b12c6cf87c618"
- integrity sha512-tCCK+P581TmdjsDpHBQz7qYcldzGdUk1Fd6FPxPy1JKGzeY4uf/uSLKzR80Lzs5kTpEZFOwiMHSA8yjwFp5qoA==
+"@sentry/electron@^3.0.2":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-3.0.4.tgz#ce69bab9b2f6a7b92183e9fff138a0f79c5c76e3"
+ integrity sha512-IsvhxtHeBLNoRMMfsOHrWghNoJZodJ2lC95Qm22Nsk/qm3W11YMxa38u/l1aKU2f3gmu3Gbti4sT+3eNXD/bKg==
dependencies:
- "@sentry/browser" "6.7.1"
- "@sentry/core" "6.7.1"
- "@sentry/minimal" "6.7.1"
- "@sentry/node" "6.7.1"
- "@sentry/types" "6.7.1"
- "@sentry/utils" "6.7.1"
- tslib "^2.2.0"
+ "@sentry/browser" "6.17.2"
+ "@sentry/core" "6.17.2"
+ "@sentry/node" "6.17.2"
+ "@sentry/types" "6.17.2"
+ "@sentry/utils" "6.17.2"
+ deepmerge "^4.2.2"
+ tslib "^2.3.1"
-"@sentry/hub@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.7.1.tgz#d46d24deec67f0731a808ca16796e6765b371bc1"
- integrity sha512-eVCTWvvcp6xa0A5GGNHMQEWslmKPlisE5rGmsV/kjvSUv3zSrI0eIDfb51ikdnCiBjHpK2NBWP8Vy8cZOEJegg==
+"@sentry/hub@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.2.tgz#d92accada845fa21fff1b2b491d3c6964851693b"
+ integrity sha512-CMi6jU920bTwRTmGHjP4u8toOx4gm1dsx+rsxvp+FKzqRwpwoyi9mOw8oEYERVzaqaYceGdFylyRUrjdf0f77g==
dependencies:
- "@sentry/types" "6.7.1"
- "@sentry/utils" "6.7.1"
+ "@sentry/types" "6.17.2"
+ "@sentry/utils" "6.17.2"
tslib "^1.9.3"
-"@sentry/integrations@^6.17.4":
- version "6.17.4"
- resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.17.4.tgz#a894526ce25020aea1dc9b2f2a4aa584c7de9b3a"
- integrity sha512-NmFbv9w4AK1d4NYi0beTuJgn6t81bdiGZmkNZ9VKVI0mBfoZfwxIo7fGNrla3HMkeTwLHntXuzUu4v+w1EARqA==
+"@sentry/integrations@^6.18.1":
+ version "6.18.2"
+ resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.18.2.tgz#caed0092e8a6c9fb0b8b7efd2deef946ca76e626"
+ integrity sha512-jzEH15m1dewzma2Fp0ENNRUDEOI3gGPfC/+lsLAuj9AMoNZ6qykQP8cB8OPTlzIZc0oyWGAE/1LoTrndPAvoPA==
dependencies:
- "@sentry/types" "6.17.4"
- "@sentry/utils" "6.17.4"
+ "@sentry/types" "6.18.2"
+ "@sentry/utils" "6.18.2"
localforage "^1.8.1"
tslib "^1.9.3"
-"@sentry/minimal@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.7.1.tgz#babf85ee2f167e9dcf150d750d7a0b250c98449c"
- integrity sha512-HDDPEnQRD6hC0qaHdqqKDStcdE1KhkFh0RCtJNMCDn0zpav8Dj9AteF70x6kLSlliAJ/JFwi6AmQrLz+FxPexw==
+"@sentry/minimal@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.2.tgz#3b482a0d76aa33b6c9441dd21acbcc3a113e5120"
+ integrity sha512-Cdh+iM6QhLKfxwUWWP4mk2K7+EsQj4tuF2dGQke4Zcbp7zQ7wbcMruUcZHiZfvg5kiSYxwNVkH7cXMzcO7AJsg==
dependencies:
- "@sentry/hub" "6.7.1"
- "@sentry/types" "6.7.1"
+ "@sentry/hub" "6.17.2"
+ "@sentry/types" "6.17.2"
tslib "^1.9.3"
-"@sentry/node@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.7.1.tgz#b09e2eca8e187168feba7bd865a23935bf0f5cc0"
- integrity sha512-rtZo1O8ROv4lZwuljQz3iFZW89oXSlgXCG2VqkxQyRspPWu89abROpxLjYzsWwQ8djnur1XjFv51kOLDUTS6Qw==
+"@sentry/node@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.17.2.tgz#32a5fa00b64a331073daf1e44f500c8c57184eb1"
+ integrity sha512-358z45WaejnsE8RZVpuLJJiFVCSEi0TRY7P60CljZuz8rnvniD3G0tuXChvu4djVty8NScWZHT/QoxvuJdTHgQ==
dependencies:
- "@sentry/core" "6.7.1"
- "@sentry/hub" "6.7.1"
- "@sentry/tracing" "6.7.1"
- "@sentry/types" "6.7.1"
- "@sentry/utils" "6.7.1"
+ "@sentry/core" "6.17.2"
+ "@sentry/hub" "6.17.2"
+ "@sentry/tracing" "6.17.2"
+ "@sentry/types" "6.17.2"
+ "@sentry/utils" "6.17.2"
cookie "^0.4.1"
https-proxy-agent "^5.0.0"
lru_map "^0.3.3"
tslib "^1.9.3"
-"@sentry/tracing@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.7.1.tgz#b11f0c17a6c5dc14ef44733e5436afb686683268"
- integrity sha512-wyS3nWNl5mzaC1qZ2AIp1hjXnfO9EERjMIJjCihs2LWBz1r3efxrHxJHs8wXlNWvrT3KLhq/7vvF5CdU82uPeQ==
+"@sentry/tracing@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.17.2.tgz#437337071fdeffa319746905b3706518b099ec6b"
+ integrity sha512-oWY2Ga+5D5f90utvfF2Y0eQvme+eS768ZWjR+klRYgZWoY8r1v8uWwWsvroYU1g+h6X0G/xh3giFjsdOWtRENw==
dependencies:
- "@sentry/hub" "6.7.1"
- "@sentry/minimal" "6.7.1"
- "@sentry/types" "6.7.1"
- "@sentry/utils" "6.7.1"
+ "@sentry/hub" "6.17.2"
+ "@sentry/minimal" "6.17.2"
+ "@sentry/types" "6.17.2"
+ "@sentry/utils" "6.17.2"
tslib "^1.9.3"
-"@sentry/types@6.17.4":
- version "6.17.4"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.4.tgz#36b78d7c4a6de19b2bbc631bb34893bcad30c0ba"
- integrity sha512-RUyiXCKf61k2GIMP7FQX0naoSew4zLxe+UrtbjwVcWU4AFPZfH7tLNtTpVE85zAKbxsaiq3OD2FPtTZarHcwxQ==
+"@sentry/types@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.2.tgz#4dde3423db5953e798b19ed29618c28fc7bf2e30"
+ integrity sha512-UrFLRDz5mn253O8k/XftLxoldF+NyZdkqKLGIQmST5HEVr7ub9nQJ4Y5ZFA3zJYWpraaW8faIbuw+pgetC8hmQ==
-"@sentry/types@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.7.1.tgz#c8263e1886df5e815570c4668eb40a1cfaa1c88b"
- integrity sha512-9AO7HKoip2MBMNQJEd6+AKtjj2+q9Ze4ooWUdEvdOVSt5drg7BGpK221/p9JEOyJAZwEPEXdcMd3VAIMiOb4MA==
+"@sentry/types@6.18.2":
+ version "6.18.2"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.2.tgz#f528fec8b75c19d5a6976004e71703184c6cf7be"
+ integrity sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==
-"@sentry/utils@6.17.4":
- version "6.17.4"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.4.tgz#4f109629d2e7f16c5595b4367445ef47bfe96b61"
- integrity sha512-+ENzZbrlVL1JJ+FoK2EOS27nbA/yToeaJPFlyVOnbthUxVyN3TTi9Uzn9F05fIE/2BTkOEk89wPtgcHafgrD6A==
+"@sentry/utils@6.17.2":
+ version "6.17.2"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.2.tgz#e8044e753b47f86068053c8d79e4ae61a39b6732"
+ integrity sha512-ePWtO44KJQwUULOiU86fa1WU3Ird2TH0i39gqB2d3zNS3QyVp9qPlzSdPKSPJ9LdgadzBHw7ikEuE+GY8JTrhA==
dependencies:
- "@sentry/types" "6.17.4"
+ "@sentry/types" "6.17.2"
tslib "^1.9.3"
-"@sentry/utils@6.7.1":
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.7.1.tgz#909184ad580f0f6375e1e4d4a6ffd33dfe64a4d1"
- integrity sha512-Tq2otdbWlHAkctD+EWTYKkEx6BL1Qn3Z/imkO06/PvzpWvVhJWQ5qHAzz5XnwwqNHyV03KVzYB6znq1Bea9HuA==
+"@sentry/utils@6.18.2":
+ version "6.18.2"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.2.tgz#c572a3ff49113e7dc4c97db1a18d117f199b9fff"
+ integrity sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==
dependencies:
- "@sentry/types" "6.7.1"
+ "@sentry/types" "6.18.2"
tslib "^1.9.3"
"@sindresorhus/is@^0.14.0":
@@ -1232,9 +1310,9 @@
integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
"@sindresorhus/is@^4.0.0":
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.4.0.tgz#e277e5bdbdf7cb1e20d320f02f5e2ed113cd3185"
- integrity sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
+ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
"@szmarczak/http-timer@^1.1.2":
version "1.1.2"
@@ -1260,6 +1338,11 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+"@tootallnate/once@2":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+ integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+
"@types/body-parser@*":
version "1.19.2"
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
@@ -1297,7 +1380,7 @@
resolved "https://registry.yarnpkg.com/@types/discord-rpc/-/discord-rpc-4.0.0.tgz#29080812b9092996046af1a21138fb488d180f87"
integrity sha512-a5HiKOcBkB43g/lN6fBYw8FyGc6Ue9CYucxxHxXlELXpb1CxCa2NA2pGK2Ub88pi4uY5+HQeSFbYtH6DJtV3Qw==
-"@types/eslint-scope@^3.7.0":
+"@types/eslint-scope@^3.7.3":
version "3.7.3"
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224"
integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==
@@ -1313,10 +1396,10 @@
"@types/estree" "*"
"@types/json-schema" "*"
-"@types/estree@*", "@types/estree@^0.0.50":
- version "0.0.50"
- resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
- integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
+"@types/estree@*", "@types/estree@^0.0.51":
+ version "0.0.51"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
+ integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
"@types/express-serve-static-core@^4.17.18":
version "4.17.28"
@@ -1393,6 +1476,11 @@
dependencies:
"@types/node" "*"
+"@types/long@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9"
+ integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==
+
"@types/mime@^1":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
@@ -1408,15 +1496,15 @@
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
-"@types/node@*":
- version "17.0.14"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.14.tgz#33b9b94f789a8fedd30a68efdbca4dbb06b61f20"
- integrity sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng==
+"@types/node@*", "@types/node@>=13.7.0":
+ version "17.0.21"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644"
+ integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==
"@types/node@^14.6.2":
- version "14.18.10"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.10.tgz#774f43868964f3cfe4ced1f5417fe15818a4eaea"
- integrity sha512-6iihJ/Pp5fsFJ/aEDGyvT4pHGmCpq7ToQ/yf4bl5SbVAvwpspYJ+v3jO7n8UyjhQVHTy+KNszOozDdv+O6sovQ==
+ version "14.18.12"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24"
+ integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==
"@types/plist@^3.0.1":
version "3.0.2"
@@ -1514,17 +1602,17 @@
anymatch "^3.0.0"
source-map "^0.6.0"
-"@types/ws@^8.2.2":
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21"
- integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==
+"@types/ws@^8.5.1":
+ version "8.5.2"
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.2.tgz#77e0c2e360e9579da930ffcfa53c5975ea3bdd26"
+ integrity sha512-VXI82ykONr5tacHEojnErTQk+KQSoYbW1NB6iz6wUwrNd+BqfkfggQNoNdCqhJSzbNumShPERbM+Pc5zpfhlbw==
dependencies:
"@types/node" "*"
"@types/yargs-parser@*":
- version "20.2.1"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
- integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==
+ version "21.0.0"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
+ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
"@types/yargs@^16.0.0":
version "16.0.4"
@@ -1534,9 +1622,9 @@
"@types/yargs-parser" "*"
"@types/yargs@^17.0.1":
- version "17.0.8"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.8.tgz#d23a3476fd3da8a0ea44b5494ca7fa677b9dad4c"
- integrity sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw==
+ version "17.0.9"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.9.tgz#f1f931a4e5ae2c0134dea10f501088636a50b46a"
+ integrity sha512-Ci8+4/DOtkHRylcisKmVMtmVO5g7weUVCKcsu1sJvF1bn0wExTmbHmhFKj7AnEm0de800iovGhdSKzYnzbaHpg==
dependencies:
"@types/yargs-parser" "*"
@@ -1691,7 +1779,7 @@ abstract-socket@^2.0.0:
bindings "^1.2.1"
nan "^2.12.1"
-accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
+accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
@@ -1704,11 +1792,16 @@ acorn-import-assertions@^1.7.6:
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
-acorn@^8.4.1:
+acorn@^8.4.1, acorn@^8.5.0:
version "8.7.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
+adm-zip@0.4.10:
+ version "0.4.10"
+ resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.10.tgz#6efb1090e78a12db377f3ba5f27b363f21988ac1"
+ integrity sha512-075E4f1zFxHbsnn6C4OI4jVzUT1zV+M68QdBxcVxmO/Yqk35CFnFFYLaepvth68gzlIlyQ/hkaI2JY99Nh3C5Q==
+
agent-base@6, agent-base@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
@@ -1717,9 +1810,9 @@ agent-base@6, agent-base@^6.0.2:
debug "4"
agentkeepalive@^4.1.3:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d"
- integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717"
+ integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==
dependencies:
debug "^4.1.0"
depd "^1.1.2"
@@ -1761,9 +1854,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.0, ajv@^6.12.4, ajv@^6.12.5:
uri-js "^4.2.2"
ajv@^8.0.0, ajv@^8.6.3:
- version "8.9.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.9.0.tgz#738019146638824dea25edcf299dcba1b0e7eb18"
- integrity sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==
+ version "8.10.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d"
+ integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
@@ -1829,7 +1922,7 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
-anymatch@^3.0.0:
+anymatch@^3.0.0, anymatch@~3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
@@ -1842,10 +1935,10 @@ app-builder-bin@3.7.1:
resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e"
integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==
-app-builder-lib@22.14.5:
- version "22.14.5"
- resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz#a61a50b132b858e98fdc70b6b88994ae99b4f96d"
- integrity sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==
+app-builder-lib@22.14.13:
+ version "22.14.13"
+ resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.13.tgz#c1f5b6afc86596357598bb90b69eef06c7c2eeb3"
+ integrity sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg==
dependencies:
"7zip-bin" "~5.1.1"
"@develar/schema-utils" "~2.6.5"
@@ -1853,13 +1946,13 @@ app-builder-lib@22.14.5:
"@malept/flatpak-bundler" "^0.4.0"
async-exit-hook "^2.0.1"
bluebird-lst "^1.0.9"
- builder-util "22.14.5"
- builder-util-runtime "8.9.1"
+ builder-util "22.14.13"
+ builder-util-runtime "8.9.2"
chromium-pickle-js "^0.2.0"
debug "^4.3.2"
ejs "^3.1.6"
electron-osx-sign "^0.5.0"
- electron-publish "22.14.5"
+ electron-publish "22.14.13"
form-data "^4.0.0"
fs-extra "^10.0.0"
hosted-git-info "^4.0.2"
@@ -1883,10 +1976,10 @@ aproba@^1.1.1:
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-are-we-there-yet@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c"
- integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==
+are-we-there-yet@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d"
+ integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==
dependencies:
delegates "^1.0.0"
readable-stream "^3.6.0"
@@ -1945,7 +2038,7 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-asar@^3.0.3, asar@^3.1.0:
+asar@^3.0.3:
version "3.1.0"
resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473"
integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==
@@ -1992,7 +2085,7 @@ async@0.9.x:
resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
-async@^2.6.2:
+async@^2.6.0, async@^2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
@@ -2019,11 +2112,6 @@ atomically@^1.7.0:
resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe"
integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==
-author-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450"
- integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=
-
babel-loader@^8.1.0:
version "8.2.3"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d"
@@ -2048,7 +2136,7 @@ babel-plugin-dynamic-import-node@^2.3.3:
dependencies:
object.assign "^4.1.0"
-babel-plugin-module-resolver@^4.1.0:
+babel-plugin-module-resolver@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2"
integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==
@@ -2121,6 +2209,11 @@ binary-extensions@^1.0.0:
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
bindings@^1.2.1, bindings@^1.3.0, bindings@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
@@ -2135,25 +2228,25 @@ bluebird-lst@^1.0.9:
dependencies:
bluebird "^3.5.5"
-bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2:
+bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5, bluebird@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-body-parser@1.19.1:
- version "1.19.1"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4"
- integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==
+body-parser@1.19.2:
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
+ integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==
dependencies:
- bytes "3.1.1"
+ bytes "3.1.2"
content-type "~1.0.4"
debug "2.6.9"
depd "~1.1.2"
http-errors "1.8.1"
iconv-lite "0.4.24"
on-finished "~2.3.0"
- qs "6.9.6"
- raw-body "2.4.2"
+ qs "6.9.7"
+ raw-body "2.4.3"
type-is "~1.6.18"
bonjour@^3.5.0:
@@ -2174,9 +2267,9 @@ boolbase@^1.0.0:
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
boolean@^3.0.1:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435"
- integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b"
+ integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==
boxen@^5.0.0:
version "5.1.2"
@@ -2216,7 +2309,7 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
-braces@^3.0.1:
+braces@^3.0.1, braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -2224,14 +2317,14 @@ braces@^3.0.1:
fill-range "^7.0.1"
browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.19.1:
- version "4.19.1"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
- integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
+ version "4.20.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9"
+ integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==
dependencies:
- caniuse-lite "^1.0.30001286"
- electron-to-chromium "^1.4.17"
+ caniuse-lite "^1.0.30001313"
+ electron-to-chromium "^1.4.76"
escalade "^3.1.1"
- node-releases "^2.0.1"
+ node-releases "^2.0.2"
picocolors "^1.0.0"
buffer-alloc-unsafe@^1.1.0:
@@ -2280,29 +2373,31 @@ buffer@^5.1.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
-builder-util-runtime@8.9.1:
- version "8.9.1"
- resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
- integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==
+builder-util-runtime@8.9.2:
+ version "8.9.2"
+ resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz#a9669ae5b5dcabfe411ded26678e7ae997246c28"
+ integrity sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==
dependencies:
debug "^4.3.2"
sax "^1.2.4"
-builder-util@22.14.5:
- version "22.14.5"
- resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz#42a18608d2a566c0846e91266464776c8bfb0cc9"
- integrity sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==
+builder-util@22.14.13:
+ version "22.14.13"
+ resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.13.tgz#41b5b7b4ee53aff4e09cc007fb144522598f3ce6"
+ integrity sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==
dependencies:
"7zip-bin" "~5.1.1"
"@types/debug" "^4.1.6"
"@types/fs-extra" "^9.0.11"
app-builder-bin "3.7.1"
bluebird-lst "^1.0.9"
- builder-util-runtime "8.9.1"
+ builder-util-runtime "8.9.2"
chalk "^4.1.1"
cross-spawn "^7.0.3"
debug "^4.3.2"
fs-extra "^10.0.0"
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.0"
is-ci "^3.0.0"
js-yaml "^4.1.0"
source-map-support "^0.5.19"
@@ -2314,10 +2409,10 @@ bytes@3.0.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
-bytes@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a"
- integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==
+bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
cacache@^13.0.1:
version "13.0.1"
@@ -2439,10 +2534,26 @@ camelcase@^6.2.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-lite@^1.0.30001286:
- version "1.0.30001306"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001306.tgz#582592afe243bad2223081b8abab07bf289cc699"
- integrity sha512-Wd1OuggRzg1rbnM5hv1wXs2VkxJH/AA+LuudlIqvZiCvivF+wJJe2mgBZC8gPMgI7D76PP5CTx8Luvaqc1V6OQ==
+caniuse-lite@^1.0.30001313:
+ version "1.0.30001314"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596"
+ integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==
+
+castv2-client@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/castv2-client/-/castv2-client-1.2.0.tgz#a9193b1a5448b8cb9a0415bd021c8811ed7b0544"
+ integrity sha1-qRk7GlRIuMuaBBW9AhyIEe17BUQ=
+ dependencies:
+ castv2 "~0.1.4"
+ debug "^2.2.0"
+
+castv2@~0.1.4:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/castv2/-/castv2-0.1.10.tgz#d3df00124f1ba8a97691c69dd44221d3b5f93c56"
+ integrity sha512-3QWevHrjT22KdF08Y2a217IYCDQDP7vEJaY4n0lPBeC5UBYbMFMadDfVTsaQwq7wqsEgYUHElPGm3EO1ey+TNw==
+ dependencies:
+ debug "^4.1.1"
+ protobufjs "^6.8.8"
chalk@^2.0.0, chalk@^2.4.2:
version "2.4.2"
@@ -2480,6 +2591,21 @@ chokidar@^2.1.8:
optionalDependencies:
fsevents "^1.2.7"
+chokidar@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+ 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"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
chownr@^1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
@@ -2611,7 +2737,7 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-color-support@^1.1.2:
+color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
@@ -2640,6 +2766,11 @@ commander@2.9.0:
dependencies:
graceful-readlink ">= 1.0.0"
+commander@8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+ integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@@ -2655,11 +2786,6 @@ commander@^5.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
-commander@^8.2.0:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
- integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
-
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2751,7 +2877,7 @@ connect-history-api-fallback@^1.6.0:
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
-console-control-strings@^1.0.0, console-control-strings@^1.1.0:
+console-control-strings@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
@@ -2780,12 +2906,7 @@ cookie-signature@1.0.6:
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
-cookie@0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
- integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
-
-cookie@^0.4.1:
+cookie@0.4.2, cookie@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
@@ -2808,9 +2929,9 @@ copy-descriptor@^0.1.0:
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
core-js-compat@^3.20.2, core-js-compat@^3.21.0:
- version "3.21.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.0.tgz#bcc86aa5a589cee358e7a7fa0a4979d5a76c3885"
- integrity sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==
+ version "3.21.1"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82"
+ integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==
dependencies:
browserslist "^4.19.1"
semver "7.0.0"
@@ -2839,15 +2960,6 @@ crocket@^0.9.11:
dependencies:
xpipe "*"
-cross-spawn-windows-exe@^1.1.0, cross-spawn-windows-exe@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz#46253b0f497676e766faf4a7061004618b5ac5ec"
- integrity sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==
- dependencies:
- "@malept/cross-spawn-promise" "^1.1.0"
- is-wsl "^2.2.0"
- which "^2.0.2"
-
cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -2859,7 +2971,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^7.0.1, cross-spawn@^7.0.3:
+cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -2956,14 +3068,14 @@ debug@2.6.9, debug@^2.1.0, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.
dependencies:
ms "2.0.0"
-debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3:
+debug@4, debug@4.3.3, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3:
version "4.3.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
dependencies:
ms "2.1.2"
-debug@^3.1.0, debug@^3.1.1, debug@^3.2.6:
+debug@^3.1.0, debug@^3.1.1, debug@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
@@ -3011,6 +3123,11 @@ deep-extend@^0.6.0:
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
default-gateway@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
@@ -3076,6 +3193,11 @@ del@^4.1.1:
pify "^4.0.1"
rimraf "^2.6.3"
+delay@^4.3.0:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/delay/-/delay-4.4.1.tgz#6e02d02946a1b6ab98b39262ced965acba2ac4d1"
+ integrity sha512-aL3AhqtfhOlT/3ai6sWXeqwnw63ATNpnUiN4HL7x9q+My5QtHlO3OIkasmug9LKzpheLdmUKGRKnYXYAS7FQkQ==
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -3106,10 +3228,10 @@ detect-node@^2.0.4:
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
-diff-sequences@^27.4.0:
- version "27.4.0"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5"
- integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==
+diff-sequences@^27.5.1:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327"
+ integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==
dijkstrajs@^1.0.1:
version "1.0.2"
@@ -3136,14 +3258,14 @@ discord-rpc@^4.0.1:
optionalDependencies:
register-scheme "github:devsnek/node-register-scheme"
-dmg-builder@22.14.5:
- version "22.14.5"
- resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz#137c0b55e639badcc0b119eb060e6fa4ed61d948"
- integrity sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==
+dmg-builder@22.14.13:
+ version "22.14.13"
+ resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.13.tgz#cc613f3c18e889b8777d525991fd52f50a564f8c"
+ integrity sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg==
dependencies:
- app-builder-lib "22.14.5"
- builder-util "22.14.5"
- builder-util-runtime "8.9.1"
+ app-builder-lib "22.14.13"
+ builder-util "22.14.13"
+ builder-util-runtime "8.9.2"
fs-extra "^10.0.0"
iconv-lite "^0.6.2"
js-yaml "^4.1.0"
@@ -3151,9 +3273,9 @@ dmg-builder@22.14.5:
dmg-license "^1.0.9"
dmg-license@^1.0.9:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.10.tgz#89f52afae25d827fce8d818c13aff30af1c16bcc"
- integrity sha512-SVeeyiOeinV5JCPHXMdKOgK1YVbak/4+8WL2rBnfqRYpA5FaeFaQnQWb25x628am1w70CbipGDv9S51biph63A==
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.11.tgz#7b3bc3745d1b52be7506b4ee80cb61df6e4cd79a"
+ integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==
dependencies:
"@types/plist" "^3.0.1"
"@types/verror" "^1.10.3"
@@ -3294,17 +3416,25 @@ ejs@^3.1.6:
dependencies:
jake "^10.6.1"
-electron-builder@^22.14.5:
- version "22.14.5"
- resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz#3a25547bd4fe3728d4704da80956a794c5c31496"
- integrity sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==
+electron-builder-notarize-pkg@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/electron-builder-notarize-pkg/-/electron-builder-notarize-pkg-1.2.0.tgz#c6f4b0027418be465b2ab41effc6eecc68110bcb"
+ integrity sha512-ibnOeZwXxEPIzPujHfsLoCG+x4BcRQndBQoRyvTEZEeCeO/D4uu3TSAPeNXZuKfoL3h2auaIBIhh4He5HgY1rw==
+ dependencies:
+ delay "^4.3.0"
+ execa "^4.0.0"
+
+electron-builder@^22.14.13:
+ version "22.14.13"
+ resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.13.tgz#fd40564685cf5422a8f8d667940af3d3776f4fb8"
+ integrity sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw==
dependencies:
"@types/yargs" "^17.0.1"
- app-builder-lib "22.14.5"
- builder-util "22.14.5"
- builder-util-runtime "8.9.1"
+ app-builder-lib "22.14.13"
+ builder-util "22.14.13"
+ builder-util-runtime "8.9.2"
chalk "^4.1.1"
- dmg-builder "22.14.5"
+ dmg-builder "22.14.13"
fs-extra "^10.0.0"
is-ci "^3.0.0"
lazy-val "^1.0.5"
@@ -3329,10 +3459,10 @@ electron-fetch@^1.7.4:
dependencies:
encoding "^0.1.13"
-electron-log@^4.4.5:
- version "4.4.5"
- resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.4.5.tgz#5fcfd0c2dc5fbda915ee0a9d802705dc57930786"
- integrity sha512-Cfa2CKnwBhlUfIl/qr2GF5SCqfoA9yPBqTJ6/wPs+PEn36M2+EZ3RpGSaOhYQ1BZpolL1CWyeu3gMG8epLl3Ng==
+electron-log@^4.4.6:
+ version "4.4.6"
+ resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.4.6.tgz#e7824fc725370384f6edaaac0480c423e570dc69"
+ integrity sha512-nirYgRdY+F+vclr8ijdwy2vW03IzFpDHTaKNWu76dEN21Y76+smcES5knS7cgHUUB0qNLOi8vZO36taakjbSXA==
electron-notarize@^1.1.1:
version "1.1.1"
@@ -3354,38 +3484,14 @@ electron-osx-sign@^0.5.0:
minimist "^1.2.0"
plist "^3.0.1"
-electron-packager@^15.4.0:
- version "15.4.0"
- resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-15.4.0.tgz#07ea036b70cde2062d4c8dce4d907d793b303998"
- integrity sha512-JrrLcBP15KGrPj0cZ/ALKGmaQ4gJkn3mocf0E3bRKdR3kxKWYcDRpCvdhksYDXw/r3I6tMEcZ7XzyApWFXdVpw==
- dependencies:
- "@electron/get" "^1.6.0"
- asar "^3.1.0"
- cross-spawn-windows-exe "^1.2.0"
- debug "^4.0.1"
- electron-notarize "^1.1.1"
- electron-osx-sign "^0.5.0"
- extract-zip "^2.0.0"
- filenamify "^4.1.0"
- fs-extra "^9.0.0"
- galactus "^0.2.1"
- get-package-info "^1.0.0"
- junk "^3.1.0"
- parse-author "^2.0.0"
- plist "^3.0.0"
- rcedit "^3.0.1"
- resolve "^1.1.6"
- semver "^7.1.3"
- yargs-parser "^20.0.0"
-
-electron-publish@22.14.5:
- version "22.14.5"
- resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz#34bcdce671f0e651330db20040d6919c77c94bd6"
- integrity sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==
+electron-publish@22.14.13:
+ version "22.14.13"
+ resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.13.tgz#8b71e6975af8cc6ac5b21f293ade23f8704047c7"
+ integrity sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ==
dependencies:
"@types/fs-extra" "^9.0.11"
- builder-util "22.14.5"
- builder-util-runtime "8.9.1"
+ builder-util "22.14.13"
+ builder-util-runtime "8.9.2"
chalk "^4.1.1"
fs-extra "^10.0.0"
lazy-val "^1.0.5"
@@ -3399,18 +3505,18 @@ electron-store@^8.0.1:
conf "^10.0.3"
type-fest "^1.0.2"
-electron-to-chromium@^1.4.17:
- version "1.4.64"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz#8b1b5372f77ca208f2c498c6490da0e51176bd81"
- integrity sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ==
+electron-to-chromium@^1.4.76:
+ version "1.4.80"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.80.tgz#299a1ea3e32810934b4e3c2e4d4cb53136fdab3f"
+ integrity sha512-COsbJCGVYCc/aAY4cd94x1Js3q0r406YKGbdL8LXHg0O9dEjuFEFU/vZneRxBxKo/f1lLHi0YyAR7sbFM+i8Bg==
-electron-updater@^4.6.1:
- version "4.6.1"
- resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.1.tgz#80ca805c4f51b2e682aac29d18fed75d6a533d32"
- integrity sha512-YsU1mHqXLrXXmBMsxhxy24PrbaB8rnpZDPmFa2gOkTYk/Ch13+R0fjsRSpPYvqtskVVY0ux8fu+HnUkVkqc7og==
+electron-updater@^4.6.5:
+ version "4.6.5"
+ resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.5.tgz#e9a75458bbfd6bb41a58a829839e150ad2eb2d3d"
+ integrity sha512-kdTly8O9mSZfm9fslc1mnCY+mYOeaYRy7ERa2Fed240u01BKll3aiupzkd07qKw69KvhBSzuHroIW3mF0D8DWA==
dependencies:
"@types/semver" "^7.3.6"
- builder-util-runtime "8.9.1"
+ builder-util-runtime "8.9.2"
fs-extra "^10.0.0"
js-yaml "^4.1.0"
lazy-val "^1.0.5"
@@ -3473,8 +3579,8 @@ electron-window-state@^5.0.3:
mkdirp "^0.5.1"
"electron@git+https://github.com/castlabs/electron-releases.git":
- version "18.0.0-alpha.1"
- resolved "git+https://github.com/castlabs/electron-releases.git#513890a7edda1f9723fbf410a4806b4cabd88827"
+ version "18.0.0-alpha.5"
+ resolved "git+https://github.com/castlabs/electron-releases.git#4f424eddd6ec2569c5f293778ba8056205805247"
dependencies:
"@electron/get" "^1.13.0"
"@types/node" "^14.6.2"
@@ -3529,9 +3635,9 @@ enhanced-resolve@^4.1.1:
tapable "^1.0.0"
enhanced-resolve@^5.8.3:
- version "5.8.3"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
- integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
+ version "5.9.2"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9"
+ integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.2.0"
@@ -3558,7 +3664,7 @@ errno@^0.1.3:
dependencies:
prr "~1.0.1"
-error-ex@^1.2.0, error-ex@^1.3.1:
+error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
@@ -3625,7 +3731,7 @@ escape-html@~1.0.3:
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
@@ -3703,7 +3809,7 @@ events@^3.2.0:
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
-eventsource@^1.0.7:
+eventsource@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf"
integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==
@@ -3723,6 +3829,21 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+execa@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
+ integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
@@ -3743,7 +3864,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@=27.2.5:
+expect@27.2.5:
version "27.2.5"
resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.5.tgz#16154aaa60b4d9a5b0adacfea3e4d6178f4b93fd"
integrity sha512-ZrO0w7bo8BgGoP/bLz+HDCI+0Hfei9jUSZs5yI/Wyn9VkG9w8oJ7rHRgYj+MA7yqqFa0IwHA3flJzZtYugShJA==
@@ -3755,17 +3876,17 @@ expect@=27.2.5:
jest-message-util "^27.2.5"
jest-regex-util "^27.0.6"
-express@^4.17.1, express@^4.17.2:
- version "4.17.2"
- resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3"
- integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==
+express@^4.17.1, express@^4.17.3:
+ version "4.17.3"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1"
+ integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==
dependencies:
- accepts "~1.3.7"
+ accepts "~1.3.8"
array-flatten "1.1.1"
- body-parser "1.19.1"
+ body-parser "1.19.2"
content-disposition "0.5.4"
content-type "~1.0.4"
- cookie "0.4.1"
+ cookie "0.4.2"
cookie-signature "1.0.6"
debug "2.6.9"
depd "~1.1.2"
@@ -3780,7 +3901,7 @@ express@^4.17.1, express@^4.17.2:
parseurl "~1.3.3"
path-to-regexp "0.1.7"
proxy-addr "~2.0.7"
- qs "6.9.6"
+ qs "6.9.7"
range-parser "~1.2.1"
safe-buffer "5.2.1"
send "0.17.2"
@@ -3806,6 +3927,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
+extend@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
extglob@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@@ -3820,17 +3946,7 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-extract-zip@^1.0.3:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927"
- integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==
- dependencies:
- concat-stream "^1.6.2"
- debug "^2.6.9"
- mkdirp "^0.5.4"
- yauzl "^2.10.0"
-
-extract-zip@^2.0.0, extract-zip@^2.0.1:
+extract-zip@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
@@ -3841,6 +3957,16 @@ extract-zip@^2.0.0, extract-zip@^2.0.1:
optionalDependencies:
"@types/yauzl" "^2.9.1"
+extract-zip@^1.0.3:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927"
+ integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==
+ dependencies:
+ concat-stream "^1.6.2"
+ debug "^2.6.9"
+ mkdirp "^0.5.4"
+ yauzl "^2.10.0"
+
extsprintf@^1.2.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
@@ -3861,7 +3987,7 @@ fast-safe-stringify@^2.0.6:
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
-faye-websocket@^0.11.3:
+faye-websocket@^0.11.3, faye-websocket@^0.11.4:
version "0.11.4"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
@@ -3909,20 +4035,6 @@ filelist@^1.0.1:
dependencies:
minimatch "^3.0.4"
-filename-reserved-regex@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
- integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik=
-
-filenamify@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106"
- integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==
- dependencies:
- filename-reserved-regex "^2.0.0"
- strip-outer "^1.0.1"
- trim-repeated "^1.0.0"
-
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -3970,13 +4082,6 @@ find-cache-dir@^3.3.1:
make-dir "^3.0.2"
pkg-dir "^4.1.0"
-find-up@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
- dependencies:
- locate-path "^2.0.0"
-
find-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -4002,18 +4107,10 @@ findup-sync@^3.0.0:
micromatch "^3.0.4"
resolve-dir "^1.0.1"
-flora-colossus@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-1.0.1.tgz#aba198425a8185341e64f9d2a6a96fd9a3cbdb93"
- integrity sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA==
- dependencies:
- debug "^4.1.1"
- fs-extra "^7.0.0"
-
follow-redirects@^1.0.0:
- version "1.14.7"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
- integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
+ version "1.14.9"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
+ integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
for-in@^1.0.2:
version "1.0.2"
@@ -4052,32 +4149,14 @@ from@~0:
integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
fs-extra@^10.0.0:
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
- integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8"
+ integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
universalify "^2.0.0"
-fs-extra@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
- integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
-fs-extra@^7.0.0:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
- integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -4127,34 +4206,29 @@ fsevents@^1.2.7:
bindings "^1.5.0"
nan "^2.12.1"
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-galactus@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/galactus/-/galactus-0.2.1.tgz#cbed2d20a40c1f5679a35908e2b9415733e78db9"
- integrity sha1-y+0tIKQMH1Z5o1kI4rlBVzPnjbk=
- dependencies:
- debug "^3.1.0"
- flora-colossus "^1.0.0"
- fs-extra "^4.0.0"
-
gauge@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8"
- integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.3.tgz#286cf105c1962c659f0963058fb05116c1b82d3f"
+ integrity sha512-ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw==
dependencies:
- ansi-regex "^5.0.1"
aproba "^1.0.3 || ^2.0.0"
- color-support "^1.1.2"
- console-control-strings "^1.0.0"
+ color-support "^1.1.3"
+ console-control-strings "^1.1.0"
has-unicode "^2.0.1"
- signal-exit "^3.0.0"
+ signal-exit "^3.0.7"
string-width "^4.2.3"
strip-ansi "^6.0.1"
- wide-align "^1.1.2"
+ wide-align "^1.1.5"
gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
@@ -4175,16 +4249,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
-get-package-info@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c"
- integrity sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=
- dependencies:
- bluebird "^3.1.1"
- debug "^2.2.0"
- lodash.get "^4.0.0"
- read-pkg-up "^2.0.0"
-
get-port@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193"
@@ -4197,7 +4261,7 @@ get-stream@^4.0.0, get-stream@^4.1.0:
dependencies:
pump "^3.0.0"
-get-stream@^5.1.0:
+get-stream@^5.0.0, get-stream@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
@@ -4225,6 +4289,13 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
+glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
glob-to-regexp@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
@@ -4364,7 +4435,7 @@ got@^9.6.0:
to-readable-stream "^1.0.0"
url-parse-lax "^3.0.0"
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6:
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
version "4.2.9"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
@@ -4395,9 +4466,9 @@ has-flag@^4.0.0:
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
has-symbols@^1.0.1, has-symbols@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
- integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
has-tostringtag@^1.0.0:
version "1.0.0"
@@ -4471,11 +4542,6 @@ homedir-polyfill@^1.0.1:
dependencies:
parse-passwd "^1.0.0"
-hosted-git-info@^2.1.4:
- version "2.8.9"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
- integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-
hosted-git-info@^4.0.2:
version "4.1.0"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224"
@@ -4588,9 +4654,9 @@ http-errors@~1.6.2:
statuses ">= 1.4.0 < 2"
http-parser-js@>=0.5.1:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5"
- integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd"
+ integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==
http-proxy-agent@^4.0.1:
version "4.0.1"
@@ -4601,6 +4667,15 @@ http-proxy-agent@^4.0.1:
agent-base "6"
debug "4"
+http-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+ integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ dependencies:
+ "@tootallnate/once" "2"
+ agent-base "6"
+ debug "4"
+
http-proxy-middleware@0.19.1:
version "0.19.1"
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
@@ -4628,7 +4703,7 @@ http2-wrapper@^1.0.0-beta.5.2:
quick-lru "^5.1.1"
resolve-alpn "^1.0.0"
-https-proxy-agent@^5.0.0:
+https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
@@ -4636,6 +4711,11 @@ https-proxy-agent@^5.0.0:
agent-base "6"
debug "4"
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
humanize-ms@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
@@ -4826,6 +4906,13 @@ is-binary-path@^1.0.0:
dependencies:
binary-extensions "^1.0.0"
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
is-boolean-object@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
@@ -4943,7 +5030,7 @@ is-glob@^3.1.0:
dependencies:
is-extglob "^2.1.0"
-is-glob@^4.0.0:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -5051,6 +5138,11 @@ is-stream@^1.1.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
is-string@^1.0.5, is-string@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
@@ -5143,22 +5235,22 @@ jake@^10.6.1:
filelist "^1.0.1"
minimatch "^3.0.4"
-jest-diff@^27.2.5, jest-diff@^27.4.6:
- version "27.4.6"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.6.tgz#93815774d2012a2cbb6cf23f84d48c7a2618f98d"
- integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==
+jest-diff@^27.2.5, jest-diff@^27.5.1:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def"
+ integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==
dependencies:
chalk "^4.0.0"
- diff-sequences "^27.4.0"
- jest-get-type "^27.4.0"
- pretty-format "^27.4.6"
+ diff-sequences "^27.5.1"
+ jest-get-type "^27.5.1"
+ pretty-format "^27.5.1"
-jest-get-type@^27.0.6, jest-get-type@^27.4.0:
- version "27.4.0"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5"
- integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==
+jest-get-type@^27.0.6, jest-get-type@^27.5.1:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1"
+ integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==
-jest-matcher-utils@=27.2.5:
+jest-matcher-utils@27.2.5:
version "27.2.5"
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz#4684faaa8eb32bf15e6edaead6834031897e2980"
integrity sha512-qNR/kh6bz0Dyv3m68Ck2g1fLW5KlSOUNcFQh87VXHZwWc/gY6XwnKofx76Qytz3x5LDWT09/2+yXndTkaG4aWg==
@@ -5169,34 +5261,34 @@ jest-matcher-utils@=27.2.5:
pretty-format "^27.2.5"
jest-matcher-utils@^27.2.5:
- version "27.4.6"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz#53ca7f7b58170638590e946f5363b988775509b8"
- integrity sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA==
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab"
+ integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==
dependencies:
chalk "^4.0.0"
- jest-diff "^27.4.6"
- jest-get-type "^27.4.0"
- pretty-format "^27.4.6"
+ jest-diff "^27.5.1"
+ jest-get-type "^27.5.1"
+ pretty-format "^27.5.1"
jest-message-util@^27.2.5:
- version "27.4.6"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.4.6.tgz#9fdde41a33820ded3127465e1a5896061524da31"
- integrity sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf"
+ integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@jest/types" "^27.4.2"
+ "@jest/types" "^27.5.1"
"@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
- graceful-fs "^4.2.4"
+ graceful-fs "^4.2.9"
micromatch "^4.0.4"
- pretty-format "^27.4.6"
+ pretty-format "^27.5.1"
slash "^3.0.0"
stack-utils "^2.0.3"
jest-regex-util@^27.0.6:
- version "27.4.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca"
- integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95"
+ integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==
jest-worker@^25.4.0:
version "25.5.0"
@@ -5207,15 +5299,15 @@ jest-worker@^25.4.0:
supports-color "^7.0.0"
jest-worker@^27.4.5:
- version "27.4.6"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e"
- integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
+ integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
dependencies:
"@types/node" "*"
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jpeg-js@^0.4.2:
+jpeg-js@0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b"
integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==
@@ -5290,10 +5382,12 @@ json-stringify-safe@^5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-json3@^3.3.3:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
- integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
+json5@2.2.0, json5@^2.1.0, json5@^2.1.2, json5@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+ integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+ dependencies:
+ minimist "^1.2.5"
json5@^0.5.1:
version "0.5.1"
@@ -5307,13 +5401,6 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
-json5@^2.1.0, json5@^2.1.2, json5@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
- integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
- dependencies:
- minimist "^1.2.5"
-
jsonc@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/jsonc/-/jsonc-2.0.0.tgz#9e2a25100d164a9bb864c57517563717fa882551"
@@ -5342,11 +5429,6 @@ jsonfile@^6.0.1:
optionalDependencies:
graceful-fs "^4.1.6"
-junk@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1"
- integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==
-
keyv@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
@@ -5355,9 +5437,9 @@ keyv@^3.0.0:
json-buffer "3.0.0"
keyv@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.1.0.tgz#8ab5ca4ae6a34e05c629531d9a7f871575af0d5b"
- integrity sha512-YsY3wr6HabE11/sscee+3nZ03XjvkrPWGouAmJFBdZoK92wiOlJCzI5/sDEIKdJhdhHO144ei45U9gXfbu14Uw==
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.1.1.tgz#02c538bfdbd2a9308cc932d4096f05ae42bfa06a"
+ integrity sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==
dependencies:
json-buffer "3.0.1"
@@ -5423,16 +5505,6 @@ lie@3.1.1:
dependencies:
immediate "~3.0.5"
-load-json-file@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
- integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- strip-bom "^3.0.0"
-
loader-runner@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
@@ -5463,14 +5535,6 @@ localforage@^1.8.1:
dependencies:
lie "3.1.1"
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@@ -5496,11 +5560,6 @@ lodash.escaperegexp@^4.1.2:
resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=
-lodash.get@^4.0.0:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
- integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
-
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
@@ -5617,9 +5676,9 @@ matcher@^3.0.0:
dependencies:
escape-string-regexp "^4.0.0"
-"mdns-js@git+https://github.com/bitfocus/node-mdns-js.git":
+"mdns-js@git+https://github.com/ciderapp/node-mdns-js.git":
version "1.0.7"
- resolved "git+https://github.com/bitfocus/node-mdns-js.git#1af6b83ce91e5538012f977e1dcadbda5dc0d3b5"
+ resolved "git+https://github.com/ciderapp/node-mdns-js.git#1af6b83ce91e5538012f977e1dcadbda5dc0d3b5"
dependencies:
debug "^4.1.1"
dns-js "github:bitfocus/node-dns-js#v0.2.2"
@@ -5693,11 +5752,16 @@ micromatch@^4.0.4:
braces "^3.0.1"
picomatch "^2.2.3"
-mime-db@1.51.0, "mime-db@>= 1.43.0 < 2":
+mime-db@1.51.0:
version "1.51.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
+"mime-db@>= 1.43.0 < 2":
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.34"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
@@ -5710,7 +5774,12 @@ mime@1.6.0:
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-mime@^2.4.4, mime@^2.4.6, mime@^2.5.2:
+mime@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
+ integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==
+
+mime@^2.4.4, mime@^2.5.2:
version "2.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
@@ -5750,13 +5819,20 @@ minimalistic-assert@^1.0.0:
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4:
+minimatch@3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
+minimatch@^3.0.4:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
minimist@^1.2.0, minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
@@ -5867,7 +5943,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2:
+ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -5885,10 +5961,10 @@ multicast-dns@^6.0.1:
dns-packet "^1.3.1"
thunky "^1.0.2"
-music-metadata@^7.11.4:
- version "7.11.8"
- resolved "https://registry.yarnpkg.com/music-metadata/-/music-metadata-7.11.8.tgz#be67ff6d5e5499d2a31a7044079cb83c03544cc2"
- integrity sha512-KaJzxDlYId05zN029WaKhJYcT5FB0QmTRSGDq5bRfPTBUw4Hl0VvJvaO5C5mm0ATWMREecMANV9YUatLMg+0Mg==
+music-metadata@^7.12.1:
+ version "7.12.2"
+ resolved "https://registry.yarnpkg.com/music-metadata/-/music-metadata-7.12.2.tgz#13771b5d88285afd93659ed2496912c92e0558b6"
+ integrity sha512-KO1L6q30b6HfGlDQk1VAdrZqCKi4Gy7pN7eZOZ0YZQkhF/KCLHxKCjKKli9ao9kIBC/9s+uXHvjW3bDIBWuGew==
dependencies:
"@tokenizer/token" "^0.3.0"
content-type "^1.0.4"
@@ -5896,7 +5972,7 @@ music-metadata@^7.11.4:
file-type "16.5.3"
media-typer "^1.1.0"
strtok3 "^6.2.4"
- token-types "^4.1.1"
+ token-types "^4.2.0"
musickit-typescript@^1.2.4:
version "1.2.4"
@@ -5986,10 +6062,21 @@ node-loader@^0.6.0:
resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-0.6.0.tgz#c797ef51095ed5859902b157f6384f6361e05ae8"
integrity sha1-x5fvUQle1YWZArFX9jhPY2HgWug=
-node-releases@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
- integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
+node-releases@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01"
+ integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
+
+node-ssdp@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/node-ssdp/-/node-ssdp-4.0.1.tgz#ea5b2e9a287823b58b3ede348b22a08159cf718f"
+ integrity sha512-uJXkLZVuyaMg1qNbMbGQ6YzNzyOD+NLxYyxIJocPTKTVECPDokOiCZA686jTLXHMUnV34uY/lcUSJ+/5fhY43A==
+ dependencies:
+ async "^2.6.0"
+ bluebird "^3.5.1"
+ debug "^3.1.0"
+ extend "^3.0.1"
+ ip "^1.1.5"
nopt@^5.0.0:
version "5.0.0"
@@ -5998,16 +6085,6 @@ nopt@^5.0.0:
dependencies:
abbrev "1"
-normalize-package-data@^2.3.2:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
- integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
@@ -6015,7 +6092,7 @@ normalize-path@^2.1.1:
dependencies:
remove-trailing-separator "^1.0.1"
-normalize-path@^3.0.0:
+normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
@@ -6055,12 +6132,19 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-npmlog@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.0.tgz#ba9ef39413c3d936ea91553db7be49c34ad0520c"
- integrity sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q==
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
- are-we-there-yet "^2.0.0"
+ path-key "^3.0.0"
+
+npmlog@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.1.tgz#06f1344a174c06e8de9c6c70834cfba2964bba17"
+ integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==
+ dependencies:
+ are-we-there-yet "^3.0.0"
console-control-strings "^1.1.0"
gauge "^4.0.0"
set-blocking "^2.0.0"
@@ -6161,14 +6245,14 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-onetime@^5.1.2:
+onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
dependencies:
mimic-fn "^2.1.0"
-open@^8.3.0:
+open@8.4.0:
version "8.4.0"
resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==
@@ -6206,13 +6290,6 @@ p-finally@^1.0.0:
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
- integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
- dependencies:
- p-try "^1.0.0"
-
p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -6220,13 +6297,6 @@ p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0:
dependencies:
p-try "^2.0.0"
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
- dependencies:
- p-limit "^1.1.0"
-
p-locate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
@@ -6267,11 +6337,6 @@ p-retry@^3.0.1:
dependencies:
retry "^0.12.0"
-p-try@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
- integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
-
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
@@ -6295,20 +6360,6 @@ param-case@^3.0.3:
dot-case "^3.0.4"
tslib "^2.0.3"
-parse-author@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f"
- integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8=
- dependencies:
- author-regex "^1.0.0"
-
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
- dependencies:
- error-ex "^1.2.0"
-
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -6370,7 +6421,7 @@ path-key@^2.0.0, path-key@^2.0.1:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-path-key@^3.1.0:
+path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
@@ -6385,13 +6436,6 @@ path-to-regexp@0.1.7:
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
-path-type@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
- integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
- dependencies:
- pify "^2.0.0"
-
pause-stream@0.0.11:
version "0.0.11"
resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
@@ -6399,10 +6443,10 @@ pause-stream@0.0.11:
dependencies:
through "~2.3"
-peek-readable@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.0.2.tgz#a5cb847e347d3eccdc37642c82d2b4155c1ab8af"
- integrity sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==
+peek-readable@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72"
+ integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==
pend@~1.2.0:
version "1.2.0"
@@ -6419,7 +6463,7 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@^2.0.4, picomatch@^2.2.3:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@@ -6451,12 +6495,12 @@ pinkie@^2.0.0:
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-pirates@^4.0.1:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
- integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
+pirates@4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6"
+ integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==
-pixelmatch@^5.2.1:
+pixelmatch@5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.2.1.tgz#9e4e4f4aa59648208a31310306a5bed5522b0d65"
integrity sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==
@@ -6484,36 +6528,36 @@ pkg-up@^3.1.0:
dependencies:
find-up "^3.0.0"
-playwright-core@=1.18.1:
- version "1.18.1"
- resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.18.1.tgz#a5cf3f212d10692382e2acd1f7bc8c9ff9bbb849"
- integrity sha512-NALGl8R1GHzGLlhUApmpmfh6M1rrrPcDTygWvhTbprxwGB9qd/j9DRwyn4HTQcUB6o0/VOpo46fH9ez3+D/Rog==
+playwright-core@1.19.2:
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.19.2.tgz#90b9209554f174c649abf495952fcb4335437218"
+ integrity sha512-OsL3sJZIo1UxKNWSP7zW7sk3FyUGG06YRHxHeBw51eIOxTCQRx5t+hXd0cvXashN2CHnd3hIZTs2aKa/im4hZQ==
dependencies:
- commander "^8.2.0"
- debug "^4.1.1"
- extract-zip "^2.0.1"
- https-proxy-agent "^5.0.0"
- jpeg-js "^0.4.2"
- mime "^2.4.6"
- pngjs "^5.0.0"
- progress "^2.0.3"
- proper-lockfile "^4.1.1"
- proxy-from-env "^1.1.0"
- rimraf "^3.0.2"
- socks-proxy-agent "^6.1.0"
- stack-utils "^2.0.3"
- ws "^7.4.6"
- yauzl "^2.10.0"
- yazl "^2.5.1"
+ commander "8.3.0"
+ debug "4.3.3"
+ extract-zip "2.0.1"
+ https-proxy-agent "5.0.0"
+ jpeg-js "0.4.3"
+ mime "3.0.0"
+ pngjs "6.0.0"
+ progress "2.0.3"
+ proper-lockfile "4.1.2"
+ proxy-from-env "1.1.0"
+ rimraf "3.0.2"
+ socks-proxy-agent "6.1.1"
+ stack-utils "2.0.5"
+ ws "8.4.2"
+ yauzl "2.10.0"
+ yazl "2.5.1"
-playwright@^1.18.1:
- version "1.18.1"
- resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.18.1.tgz#45c2ca6ee25c44e336985de9b51955727b5f17cf"
- integrity sha512-8EaX9EtbtAoMq5tnzIsoA3b/V86V/6Mq2skuOU4qEw+5OVxs1lwesDwmjy/RVU1Qfx5UuwSQzhp45wyH22oa+A==
+playwright@^1.19.2:
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.19.2.tgz#d9927ae8512482642356e50a286c5767dfb7a621"
+ integrity sha512-2JmGWr/Iw/Uu27bZULeHgjn8doNrRVxIYdhspMuMlfKNpzwAe/sfm7wH8uey6jiZxnPL4bC5V4ACQcF4dAGWnw==
dependencies:
- playwright-core "=1.18.1"
+ playwright-core "1.19.2"
-plist@^3.0.0, plist@^3.0.1, plist@^3.0.4:
+plist@^3.0.1, plist@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe"
integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==
@@ -6521,6 +6565,11 @@ plist@^3.0.0, plist@^3.0.1, plist@^3.0.4:
base64-js "^1.5.1"
xmlbuilder "^9.0.7"
+pngjs@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821"
+ integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==
+
pngjs@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-4.0.1.tgz#f803869bb2fc1bfe1bf99aa4ec21c108117cfdbe"
@@ -6617,10 +6666,10 @@ pretty-error@^2.1.1:
lodash "^4.17.20"
renderkid "^2.0.4"
-pretty-format@^27.2.5, pretty-format@^27.4.6:
- version "27.4.6"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7"
- integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==
+pretty-format@^27.2.5, pretty-format@^27.5.1:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
+ integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
dependencies:
ansi-regex "^5.0.1"
ansi-styles "^5.0.0"
@@ -6631,7 +6680,7 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-progress@^2.0.3:
+progress@2.0.3, progress@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@@ -6649,7 +6698,7 @@ promise-retry@^2.0.1:
err-code "^2.0.2"
retry "^0.12.0"
-proper-lockfile@^4.1.1:
+proper-lockfile@4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
@@ -6663,6 +6712,25 @@ proto-list@~1.2.1:
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
+protobufjs@^6.8.8:
+ version "6.11.2"
+ resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b"
+ integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.2"
+ "@protobufjs/base64" "^1.1.2"
+ "@protobufjs/codegen" "^2.0.4"
+ "@protobufjs/eventemitter" "^1.1.0"
+ "@protobufjs/fetch" "^1.1.0"
+ "@protobufjs/float" "^1.0.2"
+ "@protobufjs/inquire" "^1.1.0"
+ "@protobufjs/path" "^1.1.2"
+ "@protobufjs/pool" "^1.1.0"
+ "@protobufjs/utf8" "^1.1.0"
+ "@types/long" "^4.0.1"
+ "@types/node" ">=13.7.0"
+ long "^4.0.0"
+
proxy-addr@~2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -6671,7 +6739,7 @@ proxy-addr@~2.0.7:
forwarded "0.2.0"
ipaddr.js "1.9.1"
-proxy-from-env@^1.1.0:
+proxy-from-env@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
@@ -6711,11 +6779,6 @@ qap@^3.1.2:
resolved "https://registry.yarnpkg.com/qap/-/qap-3.3.1.tgz#11f9e8fa8890fe7cb99210c0f44d0613b7372cac"
integrity sha1-Efno+oiQ/ny5khDA9E0GE7c3LKw=
-qrcode-terminal@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819"
- integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==
-
qrcode@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.0.tgz#95abb8a91fdafd86f8190f2836abbfc500c72d1b"
@@ -6726,10 +6789,10 @@ qrcode@^1.5.0:
pngjs "^5.0.0"
yargs "^15.3.1"
-qs@6.9.6:
- version "6.9.6"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee"
- integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==
+qs@6.9.7:
+ version "6.9.7"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe"
+ integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
query-string@^4.1.0:
version "4.3.4"
@@ -6766,12 +6829,12 @@ range-parser@^1.2.1, range-parser@~1.2.1:
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-raw-body@2.4.2:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32"
- integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==
+raw-body@2.4.3:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c"
+ integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==
dependencies:
- bytes "3.1.1"
+ bytes "3.1.2"
http-errors "1.8.1"
iconv-lite "0.4.24"
unpipe "1.0.0"
@@ -6786,13 +6849,6 @@ rc@^1.2.8:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-rcedit@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-3.0.1.tgz#ae21b43e49c075f4d84df1929832a12c302f3c90"
- integrity sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==
- dependencies:
- cross-spawn-windows-exe "^1.1.0"
-
react-dom@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
@@ -6840,23 +6896,6 @@ read-config-file@~4.0.1:
json5 "^2.1.0"
lazy-val "^1.0.4"
-read-pkg-up@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
- integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
- dependencies:
- find-up "^2.0.0"
- read-pkg "^2.0.0"
-
-read-pkg@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
- integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
- dependencies:
- load-json-file "^2.0.0"
- normalize-package-data "^2.3.2"
- path-type "^2.0.0"
-
"readable-stream@1 || 2", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
@@ -6895,6 +6934,13 @@ readdirp@^2.2.1:
micromatch "^3.1.10"
readable-stream "^2.0.2"
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
regenerate-unicode-properties@^10.0.1:
version "10.0.1"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
@@ -7066,7 +7112,7 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@^1.1.6, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2:
+resolve@^1.13.1, resolve@^1.14.2:
version "1.22.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
@@ -7099,6 +7145,13 @@ retry@^0.12.0:
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
+rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
@@ -7106,13 +7159,6 @@ rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1:
dependencies:
glob "^7.1.3"
-rimraf@^3.0.0, rimraf@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
- integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- dependencies:
- glob "^7.1.3"
-
roarr@^2.15.3:
version "2.15.4"
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
@@ -7230,16 +7276,16 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
semver@7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+semver@^5.3.0, semver@^5.5.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
@@ -7373,7 +7419,7 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2"
object-inspect "^1.9.0"
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -7392,7 +7438,7 @@ slice-ansi@^3.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
-smart-buffer@^4.0.2, smart-buffer@^4.1.0:
+smart-buffer@^4.0.2, smart-buffer@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
@@ -7428,16 +7474,15 @@ snapdragon@^0.8.1:
use "^3.1.0"
sockjs-client@^1.5.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3"
- integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.0.tgz#e0277b8974558edcb557eafc7d3027ef6128d865"
+ integrity sha512-qVHJlyfdHFht3eBFZdKEXKTlb7I4IV41xnVNo8yUKA1UHcPJwgW2SvTq9LhnjjCywSkSK7c/e4nghU0GOoMCRQ==
dependencies:
- debug "^3.2.6"
- eventsource "^1.0.7"
- faye-websocket "^0.11.3"
+ debug "^3.2.7"
+ eventsource "^1.1.0"
+ faye-websocket "^0.11.4"
inherits "^2.0.4"
- json3 "^3.3.3"
- url-parse "^1.5.3"
+ url-parse "^1.5.10"
sockjs@^0.3.21:
version "0.3.24"
@@ -7448,7 +7493,7 @@ sockjs@^0.3.21:
uuid "^8.3.2"
websocket-driver "^0.7.4"
-socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.0:
+socks-proxy-agent@6.1.1, socks-proxy-agent@^6.0.0:
version "6.1.1"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87"
integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==
@@ -7458,12 +7503,12 @@ socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.0:
socks "^2.6.1"
socks@^2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e"
- integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a"
+ integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==
dependencies:
ip "^1.1.5"
- smart-buffer "^4.1.0"
+ smart-buffer "^4.2.0"
sort-keys@^1.0.0:
version "1.1.2"
@@ -7488,7 +7533,7 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.4.18:
+source-map-support@0.4.18:
version "0.4.18"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
@@ -7523,37 +7568,6 @@ source-map@^0.7.3, source-map@~0.7.2:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
-sourcemap-codec@1.4.8:
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
- integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
-
-spdx-correct@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
- integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
- integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
- integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
- integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
-
spdy-transport@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
@@ -7616,7 +7630,7 @@ ssri@^8.0.0, ssri@^8.0.1:
dependencies:
minipass "^3.1.1"
-stack-utils@^2.0.3:
+stack-utils@2.0.5, stack-utils@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5"
integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==
@@ -7722,11 +7736,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
dependencies:
ansi-regex "^5.0.1"
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
-
strip-bom@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
@@ -7737,6 +7746,11 @@ strip-eof@^1.0.0:
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
strip-json-comments@^3.0.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
@@ -7747,20 +7761,13 @@ strip-json-comments@~2.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-strip-outer@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
- integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==
- dependencies:
- escape-string-regexp "^1.0.2"
-
strtok3@^6.2.4:
- version "6.2.4"
- resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.2.4.tgz#302aea64c0fa25d12a0385069ba66253fdc38a81"
- integrity sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0"
+ integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==
dependencies:
"@tokenizer/token" "^0.3.0"
- peek-readable "^4.0.1"
+ peek-readable "^4.1.0"
style-loader@^1.1.3:
version "1.3.0"
@@ -7876,10 +7883,11 @@ terser@^4.6.12, terser@^4.6.3:
source-map-support "~0.5.12"
terser@^5.7.2:
- version "5.10.0"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc"
- integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a"
+ integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==
dependencies:
+ acorn "^8.5.0"
commander "^2.20.0"
source-map "~0.7.2"
source-map-support "~0.5.20"
@@ -7955,10 +7963,10 @@ toidentifier@1.0.1:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-token-types@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.1.1.tgz#ef9e8c8e2e0ded9f1b3f8dbaa46a3228b113ba1a"
- integrity sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==
+token-types@^4.1.1, token-types@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.0.tgz#b66bc3d67420c6873222a424eee64a744f4c2f13"
+ integrity sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==
dependencies:
"@tokenizer/token" "^0.3.0"
ieee754 "^1.2.1"
@@ -7968,13 +7976,6 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
-trim-repeated@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
- integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE=
- dependencies:
- escape-string-regexp "^1.0.2"
-
truncate-utf8-bytes@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
@@ -7987,7 +7988,7 @@ tslib@^1.9.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.0.3, tslib@^2.2.0:
+tslib@^2.0.3, tslib@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
@@ -8033,9 +8034,9 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@^4.5.5:
- version "4.5.5"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
- integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4"
+ integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
unbox-primitive@^1.0.1:
version "1.0.1"
@@ -8182,10 +8183,10 @@ url-parse-lax@^3.0.0:
dependencies:
prepend-http "^2.0.0"
-url-parse@^1.4.3, url-parse@^1.5.3:
- version "1.5.4"
- resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.4.tgz#e4f645a7e2a0852cc8a66b14b292a3e9a11a97fd"
- integrity sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==
+url-parse@^1.4.3, url-parse@^1.5.10:
+ version "1.5.10"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
+ integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
dependencies:
querystringify "^2.1.1"
requires-port "^1.0.0"
@@ -8246,14 +8247,6 @@ v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0:
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
-
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@@ -8383,18 +8376,18 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.3:
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack-sources@^3.2.2:
+webpack-sources@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
-webpack@~5.65.0:
- version "5.65.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.65.0.tgz#ed2891d9145ba1f0d318e4ea4f89c3fa18e6f9be"
- integrity sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==
+webpack@~5.69.1:
+ version "5.69.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5"
+ integrity sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==
dependencies:
- "@types/eslint-scope" "^3.7.0"
- "@types/estree" "^0.0.50"
+ "@types/eslint-scope" "^3.7.3"
+ "@types/estree" "^0.0.51"
"@webassemblyjs/ast" "1.11.1"
"@webassemblyjs/wasm-edit" "1.11.1"
"@webassemblyjs/wasm-parser" "1.11.1"
@@ -8407,7 +8400,7 @@ webpack@~5.65.0:
eslint-scope "5.1.1"
events "^3.2.0"
glob-to-regexp "^0.4.1"
- graceful-fs "^4.2.4"
+ graceful-fs "^4.2.9"
json-parse-better-errors "^1.0.2"
loader-runner "^4.2.0"
mime-types "^2.1.27"
@@ -8416,7 +8409,7 @@ webpack@~5.65.0:
tapable "^2.1.1"
terser-webpack-plugin "^5.1.3"
watchpack "^2.3.1"
- webpack-sources "^3.2.2"
+ webpack-sources "^3.2.3"
websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
version "0.7.4"
@@ -8470,7 +8463,7 @@ which@^2.0.1, which@^2.0.2:
dependencies:
isexe "^2.0.0"
-wide-align@^1.1.2:
+wide-align@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
@@ -8526,6 +8519,11 @@ write-file-atomic@^3.0.0:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
+ws@8.4.2:
+ version "8.4.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b"
+ integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==
+
ws@^6.2.1:
version "6.2.2"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
@@ -8533,15 +8531,15 @@ ws@^6.2.1:
dependencies:
async-limiter "~1.0.0"
-ws@^7.3.1, ws@^7.4.6:
- version "7.5.6"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
- integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
+ws@^7.3.1:
+ version "7.5.7"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67"
+ integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
-ws@^8.4.2:
- version "8.4.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b"
- integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==
+ws@^8.5.0:
+ version "8.5.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f"
+ integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==
xdg-basedir@^4.0.0:
version "4.0.0"
@@ -8612,15 +8610,10 @@ yargs-parser@^18.1.2:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^20.0.0:
- version "20.2.9"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
- integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-
yargs-parser@^21.0.0:
- version "21.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55"
- integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==
+ version "21.0.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
+ integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
yargs@^13.3.2:
version "13.3.2"
@@ -8668,7 +8661,7 @@ yargs@^17.0.1:
y18n "^5.0.5"
yargs-parser "^21.0.0"
-yauzl@^2.10.0:
+yauzl@2.10.0, yauzl@^2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
@@ -8676,7 +8669,7 @@ yauzl@^2.10.0:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
-yazl@^2.5.1:
+yazl@2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35"
integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==
diff --git a/crowdin.yml b/crowdin.yml
new file mode 100644
index 00000000..9ac8d3ef
--- /dev/null
+++ b/crowdin.yml
@@ -0,0 +1,3 @@
+files:
+ - source: /src/i18n/source/
+ translation: /src/i18n/%locale_with_underscore%.json
diff --git a/flatpak/flatpak-node-generator.py b/flatpak/flatpak-node-generator.py
deleted file mode 100644
index 2a7c1f21..00000000
--- a/flatpak/flatpak-node-generator.py
+++ /dev/null
@@ -1,1839 +0,0 @@
-#!/usr/bin/env python3
-
-# pyright: strict
-
-__license__ = 'MIT'
-
-from typing import * # pyright: reportWildcardImportFromLibrary=false
-# Explictly import these.
-from typing import cast, IO
-
-from pathlib import Path
-from distutils.version import StrictVersion
-
-import argparse
-import asyncio
-import base64
-import binascii
-import collections
-import contextlib
-import hashlib
-import json
-import os
-import re
-import shlex
-import shutil
-import sys
-import tempfile
-import textwrap
-import types
-import urllib.parse
-import urllib.request
-
-DEFAULT_PART_SIZE = 4096
-
-GIT_SCHEMES: Dict[str, Dict[str, str]] = {
- 'github': {
- 'scheme': 'https',
- 'netloc': 'github.com'
- },
- 'gitlab': {
- 'scheme': 'https',
- 'netloc': 'gitlab.com'
- },
- 'bitbucket': {
- 'scheme': 'https',
- 'netloc': 'bitbucket.com'
- },
- 'git': {},
- 'git+http': {
- 'scheme': 'http'
- },
- 'git+https': {
- 'scheme': 'https'
- },
-}
-
-GIT_URL_PATTERNS = [
- re.compile(r'^git:'),
- re.compile(r'^git\+.+:'),
- re.compile(r'^ssh:'),
- re.compile(r'^https?:.+\.git$'),
- re.compile(r'^https?:.+\.git#.+'),
-]
-
-GIT_URL_HOSTS = ['github.com', 'gitlab.com', 'bitbucket.com', 'bitbucket.org']
-
-NPM_MIRROR = 'https://unpkg.com/'
-
-
-class Cache:
- instance: 'Cache'
-
- @classmethod
- def get_working_instance_if(cls, condition: bool) -> 'Cache':
- return cls.instance if condition else NullCache()
-
- class BucketReader:
- def read_parts(self, size: int = DEFAULT_PART_SIZE) -> Iterator[bytes]:
- raise NotImplementedError
-
- def read_all(self) -> bytes:
- raise NotImplementedError
-
- def close(self) -> None:
- raise NotImplementedError
-
- def __enter__(self) -> 'Cache.BucketReader':
- return self
-
- def __exit__(self, exc_type: Optional[Type[BaseException]],
- exc_value: Optional[BaseException],
- traceback: Optional[types.TracebackType]) -> None:
- self.close()
-
- class BucketWriter:
- def write(self, data: bytes) -> None:
- raise NotImplementedError
-
- def cancel(self) -> None:
- raise NotImplementedError
-
- def seal(self) -> None:
- raise NotImplementedError
-
- def __enter__(self) -> 'Cache.BucketWriter':
- return self
-
- def __exit__(self, exc_type: Optional[Type[BaseException]],
- exc_value: Optional[BaseException],
- traceback: Optional[types.TracebackType]) -> None:
- if traceback is None:
- self.seal()
- else:
- self.cancel()
-
- class BucketRef:
- def __init__(self, key: str) -> None:
- self.key = key
-
- def open_read(self) -> Optional['Cache.BucketReader']:
- raise NotImplementedError
-
- def open_write(self) -> 'Cache.BucketWriter':
- raise NotImplementedError
-
- def get(self, key: str) -> BucketRef:
- raise NotImplementedError
-
-
-class NullCache(Cache):
- class NullBucketWriter(Cache.BucketWriter):
- def write(self, data: bytes) -> None:
- pass
-
- def cancel(self) -> None:
- pass
-
- def seal(self) -> None:
- pass
-
- class NullBucketRef(Cache.BucketRef):
- def __init__(self, key: str) -> None:
- super().__init__(key)
-
- def open_read(self) -> Optional[Cache.BucketReader]:
- return None
-
- def open_write(self) -> Cache.BucketWriter:
- return NullCache.NullBucketWriter()
-
- def get(self, key: str) -> Cache.BucketRef:
- return NullCache.NullBucketRef(key)
-
-
-class FilesystemBasedCache(Cache):
- _SUBDIR = 'flatpak-node-generator'
- _KEY_CHAR_ESCAPE_RE = re.compile(r'[^A-Za-z0-9._\-]')
-
- @staticmethod
- def _escape_key(key: str) -> str:
- return FilesystemBasedCache._KEY_CHAR_ESCAPE_RE.sub(
- lambda m: f'_{ord(m.group()):02X}', key)
-
- class FilesystemBucketReader(Cache.BucketReader):
- def __init__(self, file: IO[bytes]) -> None:
- self.file = file
-
- def close(self) -> None:
- self.file.close()
-
- def read_parts(self, size: int = DEFAULT_PART_SIZE) -> Iterator[bytes]:
- while True:
- data = self.file.read(size)
- if not data:
- break
-
- yield data
-
- def read_all(self) -> bytes:
- return self.file.read()
-
- class FilesystemBucketWriter(Cache.BucketWriter):
- def __init__(self, file: IO[bytes], temp: Path, target: Path) -> None:
- self.file = file
- self.temp = temp
- self.target = target
-
- def write(self, data: bytes) -> None:
- self.file.write(data)
-
- def cancel(self) -> None:
- self.file.close()
- self.temp.unlink()
-
- def seal(self) -> None:
- self.file.close()
- self.temp.rename(self.target)
-
- class FilesystemBucketRef(Cache.BucketRef):
- def __init__(self, key: str, cache_root: Path) -> None:
- super().__init__(key)
- self._cache_root = cache_root
-
- self._cache_path = self._cache_root / FilesystemBasedCache._escape_key(key)
-
- def open_read(self) -> Optional[Cache.BucketReader]:
- try:
- fp = self._cache_path.open('rb')
- except FileNotFoundError:
- return None
- else:
- return FilesystemBasedCache.FilesystemBucketReader(fp)
-
- def open_write(self) -> Cache.BucketWriter:
- target = self._cache_path
- if not target.parent.exists():
- target.parent.mkdir(exist_ok=True, parents=True)
-
- fd, temp = tempfile.mkstemp(dir=self._cache_root, prefix='__temp__')
- return FilesystemBasedCache.FilesystemBucketWriter(os.fdopen(fd, 'wb'),
- Path(temp), target)
-
- @property
- def _cache_root(self) -> Path:
- xdg_cache_home = os.environ.get('XDG_CACHE_HOME', os.path.expanduser('~/.cache'))
- return Path(xdg_cache_home) / self._SUBDIR
-
- def get(self, key: str) -> Cache.BucketRef:
- return FilesystemBasedCache.FilesystemBucketRef(key, self._cache_root)
-
-
-Cache.instance = NullCache()
-
-
-class Requests:
- instance: 'Requests'
-
- DEFAULT_RETRIES = 5
- retries: ClassVar[int] = DEFAULT_RETRIES
-
- @property
- def is_async(self) -> bool:
- raise NotImplementedError
-
- def __get_cache_bucket(self, cachable: bool, url: str) -> Cache.BucketRef:
- return Cache.get_working_instance_if(cachable).get(f'requests:{url}')
-
- async def _read_parts(self,
- url: str,
- size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]:
- raise NotImplementedError
- yield b'' # Silence mypy.
-
- async def _read_all(self, url: str) -> bytes:
- raise NotImplementedError
-
- async def read_parts(self,
- url: str,
- *,
- cachable: bool,
- size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]:
- bucket = self.__get_cache_bucket(cachable, url)
-
- bucket_reader = bucket.open_read()
- if bucket_reader is not None:
- for part in bucket_reader.read_parts(size):
- yield part
-
- return
-
- for i in range(1, Requests.retries + 1):
- try:
- with bucket.open_write() as bucket_writer:
- async for part in self._read_parts(url, size):
- bucket_writer.write(part)
- yield part
-
- return
- except Exception:
- if i == Requests.retries:
- raise
-
- async def read_all(self, url: str, *, cachable: bool = False) -> bytes:
- bucket = self.__get_cache_bucket(cachable, url)
-
- bucket_reader = bucket.open_read()
- if bucket_reader is not None:
- return bucket_reader.read_all()
-
- for i in range(1, Requests.retries + 1):
- try:
- with bucket.open_write() as bucket_writer:
- data = await self._read_all(url)
- bucket_writer.write(data)
- return data
- except Exception:
- if i == Requests.retries:
- raise
-
- assert False
-
-
-class UrllibRequests(Requests):
- @property
- def is_async(self) -> bool:
- return False
-
- async def _read_parts(self,
- url: str,
- size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]:
- with urllib.request.urlopen(url) as response:
- while True:
- data = response.read(size)
- if not data:
- return
-
- yield data
-
- async def _read_all(self, url: str) -> bytes:
- with urllib.request.urlopen(url) as response:
- return cast(bytes, response.read())
-
-
-class StubRequests(Requests):
- @property
- def is_async(self) -> bool:
- return True
-
- async def _read_parts(self,
- url: str,
- size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]:
- yield b''
-
- async def _read_all(self, url: str) -> bytes:
- return b''
-
-
-Requests.instance = UrllibRequests()
-
-try:
- import aiohttp
-
- class AsyncRequests(Requests):
- @property
- def is_async(self) -> bool:
- return True
-
- @contextlib.asynccontextmanager
- async def _open_stream(self, url: str) -> AsyncIterator[aiohttp.StreamReader]:
- async with aiohttp.ClientSession() as session:
- async with session.get(url) as response:
- yield response.content
-
- async def _read_parts(self,
- url: str,
- size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]:
- async with self._open_stream(url) as stream:
- while True:
- data = await stream.read(size)
- if not data:
- return
-
- yield data
-
- async def _read_all(self, url: str) -> bytes:
- async with self._open_stream(url) as stream:
- return await stream.read()
-
- Requests.instance = AsyncRequests()
-
-except ImportError:
- pass
-
-
-class CachedRequests(Requests):
- pass
-
-
-class Integrity(NamedTuple):
- algorithm: str
- digest: str
-
- @staticmethod
- def parse(value: str) -> 'Integrity':
- algorithm, encoded_digest = value.split('-', 1)
- assert algorithm.startswith('sha'), algorithm
- digest = binascii.hexlify(base64.b64decode(encoded_digest)).decode()
-
- return Integrity(algorithm, digest)
-
- @staticmethod
- def from_sha1(sha1: str) -> 'Integrity':
- assert len(sha1) == 40, f'Invalid length of sha1: {sha1}'
- return Integrity('sha1', sha1)
-
- @staticmethod
- def generate(data: Union[str, bytes], *, algorithm: str = 'sha256') -> 'Integrity':
- builder = IntegrityBuilder(algorithm)
- builder.update(data)
- return builder.build()
-
- @staticmethod
- def from_json_object(data: Any) -> 'Integrity':
- return Integrity(algorithm=data['algorithm'], digest=data['digest'])
-
- def to_json_object(self) -> Any:
- return {'algorithm': self.algorithm, 'digest': self.digest}
-
- def to_base64(self) -> str:
- return base64.b64encode(binascii.unhexlify(self.digest)).decode()
-
-
-class IntegrityBuilder:
- def __init__(self, algorithm: str = 'sha256') -> None:
- self.algorithm = algorithm
- self._hasher = hashlib.new(algorithm)
-
- def update(self, data: Union[str, bytes]) -> None:
- data_bytes: bytes
- if isinstance(data, str):
- data_bytes = data.encode()
- else:
- data_bytes = data
- self._hasher.update(data_bytes)
-
- def build(self) -> Integrity:
- return Integrity(algorithm=self.algorithm, digest=self._hasher.hexdigest())
-
-
-class RemoteUrlMetadata(NamedTuple):
- integrity: Integrity
- size: int
-
- @staticmethod
- def __get_cache_bucket(cachable: bool, kind: str, url: str) -> Cache.BucketRef:
- return Cache.get_working_instance_if(cachable).get(
- f'remote-url-metadata:{kind}:{url}')
-
- @staticmethod
- def from_json_object(data: Any) -> 'RemoteUrlMetadata':
- return RemoteUrlMetadata(integrity=Integrity.from_json_object(data['integrity']),
- size=data['size'])
-
- @classmethod
- async def get(cls,
- url: str,
- *,
- cachable: bool,
- integrity_algorithm: str = 'sha256') -> 'RemoteUrlMetadata':
- bucket = cls.__get_cache_bucket(cachable, 'full', url)
-
- bucket_reader = bucket.open_read()
- if bucket_reader is not None:
- data = json.loads(bucket_reader.read_all())
- return RemoteUrlMetadata.from_json_object(data)
-
- builder = IntegrityBuilder(integrity_algorithm)
- size = 0
-
- async for part in Requests.instance.read_parts(url, cachable=False):
- builder.update(part)
- size += len(part)
-
- metadata = RemoteUrlMetadata(integrity=builder.build(), size=size)
-
- with bucket.open_write() as bucket_writer:
- bucket_writer.write(json.dumps(metadata.to_json_object()).encode('ascii'))
-
- return metadata
-
- @classmethod
- async def get_size(cls, url: str, *, cachable: bool) -> int:
- bucket = cls.__get_cache_bucket(cachable, 'size', url)
-
- bucket_reader = bucket.open_read()
- if bucket_reader is not None:
- return int(bucket_reader.read_all())
-
- size = 0
- async for part in Requests.instance.read_parts(url, cachable=False):
- size += len(part)
-
- with bucket.open_write() as bucket_writer:
- bucket_writer.write(str(size).encode('ascii'))
-
- return size
-
- def to_json_object(self) -> Any:
- return {'integrity': self.integrity.to_json_object(), 'size': self.size}
-
-
-class ResolvedSource(NamedTuple):
- resolved: str
- integrity: Optional[Integrity]
-
- async def retrieve_integrity(self) -> Integrity:
- if self.integrity is not None:
- return self.integrity
- else:
- url = self.resolved
- assert url is not None, 'registry source has no resolved URL'
- metadata = await RemoteUrlMetadata.get(url, cachable=True)
- return metadata.integrity
-
-
-class UnresolvedRegistrySource:
- pass
-
-
-class GitSource(NamedTuple):
- original: str
- url: str
- commit: str
- from_: Optional[str]
-
-
-PackageSource = Union[ResolvedSource, UnresolvedRegistrySource, GitSource]
-
-
-class Package(NamedTuple):
- name: str
- version: str
- source: PackageSource
- lockfile: Path
-
-
-class ManifestGenerator(contextlib.AbstractContextManager):
- MAX_GITHUB_SIZE = 49 * 1000 * 1000
- JSON_INDENT = 4
-
- def __init__(self) -> None:
- # Store the dicts as a set of tuples, then rebuild the dict when returning it.
- # That way, we ensure uniqueness.
- self._sources: Set[Tuple[Tuple[str, Any], ...]] = set()
- self._commands: List[str] = []
-
- def __exit__(self, exc_type: Optional[Type[BaseException]],
- exc_value: Optional[BaseException],
- tb: Optional[types.TracebackType]) -> None:
- self._finalize()
-
- @property
- def data_root(self) -> Path:
- return Path('flatpak-node')
-
- @property
- def tmp_root(self) -> Path:
- return self.data_root / 'tmp'
-
- @property
- def source_count(self) -> int:
- return len(self._sources)
-
- def ordered_sources(self) -> Iterator[Dict[Any, Any]]:
- return map(dict, sorted(self._sources)) # type: ignore
-
- def split_sources(self) -> Iterator[List[Dict[Any, Any]]]:
- BASE_CURRENT_SIZE = len('[\n]')
- current_size = BASE_CURRENT_SIZE
- current: List[Dict[Any, Any]] = []
-
- for source in self.ordered_sources():
- # Generate one source by itself, then check the length without the closing and
- # opening brackets.
- source_json = json.dumps([source], indent=ManifestGenerator.JSON_INDENT)
- source_json_len = len('\n'.join(source_json.splitlines()[1:-1]))
- if current_size + source_json_len >= ManifestGenerator.MAX_GITHUB_SIZE:
- yield current
- current = []
- current_size = BASE_CURRENT_SIZE
- current.append(source)
- current_size += source_json_len
-
- if current:
- yield current
-
- def _add_source(self, source: Dict[str, Any]) -> None:
- self._sources.add(tuple(source.items()))
-
- def _add_source_with_destination(self,
- source: Dict[str, Any],
- destination: Optional[Path],
- *,
- is_dir: bool,
- only_arches: Optional[List[str]] = None) -> None:
- if destination is not None:
- if is_dir:
- source['dest'] = str(destination)
- else:
- source['dest-filename'] = destination.name
- if len(destination.parts) > 1:
- source['dest'] = str(destination.parent)
-
- if only_arches:
- source['only-arches'] = tuple(only_arches)
-
- self._add_source(source)
-
- def add_url_source(self,
- url: str,
- integrity: Integrity,
- destination: Optional[Path] = None,
- *,
- only_arches: Optional[List[str]] = None) -> None:
- source: Dict[str, Any] = {
- 'type': 'file',
- 'url': url,
- integrity.algorithm: integrity.digest
- }
- self._add_source_with_destination(source,
- destination,
- is_dir=False,
- only_arches=only_arches)
-
- def add_archive_source(self,
- url: str,
- integrity: Integrity,
- destination: Optional[Path] = None,
- only_arches: Optional[List[str]] = None,
- strip_components: int = 1) -> None:
- source: Dict[str, Any] = {
- 'type': 'archive',
- 'url': url,
- 'strip-components': strip_components,
- integrity.algorithm: integrity.digest
- }
- self._add_source_with_destination(source,
- destination,
- is_dir=True,
- only_arches=only_arches)
-
- def add_data_source(self, data: Union[str, bytes], destination: Path) -> None:
- if isinstance(data, bytes):
- source = {
- 'type': 'inline',
- 'contents': base64.b64encode(data).decode('ascii'),
- 'base64': True,
- }
- else:
- assert isinstance(data, str)
- source = {
- 'type': 'inline',
- 'contents': data,
- }
- self._add_source_with_destination(source, destination, is_dir=False)
-
- def add_git_source(self,
- url: str,
- commit: str,
- destination: Optional[Path] = None) -> None:
- source = {'type': 'git', 'url': url, 'commit': commit}
- self._add_source_with_destination(source, destination, is_dir=True)
-
- def add_script_source(self, commands: List[str], destination: Path) -> None:
- source = {'type': 'script', 'commands': tuple(commands)}
- self._add_source_with_destination(source, destination, is_dir=False)
-
- def add_shell_source(self,
- commands: List[str],
- destination: Optional[Path] = None,
- only_arches: Optional[List[str]] = None) -> None:
- """This might be slow for multiple instances. Use `add_command()` instead."""
- source = {'type': 'shell', 'commands': tuple(commands)}
- self._add_source_with_destination(source,
- destination=destination,
- only_arches=only_arches,
- is_dir=True)
-
- def add_command(self, command: str) -> None:
- self._commands.append(command)
-
- def _finalize(self) -> None:
- if self._commands:
- self._add_source({'type': 'shell', 'commands': tuple(self._commands)})
-
-
-class LockfileProvider:
- def parse_git_source(self, version: str, from_: Optional[str] = None) -> GitSource:
- # https://github.com/microsoft/pyright/issues/1589
- # pyright: reportPrivateUsage=false
-
- original_url = urllib.parse.urlparse(version)
- assert original_url.scheme and original_url.path and original_url.fragment
-
- replacements = GIT_SCHEMES.get(original_url.scheme, {})
- new_url = original_url._replace(fragment='', **replacements)
- # Replace e.g. git:github.com/owner/repo with git://github.com/owner/repo
- if not new_url.netloc:
- path = new_url.path.split('/')
- new_url = new_url._replace(netloc=path[0], path='/'.join(path[1:]))
-
- return GitSource(original=original_url.geturl(),
- url=new_url.geturl(),
- commit=original_url.fragment,
- from_=from_)
-
- def process_lockfile(self, lockfile: Path) -> Iterator[Package]:
- raise NotImplementedError()
-
-
-class ModuleProvider(contextlib.AbstractContextManager):
- async def generate_package(self, package: Package) -> None:
- raise NotImplementedError()
-
-
-class ElectronBinaryManager:
- class Arch(NamedTuple):
- electron: str
- flatpak: str
-
- class Binary(NamedTuple):
- filename: str
- url: str
- integrity: Integrity
-
- arch: Optional['ElectronBinaryManager.Arch'] = None
-
- ELECTRON_ARCHES_TO_FLATPAK = {
- 'ia32': 'i386',
- 'x64': 'x86_64',
- 'armv7l': 'arm',
- 'arm64': 'aarch64',
- }
-
- INTEGRITY_BASE_FILENAME = 'SHASUMS256.txt'
-
- def __init__(self, version: str, base_url: str, integrities: Dict[str,
- Integrity]) -> None:
- self.version = version
- self.base_url = base_url
- self.integrities = integrities
-
- def child_url(self, child: str) -> str:
- return f'{self.base_url}/{child}'
-
- def find_binaries(self, binary: str) -> Iterator['ElectronBinaryManager.Binary']:
- for electron_arch, flatpak_arch in self.ELECTRON_ARCHES_TO_FLATPAK.items():
- binary_filename = f'{binary}-v{self.version}-linux-{electron_arch}.zip'
- binary_url = self.child_url(binary_filename)
-
- arch = ElectronBinaryManager.Arch(electron=electron_arch,
- flatpak=flatpak_arch)
- yield ElectronBinaryManager.Binary(
- filename=binary_filename,
- url=binary_url,
- integrity=self.integrities[binary_filename],
- arch=arch)
-
- @property
- def integrity_file(self) -> 'ElectronBinaryManager.Binary':
- return ElectronBinaryManager.Binary(
- filename=f'SHASUMS256.txt-{self.version}',
- url=self.child_url(self.INTEGRITY_BASE_FILENAME),
- integrity=self.integrities[self.INTEGRITY_BASE_FILENAME])
-
- @staticmethod
- async def for_version(version: str) -> 'ElectronBinaryManager':
- base_url = f'https://github.com/electron/electron/releases/download/v{version}'
- integrity_url = f'{base_url}/{ElectronBinaryManager.INTEGRITY_BASE_FILENAME}'
- integrity_data = (await Requests.instance.read_all(integrity_url,
- cachable=True)).decode()
-
- integrities: Dict[str, Integrity] = {}
- for line in integrity_data.splitlines():
- digest, star_filename = line.split()
- filename = star_filename.strip('*')
- integrities[filename] = Integrity(algorithm='sha256', digest=digest)
-
- integrities[ElectronBinaryManager.INTEGRITY_BASE_FILENAME] = (
- Integrity.generate(integrity_data))
-
- return ElectronBinaryManager(version=version,
- base_url=base_url,
- integrities=integrities)
-
-
-class SpecialSourceProvider:
- class Options(NamedTuple):
- node_chromedriver_from_electron: str
- electron_ffmpeg: str
- electron_node_headers: bool
- nwjs_version: str
- nwjs_node_headers: bool
- nwjs_ffmpeg: bool
- xdg_layout: bool
-
- def __init__(self, gen: ManifestGenerator, options: Options):
- self.gen = gen
- self.node_chromedriver_from_electron = options.node_chromedriver_from_electron
- self.electron_ffmpeg = options.electron_ffmpeg
- self.electron_node_headers = options.electron_node_headers
- self.nwjs_version = options.nwjs_version
- self.nwjs_node_headers = options.nwjs_node_headers
- self.nwjs_ffmpeg = options.nwjs_ffmpeg
- self.xdg_layout = options.xdg_layout
-
- @property
- def electron_cache_dir(self) -> Path:
- if self.xdg_layout:
- return self.gen.data_root / 'cache' / 'electron'
- return self.gen.data_root / 'electron-cache'
-
- def _add_electron_cache_downloads(self,
- manager: ElectronBinaryManager,
- binary_name: str,
- *,
- add_integrities: bool = True) -> None:
- electron_cache_dir = self.electron_cache_dir
-
- for binary in manager.find_binaries(binary_name):
- assert binary.arch is not None
- self.gen.add_url_source(binary.url,
- binary.integrity,
- electron_cache_dir / binary.filename,
- only_arches=[binary.arch.flatpak])
- #Symlinks for @electron/get, which stores electron zips in a subdir
- if self.xdg_layout:
- sanitized_url = ''.join(c for c in binary.url if c not in '/:')
-
- #And for @electron/get >= 1.12.4 its sha256 hash of url dirname
- url = urllib.parse.urlparse(binary.url)
- url_dir = urllib.parse.urlunparse(
- url._replace(path=os.path.dirname(url.path)))
- url_hash = hashlib.sha256(url_dir.encode()).hexdigest()
-
- self.gen.add_shell_source([
- f'mkdir -p "{sanitized_url}"',
- f'ln -s "../{binary.filename}" "{sanitized_url}/{binary.filename}"',
- f'mkdir -p "{url_hash}"',
- f'ln -s "../{binary.filename}" "{url_hash}/{binary.filename}"'
- ],
- destination=electron_cache_dir,
- only_arches=[binary.arch.flatpak])
-
- if add_integrities:
- integrity_file = manager.integrity_file
- self.gen.add_url_source(integrity_file.url, integrity_file.integrity,
- electron_cache_dir / integrity_file.filename)
-
- async def _handle_electron(self, package: Package) -> None:
- manager = await ElectronBinaryManager.for_version(package.version)
- self._add_electron_cache_downloads(manager, 'electron')
-
- if self.electron_ffmpeg is not None:
- if self.electron_ffmpeg == 'archive':
- self._add_electron_cache_downloads(manager,
- 'ffmpeg',
- add_integrities=False)
- elif self.electron_ffmpeg == 'lib':
- for binary in manager.find_binaries('ffmpeg'):
- assert binary.arch is not None
- self.gen.add_archive_source(binary.url,
- binary.integrity,
- destination=self.gen.data_root,
- only_arches=[binary.arch.flatpak])
- else:
- assert False, self.electron_ffmpeg
-
- def _handle_gulp_atom_electron(self, package: Package) -> None:
- # Versions after 1.22.0 use @electron/get and don't need this
- if StrictVersion(package.version) <= StrictVersion('1.22.0'):
- cache_path = self.gen.data_root / 'tmp' / 'gulp-electron-cache' / 'atom' / 'electron'
- self.gen.add_command(f'mkdir -p "{cache_path.parent}"')
- self.gen.add_command(f'ln -sfTr "{self.electron_cache_dir}" "{cache_path}"')
-
- async def _handle_electron_headers(self, package: Package) -> None:
- if self.xdg_layout:
- node_gyp_headers_dir = self.gen.data_root / 'cache' / 'node-gyp' / package.version
- else:
- node_gyp_headers_dir = self.gen.data_root / 'node-gyp' / 'electron-current'
- url = f'https://www.electronjs.org/headers/v{package.version}/node-v{package.version}-headers.tar.gz'
- metadata = await RemoteUrlMetadata.get(url, cachable=True)
- self.gen.add_archive_source(url,
- metadata.integrity,
- destination=node_gyp_headers_dir)
- if self.xdg_layout:
- install_version_data = "9"
- self.gen.add_data_source(install_version_data,
- destination=node_gyp_headers_dir / 'installVersion')
-
- async def _get_chromedriver_binary_version(self, package: Package) -> str:
- # Note: node-chromedriver seems to not have tagged all releases on GitHub, so
- # just use unpkg instead.
- url = urllib.parse.urljoin(NPM_MIRROR, f'chromedriver@{package.version}/lib/chromedriver')
- js = await Requests.instance.read_all(url, cachable=True)
- # XXX: a tad ugly
- match = re.search(r"exports\.version = '([^']+)'", js.decode())
- assert match is not None, f'Failed to get ChromeDriver binary version from {url}'
- return match.group(1)
-
- async def _handle_electron_chromedriver(self, package: Package) -> None:
- manager = await ElectronBinaryManager.for_version(package.version)
- self._add_electron_cache_downloads(manager, 'chromedriver')
-
- async def _handle_node_chromedriver(self, package: Package) -> None:
- version = await self._get_chromedriver_binary_version(package)
- destination = self.gen.data_root / 'chromedriver'
-
- if self.node_chromedriver_from_electron is not None:
- manager = await ElectronBinaryManager.for_version(
- self.node_chromedriver_from_electron)
-
- for binary in manager.find_binaries('chromedriver'):
- assert binary.arch is not None
- self.gen.add_archive_source(binary.url,
- binary.integrity,
- destination=destination,
- only_arches=[binary.arch.flatpak])
- else:
- url = (f'https://chromedriver.storage.googleapis.com/{version}/'
- 'chromedriver_linux64.zip')
- metadata = await RemoteUrlMetadata.get(url, cachable=True)
-
- self.gen.add_archive_source(url,
- metadata.integrity,
- destination=destination,
- only_arches=['x86_64'])
-
- async def _add_nwjs_cache_downloads(self, version: str, flavor: str = 'normal'):
- assert not version.startswith('v')
- nwjs_mirror = 'https://dl.nwjs.io'
- ffmpeg_dl_base = 'https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/download'
-
- if self.nwjs_node_headers:
- headers_dl_url = f'{nwjs_mirror}/v{version}/nw-headers-v{version}.tar.gz'
- headers_dest = self.gen.data_root / 'node-gyp' / 'nwjs-current'
- headers_metadata = await RemoteUrlMetadata.get(headers_dl_url, cachable=True)
- self.gen.add_archive_source(headers_dl_url,
- headers_metadata.integrity,
- destination=headers_dest)
-
- if flavor == 'normal':
- filename_base = 'nwjs'
- else:
- filename_base = f'nwjs-{flavor}'
-
- destdir = self.gen.data_root / 'nwjs-cache'
- nwjs_arch_map = [
- ('x86_64', 'linux-x64', 'linux64'),
- ('i386', 'linux-ia32', 'linux32'),
- ]
- for flatpak_arch, nwjs_arch, platform in nwjs_arch_map:
- filename = f'{filename_base}-v{version}-{nwjs_arch}.tar.gz'
- dl_url = f'{nwjs_mirror}/v{version}/{filename}'
- metadata = await RemoteUrlMetadata.get(dl_url, cachable=True)
- dest = destdir / f'{version}-{flavor}' / platform
-
- self.gen.add_archive_source(dl_url,
- metadata.integrity,
- destination=dest,
- only_arches=[flatpak_arch])
-
- if self.nwjs_ffmpeg:
- ffmpeg_dl_url = f'{ffmpeg_dl_base}/{version}/{version}-{nwjs_arch}.zip'
- ffmpeg_metadata = await RemoteUrlMetadata.get(ffmpeg_dl_url, cachable=True)
- self.gen.add_archive_source(ffmpeg_dl_url,
- ffmpeg_metadata.integrity,
- destination=dest,
- strip_components=0,
- only_arches=[flatpak_arch])
-
- async def _handle_nw_builder(self, package: Package) -> None:
- if self.nwjs_version:
- version = self.nwjs_version
- else:
- versions_json = json.loads(await Requests.instance.read_all(
- 'https://nwjs.io/versions.json', cachable=False))
- version = versions_json['latest'].lstrip('v')
- await self._add_nwjs_cache_downloads(version)
- self.gen.add_data_source(version, destination=self.gen.data_root / 'nwjs-version')
-
- async def _handle_dugite_native(self, package: Package) -> None:
- dl_json_url = urllib.parse.urljoin(
- NPM_MIRROR, f'{package.name}@{package.version}/script/embedded-git.json')
- dl_json = json.loads(await Requests.instance.read_all(dl_json_url, cachable=True))
- dugite_arch_map = {
- 'x86_64': 'linux-x64',
- }
- destdir = self.gen.data_root / 'tmp'
- for arch, dugite_arch in dugite_arch_map.items():
- url = dl_json[dugite_arch]['url']
- filename = dl_json[dugite_arch]['name']
- integrity = Integrity(algorithm='sha256',
- digest=dl_json[dugite_arch]['checksum'])
-
- self.gen.add_url_source(url,
- integrity,
- destination=destdir / filename,
- only_arches=[arch])
-
- async def _handle_ripgrep_prebuilt(self, package: Package) -> None:
- async def get_ripgrep_tag(version: str) -> str:
- url = f'https://github.com/microsoft/vscode-ripgrep/raw/v{version}/lib/postinstall.js'
- tag_re = re.compile(r"VERSION\s+=\s+'(v[\d.-]+)';")
- resp = await Requests.instance.read_all(url, cachable=True)
- match = tag_re.search(resp.decode())
- assert match is not None
- return match.group(1)
-
- tag = await get_ripgrep_tag(package.version)
- ripgrep_arch_map = {
- 'x86_64': 'x86_64-unknown-linux-musl',
- 'i386': 'i686-unknown-linux-musl',
- 'arm': 'arm-unknown-linux-gnueabihf',
- 'aarch64': 'aarch64-unknown-linux-gnu'
- }
- destdir = self.gen.data_root / 'tmp' / f'vscode-ripgrep-cache-{package.version}'
- for arch, ripgrep_arch in ripgrep_arch_map.items():
- filename = f'ripgrep-{tag}-{ripgrep_arch}.tar.gz'
- url = f'https://github.com/microsoft/ripgrep-prebuilt/releases/download/{tag}/{filename}'
- metadata = await RemoteUrlMetadata.get(url, cachable=True)
- self.gen.add_url_source(url,
- metadata.integrity,
- destination=destdir / filename,
- only_arches=[arch])
-
- async def _handle_playwright(self, package: Package) -> None:
- base_url = f'https://github.com/microsoft/playwright/raw/v{package.version}/'
- if StrictVersion(package.version) >= StrictVersion('1.16.0'):
- browsers_json_url = base_url + 'packages/playwright-core/browsers.json'
- else:
- browsers_json_url = base_url + 'browsers.json'
- browsers_json = json.loads(await Requests.instance.read_all(browsers_json_url,
- cachable=True))
- for browser in browsers_json['browsers']:
- if not browser.get('installByDefault', True):
- continue
- name = browser['name']
- revision = int(browser['revision'])
-
- if name == 'chromium':
- if revision < 792639:
- url_tp = 'https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/%d/%s'
- dl_file = 'chrome-linux.zip'
- else:
- url_tp = 'https://playwright.azureedge.net/builds/chromium/%d/%s'
- dl_file = 'chromium-linux.zip'
- elif name == 'firefox':
- url_tp = 'https://playwright.azureedge.net/builds/firefox/%d/%s'
- if revision < 1140:
- dl_file = 'firefox-linux.zip'
- else:
- dl_file = 'firefox-ubuntu-18.04.zip'
- elif name == 'webkit':
- url_tp = 'https://playwright.azureedge.net/builds/webkit/%d/%s'
- if revision < 1317:
- dl_file = 'minibrowser-gtk-wpe.zip'
- else:
- dl_file = 'webkit-ubuntu-20.04.zip'
- elif name == 'ffmpeg':
- url_tp = 'https://playwright.azureedge.net/builds/ffmpeg/%d/%s'
- dl_file = 'ffmpeg-linux.zip'
- else:
- raise ValueError(f'Unknown playwright browser {name}')
-
- dl_url = url_tp % (revision, dl_file)
- metadata = await RemoteUrlMetadata.get(dl_url, cachable=True)
- destdir = self.gen.data_root / 'cache' / 'ms-playwright' / f'{name}-{revision}'
- self.gen.add_archive_source(dl_url,
- metadata.integrity,
- destination=destdir,
- strip_components=0)
- # Arbitrary string here; flatpak-builder segfaults on empty data: url
- self.gen.add_data_source("flatpak-node-cache",
- destination=destdir / 'INSTALLATION_COMPLETE')
-
- async def _handle_esbuild(self, package: Package) -> None:
- pkg_names = {
- 'x86_64': 'esbuild-linux-64',
- 'i386': 'esbuild-linux-32',
- 'arm': 'esbuild-linux-arm',
- 'aarch64': 'esbuild-linux-arm64'
- }
-
- for flatpak_arch, pkg_name in pkg_names.items():
- dl_url = f'https://registry.npmjs.org/{pkg_name}/-/{pkg_name}-{package.version}.tgz'
- metadata = await RemoteUrlMetadata.get(dl_url, cachable=True)
-
- cache_dst = self.gen.data_root / 'cache' / 'esbuild'
- archive_dst = cache_dst / '.package' / f'{pkg_name}@{package.version}'
- bin_src = archive_dst / 'bin' / 'esbuild'
- bin_dst = cache_dst / 'bin' / f'{pkg_name}@{package.version}'
-
- self.gen.add_archive_source(dl_url,
- metadata.integrity,
- destination=archive_dst,
- only_arches=[flatpak_arch],
- strip_components=1)
-
- cmd = [
- f'mkdir -p "{bin_dst.parent.relative_to(cache_dst)}"',
- f'cp "{bin_src.relative_to(cache_dst)}" "{bin_dst.relative_to(cache_dst)}"',
- f'ln -sf "{bin_dst.name}" "bin/esbuild-current"'
- ]
- self.gen.add_shell_source(cmd,
- only_arches=[flatpak_arch],
- destination=cache_dst)
-
- def _handle_electron_builder(self, package: Package) -> None:
- destination = self.gen.data_root / 'electron-builder-arch-args.sh'
-
- script: List[str] = []
- script.append('case "$FLATPAK_ARCH" in')
-
- for electron_arch, flatpak_arch in (
- ElectronBinaryManager.ELECTRON_ARCHES_TO_FLATPAK.items()):
- script.append(f'"{flatpak_arch}")')
- script.append(f' export ELECTRON_BUILDER_ARCH_ARGS="--{electron_arch}"')
- script.append(' ;;')
-
- script.append('esac')
-
- self.gen.add_script_source(script, destination)
-
- async def generate_special_sources(self, package: Package) -> None:
- if isinstance(Requests.instance, StubRequests):
- # This is going to crash and burn.
- return
-
- if package.name == 'electron':
- await self._handle_electron(package)
- if self.electron_node_headers or self.xdg_layout:
- await self._handle_electron_headers(package)
- elif package.name == 'electron-chromedriver':
- await self._handle_electron_chromedriver(package)
- elif package.name == 'chromedriver':
- await self._handle_node_chromedriver(package)
- elif package.name == 'electron-builder':
- self._handle_electron_builder(package)
- elif package.name == 'gulp-atom-electron':
- self._handle_gulp_atom_electron(package)
- elif package.name == 'nw-builder':
- await self._handle_nw_builder(package)
- elif package.name in {'dugite', '@shiftkey/dugite'}:
- await self._handle_dugite_native(package)
- elif package.name == 'vscode-ripgrep':
- await self._handle_ripgrep_prebuilt(package)
- elif package.name == 'playwright':
- await self._handle_playwright(package)
- elif package.name == 'esbuild':
- await self._handle_esbuild(package)
-
-
-class NpmLockfileProvider(LockfileProvider):
- class Options(NamedTuple):
- no_devel: bool
-
- def __init__(self, options: Options):
- self.no_devel = options.no_devel
-
- def process_dependencies(
- self, lockfile: Path,
- dependencies: Dict[str, Dict[Any, Any]]) -> Iterator[Package]:
- for name, info in dependencies.items():
- if info.get('dev') and self.no_devel:
- continue
- elif info.get('bundled'):
- continue
-
- version: str = info['version']
-
- source: PackageSource
- if info.get('from'):
- git_source = self.parse_git_source(version, info['from'])
- source = git_source
- else:
- # NOTE: npm ignores the resolved field and just uses the provided
- # registry instead. We follow the same behavior here.
- source = UnresolvedRegistrySource()
-
- yield Package(name=name, version=version, source=source, lockfile=lockfile)
-
- if 'dependencies' in info:
- yield from self.process_dependencies(lockfile, info['dependencies'])
-
- def process_lockfile(self, lockfile: Path) -> Iterator[Package]:
- with open(lockfile) as fp:
- data = json.load(fp)
-
- assert data['lockfileVersion'] <= 2, data['lockfileVersion']
-
- yield from self.process_dependencies(lockfile, data.get('dependencies', {}))
-
-
-class NpmModuleProvider(ModuleProvider):
- class Options(NamedTuple):
- registry: str
- no_autopatch: bool
- no_trim_index: bool
-
- class RegistryPackageIndex(NamedTuple):
- url: str
- data: Dict[Any, Any]
- used_versions: Set[str]
-
- def __init__(self, gen: ManifestGenerator, special: SpecialSourceProvider,
- lockfile_root: Path, options: Options) -> None:
- self.gen = gen
- self.special_source_provider = special
- self.lockfile_root = lockfile_root
- self.registry = options.registry
- self.no_autopatch = options.no_autopatch
- self.no_trim_index = options.no_trim_index
- self.npm_cache_dir = self.gen.data_root / 'npm-cache'
- self.cacache_dir = self.npm_cache_dir / '_cacache'
- # Awaitable so multiple tasks can be waiting on the same package info.
- self.registry_packages: Dict[
- str, asyncio.Future[NpmModuleProvider.RegistryPackageIndex]] = {}
- self.index_entries: Dict[Path, str] = {}
- self.all_lockfiles: Set[Path] = set()
- # Mapping of lockfiles to a dict of the Git source target paths and GitSource objects.
- self.git_sources: DefaultDict[Path, Dict[
- Path, GitSource]] = collections.defaultdict(lambda: {})
-
- def __exit__(self, exc_type: Optional[Type[BaseException]],
- exc_value: Optional[BaseException],
- tb: Optional[types.TracebackType]) -> None:
- self._finalize()
-
- def get_cacache_integrity_path(self, integrity: Integrity) -> Path:
- digest = integrity.digest
- return Path(digest[0:2]) / digest[2:4] / digest[4:]
-
- def get_cacache_index_path(self, integrity: Integrity) -> Path:
- return self.cacache_dir / Path('index-v5') / self.get_cacache_integrity_path(
- integrity)
-
- def get_cacache_content_path(self, integrity: Integrity) -> Path:
- return (self.cacache_dir / Path('content-v2') / integrity.algorithm /
- self.get_cacache_integrity_path(integrity))
-
- def add_index_entry(self, url: str, metadata: RemoteUrlMetadata) -> None:
- key = f'make-fetch-happen:request-cache:{url}'
- index_json = json.dumps({
- 'key':
- key,
- 'integrity':
- f'{metadata.integrity.algorithm}-{metadata.integrity.to_base64()}',
- 'time':
- 0,
- 'size':
- metadata.size,
- 'metadata': {
- 'url': url,
- 'reqHeaders': {},
- 'resHeaders': {},
- },
- })
-
- content_integrity = Integrity.generate(index_json, algorithm='sha1')
- index = '\t'.join((content_integrity.digest, index_json))
-
- key_integrity = Integrity.generate(key)
- index_path = self.get_cacache_index_path(key_integrity)
- self.index_entries[index_path] = index
-
- async def resolve_source(self, package: Package) -> ResolvedSource:
- # These results are going to be the same each time.
- if package.name not in self.registry_packages:
- cache_future = asyncio.get_event_loop().create_future()
- self.registry_packages[package.name] = cache_future
-
- data_url = f'{self.registry}/{package.name.replace("/", "%2f")}'
- # NOTE: Not cachable, because this is an API call.
- raw_data = await Requests.instance.read_all(data_url, cachable=False)
- data = json.loads(raw_data)
-
- assert 'versions' in data, f'{data_url} returned an invalid package index'
- cache_future.set_result(
- NpmModuleProvider.RegistryPackageIndex(url=data_url,
- data=data,
- used_versions=set()))
-
- if not self.no_trim_index:
- for key in list(data):
- if key != 'versions':
- del data[key]
-
- index = await self.registry_packages[package.name]
-
- versions = index.data['versions']
- assert package.version in versions, \
- f'{package.name} versions available are {", ".join(versions)}, not {package.version}'
-
- dist = versions[package.version]['dist']
- assert 'tarball' in dist, f'{package.name}@{package.version} has no tarball in dist'
-
- index.used_versions.add(package.version)
-
- integrity: Integrity
- if 'integrity' in dist:
- integrity = Integrity.parse(dist['integrity'])
- elif 'shasum' in dist:
- integrity = Integrity.from_sha1(dist['shasum'])
- else:
- assert False, f'{package.name}@{package.version} has no integrity in dist'
-
- return ResolvedSource(resolved=dist['tarball'], integrity=integrity)
-
- async def generate_package(self, package: Package) -> None:
- self.all_lockfiles.add(package.lockfile)
- source = package.source
-
- assert not isinstance(source, ResolvedSource)
-
- if isinstance(source, UnresolvedRegistrySource):
- source = await self.resolve_source(package)
- assert source.resolved is not None
- assert source.integrity is not None
-
- integrity = await source.retrieve_integrity()
- size = await RemoteUrlMetadata.get_size(source.resolved, cachable=True)
- metadata = RemoteUrlMetadata(integrity=integrity, size=size)
- content_path = self.get_cacache_content_path(integrity)
- self.gen.add_url_source(source.resolved, integrity, content_path)
- self.add_index_entry(source.resolved, metadata)
-
- await self.special_source_provider.generate_special_sources(package)
-
- # pyright: reportUnnecessaryIsInstance=false
- elif isinstance(source, GitSource):
- # Get a unique name to use for the Git repository folder.
- name = f'{package.name}-{source.commit}'
- path = self.gen.data_root / 'git-packages' / name
- self.git_sources[package.lockfile][path] = source
- self.gen.add_git_source(source.url, source.commit, path)
-
- def relative_lockfile_dir(self, lockfile: Path) -> Path:
- return lockfile.parent.relative_to(self.lockfile_root)
-
- def _finalize(self) -> None:
- for _, async_index in self.registry_packages.items():
- index = async_index.result()
-
- if not self.no_trim_index:
- for version in list(index.data['versions'].keys()):
- if version not in index.used_versions:
- del index.data['versions'][version]
-
- raw_data = json.dumps(index.data).encode()
-
- metadata = RemoteUrlMetadata(integrity=Integrity.generate(raw_data),
- size=len(raw_data))
- content_path = self.get_cacache_content_path(metadata.integrity)
- self.gen.add_data_source(raw_data, content_path)
- self.add_index_entry(index.url, metadata)
-
- patch_commands: DefaultDict[Path, List[str]] = collections.defaultdict(lambda: [])
-
- if self.git_sources:
- # Generate jq scripts to patch the package*.json files.
- scripts = {
- 'package.json':
- r'''
- walk(
- if type == "object"
- then
- to_entries | map(
- if (.value | type == "string") and $data[.value]
- then .value = "git+file:\($buildroot)/\($data[.value])"
- else .
- end
- ) | from_entries
- else .
- end
- )
- ''',
- 'package-lock.json':
- r'''
- walk(
- if type == "object" and (.version | type == "string") and $data[.version]
- then
- .version = "git+file:\($buildroot)/\($data[.version])"
- else .
- end
- )
- ''',
- }
-
- for lockfile, sources in self.git_sources.items():
- prefix = self.relative_lockfile_dir(lockfile)
- data: Dict[str, Dict[str, str]] = {
- 'package.json': {},
- 'package-lock.json': {},
- }
-
- for path, source in sources.items():
- original_version = f'{source.original}'
- new_version = f'{path}#{source.commit}'
- assert source.from_ is not None
- data['package.json'][source.from_] = new_version
- data['package-lock.json'][original_version] = new_version
-
- for filename, script in scripts.items():
- target = Path('$FLATPAK_BUILDER_BUILDDIR') / prefix / filename
- script = textwrap.dedent(script.lstrip('\n')).strip().replace(
- '\n', '')
- json_data = json.dumps(data[filename])
- patch_commands[lockfile].append(
- 'jq'
- ' --arg buildroot "$FLATPAK_BUILDER_BUILDDIR"'
- f' --argjson data {shlex.quote(json_data)}'
- f' {shlex.quote(script)} {target}'
- f' > {target}.new')
- patch_commands[lockfile].append(f'mv {target}{{.new,}}')
-
- patch_all_commands: List[str] = []
- for lockfile in self.all_lockfiles:
- patch_dest = self.gen.data_root / 'patch' / self.relative_lockfile_dir(
- lockfile)
- # Don't use with_extension to avoid problems if the package has a . in its name.
- patch_dest = patch_dest.with_name(patch_dest.name + '.sh')
-
- self.gen.add_script_source(patch_commands[lockfile], patch_dest)
- patch_all_commands.append(f'$FLATPAK_BUILDER_BUILDDIR/{patch_dest}')
-
- patch_all_dest = self.gen.data_root / 'patch-all.sh'
- self.gen.add_script_source(patch_all_commands, patch_all_dest)
-
- if not self.no_autopatch:
- # FLATPAK_BUILDER_BUILDDIR isn't defined yet for script sources.
- self.gen.add_command(f'FLATPAK_BUILDER_BUILDDIR=$PWD {patch_all_dest}')
-
- if self.index_entries:
- for path, entry in self.index_entries.items():
- self.gen.add_data_source(entry, path)
-
-
-class YarnLockfileProvider(LockfileProvider):
- @staticmethod
- def is_git_version(version: str) -> bool:
- for pattern in GIT_URL_PATTERNS:
- if pattern.match(version):
- return True
- url = urllib.parse.urlparse(version)
- if url.netloc in GIT_URL_HOSTS:
- return len([p for p in url.path.split("/") if p]) == 2
- return False
-
- def unquote(self, string: str) -> str:
- if string.startswith('"'):
- assert string.endswith('"')
- return string[1:-1]
- else:
- return string
-
- def parse_package_section(self, lockfile: Path, section: List[str]) -> Package:
- assert section
- name_line = section[0]
- assert name_line.endswith(':'), name_line
- name_line = name_line[:-1]
-
- name = self.unquote(name_line.split(',', 1)[0])
- name, _ = name.rsplit('@', 1)
-
- version: Optional[str] = None
- resolved: Optional[str] = None
- integrity: Optional[Integrity] = None
-
- section_indent = 0
-
- line = None
- for line in section[1:]:
- indent = 0
- while line[indent].isspace():
- indent += 1
-
- assert indent, line
- if not section_indent:
- section_indent = indent
- elif indent > section_indent:
- # Inside some nested section.
- continue
-
- line = line.strip()
- if line.startswith('version'):
- version = self.unquote(line.split(' ', 1)[1])
- elif line.startswith('resolved'):
- resolved = self.unquote(line.split(' ', 1)[1])
- elif line.startswith('integrity'):
- _, values_str = line.split(' ', 1)
- values = self.unquote(values_str).split(' ')
- integrity = Integrity.parse(values[0])
-
- assert version and resolved, line
-
- source: PackageSource
- if self.is_git_version(resolved):
- source = self.parse_git_source(version=resolved)
- else:
- source = ResolvedSource(resolved=resolved, integrity=integrity)
-
- return Package(name=name, version=version, source=source, lockfile=lockfile)
-
- def process_lockfile(self, lockfile: Path) -> Iterator[Package]:
- section: List[str] = []
-
- with open(lockfile) as fp:
- for line in map(str.rstrip, fp):
- if not line.strip() or line.strip().startswith('#'):
- continue
-
- if not line[0].isspace():
- if section:
- yield self.parse_package_section(lockfile, section)
- section = []
-
- section.append(line)
-
- if section:
- yield self.parse_package_section(lockfile, section)
-
-
-class YarnModuleProvider(ModuleProvider):
- # From https://github.com/yarnpkg/yarn/blob/v1.22.4/src/fetchers/tarball-fetcher.js
- _PACKAGE_TARBALL_URL_RE = re.compile(
- r'(?:(@[^/]+)(?:/|%2f))?[^/]+/(?:-|_attachments)/(?:@[^/]+/)?([^/]+)$')
-
- def __init__(self, gen: ManifestGenerator, special: SpecialSourceProvider) -> None:
- self.gen = gen
- self.special_source_provider = special
- self.mirror_dir = self.gen.data_root / 'yarn-mirror'
-
- def __exit__(self, exc_type: Optional[Type[BaseException]],
- exc_value: Optional[BaseException],
- tb: Optional[types.TracebackType]) -> None:
- pass
-
- async def generate_package(self, package: Package) -> None:
- source = package.source
-
- if isinstance(source, ResolvedSource):
- integrity = await source.retrieve_integrity()
- url_parts = urllib.parse.urlparse(source.resolved)
- match = self._PACKAGE_TARBALL_URL_RE.search(url_parts.path)
- if match is not None:
- scope, filename = match.groups()
- if scope:
- filename = f'{scope}-{filename}'
- else:
- filename = os.path.basename(url_parts.path)
-
- self.gen.add_url_source(source.resolved, integrity,
- self.mirror_dir / filename)
-
- elif isinstance(source, GitSource):
- repo_name = urllib.parse.urlparse(source.url).path.split('/')[-1]
- name = f'{repo_name}-{source.commit}'
- repo_dir = self.gen.tmp_root / name
- target_tar = os.path.relpath(self.mirror_dir / name, repo_dir)
-
- self.gen.add_git_source(source.url, source.commit, repo_dir)
- self.gen.add_command(
- f'cd {repo_dir}; git archive --format tar -o {target_tar} HEAD')
-
- await self.special_source_provider.generate_special_sources(package)
-
-
-class ProviderFactory:
- def create_lockfile_provider(self) -> LockfileProvider:
- raise NotImplementedError()
-
- def create_module_provider(self, gen: ManifestGenerator,
- special: SpecialSourceProvider) -> ModuleProvider:
- raise NotImplementedError()
-
-
-class NpmProviderFactory(ProviderFactory):
- class Options(NamedTuple):
- lockfile: NpmLockfileProvider.Options
- module: NpmModuleProvider.Options
-
- def __init__(self, lockfile_root: Path, options: Options) -> None:
- self.lockfile_root = lockfile_root
- self.options = options
-
- def create_lockfile_provider(self) -> NpmLockfileProvider:
- return NpmLockfileProvider(self.options.lockfile)
-
- def create_module_provider(self, gen: ManifestGenerator,
- special: SpecialSourceProvider) -> NpmModuleProvider:
- return NpmModuleProvider(gen, special, self.lockfile_root, self.options.module)
-
-
-class YarnProviderFactory(ProviderFactory):
- def __init__(self) -> None:
- pass
-
- def create_lockfile_provider(self) -> YarnLockfileProvider:
- return YarnLockfileProvider()
-
- def create_module_provider(self, gen: ManifestGenerator,
- special: SpecialSourceProvider) -> YarnModuleProvider:
- return YarnModuleProvider(gen, special)
-
-
-class GeneratorProgress(contextlib.AbstractContextManager):
- def __init__(self, packages: Collection[Package],
- module_provider: ModuleProvider) -> None:
- self.finished = 0
- self.packages = packages
- self.module_provider = module_provider
- self.previous_package: Optional[Package] = None
- self.current_package: Optional[Package] = None
-
- def __exit__(self, exc_type: Optional[Type[BaseException]],
- exc_value: Optional[BaseException],
- tb: Optional[types.TracebackType]) -> None:
- print()
-
- def _format_package(self, package: Package, max_width: int) -> str:
- result = f'{package.name} @ {package.version}'
-
- if len(result) > max_width:
- result = result[:max_width - 3] + '...'
-
- return result
-
- def _update(self) -> None:
- columns, _ = shutil.get_terminal_size()
-
- sys.stdout.write('\r' + ' ' * columns)
-
- prefix_string = f'\rGenerating packages [{self.finished}/{len(self.packages)}] '
- sys.stdout.write(prefix_string)
- max_package_width = columns - len(prefix_string)
-
- if self.current_package is not None:
- sys.stdout.write(self._format_package(self.current_package,
- max_package_width))
-
- sys.stdout.flush()
-
- def _update_with_package(self, package: Package) -> None:
- self.previous_package, self.current_package = self.current_package, package
- self._update()
-
- async def _generate(self, package: Package) -> None:
- self._update_with_package(package)
- await self.module_provider.generate_package(package)
- self.finished += 1
- self._update_with_package(package)
-
- async def run(self) -> None:
- self._update()
- await asyncio.wait(
- [asyncio.create_task(self._generate(pkg)) for pkg in self.packages])
-
-
-def scan_for_lockfiles(base: Path, patterns: List[str]) -> Iterator[Path]:
- for root, _, files in os.walk(base.parent):
- if base.name in files:
- lockfile = Path(root) / base.name
- if not patterns or any(map(lockfile.match, patterns)):
- yield lockfile
-
-
-async def main() -> None:
- parser = argparse.ArgumentParser(description='Flatpak Node generator')
- parser.add_argument('type', choices=['npm', 'yarn'])
- parser.add_argument('lockfile',
- help='The lockfile path (package-lock.json or yarn.lock)')
- parser.add_argument('-o',
- '--output',
- help='The output sources file',
- default='generated-sources.json')
- parser.add_argument(
- '-r',
- '--recursive',
- action='store_true',
- help='Recursively process all files under the lockfile directory with '
- 'the lockfile basename')
- parser.add_argument(
- '-R',
- '--recursive-pattern',
- action='append',
- help='Given -r, restrict files to those matching the given pattern.')
- parser.add_argument('--registry',
- help='The registry to use (npm only)',
- default='https://registry.npmjs.org')
- parser.add_argument('--no-trim-index',
- action='store_true',
- help="Don't trim npm package metadata (npm only)")
- parser.add_argument('--no-devel',
- action='store_true',
- help="Don't include devel dependencies (npm only)")
- parser.add_argument('--no-aiohttp',
- action='store_true',
- help="Don't use aiohttp, and silence any warnings related to it")
- parser.add_argument('--no-requests-cache',
- action='store_true',
- help='Disable the requests cache')
- parser.add_argument('--retries',
- type=int,
- help='Number of retries of failed requests',
- default=Requests.DEFAULT_RETRIES)
- parser.add_argument('-P',
- '--no-autopatch',
- action='store_true',
- help="Don't automatically patch Git sources from package*.json")
- parser.add_argument('-s',
- '--split',
- action='store_true',
- help='Split the sources file to fit onto GitHub.')
- parser.add_argument('--node-chromedriver-from-electron',
- help='Use the ChromeDriver version associated with the given '
- 'Electron version for node-chromedriver')
- # Deprecated alternative to --node-chromedriver-from-electron
- parser.add_argument('--electron-chromedriver', help=argparse.SUPPRESS)
- parser.add_argument('--electron-ffmpeg',
- choices=['archive', 'lib'],
- help='Download prebuilt ffmpeg for matching electron version')
- parser.add_argument('--electron-node-headers',
- action='store_true',
- help='Download the electron node headers')
- parser.add_argument('--nwjs-version',
- help='Specify NW.js version (will use latest otherwise)')
- parser.add_argument('--nwjs-node-headers',
- action='store_true',
- help='Download the NW.js node headers')
- parser.add_argument('--nwjs-ffmpeg', action='store_true',
- help='Download prebuilt ffmpeg for current NW.js version')
- parser.add_argument('--xdg-layout',
- action='store_true',
- help='Use XDG layout for caches')
- # Internal option, useful for testing.
- parser.add_argument('--stub-requests', action='store_true', help=argparse.SUPPRESS)
-
- args = parser.parse_args()
-
- Requests.retries = args.retries
-
- if args.type == 'yarn' and (args.no_devel or args.no_autopatch):
- sys.exit('--no-devel and --no-autopatch do not apply to Yarn.')
-
- if args.electron_chromedriver:
- print('WARNING: --electron-chromedriver is deprecated', file=sys.stderr)
- print(' (Use --node-chromedriver-from-electron instead.)', file=sys.stderr)
-
- if args.stub_requests:
- Requests.instance = StubRequests()
- elif args.no_aiohttp:
- if Requests.instance.is_async:
- Requests.instance = UrllibRequests()
- elif not Requests.instance.is_async:
- print('WARNING: aiohttp is not found, performance will suffer.', file=sys.stderr)
- print(' (Pass --no-aiohttp to silence this warning.)', file=sys.stderr)
-
- if not args.no_requests_cache:
- Cache.instance = FilesystemBasedCache()
-
- lockfiles: List[Path]
- if args.recursive or args.recursive_pattern:
- lockfiles = list(scan_for_lockfiles(Path(args.lockfile), args.recursive_pattern))
- if not lockfiles:
- sys.exit('No lockfiles found.')
- print(f'Found {len(lockfiles)} lockfiles.')
- else:
- lockfiles = [Path(args.lockfile)]
-
- lockfile_root = Path(args.lockfile).parent
-
- provider_factory: ProviderFactory
- if args.type == 'npm':
- npm_options = NpmProviderFactory.Options(
- NpmLockfileProvider.Options(no_devel=args.no_devel),
- NpmModuleProvider.Options(registry=args.registry,
- no_autopatch=args.no_autopatch,
- no_trim_index=args.no_trim_index))
- provider_factory = NpmProviderFactory(lockfile_root, npm_options)
- elif args.type == 'yarn':
- provider_factory = YarnProviderFactory()
- else:
- assert False, args.type
-
- print('Reading packages from lockfiles...')
- packages: Set[Package] = set()
-
- for lockfile in lockfiles:
- lockfile_provider = provider_factory.create_lockfile_provider()
- packages.update(lockfile_provider.process_lockfile(lockfile))
-
- print(f'{len(packages)} packages read.')
-
- gen = ManifestGenerator()
- with gen:
- options = SpecialSourceProvider.Options(
- node_chromedriver_from_electron=args.node_chromedriver_from_electron
- or args.electron_chromedriver,
- nwjs_version=args.nwjs_version,
- nwjs_node_headers=args.nwjs_node_headers,
- nwjs_ffmpeg=args.nwjs_ffmpeg,
- xdg_layout=args.xdg_layout,
- electron_ffmpeg=args.electron_ffmpeg,
- electron_node_headers=args.electron_node_headers)
- special = SpecialSourceProvider(gen, options)
-
- with provider_factory.create_module_provider(gen, special) as module_provider:
- with GeneratorProgress(packages, module_provider) as progress:
- await progress.run()
-
- if args.xdg_layout:
- script_name = "setup_sdk_node_headers.sh"
- node_gyp_dir = gen.data_root / "cache" / "node-gyp"
- gen.add_script_source([
- 'version=$(node --version | sed "s/^v//")',
- 'nodedir=$(dirname "$(dirname "$(which node)")")',
- f'mkdir -p "{node_gyp_dir}/$version"',
- f'ln -s "$nodedir/include" "{node_gyp_dir}/$version/include"',
- f'echo 9 > "{node_gyp_dir}/$version/installVersion"',
- ],
- destination=gen.data_root / script_name)
- gen.add_command(f"bash {gen.data_root / script_name}")
-
- if args.split:
- i = 0
- for i, part in enumerate(gen.split_sources()):
- output = Path(args.output)
- output = output.with_suffix(f'.{i}{output.suffix}')
- with open(output, 'w') as fp:
- json.dump(part, fp, indent=ManifestGenerator.JSON_INDENT)
-
- print(f'Wrote {gen.source_count} to {i + 1} file(s).')
- else:
- with open(args.output, 'w') as fp:
- json.dump(list(gen.ordered_sources()),
- fp,
- indent=ManifestGenerator.JSON_INDENT)
-
- if fp.tell() >= ManifestGenerator.MAX_GITHUB_SIZE:
- print('WARNING: generated-sources.json is too large for GitHub.',
- file=sys.stderr)
- print(' (Pass -s to enable splitting.)')
-
- print(f'Wrote {gen.source_count} source(s).')
-
-
-if __name__ == '__main__':
- asyncio.run(main())
diff --git a/flatpak/generated-sources.json b/flatpak/generated-sources.json
deleted file mode 100644
index d32ea4d3..00000000
--- a/flatpak/generated-sources.json
+++ /dev/null
@@ -1,17196 +0,0 @@
-[
- {
- "type": "archive",
- "url": "https://playwright.azureedge.net/builds/chromium/956323/chromium-linux.zip",
- "strip-components": 0,
- "sha256": "6627a5be7d9f3233b44aa7592dc86cfe0012f520fdaa76ab38dd0ea290751ea9",
- "dest": "flatpak-node/cache/ms-playwright/chromium-956323"
- },
- {
- "type": "archive",
- "url": "https://playwright.azureedge.net/builds/ffmpeg/1007/ffmpeg-linux.zip",
- "strip-components": 0,
- "sha256": "834b97ce515429542e5fb5523778b471b7320fae569ad554fb67bce75499ea5e",
- "dest": "flatpak-node/cache/ms-playwright/ffmpeg-1007"
- },
- {
- "type": "archive",
- "url": "https://playwright.azureedge.net/builds/firefox/1313/firefox-ubuntu-18.04.zip",
- "strip-components": 0,
- "sha256": "b85a9a572bfc63db22626b8c810e198a1284dcfd9ef6b2c241321edbf2987118",
- "dest": "flatpak-node/cache/ms-playwright/firefox-1313"
- },
- {
- "type": "archive",
- "url": "https://playwright.azureedge.net/builds/webkit/1596/webkit-ubuntu-20.04.zip",
- "strip-components": 0,
- "sha256": "3dc32d2a2eb214538632912f2f17d970adaad5c3baf3973f113350f4d26fb23d",
- "dest": "flatpak-node/cache/ms-playwright/webkit-1596"
- },
- {
- "type": "archive",
- "url": "https://www.electronjs.org/headers/v17.0.0/node-v17.0.0-headers.tar.gz",
- "strip-components": 1,
- "sha256": "3436da55b6c2d3c6b677898f624087fa70fce451e1ebf59171240ae37be87ac4",
- "dest": "flatpak-node/cache/node-gyp/17.0.0"
- },
- {
- "type": "file",
- "url": "https://codeload.github.com/devsnek/node-register-scheme/tar.gz/e7cc9a63a1f512565da44cb57316d9fb10750e17",
- "sha256": "ab95956c7df0d1252400d97a9b62c7c2e807f41c38629471dc0f41723aa7ff17",
- "dest-filename": "e7cc9a63a1f512565da44cb57316d9fb10750e17",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://github.com/electron/electron/releases/download/v17.0.0/SHASUMS256.txt",
- "sha256": "81013ab86d408a3dede66bca1581a978014cefa5c7cc0a1df971381d6704195f",
- "dest-filename": "SHASUMS256.txt-17.0.0",
- "dest": "flatpak-node/cache/electron"
- },
- {
- "type": "file",
- "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-arm64.zip",
- "sha256": "e7bf2ec09b8a7018ba417fc670a15594fb8f3e930626485f2423e9a89e2dcbd0",
- "dest-filename": "electron-v17.0.0-linux-arm64.zip",
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "aarch64"
- ]
- },
- {
- "type": "file",
- "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-armv7l.zip",
- "sha256": "29b31c5e77d4d6d9e1a4340fdf08c28ae6698ea9e20d636cec8a59dc758815ef",
- "dest-filename": "electron-v17.0.0-linux-armv7l.zip",
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "arm"
- ]
- },
- {
- "type": "file",
- "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-ia32.zip",
- "sha256": "6f6fe5fa0452e871abe82dbd25d7cf92ab7011995b3b2b15d04d8691ddc9e9de",
- "dest-filename": "electron-v17.0.0-linux-ia32.zip",
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "i386"
- ]
- },
- {
- "type": "file",
- "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-x64.zip",
- "sha256": "dc74e28719a79f05dd741cda8c22c2bb164dec178c6d560af085910b37cf000b",
- "dest-filename": "electron-v17.0.0-linux-x64.zip",
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "x86_64"
- ]
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz",
- "sha512": "b003f82e575e58dcf494dce64e2adddee59f1435964de83a57f32c9b2c8b47d5f589dc0a056220b7f66f8a7a9095d266dcb79c284b357a691baae3ba3c288b55",
- "dest-filename": "7zip-bin-5.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/7zip/-/7zip-0.0.6.tgz",
- "sha1": "9cafb171af82329490353b4816f03347aa150a30",
- "dest-filename": "7zip-0.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
- "sha512": "8805ea527f0821e05335def6c6c16581a5c790c04cb7acb81c9a75b4868ae3ae4258b4ff7c6d5aa81ef292bf798071e69417466c579659fc81e0d249d2799e22",
- "dest-filename": "@babel-code-frame-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz",
- "sha512": "9bb3a45f421d28b28fa41949b45e7ad5825a979cbf8f22397cd7d66cfc61d83fe76f3cc6238a91cab0fcc4eda3076e2eee5fb92366b8dec7021b622b7e30b9d1",
- "dest-filename": "@babel-compat-data-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz",
- "sha512": "74ae4fb46d6e88dda2924fbee4ecd262c8ad64a9f2e303820f49eb3b84ea9d6e015414d0d8d192dcd82296f4ff4c4cb14d24fb2cdc9657f4f8b570e80f77ce82",
- "dest-filename": "@babel-core-7.16.12.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz",
- "sha512": "d688d9c04f7e94e5f371675698ee936d4cc37ea2c3dfd0a612137cfb6717f57903a39c96d4ea607de8df962cac4760162e931a99388e880a7f9adae86b29a1a7",
- "dest-filename": "@babel-generator-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz",
- "sha512": "b3ab76c3f20f4154c0113d478ada28c11197a285fc98282db8fe75f79c03fd024f57ac188e9ba308617b26e30e0d55f664024e7f5193e834fd307119bcb3854b",
- "dest-filename": "@babel-helper-annotate-as-pure-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz",
- "sha512": "0ba15d6d16b1623c15bbf81e296e19790d10df501fb6045c7529d9e7f8ec1fa0730896edbd7be1a5f91b9138584aebad640ee7097a4f47a003f73775769acc90",
- "dest-filename": "@babel-helper-builder-binary-assignment-operator-visitor-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
- "sha512": "986a23070216730183eab7ea8115d59556263c0bfb78ea487a6506ddd1a70dd098e0f69eef444e8a3dd799fac7e856b58756a20f29698256d9ca4b5fcf2a3f84",
- "dest-filename": "@babel-helper-compilation-targets-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz",
- "sha512": "c0379e8f4a6edd637f7df4f130d08f5b950288e6aff0870b471488ca9ffdf88176c4950cf61fce6238342092c768be85f2853c92a333f67735bebc9784cb205e",
- "dest-filename": "@babel-helper-create-class-features-plugin-7.16.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz",
- "sha512": "7e4e40eb299fa7e3b9fa9db20a45c0bb92b28fabf4c61d1105e35c024614303bef000a31bd22979fe25bdfbb7fc961624150c52b510ba544c3f3f68b8423eefa",
- "dest-filename": "@babel-helper-create-regexp-features-plugin-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz",
- "sha512": "27d8463292509ad5a68f8e81de404798bdfc5212468585fb7aa91cabeda0b2cb7262ddf8d4798f796b298a15f8df2551034992fbc18693619c91cedb63f1c298",
- "dest-filename": "@babel-helper-define-polyfill-provider-0.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
- "sha512": "48b2dbd00027e8f9147807ca24208e97d7b5479de94251807dce32e17b8c4597ea78c60b13474cd4b321a9b180946418d257f0e7fa21a185807bd575ca26d16a",
- "dest-filename": "@babel-helper-environment-visitor-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz",
- "sha512": "2b251e9e158c0bc56bc739063f4262ce3a38fd9c7ed67359860a1cb3e80bcf267207c48789d868abd28affc02da386a7870b22bdf9012dfb64cbb82fcdb64cb5",
- "dest-filename": "@babel-helper-explode-assignable-expression-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
- "sha512": "41f0df127214cb20524771edaed1840ae67a0c0c82918169ec61e5ef9bc5b539e7ea98ca78ad13d4307994b905bc179af0c75a894001c77a2c6e02f2227a1e8c",
- "dest-filename": "@babel-helper-function-name-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
- "sha512": "7e573e44b48e057ccdcd585c2eeeae8de1d4ac3ead00d00e539a23ad1c7f6acfad6f37fcfacb540a3efe21f451a006c466a8ff6a15c432c8e13a181e66cae74f",
- "dest-filename": "@babel-helper-get-function-arity-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
- "sha512": "9b4e1dff43a9df81f9bfba5b670ea948a3fbc1e03a96c32f7e220031e22f918fd1e3142d05230512282ef504d9daa07ff65db6becc6d33c6be43c0b30f6e797e",
- "dest-filename": "@babel-helper-hoist-variables-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz",
- "sha512": "56d27feb9b58894ffa01b3130f0ca85c63ca1e04ec7d16ab8af9be61b079b80cca532b8f8e065280015e1bcec50a281ceca347bb63de821d57213de55e3bf3dd",
- "dest-filename": "@babel-helper-member-expression-to-functions-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz",
- "sha512": "bda0b52b22194aec966f72e3dbbedf5f4a718afc87c2e0d4e3166ca1faa06006e40f136278c836bee8733f902033078c63b7c24143138be0603ea4cb8e4c5716",
- "dest-filename": "@babel-helper-module-imports-7.0.0-beta.35.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
- "sha512": "2d5b52e93aa324715cfa761e213468e952d7bdeef4c66abbc0f8564ea0c9bac2448069a4000096c0c89336bbdfa10a3a844845c00222c4d92f0748cf5c32fc5a",
- "dest-filename": "@babel-helper-module-imports-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
- "sha512": "81aaad2c3c4910509e41b629f5a2c079f8e190a76329c761e8307b8e7888194dcfcf9d960263f6ebcccad1580fcfd85436431261e1fdefa2b6fd8eb23da7699e",
- "dest-filename": "@babel-helper-module-transforms-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz",
- "sha512": "12d801860eeb77f25c9e96455e9072d337b56117dd9bb067057e2e28c05dde2c5add1180134d3625907ae85272347ee0d05dfc534e695e60393fc70187bcfed7",
- "dest-filename": "@babel-helper-optimise-call-expression-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
- "sha512": "420dcd93b671a6032bb28c7a1eb798d5934a741abb2bbdad0d296203a7429797f4d3b8d1e277bc883e54cee3670891f6c417f60441151abfbf38be86769ed1c4",
- "dest-filename": "@babel-helper-plugin-utils-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz",
- "sha512": "7e6d201fb1656fc1f9d4ba891f2dc7277c27135faab5847603df4ad3a6a1c2b6b02dd385b021168d93ab62b89c5c91e83d2b9d34ac6b30150f1083f188822f07",
- "dest-filename": "@babel-helper-remap-async-to-generator-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz",
- "sha512": "cbdbec5a295335a567561eb18897c0073b0da600cf29ebfd1e7020cfa19bd69e945307fd35ea5d96c57b5571827ed24cfa3a83e5fec9204b9b7292e3663e5d07",
- "dest-filename": "@babel-helper-replace-supers-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
- "sha512": "648cc7572a1e2ccbd730dfefa24fdae0b591cbc1b6bf6d3998d3f45ceb9ff5744bc97e7fbbd0a756e954b438144da99ade54fe6dffd4aae72e663aa21ae4d2d6",
- "dest-filename": "@babel-helper-simple-access-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz",
- "sha512": "fa2975813cb4a07c14b01419c89bee91b078bcf31d71806b1476b451ce008b32f16eae813980b9d51bf8b56a1c5fd04b0432d9e2473aa9416943a1d180bfb7cf",
- "dest-filename": "@babel-helper-skip-transparent-expression-wrappers-7.16.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
- "sha512": "c5b5a8cbf3c5a314966b3213a13f5289ffa325396b31c9dd22c68e2af4c0eaeed0128ee2964459a637b0d7cfd6ddcee79bc7d77540d7874d955d36d9d2918337",
- "dest-filename": "@babel-helper-split-export-declaration-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "sha512": "86c12715e99e896e03d3c039814019c4b0535e9677f4ff9af83183b07c35cb1ab243f8f31449f17f9b93106a7eddbcc06cd3b1535a5a4e0612e04094fc881f0f",
- "dest-filename": "@babel-helper-validator-identifier-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
- "sha512": "4d1b5e9ceb91515a3da084063c2e46f4380ae3be3771dc6fb4ec34c1e40da595da4b5e920818b930d8d917cbdb6b71135118d9a536d59fb56f71fd9e030168cd",
- "dest-filename": "@babel-helper-validator-option-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz",
- "sha512": "f11a724552005b545c0c319303e1a93c0c15db6c1709f28ea0cf5b7ade932e4188153911412907d67310e587ade0ca685ded59c073d5b4d6ac736c34b9932a9f",
- "dest-filename": "@babel-helper-wrap-function-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz",
- "sha512": "f590e8aad7d8ec0b843adddcc5c85f8a2e82ec60f2c8c05f7e4b51e41da3bd6bfcbb6f9e7f0be99d5297316ccd7a1ab2ebcb4a8007d2c1f770fe55a9b614b66f",
- "dest-filename": "@babel-helpers-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
- "sha512": "e459d340b48bb30123e88920570e4abac35450563d646a9efd34459cffc12981d881f87bb5cf82ee6c22cbde7fc8d3fb0e1f71e7cd15bfcafbbbb65f4c117177",
- "dest-filename": "@babel-highlight-7.16.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz",
- "sha512": "55f695d79a68f11899b2cae43f07b2bdb19549ee31db2f9a722142827d27d3f489311db6730a1f455d66b6725061c481d70513680fd7d4b9c0ddeb3ae8c08ee4",
- "dest-filename": "@babel-parser-7.16.12.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz",
- "sha512": "6a7bff0ce6e5ef06a21849c2db83bdcea2f4a52b88f619638a1aa20ee1470bc77bfdb8ebff844b18f5ae73cad839f7ff40fcdb10f4a4cc6f30186f5a0ee84746",
- "dest-filename": "@babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz",
- "sha512": "762f2f50745d7fee1a27b96d5e16836cfa2ccdd921e7d010b49339b282ecb87a5025d15064e038b868f4576bbf099f1b27fbbc50b0cbe72aba14efdb0979ca1f",
- "dest-filename": "@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz",
- "sha512": "ef560722f32e8aea9625091e6d626d7614137dde10e2617beaad885f7eee64f906f7ea25071b17fab1f5be4845b68e1478967d74f636b3e983be10e6d6ed8119",
- "dest-filename": "@babel-plugin-proposal-async-generator-functions-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz",
- "sha512": "2286d4d1799edf57b08d839285222a77f64633faff72e3b3db3d0c0db36b845e455be655822d1fda5c9ea23f4a14f0ce02ab18c662d666d7b558ec25bd8f5ac3",
- "dest-filename": "@babel-plugin-proposal-class-properties-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz",
- "sha512": "760a8926b719a06ff80a4328a7384f2631b1b087bd03c4659102e72ff561871f0003d66e691c064a5b1c4a1e3685acdced64abc9afc82bb9937a81740cff6d13",
- "dest-filename": "@babel-plugin-proposal-class-static-block-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz",
- "sha512": "23c496f47a37ffc0d149d983747de039177252e6279359b870cc5401dbb9a32e27dce7cdf1f943107f9deb4886edd51f8b42a46304afa1a947cf3751ce95874e",
- "dest-filename": "@babel-plugin-proposal-dynamic-import-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz",
- "sha512": "67176da835cb44604beb8a1c65cb3ba2fb7bd4bde3842d51192c91f7deacbeb0a2dcf62a1cd91bdd2c0f242b3c448cc3f3ab3e58fa6dd92ef7f841c218ef8d50",
- "dest-filename": "@babel-plugin-proposal-export-namespace-from-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz",
- "sha512": "94d677104820b0663bf096af81b1ec2bdbb93f7a50696ee4e1ac658052d890c77b501b2235a8422134a12e3350b1c84fca3b4ee9d003acbdb8ef9ec876106bb1",
- "dest-filename": "@babel-plugin-proposal-json-strings-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz",
- "sha512": "2b75f3c99246402af4d3e12d62dac38e6c17ee8ecf2cae94f5b8b59c2c24422a1115552fe9d268c5b423b5656d3fe6c23f2f366ce341286f0d3f2438fa2eb28e",
- "dest-filename": "@babel-plugin-proposal-logical-assignment-operators-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz",
- "sha512": "6943ab614dc456d8dfeb68d0ac28fade9619ee4eaf9ecda1fc342f1cf5869ac25163359767afc0b1f829891cba5e2b880c00e12733f643d33048c29ab8143e51",
- "dest-filename": "@babel-plugin-proposal-nullish-coalescing-operator-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz",
- "sha512": "bd080f3249ce2208ae56a6e8913a325db918fce9a68c0cebff49614886c6fca9a7cd73c6c16fc076174aa62f8ee17fd59168968e790a3818aa26b4da0bdf152b",
- "dest-filename": "@babel-plugin-proposal-numeric-separator-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz",
- "sha512": "dced18e3e770f781c0f3aa9283d2077f23e4b6047bab782935501e88a41dfbc8c1285694e4d412d586ad828e3063e50536e2e3bf17129b372c1eaae1813c8150",
- "dest-filename": "@babel-plugin-proposal-object-rest-spread-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz",
- "sha512": "78c387fcbe0ebd6499004d559076ebd6f7242c6d5651c1c62522eaa90c25d86694a86e908dd76face69350c3588afefb1f920a3cc67d53d3fb11a1f0bc04a17c",
- "dest-filename": "@babel-plugin-proposal-optional-catch-binding-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz",
- "sha512": "782df1cbe66b51c06d3fbc7eb2aeb643f1d877aef8a4f4dbffbed764c6f9c1b0cf19621d51b4abe0082bd39dbecda50f49bfa01919e3c577ca16fc7988c27e0c",
- "dest-filename": "@babel-plugin-proposal-optional-chaining-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz",
- "sha512": "17fdae0243e55c3afcf811e966fa35f70de12c52a07be93be57529ac4ea36aa2b18c691261c2bee1cf9bba9e4f756ffb5bf4698f0aa5ec54d51035be7d1010b3",
- "dest-filename": "@babel-plugin-proposal-private-methods-7.16.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz",
- "sha512": "acc4248dc3856e6fae7deddb4d92f239fb0e50ec72bcb5d92424c046126bfbc50c4a8666a937b52b506090572b5b7eeb01c856839ef223af4e471896bd420db9",
- "dest-filename": "@babel-plugin-proposal-private-property-in-object-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz",
- "sha512": "4112b4608ff8d152e13551888d13400109041f0b3472cc12745163a45cadf78dd8989214d5d6bdb96eb722ee8d155e82c53656e5e4c30abc1952cb415a0a7f46",
- "dest-filename": "@babel-plugin-proposal-unicode-property-regex-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "sha512": "b727266719067d96b184c45b5e53d7b95169756957a62af65b800c85226044ace4fde0e52173a16f62c75a82e90c5ed3107ca5579ccd872917e8a0201c999337",
- "dest-filename": "@babel-plugin-syntax-async-generators-7.8.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "sha512": "7e6e227632a56b461a85436014d2c2074ab249db283e264fde2404deb932d26054b4c676df20c9f5225d83a7574d20e7ba5395aa21771e0afd9db5ef5d341960",
- "dest-filename": "@babel-plugin-syntax-class-properties-7.12.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "sha512": "6fe6323e6afa95dc8d9cceaca9878c584f9b809709a4eeb24b8403ef29b1807df81813cd0ccfd31c187c8ae9f2bca219ced8b02c7e02259d11c5393d7a68298f",
- "dest-filename": "@babel-plugin-syntax-class-static-block-7.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "sha512": "e607466c5a27f8fb33633aacf374b71399a98bbff2ffc33d782f743114d97ddb903985bbea283a48e48f35ee35206e4ba0fdc51819f6374463543490892f7891",
- "dest-filename": "@babel-plugin-syntax-dynamic-import-7.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "sha512": "3177f995a5e8e9cd486c46de8039b318fc06353b07666132e901b39eee528765025afb9ecb06f679ef82084e3342266cb7153d04ca103bd8bacd41526342a3d1",
- "dest-filename": "@babel-plugin-syntax-export-namespace-from-7.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "sha512": "958ea4746a561ef8e87b6be4e16ac06a912e051ebd10cc5997e46819186b14635854af2638f016f157db4ff660ac56d794336289ac509c0b6054267a8efdf410",
- "dest-filename": "@babel-plugin-syntax-json-strings-7.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
- "sha512": "12cc6693b62303c432b0a793dd58535ef17acbbedffdaf75488b38a566f81f6796190902285810686ea176811566d1acac071bd8ae415bae97b0e12b0f8594dd",
- "dest-filename": "@babel-plugin-syntax-jsx-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "sha512": "77cc1a4a19691438a743932dbc653dc4300ecca1f8efe145a277b2d9b68522832bf79da128e2e9d4747b56cce866f3ac57fe3e451b33358ec3d7b6dad2d7b48a",
- "dest-filename": "@babel-plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "sha512": "6927dfe333c8235bb6403ef2f85f280eccf5f5ec3820610983d4955be6eac29c2d7c595e8900cc77303f47e525583cdf9c7142c7195e153d0f308ad1dfa5cb35",
- "dest-filename": "@babel-plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "sha512": "f47e9875f91c2bfb8e9d8fcaeff680db1a73680824427dfbcb35943112bb39a3cea8ea464b5fa7d07e61c53f40530f44b128cf5bc495c8c270611b56b375f7ba",
- "dest-filename": "@babel-plugin-syntax-numeric-separator-7.10.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "sha512": "5e8a8c8a31996fdcb7cb65ec90df8fd70506895c16679266a03470c79fb71a612994dc95336b360e0f082c5426f2b58ce3ca2b1b2e58a48e4197c535cbbc9d94",
- "dest-filename": "@babel-plugin-syntax-object-rest-spread-7.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "sha512": "e953c3d0f7359694eac3468aa1e45332207e916840a13db83c0fa4b16481ac5b65e52211569665c0ddcd34f4237a103613ff75155dd18cb5a855382559c495dd",
- "dest-filename": "@babel-plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "sha512": "2a82bd12b1f53019423f15745403645d6dbf770e2f95b183ac5833f1b994b0119890545c6d1c0c87a70826e6dd3eb931470b8676d0a4d2fff03d329b42006392",
- "dest-filename": "@babel-plugin-syntax-optional-chaining-7.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "sha512": "d30567a7d77127bd995090d5dbb65f6d28fa8872e8cad6199a1deb15cc4d9efb0917792d9332c364fcbf980d7b1c6b1a413dff0d0b16617d5fd50196902a1552",
- "dest-filename": "@babel-plugin-syntax-private-property-in-object-7.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "sha512": "871fbeba92efe54d6b8187f07b5c41414851994e35344be952fae9f2392b48276f1929cce7fa9d44cb72949e8f1b938590168791b4c02939dddff63211244717",
- "dest-filename": "@babel-plugin-syntax-top-level-await-7.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz",
- "sha512": "6215082471c692a3e011c31890f08a4f219476818a5ada29232710ca3247f0e8ef460398b17b1a29e84b54f49c28958050b3f131ae0dd6f09eeaccd1105959ec",
- "dest-filename": "@babel-plugin-syntax-typescript-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz",
- "sha512": "f5f7e414531bbf34efbfeedd4e9ffaeb1bd9016012b8f0f94e5f4b2b767dbe13a600da3a8fde2b8a4fb960c06de02c0754c58b5a932cae221cdb3b1add65b7c5",
- "dest-filename": "@babel-plugin-transform-arrow-functions-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz",
- "sha512": "32d9949932501c29f2255ad270dccd9687d027774b16ea1b627de6c0e4ca1e748232d6cdb2abc5ef51909897c58ddad74ac000ee2cac166616c386d7676d213a",
- "dest-filename": "@babel-plugin-transform-async-to-generator-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz",
- "sha512": "254bb3973985e3467d717cb2b5c6d911929c920ad0cc285b409c3fe4fb841d87aacc2b2f79b0f1d0ad235a720855c9a60ce01572d0a09d8b34a4c72b623db326",
- "dest-filename": "@babel-plugin-transform-block-scoped-functions-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz",
- "sha512": "39b65ebf69f1540600e1b872bac10b768f616f71fe039e9bc47dc564c6c42266458840d85475d0489d6140a1650e796df06f5b06b099e59a5445952b5781b9a9",
- "dest-filename": "@babel-plugin-transform-block-scoping-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz",
- "sha512": "598ee8837f1214019845eeb806b8ca7fc3ab13aba5107b6be63118699330a31f4a79b82a3e2ebb66acfc2b9dc42a4d5f1442609bdeabdf6ae4299dea0369c259",
- "dest-filename": "@babel-plugin-transform-classes-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz",
- "sha512": "80def61bd6dc99e9d520b8fffecbf5ccb35a3f261c3b3521a36948241321fe26a427dca00a8fe1105f5ca466fad5208c103c5b6f2068550c6bb7e6d62aee4a1b",
- "dest-filename": "@babel-plugin-transform-computed-properties-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz",
- "sha512": "56a0308531c19eee710550c2bebbea25bb4b51afbea996960b4160af69aaa24065ba5640446c88bd90e8a9b3e53da288990f5d280702cdbbfeba5fffbaabbbd0",
- "dest-filename": "@babel-plugin-transform-destructuring-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz",
- "sha512": "2f2b6d69aa364a3645e8f7f8be4d5d54abfc632a4ca689806f2816fa65397183f74b97164df0898c6f3157a08577318595f58af352232fdbe2893be96fa1bb81",
- "dest-filename": "@babel-plugin-transform-dotall-regex-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz",
- "sha512": "d370efa5b45fbd6217c8ad3fe90891d4a31359e4fa39c43bb5b863ad7c854b4da48ee5ff9aee41be78794834961f1c9ac22b7683969684ac08f3a104ec65274f",
- "dest-filename": "@babel-plugin-transform-duplicate-keys-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz",
- "sha512": "f1460b4a5c8b8118b142f9581f72767a45c51c314b42eb5dcbb15f140326dc23d9eaaf701c2c27532897a5009ede05559d09477399ecba2115ce2b5e44d4d710",
- "dest-filename": "@babel-plugin-transform-exponentiation-operator-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz",
- "sha512": "fd0666f56f763eda70eec8c8f4dc7599b72c5b3df7fa5f24b8c2109c3c204011b9b377c07d0be446343b36a5e1b4d70a3a73e47480a6507c826965b4e870acaa",
- "dest-filename": "@babel-plugin-transform-for-of-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz",
- "sha512": "494fc2ebc615c13471a968f9920b1b28835a9066a0d0a4e0abd7f6899117752b6801b3b32c7101458cc89a603ac85a3c61984955f96f5e620750eec65879b1c4",
- "dest-filename": "@babel-plugin-transform-function-name-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz",
- "sha512": "ead1fc453a53588d2cdac57abaaddefc2f703e8e0f4eaa99a6ce2e17493343dff13cb150b62a729ef993d60fdd39f109fb4110b0786443fcf244877c2766fccd",
- "dest-filename": "@babel-plugin-transform-literals-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz",
- "sha512": "981aee44c6e4b4a4306f1689a1fdf62d3f4a2f2d9fde01fedbb6b95d2b97a3a87b477bea96d9743e067cd02f1930ac3df017fc6eab7a044562decbce8763f333",
- "dest-filename": "@babel-plugin-transform-member-expression-literals-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz",
- "sha512": "29a684b6004bec5298c2327fb5e1fade802613794fdf837792c873f269b854c030ed4dcfc63570c149b110592c6e0b0d51a3b7c0877d4760154184841916b6fa",
- "dest-filename": "@babel-plugin-transform-modules-amd-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz",
- "sha512": "a1f94a3efb0b4f6fae290a297ac26ddc0a626884b61d6fa1cc715cc1136dc831a2780782fdd207657f1bb894362765f5af118fcb87917148a39b7a9c48f8d870",
- "dest-filename": "@babel-plugin-transform-modules-commonjs-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz",
- "sha512": "0ee2b913793e4109a73aa051f5492eb01cb2e56656191c5fcd5e76f6cf673eb6b5184ee8966c5fa8ed851e86c439848f2233c14ebe29eba603723427b7c7019b",
- "dest-filename": "@babel-plugin-transform-modules-systemjs-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz",
- "sha512": "10c87bba896c0bc3b8c61b9d17617ac1e75b4879b51c76740ba689ecaebbcdc0cd89d33355cc56746afe86d5bd9f6d64966f9b3a7f91c78081b009ed65ddeb11",
- "dest-filename": "@babel-plugin-transform-modules-umd-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz",
- "sha512": "8f7270fa7e4fbe99a1451fa6ae0221d38a6e48034293f4ff500de6dcfd4c8c992194af74ebe0291e10c8a8140374e80bfebd54629cf818d7254d7c7266b6064b",
- "dest-filename": "@babel-plugin-transform-named-capturing-groups-regex-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz",
- "sha512": "c622c3cd634c7caa063a973ab7753e7ad084db24679f748cd3d057a963c864e0692f682f56b05650a9ec271d0afc00e2e45e580b97fc00f15f5abcf6e537651a",
- "dest-filename": "@babel-plugin-transform-new-target-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz",
- "sha512": "d782757de890556686bd1c63d968f232e5d2da3b0192007731d48de47b82d86e6746ca5ae512bd08e72cf363f0cb906e19c8dbf9f61a523f7899870e8fbac2bf",
- "dest-filename": "@babel-plugin-transform-object-super-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz",
- "sha512": "013dccb9f43bcd9121536870380d756b10671315b42ecceee112ffb40954241b8da116a4fb07a1416f21e8a71739c823638d9f1ed0f1b30b8c84c8c512ebff6b",
- "dest-filename": "@babel-plugin-transform-parameters-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz",
- "sha512": "cf8146afd34c19da0897546a6af0aa186f99b988df67f8640887ae1fa0e8eed5e64a6d25b35d67615489a8511439225b0da6f9c02ea5444ff0e988d572be87ab",
- "dest-filename": "@babel-plugin-transform-property-literals-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz",
- "sha512": "f03d7ac9eeba7f1884f26f3dd30d01a4fa67806f68f4e541072d201f613ed8047ba8c4766694d8244a8bc40b28ae87a7308774a7fc0c5be06573499e0e0bb402",
- "dest-filename": "@babel-plugin-transform-react-jsx-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz",
- "sha512": "985ee33a01980a44896a027a5c2ba349083eeb10b533beffd372b6a01995256a0518d52d9d524ee161ca264ddd9cf0bc1c2723e310503f51209bc0d68773dbdd",
- "dest-filename": "@babel-plugin-transform-regenerator-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz",
- "sha512": "290cf30e767d8564018f08b9969639bfdb219a6e88546d14f69075f33bccbb68b81fdd31a53e209aac0f62c9fcace6e269d61ed8cd209a0b2238817903fdabb6",
- "dest-filename": "@babel-plugin-transform-reserved-words-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz",
- "sha512": "85a876f85127a11a004dd21bd3920e5dffb81b35d84eaef94d58489f53dec2285ba72acd594b7625bb9d2903844d6c3a4292def80214a49e4c54b61341b79e52",
- "dest-filename": "@babel-plugin-transform-shorthand-properties-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz",
- "sha512": "fa98c9a6002781be772f489a039814ff530b5c921f5dc61ea4b8170777ac5517f87ea9a3f1fd9cc4cdff14a687b199acd3c84540990571c116b88a66e36f535e",
- "dest-filename": "@babel-plugin-transform-spread-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz",
- "sha512": "3496b405dffced05793596734ee646e413c98cb61a75e499f5f3baa0e5282f8890c7ef4412ec3f78433dd92aec4f5f587368e0075bb586c8ea0ed1f4d9cdc3af",
- "dest-filename": "@babel-plugin-transform-sticky-regex-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz",
- "sha512": "5706e40c351e7a79488e67cd7835ff574696ad01f642257226dc32995412cc8b450d3a717f2261dc455a4224b4ac837f0aa6cb1abd157069aec324dd66d748b0",
- "dest-filename": "@babel-plugin-transform-template-literals-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz",
- "sha512": "a76ace8b108a449ce983d241e208e71b88235a459af3d6686149e5f6c9c9d5c5887131ff86fc59a9f3be5a31ba4fc0d106972d1289798f0d4ee6b03c8240a891",
- "dest-filename": "@babel-plugin-transform-typeof-symbol-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz",
- "sha512": "6c7750f64ed8a410ced9dd0d55f923e750e941cbf023322eb09ee611468c95b66adcab7f538ee3db88a75d91d0e4c0e26290acfa8662c275f229e744f3eabb01",
- "dest-filename": "@babel-plugin-transform-typescript-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz",
- "sha512": "4c05792066a1233df267dfc77efdf94d5db1126fa46810da6500a7d92fe11bdfc26740e4b7126ff5e29f3dcef2602bce611e091b1d61f02fa37123af81a688fd",
- "dest-filename": "@babel-plugin-transform-unicode-escapes-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz",
- "sha512": "a02e6d6182b0e7a1ceef929954b43e47f365dc7ae8f647fc886d215e86873fbb630320a9bea06248d7babc6ad99e2d59e8c820994382e80ed53fb0159b0db6e5",
- "dest-filename": "@babel-plugin-transform-unicode-regex-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz",
- "sha512": "a9c9961bc47b656e960513d92bfff2f84dc2962d79d41db45b546fee59f6eefb8f69753ff132a6b3a8c576226d17b5034f172b6fb99977cf2d01e2bd2e3753f2",
- "dest-filename": "@babel-preset-env-7.16.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
- "sha512": "039eed87a6111bba11ddcabfcadfd8f3832f1a01347891b617524b84abb21be8c5c4482b77f1c03096ad885b663a266eaf3fb40e4aef6e17822da5797f625f8c",
- "dest-filename": "@babel-preset-modules-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz",
- "sha512": "59b5449a05dd232bf307bec042318113260f671fbcb53b0ee745ed7e8cd0ae45bc401dab2c9a47da5831d13470e4426b07139943ec027323d542f4bcb63107a5",
- "dest-filename": "@babel-preset-typescript-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz",
- "sha512": "f44f45268c2a02ccadc8e63a2c6fb52aeb9e72444bf9a416fa62af5d15e7b851b2440c9ea493e6128f6f80c7d7500e8ef6edc878476ff4c024a6915c690c2881",
- "dest-filename": "@babel-runtime-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
- "sha512": "23c8ffc7c90752b6d84535315ebacc6df09aee3c6413bb59adedfdc77923afd86f23cd9c2b515fa8bca0a2d71637991d3c659c2dd58c1e94816afb1ee6d5b0df",
- "dest-filename": "@babel-template-7.16.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz",
- "sha512": "cb3b9a617a1124118c94186c309a145bb1b552649bfde5ebfc91d833f32c38981abc989b2f00128a35bba1705dc37350e93d1b5bb4f2e4ffd56ab3acf5c1e6ab",
- "dest-filename": "@babel-traverse-7.16.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.35.tgz",
- "sha512": "cbd5d3d750a8cc70e08d67137719a14a3d77ac9557a5ae595f08e33a24de76368cd1b6b922da9d4b4daddf51213e5ec7b4e5b1b1991808250dad27eb3a2b00eb",
- "dest-filename": "@babel-types-7.0.0-beta.35.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz",
- "sha512": "b263760d0739b3833b7e7b728c6b7220f6d126feb05b8ad4ffde1f99827b3ca42e6640b4a863075c96e0eac346b75d89995af893961aa6d23f5ed88b2419e622",
- "dest-filename": "@babel-types-7.16.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz",
- "sha512": "d1ca783ec590ffd6afa9354c0ad67e1a2ae2908037ea292f8ed1f0794e3f8fcc8bb6039b234f8950f858152720c25b5ebde181d6bb770a6f1484dd385dac838a",
- "dest-filename": "@develar-schema-utils-2.6.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz",
- "sha512": "539be45c367d0f05ed90faa5078e6d7d89e760137c3de3e9d73fd70c2ba99d2a5daf14fcfd3842bfd582c0f2dff68aa2486653907e9dc768c350fba85e98e470",
- "dest-filename": "@electron-get-1.13.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@electron/universal/-/universal-1.0.5.tgz",
- "sha512": "cd7f4eebe8ebd8d33201d4a4c04525ca5b62238fc404bbb62ecfd50f7a5441d8b770061e61f7509d3d80249dfc1c4e10c4b71c6d4d772d2a5c730d485a59326a",
- "dest-filename": "@electron-universal-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz",
- "sha512": "f36729c89c8a468428462fb5e226c27863eed02c32a60b4101d061ab559fbda82909934aab05db2b05e595848c1bdd438661b88edf6037c78fea518eb68cee6b",
- "dest-filename": "@gar-promisify-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz",
- "sha512": "8f7e72c343cc4cfa59b14a0e062b87cebd734d8a1a775715204d1a8c48dcac938dc71ae4a3f21118a917c77a2cd0db22e07bb7fb95660db55fab95a11bfa5602",
- "dest-filename": "@jest-types-27.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz",
- "sha512": "45304658be45590720f68ac3382729e0bbc8b4dcd43dcc8453d6f069e257d2b275210c73b9c0b8f18d3fb102e9fe0eadf7d21080094621a7ac252fa04e7eed55",
- "dest-filename": "@malept-cross-spawn-promise-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz",
- "sha512": "f503ad35f7dc385fdcd6c78c0839e37246f747d587706df8b64cbe147a4d28a096d3073fb1c60bc0cb4efa9b721947cc5b4fdbfe7e2a46200b95a14773d3a3ed",
- "dest-filename": "@malept-flatpak-bundler-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@nornagon/put/-/put-0.0.8.tgz",
- "sha512": "ba0bd7263c05e6576d5296bb0fde64aee349e35c8540310ac85e425b84e02899e1f96ff39a50735d778a4f2a88830305ae478f37626a381a9c174334a0eba7a3",
- "dest-filename": "@nornagon-put-0.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz",
- "sha512": "5613f5a992d772b5d121a3e8a9be18039e494312cd1778cd4784f9e4874e25adfe20524a3581ed3efb57c7cb2599e31abe3dfbbc2cc27eba90335bd62ec60a2c",
- "dest-filename": "@npmcli-fs-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
- "sha512": "d5251ffc28361b3183c9a7f5e5a47d4adf535a56fe5ef6d95d6a43c7c60ab3b30bccc1ff0427a8a6ffb2f6fcebce091fca4086b963a54aede66618f6f8541cae",
- "dest-filename": "@npmcli-move-file-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@playwright/test/-/test-1.18.1.tgz",
- "sha512": "bfa8c03361a946f7f8314bd22e4ac05e0d74d574fd98bbb65f635b0a71288fb187057c1abc39402433308781e7f288a90f107a312e854dcafba295ec20c370ac",
- "dest-filename": "@playwright-test-1.18.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/browser/-/browser-6.7.1.tgz",
- "sha512": "4793d8c784d3be27dc53bf745e42ba2551b06af29a5f0c9c0d4d0c680c1f73855fec12e6e4a08d242b03c92bb544f01aa7fd35ecc5587f9e29e9d5af2a246f88",
- "dest-filename": "@sentry-browser-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/core/-/core-6.7.1.tgz",
- "sha512": "540bfc391ffb20d9f625f88b72ea29e217c37320bb99f2fd7dd3e775012195a7239b0f2046b8178d1eeaca19c24e0cc52e41c8ed5e5b71d23303cdd344f610a4",
- "dest-filename": "@sentry-core-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/electron/-/electron-2.5.4.tgz",
- "sha512": "b4208af8fe7cd5399d8ec0e91c1433eea61c95dcc675493515de853f13f2d49286cde638b9ffee48b2b347cd0bcece644e911914ec22307480f328f0169e6aa0",
- "dest-filename": "@sentry-electron-2.5.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/hub/-/hub-6.7.1.tgz",
- "sha512": "7950935afbdca7ac5ad00e4618d1cc4045ac96628f962b04e6b1a6b15fe48ef494bf7cd2ac8d1e2037dbe758a47670a20631e92b634158ff15cbc71938425e82",
- "dest-filename": "@sentry-hub-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.7.1.tgz",
- "sha512": "1c30cf1274110fa842d2a68776aa8a0d2b5c744d4a864161d110ad24d3020e7d33a5abfc0e3f40b5e17bd31ea42d296588027f245c22e80990acbcfe1713dec7",
- "dest-filename": "@sentry-minimal-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/node/-/node-6.7.1.tgz",
- "sha512": "aed668d4ef113afe25670ba58d0cf7885656f3da174a5817086d95aa4c50c91b293d6bbcf5a6d13a9c4b8d8cec5b043c7639eeaf55e316fe7590e2c35134ba43",
- "dest-filename": "@sentry-node-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.7.1.tgz",
- "sha512": "c324b79d6365e66cda0b5a99d80229d618d79df3bd1044633082630a286cd8b581cf5af779fc6b1f1247b3cc1794d5afad3dca2e1abfeefbc5e42754f36b8f79",
- "dest-filename": "@sentry-tracing-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/types/-/types-6.7.1.tgz",
- "sha512": "f403bb1caa22a7630130d40911debe00ab638f6faaf597b8a28594744bdd3954ade5dae0ec11a92b6db5fe9f4910ec89019c043c45dd70c77754020c88e6f830",
- "dest-filename": "@sentry-types-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sentry/utils/-/utils-6.7.1.tgz",
- "sha512": "4eada8b5d6d694702472d0fe1164d82a4131e812f5427dd9fe29a43b4ebf3efce95af561256439a87033cf95e7c30a8d1f2574dca573601eb39ead4179af47b8",
- "dest-filename": "@sentry-utils-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
- "sha512": "f4d113f75d0335a20f9e06272cb3de83e3a0ceab22f6e3389926e8539cbaa7c4b90f3313544b0966b6b08be0680cd51505ad83849a9061416f3037e0534eb62d",
- "dest-filename": "@sindresorhus-is-0.14.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz",
- "sha512": "429a4f33ff25dcc6b0be1e2b9fd08d118214f5bc695d409131a5fdc94a6f064d6730abac2caa5f5c60c4284c4a68f84bcdc9f79738a5ee947aae7275d4781e45",
- "dest-filename": "@sindresorhus-is-4.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
- "sha512": "5c80765dbcc74cdea27888df20c57d86555c7cf536eacdaf69f61641c6475971cec62691658103284c1d975dbd672839d3e7e8615da30a0b6ba9203aa8db8d48",
- "dest-filename": "@szmarczak-http-timer-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
- "sha512": "e0101f7f29183a03bee67cc1598c04dd6f74b0180b26850f45659c2fcc25ca233c201f22a49cf750c27d29741dd512905e92a9f13bad9fcd0766d5acbb6bbbeb",
- "dest-filename": "@szmarczak-http-timer-4.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
- "sha512": "3af8c5fb3e752f7a2fd0ec8053476ecec62ebced353c7ef1e2de83271fa0b9a8604e704792125d1bbb2841e4d214b58ddde7e71f289b67867c97612e5b024ddc",
- "dest-filename": "@tokenizer-token-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
- "sha512": "45bcc9be5373991ab97373b4f548a97ae5e7a38b40d4513a8a43a3c592b4b6ec55bf7e35da5eb8979b755b9a63e3eac9abdbe9926fe4c22474eda6579ec28fc7",
- "dest-filename": "@tootallnate-once-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "sha512": "00b6289deea99ba426c19a0081ec8d92c71c4fd438016650e8fbdfc11dfb193eabe855943e0baaeac52634648c5765abefad68428071c0619ae83479a350c2f6",
- "dest-filename": "@types-body-parser-1.19.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz",
- "sha512": "077c55a3e76528cea79ca4dc9a6e59b58fce2fc6ce00e7763a579ef4cd737edeb9a31e743b38c41d6f75b03894f63e9cbd6f048e0d7f4247f8c5dda4ba002950",
- "dest-filename": "@types-cacheable-request-6.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "sha512": "71d798cafe0a5a8120a412124f15afa98b15cb8e380cea9e8621777ccde77b5d00989eb6452c8d9149f13095c7416450417d9e47de26e72d486720f006357d15",
- "dest-filename": "@types-connect-3.4.35.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
- "sha512": "f40a27533c938d75e110e6b40e7aa9cd98ba54796a28cb3081af445e3a579e7ab1c0bb5dbcf3ed94ef1ebeb2390fd4ba6ac151090eaffb0a6250a6f0faf2aaca",
- "dest-filename": "@types-debug-4.1.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/discord-rpc/-/discord-rpc-4.0.0.tgz",
- "sha512": "6b91e228e701901e3783f94de9f058c3c17219ce947bd098b9cc711f15e510b5e96f50b109ad8d036a462b651bf3ca62e2e639f8741e4856d8b47e8326d57743",
- "dest-filename": "@types-discord-rpc-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz",
- "sha512": "3c1de5772adc9c089c4f7e5358fb3921cc0a0fc4b7df71cc69ad9556fe3ec1dbde6c99235ae5bfc444a807c23045ca20f0761561a99bd60fd1df542fe41c74de",
- "dest-filename": "@types-eslint-scope-3.7.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz",
- "sha512": "184e38f83344cb1c61d8a73aae8fd59088fef666b4a4ed1bc2ff7eb874b206b8a460e1ebf3361c74fbe704ea756b0f2cf828d1bee4b1ec2c96a91acd150e7d98",
- "dest-filename": "@types-eslint-8.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz",
- "sha512": "0ba379b36645b6e6518f9e24dbfcf24613438c9c3071588033735b9bcce30696ea01d674d26af4085c6f48a78ef18fded3759514ba5031d1d855f51de9207e1f",
- "dest-filename": "@types-estree-0.0.50.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz",
- "sha512": "3f5049004016dc4d8325496482ae2d38bdd1c8cba7a165ea6d20b2816a396485938d480dd589da5d65b855697fa1cf2fb3f5e86226c418128fd2e6721780078a",
- "dest-filename": "@types-express-serve-static-core-4.17.28.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
- "sha512": "e9b4994cf6932000b19f8f25e74491f9ac60aea9baa97148c6b74029a1ba3da264dfecee52bdf98419604fbbce98972e9be38468804bb4757faa5a0400521378",
- "dest-filename": "@types-express-4.17.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz",
- "sha512": "9c49f007efb5bb99550ccd94238735fb947e15868a7da0334b83a87287229a3566de7430dd3bb31f950db2872b71305b8677ab6e5c878f8038f6a5db22265da4",
- "dest-filename": "@types-fs-extra-9.0.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
- "sha512": "654c5bcca97421f2482d34bab7b8a9e5f41033f2774c962e6c39b79cc6e0b9b34d612eb6797794a682d40bcffb7c93621581d3ac63d09fb86ca435332075f750",
- "dest-filename": "@types-glob-7.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz",
- "sha512": "87895332030972d2726c3a7c090af14d48a262679d8a11d69239c5ffc3f1b1ebb64ba3657dccbc9306e843cc9e8e1e39eab3f6c96a04566d6c4bf155b1f338f3",
- "dest-filename": "@types-html-minifier-terser-5.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
- "sha512": "499b3b7a46cff02374b71546db15511fa1202a6126df504ec40d3bbe415a113cd9cf5c61f9c6edf01708d2c969ca6bf0871e5d9459d01b6ad394f5509fe8913d",
- "dest-filename": "@types-http-cache-semantics-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "sha512": "cff413d573782b8298bac952db793adb20c80cbc0b164cf13ae329943b4e6f3d3ecbb56a24268eda8f923f01c2bcb15987bc5acefbe8a2bdad03f84fcfd79eee",
- "dest-filename": "@types-istanbul-lib-coverage-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "sha512": "a651a05c03df54a16861f6bd369603024b1e1be83a26bdbde11a9ea9ca838b149b537e0c6552518bf3feed8f060e9ce41302da19964ea4a20499e55936d2acae",
- "dest-filename": "@types-istanbul-lib-report-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "sha512": "737980644b8ad25bc1a7cb66b8bef85d12a7d7ecb675cc0e5291fbc785ab17a824d462208a5b8346031842dc36385701bc025696de80494ded4aac69d14bb403",
- "dest-filename": "@types-istanbul-reports-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
- "sha512": "a9c517b9e9ad12ef84e7065224737151778266101f5ca438d43f9db97f9560f75eef1c84559722fbfa172892f5ded9d1b3d951da9af87e8779f464fafd7d7fc9",
- "dest-filename": "@types-json-schema-7.0.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz",
- "sha512": "157089832c8dde2bd5811a2697887de06fe9de463ebbf07ce8b6be429b5ca89696b415ad99ce93b6435f4b8d27f5b22fc8bb5e1e1ef35ceb606e86ce44a3db0e",
- "dest-filename": "@types-keyv-3.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
- "sha512": "6004f1571811a8d1fa9c7108b2f83a93606873524723d65b1f9896145bff31391c873ddbd627860dae53d1af51ce735d2342a155b75b59237e2965ab4194714f",
- "dest-filename": "@types-mime-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "sha512": "2a5cfde3d874d86cf6b9908c1b00d44834b56019537430e06d61e2fbcd65dbdb5000b52dbf3e2b0188b9ba85611392da828aba0dea805256eb1ef5bf9970e075",
- "dest-filename": "@types-minimatch-3.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "sha512": "8a25202b357d02e684919aa438b0c8be54222fa96db9977db46716de0c299d7f096ee8ae8459441a69855c45e4379d02beaeceb3cf08636bf47640ea5d859580",
- "dest-filename": "@types-ms-0.7.31.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/node/-/node-14.18.10.tgz",
- "sha512": "ea28a127f3e9e5fb0527f6840c6caf4f8a471a60a9abb4e843fc9fe1b97949b540bf0a6ca5827ebf78ceee7f14ca38505474f2f8a36cccea330ddbfe3bab28bd",
- "dest-filename": "@types-node-14.18.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/node/-/node-17.0.14.tgz",
- "sha512": "49b8cb984464b0a386cd6ccf36e5bb7c933b7e4dd85d54c5899581fc7b3df60c2193efdd9eb4113c14233d6f5a3be7e2d6d01f7e2f4faf016fb2638a9834f29e",
- "dest-filename": "@types-node-17.0.14.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
- "sha512": "8347d02a5dc856751e3d5f2d2e48814ddbb1015499b17b6ce38e13d9a31f8ce106c5ded7a1e488b35ebf02645ed8d95c24ba9bbec381497a2fedd292a38c2280",
- "dest-filename": "@types-qrcode-terminal-0.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "sha512": "1466b517ad854f4f6a72bb9e040eaa613ac93d50f36a1f5afb8f77fa8d8f097b1eb161c89f6ec6f7c4ec48cb3758f35b648123e3e5497fab1a485a6f0fedd9b3",
- "dest-filename": "@types-qs-6.9.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "sha512": "10486c2ec0fa52c0ccd7216102fcb40a3afa5709a9316a850426fdc34ef056e805ef0f677da8f12ee5669e04c8a604bab2f0a79ba55ac3e3198680c22a739fb3",
- "dest-filename": "@types-range-parser-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
- "sha512": "f396360638ae7c5cda30896f243bd34c1f05c65db17cba381e0987cd5073d3cc38c0378f0938d8c3ae8f76ba253b4933962df26a6fd80a046e7f2a350dd4154c",
- "dest-filename": "@types-responselike-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz",
- "sha512": "2ff4cca725117c191ffa8ff9dba65bea477fb5c8543f78810c43e3aa36fe536300261551c71ae6af67f0a5ed3c13b42c57b60b729ab4b54690f4ef71f7b648c5",
- "dest-filename": "@types-semver-7.3.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz",
- "sha512": "9c2907188e30ed980074d92b12ed1bbfee31355fd70ea5be0f27649de6cc390c24a431b1f06f874e58fb47b00123c8bc9cac55c34c2d28f8b50fe94f3a487861",
- "dest-filename": "@types-serve-static-1.13.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
- "sha512": "2b92beca697c2d3a3d6d6248feb1027c83eb1a0c5da5e35b8fe779de5c0de108d6d4c0b09648549acfa0b5dce2813794c81af4f7ebbc070388637317bc775cb0",
- "dest-filename": "@types-source-list-map-0.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "sha512": "1e5db5f7f053e5f2c06b3e8d0e44ae8736accb8f5dc104bf0d276ee0c76080507ccdc5efeef7e5048df1a7b1449a499d0e40542366cf50d78cb6da7692761dc7",
- "dest-filename": "@types-stack-utils-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz",
- "sha512": "8a98b1b95ae1d8e74d99abafb53e75a3777ccf5da9e8bb455bd8a7ed4efd75eaff9307a38dd35c8500b950c9f9bbf2b136833b5471ceb3f97c292f2e1f184e0d",
- "dest-filename": "@types-tapable-1.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz",
- "sha512": "3b732644093a66e00a6bd087820d0faf4fa550eaa830ba5cf404b847c6a7a366aebec83b204f2cc85dd787f34faf6e935a497161caa810415dccb2ecd5f57d3d",
- "dest-filename": "@types-uglify-js-3.13.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz",
- "sha512": "f60b4e3cf91fc8da04a82420c78a892a4b8d9bfc7447684a47b7dd97bcef4c9c879c88acb84fcb7ef5ceb1858bd28deaababa206729934d3738b7974cbf5fec7",
- "dest-filename": "@types-webpack-env-1.16.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz",
- "sha512": "16ded81f794455143a96cf24e057f5a01e2337aa32fd7994ead40848a7617e1fb5991faf899169852e962f422bb433b3bde7e6260e5ad2ced9428457c2a4c416",
- "dest-filename": "@types-webpack-sources-3.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz",
- "sha512": "71bfb48a88a5ffba33e7fffbb59512c1bad200dfcd587ad0ca5cf9716f06d1d593705fe0fbf75274c94a559b29058b8c00dd7e5a7c07ae4c6246b2dcc1dd077a",
- "dest-filename": "@types-webpack-4.41.32.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz",
- "sha512": "34e9f978872058b3a8eaa5bc01cb8b67b1bc3f2717bb4c53c71912e90d7c55617180f5123b0574a418f66bfe2f88d655bb6e62ed1201ec6b6d7640085145ce3a",
- "dest-filename": "@types-ws-8.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz",
- "sha512": "eed1489a080d78d05532c9f4bcbae99f51f5b8fad405d9c044f4e96688ad637ed9add2511337fb235ead32b94ade17a7df8f60af535887c0a66506bb0931ba03",
- "dest-filename": "@types-yargs-parser-20.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
- "sha512": "4fc61cf70b7fe4b6c9c8268b8873d17896b4900a5c22027b067ef7e468c8b547e1d3c675a49beef1066a6fdb3e98cbca57a59441157b2b6478e986e33174d327",
- "dest-filename": "@types-yargs-16.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.8.tgz",
- "sha512": "c03794c225267a6f45ceccb2b04c11ba468474335cc1b44ebd0f5019129a2c8eadf8896d3736e7e3f8b86ac981d746aebd91900b3490eadd0649ccc44e19545f",
- "dest-filename": "@types-yargs-17.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
- "sha512": "f2e00b6392d3bd2b87825a03554bd63f7a486ae20b9bef3fd290cca24b83608a0db0e912c1de408870534842632930dc66be73f14a60396664c411788897eda0",
- "dest-filename": "@types-yauzl-2.9.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
- "sha512": "ba4061d78a852e3c5340d4d7a1c77292c37941d336f12d42c47b76addb241722fec4557b56b7a6b812d56e609e3e3f9445a957044371ffd2e6ee59e18a1b424b",
- "dest-filename": "@webassemblyjs-ast-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
- "sha512": "88645fc9ce41abe36736e5fc6f987006b463cdfd2872b24f23a1961687411739859f2beb43cdd21ca8668a5094ffc26febb8b818964132113396dc7370d6a0b5",
- "dest-filename": "@webassemblyjs-floating-point-hex-parser-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
- "sha512": "465852f020425df45447f730a36868f5b9217925c6d3e370a285dc7373c020b00b7f640b745ca3eca1ac2916d573de61667867111a27e245bf0f7499a69e9372",
- "dest-filename": "@webassemblyjs-helper-api-error-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
- "sha512": "8308a417ae5a0cd79e5daf09c576b604093e4448d2ca1acd0bd670753d1ff2373875041e0d0ec6e26d1fd9008b3c988c4d33bac1f0e64668ffa56d0fb14bc870",
- "dest-filename": "@webassemblyjs-helper-buffer-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
- "sha512": "bc391bc6207ccdf9cf74d2bd45a8dc7b2e42d30f9026e804825374a1ffa498ef25ee50dbefb02794a61017b69aad9b82aeffa5d14bea2feebc8120ebde4f4b3d",
- "dest-filename": "@webassemblyjs-helper-numbers-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
- "sha512": "3efa68386889c17793ad27ffa9fb9d261c25bc34311607a56ccaadab9d965a25c2e97820d484447678263cdddbb384683bcdcf9cbfe716bc6e7178f5f815fad9",
- "dest-filename": "@webassemblyjs-helper-wasm-bytecode-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
- "sha512": "d743fd368dbdad85f58fb1771153d7dc9bc63d03da7be0289ae4933e217d78141e0a11c8ea2aa3308c11f4998e257c299e7fe85460e4ec8e4896c92e33053fa6",
- "dest-filename": "@webassemblyjs-helper-wasm-section-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
- "sha512": "849f3b4083ed00c29b16ae821939196098af1306436d052061ddea29269d4cd3a1558ee9fa07cfe92af494b4554da1b5263163fabdd8721a2a458c4d1f733419",
- "dest-filename": "@webassemblyjs-ieee754-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
- "sha512": "049d8fd21359d2ef938756195c9a735ba9a2c2a41419c2074f51bfb1fef680b543f4367901d613a8f35b1d987a2b53395662af157c064966400f3faa056c5e47",
- "dest-filename": "@webassemblyjs-leb128-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
- "sha512": "f64a9cc4011d3218b04241e990d8a8ad9ceaa46ae8750436206ac71f10b2f8ece7834a1fc8c034953aa22e456cd6ecd345e8d7fbf3b410e4fb2b1a953ee5e8b1",
- "dest-filename": "@webassemblyjs-utf8-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
- "sha512": "83e46cba9502d5a4c77d1f020e09ec551559149a9d9051e9b0731f26e590cd6537b6f9cb0b4ed4a872027cffb85f22f6b67af56a6be5d52769d3a4e760299590",
- "dest-filename": "@webassemblyjs-wasm-edit-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
- "sha512": "17b42a297c30365326b2e963ebe3bbaf89a6b4094259f3bfd077603b14a49597d0703bb44e92e20f5991b7fcc5db9064e7d1488c4b86008ca7e5e8b8c8c7cb84",
- "dest-filename": "@webassemblyjs-wasm-gen-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
- "sha512": "56a9e436a9d9954e4407ae29a7597b85d9b7866430ed582a6b4285fca08d3bdb08a48e8593a6eb0c4897fa208e62bbccb81583c2cd0d9133b16046fce574071f",
- "dest-filename": "@webassemblyjs-wasm-opt-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
- "sha512": "aeb06e8f0f9d26edf681807bfcbba9e9485d90fc7d4bd4a7a1b6734552fb55c047f41b7d6c204b12e5ff61738eb41b0e678350ad1ca42a17df4561ef8a042f38",
- "dest-filename": "@webassemblyjs-wasm-parser-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
- "sha512": "2106e851633878acd65be37f8e28f6b116ad28c87df5011e968dc46f6ab4a9792f3d1212023f10c6d9b0e62b70a8af934e406e508138e40c583d3a2a3ed2f982",
- "dest-filename": "@webassemblyjs-wast-printer-1.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "sha512": "0d7f272a0a9c1b0b1cd1e252a98b799703f80c7e459479e6b96581472ed7d0d71a191d19b6ec9e11280cc1361512dc66b0d198faa8ade10613fcc2184ce4cf78",
- "dest-filename": "@xtuc-ieee754-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "sha512": "36e1ea058d4f07f0fcc54eacfed84180e02200fec73980d0df6f8115920b27c8af9149001d09d67e7e9684befd3b08f5aa6527a0dfd83e192d748a2e722a6401",
- "dest-filename": "@xtuc-long-4.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "sha512": "9e77bdfc8890fe1cc8858ea97439db06dcfb0e33d32ab634d0fff3bcf4a6e69385925eb1b86ac69d79ff56d4cd35f36d01f67dff546d7a192ccd4f6a7138a2d1",
- "dest-filename": "abbrev-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/abstract-socket/-/abstract-socket-2.1.1.tgz",
- "sha512": "619262cecbd2d5a06e6b919dd35c287b8ceec9804681231ea83381ebf0a1c1d4c8f74e0a3fa406b49b305e5e2172a5b16f3f3a85005efbe1d6574845d5a194b4",
- "dest-filename": "abstract-socket-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "sha512": "225f3442cd968d89492013733642ba298aa554c4db64b5e01f1da84f4a54fdf8d11f2129f8f11f10f634477582c001953ad6aec61d613b136021fe5bbfb750a4",
- "dest-filename": "accepts-1.3.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
- "sha512": "9bb559de3c33e1e2ba03856db7c130d7f98d6cfdb8bb41617727c0edf4af9c947a2cc75f3989e6b88aeb24082b61f609d7417fa2d6874edaedaed98774c37313",
- "dest-filename": "acorn-import-assertions-1.8.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "sha512": "57f2c6af500fcbe3d723029e6c45ab9193f0a1ea05fb0d6388e0549aec6e89421a387b686fc41cf414eb628ed5b88e5f47cb6ab32f9bb80d96168a11e6896abd",
- "dest-filename": "acorn-8.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "sha512": "45937035c945efe312ffc6c383bd1a9a0df6772799199c620ee42667128b025423af78c6c8bc7ee0a924e7c50eec3d90760148402a2fb92b991129dee911ba5d",
- "dest-filename": "agent-base-6.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz",
- "sha512": "d0f840a79f2364dc35dd426fecd55d4c66f465c8211d46f70eb674e3a26288963f04e6934e96f0747ab654e6cf08157c33618f87bb20ac9dc043c132e3af0b27",
- "dest-filename": "agentkeepalive-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "sha512": "e08ed3774d6ab96fd1a6871f35ac85745564d6a4aea21d04ec9adb449d7a9c7d351e128543cf0836af5277e9ddef6cea4724a5afd0660c0f3194427abc932b60",
- "dest-filename": "aggregate-error-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
- "sha512": "0c245f3bfe2743ef3da7f44ae378bc133778d44a9d18853895dee7185f0e435e2873fc1ee6b127b4b0946bbfa3ae7de79fcdc1a2c7f0640d306f8a689f6a3c89",
- "dest-filename": "ajv-errors-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "sha512": "5b1d0ac79da1c44ec2d7c8643048206251227ea599b58691828b89a2bf9631d3e743210ad77be0116c9536ea7b4a879ea0b32caf891fe61e9d396d75235e4c50",
- "dest-filename": "ajv-formats-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "sha512": "e69e964cdd03753195424e958dc123bb5f4881a1ee75a95c7da6c3ef284319e03a6dc42798bf82a6f78b26aff786f7f07756a87fa2f7f3a3ae824c7a45fc8c21",
- "dest-filename": "ajv-keywords-3.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "sha512": "8f77d52e0bd3a39dbb6a7c98c893864d825b1bebe79d062f1349b99a691cd532be9f1029a6408b3082f4699e1d6e55423681928619be933138654ca4068320e2",
- "dest-filename": "ajv-6.12.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz",
- "sha512": "a8e289c8d8ff87e396c7bb390de3cbe99bb529e33d8cf661c01aacfbb0f33fa6c63afab354249fd31b9e62656e682fe843f56d4b6ccb30b1dd4056e491af970d",
- "dest-filename": "ajv-8.9.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "sha512": "20e7f0c0117989ccce8e9fd6798e18c728ea005310a19b9f750583775f52104c5b54b357aafa73489fcced96b8fec08f990d3e191aaea00edb19c20d7317b0eb",
- "dest-filename": "ansi-align-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
- "sha512": "84751719a81e7e3376891ac80fadf172422fa2d3973a88e140a5883d467898d519f672d95beec530da04d653a412135662cc7fef2b0622e2580a230003d167ac",
- "dest-filename": "ansi-colors-3.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
- "sha512": "d403c7032af7f8f09a9b0370ddb5c23e9e0714b38d66dff2207d2c669d3fe3af4a58d4c4cbea8de634371955fa0cc675517022df8c95c2d4de686fc7a41baecf",
- "dest-filename": "ansi-html-community-0.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "sha1": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "dest-filename": "ansi-regex-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "sha512": "d5aa5e3df5ccd54392ab0d28f48885028bd5cfd3394b50e0fb84eb0f07cc7b043aa7fae632e79beed5998d0d6bc782e8cb502b060828a86a5faaa748e2ba2776",
- "dest-filename": "ansi-regex-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "sha512": "aae2505e54d25062f62c7f52517a3c570b18e2ca1a9e1828e8b3529bce04d4b05c13cb373b4c29762473c91f73fd9649325316bf7eea38e6fda5d26531410a15",
- "dest-filename": "ansi-regex-5.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "sha512": "553d1923a91945d4e1f18c89c3748c6d89bfbbe36a7ec03112958ed0f7fdb2af3f7bde16c713a93cac7d151d459720ad3950cd390fbc9ed96a17189173eaf9a8",
- "dest-filename": "ansi-styles-3.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "sha512": "cdb07dac22404f5adb8e25436f686a2851cd60bc60b64f0d511c59dc86700f717a36dc5b5d94029e74a2d4b931f880e885d3e5169db6db05402c885e64941212",
- "dest-filename": "ansi-styles-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "sha512": "0b1c29b7649f4f34ed5dc7ce97318479ef0ef9cf8c994806acd8817179ee5b1b852477ba6b91f3eeac21c1ee4e81a498234209be42ea597d40486f9c24e90488",
- "dest-filename": "ansi-styles-5.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "sha512": "e6d78eb105800571c70453fdcb7b244b93f777f59f597a6fdc5529cbe2e8accacd61a4fda48e282cc417ee3cd0d8a9253691a9587cdd0974c34f66375c695907",
- "dest-filename": "anymatch-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "sha512": "3f8dde3df38022ea6482e1d4c9cadce2a27d933f198ae3948a36844f05fb4c7b7463f18d2bbbf469af2b63cd7ac568d9eeb25d0395dd31ca5515328cabe46f5a",
- "dest-filename": "anymatch-3.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
- "sha512": "aa5f77bc452ae96b2cb465c3f9204b488430e9236785b0c4334b30ce0ba0cad3312e9deb4f6e0083f8dc0bcd191f188f45375ec359e2b91ecfdff142ac3a888f",
- "dest-filename": "app-builder-bin-3.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.5.tgz",
- "sha512": "93757028fe24a6c9d4697a14926d6ce336921cf1c83059cde243cc53dc9768a984d4b7c71ea05a11a8796d7793017e55fc10b8d7015d83c085e6f3a3be0cbc46",
- "dest-filename": "app-builder-lib-22.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "sha512": "63d27a6635eda1887c4675d508c394fedb439a4d5a063ba7abdbced2d6b9c7ce560d08907d417db083c121375b8a2215701a34dc78b78ccc62801b6c75d95747",
- "dest-filename": "aproba-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "sha512": "9587b81b1ed04fe30a19b0ec03e67e85efd6b5e7f4062c033a52bf5e406b75fb21f49fe33cf5db5f4b44f71f5c976ed39aee608374146d4ad061aff2f8a3873d",
- "dest-filename": "aproba-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "sha512": "0a2fea10d9b01e7b18a3dc4a21c5093792de0ca749e91d59d63f55fc9e70caaf2787f9983c4a482896c1657b598c6d381e22bbcd5fe9e95b3df79d8cacc79423",
- "dest-filename": "are-we-there-yet-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "sha512": "a39468cbab4d1b848bfc53a408037a4738e26a4652db944b605adc32db49a9b75df015ab9c0f9f1b3e7b88de4f6f4ea9bc11af979810d01e3c74996c957be84e",
- "dest-filename": "argparse-1.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "sha512": "f3ef56a9e6db173a57f4e47e59ae8edbd6ac22881e44ccdc1ad00835da4c1c7c80835d1fd3969215505b704a867ff3d7c35123019faadbf6c4060dc3beeacadd",
- "dest-filename": "argparse-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "sha1": "d6461074febfec71e7e15235761a329a5dc7c520",
- "dest-filename": "arr-diff-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "sha512": "2f784a57947fa79a3cd51eced362069f0a439a4a7a13df365e1b5bbb049edcee2a3ad30c32da1d89c0120350a7cb653e6825dc3699a5fa6e1d3ecbec2778dab6",
- "dest-filename": "arr-flatten-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "sha1": "e39b09aea9def866a8f206e288af63919bae39c4",
- "dest-filename": "arr-union-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "sha1": "9a5f699051b1e7073328f2a008968b64ea2955d2",
- "dest-filename": "array-flatten-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
- "sha512": "84d7f370e57c5b835db9a96da8114fc953bee780d226e64663da93e2946ba01e92f5ede28a2768d884880b987d476b0f27c1f71470888849ecbf594f5cedcab5",
- "dest-filename": "array-flatten-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "sha1": "9a34410e4f4e3da23dea375be5be70f24778ec39",
- "dest-filename": "array-union-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "sha1": "af6ac877a25cc7f74e058894753858dfdb24fdb6",
- "dest-filename": "array-uniq-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "sha1": "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428",
- "dest-filename": "array-unique-0.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz",
- "sha512": "bf2c4fc4fe5aadc02a37817f79b1ddfc78709c0899b7086096f76673b051d9fd32c1b54d4cea527b284b0db197b44ff2e7c86fd680bbe5368d217bad9ec399b1",
- "dest-filename": "asar-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "sha1": "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367",
- "dest-filename": "assign-symbols-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "sha512": "cff5a143914fc922ddbd1101c88daf6624d6c029c5d26a0c27584af584300d31ca87a23bfee49c90c7ada1119be540593c2d73d23970fa7fd70a08de1fbcb501",
- "dest-filename": "async-each-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
- "sha512": "356d9c5fc9b543b28f03b6b933650b41e676c11e6a2393c06f0e4bd1438cc5d8a8564f4f319d21d539b264490f62b0af6230e51480aeb0ebb576510a00079707",
- "dest-filename": "async-exit-hook-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "sha512": "72c3a558601c44525a23a9be17658a76730aaf81e1761155064d07fd06c914c0abfae3b6930a21c1740fc70ffd382c69d39af9821541152ca2a22c71de07e435",
- "dest-filename": "async-limiter-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "sha1": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d",
- "dest-filename": "async-0.9.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "sha512": "cdf96f96cd750c2cbe7505b34d6d9dcee8a5bfc6795ffa637e664e59b6ba4cd2150e6fb650368999748e5e56ac1ca7cd06cf28a37334693e747c31167ca6635e",
- "dest-filename": "async-2.6.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "sha1": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79",
- "dest-filename": "asynckit-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "sha512": "faafedec492fd440d8da5e8675ae8b2e25f5e2b53d4d5db459ade87de426c0f1596ce328f435eb2db3a315a69c9645ca5a27486a8a7000e6d00eac16b46523aa",
- "dest-filename": "at-least-node-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "sha512": "5a6eae92868e1898bfef7a7f725d86bcb8d323924cd64fced788ac0fbdd830bf12b6b1ffeff9511609a0f272026600f76d966f8f0086c6d30e0f7c16340bbc72",
- "dest-filename": "atob-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
- "sha512": "5dccfd974cfbcbdc90f6b7436b1966688e2e2477ff4fc83d84e13325cb04a97d928c28f8276d2e2bbfa57640c731ba490caefac05ef110883173fbd296c7f0e7",
- "dest-filename": "atomically-1.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz",
- "sha1": "d08885be6b9bbf9439fe087c76287245f0a81450",
- "dest-filename": "author-regex-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz",
- "sha512": "9f865eb5af0d0b7400b2eca28b3bb41a4991710e9c96457d58552751fd625cffff21e48a6d68e87d6dd41f2655c25381e32d37f5840a79f6b0c939fae19c1bbb",
- "dest-filename": "babel-loader-8.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz",
- "sha512": "594c3cf3b9097f6187f34360fd931cb4a679d7589a98736a3e177db8aa35e32ce2b2f57b5add4472422b6fca2afee0b3dc1dcfa405bb5df97b0244cb0d84fa6a",
- "dest-filename": "babel-plugin-component-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
- "sha512": "8d9548facf5983722a03f91d8b48ba5030b26d423769204b9e096161b4928ca955ef217517fe4b5aff0c6a4426bd8a676c90d2e9f7012f62b31d2c4d08cb5649",
- "dest-filename": "babel-plugin-dynamic-import-node-2.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz",
- "sha512": "3255f5d140e1791af795bdcfd1671a21db42491971750b01d6c06a2fb5b4ada174ef46c69751d042ae4add3daf7f65c06227bec30fb900a0bf5ab92344eda49c",
- "dest-filename": "babel-plugin-module-resolver-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz",
- "sha512": "bfbfd3e8441c35f54b7dc3765fc2ee95bec38e9ae27b22d624aff33961f90d461c0207b1f6c3f7876e50f832ec5fd4e5a177b7cb53bc976ab626ff6af14541f7",
- "dest-filename": "babel-plugin-polyfill-corejs2-0.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz",
- "sha512": "4e286a11ee2c41c6ff41c3c9bf17bde3ff5166e2d0b85d7e4e8e16a90711bdcfb727780b08f20f8032b318b1bace640b7c7de79f6e61791b833644b6291e08f0",
- "dest-filename": "babel-plugin-polyfill-corejs3-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz",
- "sha512": "636074eadbe01d8b75c74cb3d7b8c690679e32be4578a52ef80489f8dea7079950f036a97e0e368b4395adff0f346277cca2f8036dec9cc8b5211c2baaa343ec",
- "dest-filename": "babel-plugin-polyfill-regenerator-0.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "sha512": "de849e50ed13315ebb84dd4099b5ec2b8c9aa94eed8e21e56f144364ea47d0a5bdf82797e1b440697d009f1b74b71d8cae94695b041a3f02252121098585393f",
- "dest-filename": "balanced-match-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "sha512": "e53e8fe313e0a69d180c5bd25b0119e0da04dda3384014170f39956eb6829058fccc733e99b6bc4b2a81e436d95b247b9981e8e98ec1750a373280389b44de42",
- "dest-filename": "base-0.11.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "sha512": "00aa5a6251e7f2de1255b3870b2f9be7e28a82f478bebb03f2f6efadb890269b3b7ca0d3923903af2ea38b4ad42630b49336cd78f2f0cf1abc8b2a68e35a9e58",
- "dest-filename": "base64-js-1.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "sha1": "dc34314f4e679318093fc760272525f94bf25c16",
- "dest-filename": "batch-0.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "sha512": "bf22f63b2989c666ab3bc83132bd2684286c3bd406c21ca77eebb8f8c1d3016e9ccdfabd86e98207bacaa548c377d6148833d4e26ce9caea454af382940c1b99",
- "dest-filename": "big.js-5.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "sha512": "527ecc2040dd502e603697060d5f7ba29d58c24ef8f0ca477054c7a18b3aaa78f56778fb239dd51b79f06612b3a016666dd44d9dbe9645d165c25eed483b991b",
- "dest-filename": "binary-extensions-1.13.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "sha512": "a76abfb7f9a1bee3a3fd478b955eb9eba183fe0ba8c25af4847c42948d16f66ecc59890bd45d212e8fb401ec6cf4748f0ad4754974344c3dcc30aad765a8db89",
- "dest-filename": "bindings-1.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz",
- "sha512": "ec1d51b71f368639d20f83c62c08d559e607ded1c07155260a187ce5ade596d2909ba16b7ac5e1f44ad0a3aa00bfa0aac6db5ccc2dff90483c498e4d96e3ee53",
- "dest-filename": "bluebird-lst-1.0.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "sha512": "5e9363e860d0cdd7d6fabd969e7ef189201ded33378f39311970464ed58ab925efd71515f9acf1026f2375664dd3a413424fb63765c1f6344392f6e6426711b6",
- "dest-filename": "bluebird-3.7.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
- "sha512": "f258df422e5e064f0425f10232b82a34658f118e6358ffb5233933906745144c05419672699db552a75a1e4b6088c947d312c7a8816d13fbb639813974eb5588",
- "dest-filename": "body-parser-1.19.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
- "sha1": "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5",
- "dest-filename": "bonjour-3.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "sha1": "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e",
- "dest-filename": "boolbase-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
- "sha512": "de1c74930537bb31ba45e437a6768540f4a4b69070e911cddff8af0ca12e53c8355d27da7e8c32bc39da763bf5c69f0866a86d4ae931970bfd6c5e85857f26d3",
- "dest-filename": "boolean-3.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
- "sha512": "f6062040a5f1fb59cff263fb0b3172694011860ec3de7d5d17f16712b5a6bbd97a26f1a9354376efc8746926fe423a22292586fa2677b87adcaa4d2aad8f5141",
- "dest-filename": "boxen-5.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "sha512": "882b8f1c3160ac75fb1f6bc423fe71a73d3bcd21c1d344e9ba0aa1998b5598c3bae75f260ae44ca0e60595d101974835f3bb9fa3375a1e058a71815beb5a8688",
- "dest-filename": "brace-expansion-1.1.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "sha512": "68d75b9e3f4ff0f8dd5d4e326da58b2b6205de373f1280d86c2ec06b35bab68dd346c7d7c6c702f545ce07988388442b93221b5a9d922d075ae3e4006bb9dcdf",
- "dest-filename": "braces-2.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "sha512": "6fcba6f8bd51cccdd60d2cef866ea0233d727d36c1b7a61395c10a02fb26a82659170e3acfadba9558fd8f5c843d6df71f91fe94142964c3f593c97eefc1dad0",
- "dest-filename": "braces-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
- "sha512": "bb6b5b6c6e4f74a45352872d3b73410fc150e4774f8756573c7ce9d6bc1a6b98d373e455f7ff9195688020a9a344f405fb16c633d2a4963e5b65015adacff7f0",
- "dest-filename": "browserslist-4.19.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "sha512": "4c433688c20441d276ca33c9a1222c95d9e5795680935a16dc305553293238bb04b0598473d927f921453f3fa0979e0a40dc650e7030097a2c392f4e931db102",
- "dest-filename": "buffer-alloc-unsafe-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "sha512": "085b074208ed5b550285d5e06f2246b679be3bfb8b41e65db5b0e8f267d48185c21d2335c20ad5c579ba6d2cab52e12b11bfb8b185460b3012051a2def3caba3",
- "dest-filename": "buffer-alloc-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "sha1": "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242",
- "dest-filename": "buffer-crc32-0.2.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
- "sha1": "59616b498304d556abd466966b22eeda3eca5fbe",
- "dest-filename": "buffer-equal-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "sha1": "f8f78b76789888ef39f205cd637f68e702122b2c",
- "dest-filename": "buffer-fill-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "sha512": "13e5d0091c126da6a20a1b6fea4e83c2073e6f1f81b3abee2891c7979928c7f05a29b8625f3a903b02b870edb6c84946a763829a3c15853dc79b18323c69c97d",
- "dest-filename": "buffer-from-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
- "sha512": "e3face120f3a8e2bed3d378e5144fad6324ed586b54eb47f3a4a824990f2abce16261dcbbae8a984160937e7e6e71b9f224e17005704c2d7bff16cc2f087ffd6",
- "dest-filename": "buffer-indexof-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz",
- "sha512": "73c6bc277c0ae812152d6ee5b3eed344af6282ca536f35a652ac456e02b49b8d06826e9e7d46f1b565421888dcf9db5c872af9a8030050bea210645d4bfeafc2",
- "dest-filename": "builder-util-runtime-8.9.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.5.tgz",
- "sha512": "cea2070c5270980ee357b482f5a23edf7316c13da65a88a31fe3a5f489ed340c2eb915e84beed7789c2784b0573a17030735d3e240f31e7464e0929e6b280460",
- "dest-filename": "builder-util-22.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "sha1": "d32815404d689699f85a4ea4fa8755dd13a96048",
- "dest-filename": "bytes-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
- "sha512": "7567b89d63bfaee10e63b1e4509e6016dd4308557dccf46826bf29574fc04907ab98e663b6af233233a9ac2d0a775d062cdfa5ef16943efc732455adc46bbc16",
- "dest-filename": "bytes-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
- "sha512": "e59bc0c5dd391c30d4fb2f4156f72a62ed8b2d798f9d0d215bada1df6838c414e02ff329a51e3fd383477e3ff270cdb2ea59939dbc3a1d58bed5e3743ec6daeb",
- "dest-filename": "cacache-13.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
- "sha512": "555758cd7127f9c9db5e91605ace614d3ece49c7a01d598b849211f147ea9378850fa03a8f98925f52ae0537cd12fe2d749584d8fcc0e88545b5c2c2edf37dc1",
- "dest-filename": "cacache-15.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "sha512": "00a71d4e71525804dde7f1823d1c6bd82870209f3909ecab1328d11e52b1439e9de1724c1b29b4b8088a9f4c5b2ce18e977fb24693938b8f38755084739014cd",
- "dest-filename": "cache-base-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
- "sha512": "dbf90db1c3e1a5cc6b3a280c6736e2585eddcfc8a585bfe72075371326625d65e97aafdabbca89f1585d7ed324b72de7ec68fa1c819a9501bca2204d07700980",
- "dest-filename": "cacheable-lookup-5.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
- "sha512": "3a3ddc0063c2a8e657ed1cfae149f2d8660064d962412a9f6de3eb800435c0a022858982527ada06d26d29c191e31cfbc05f8ba090beb2c159befe41805f4882",
- "dest-filename": "cacheable-request-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
- "sha512": "a68b96f3f16688f41bb86a645d0f4100fbff328e710c600d812357cd3cc9f03aca1ae5ceb2c338c084118df6a735187762ee5c7d83ef728aea6e183628826d7b",
- "dest-filename": "cacheable-request-7.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "sha512": "ecef856c28a1ac1e5619b1587ac72dc264ca69eeab3a22339b3d6272b79627ed1a03b2c97eeaa112ca364fd9dca5c16dccc42dcd77f64061ae7962464d8b2aac",
- "dest-filename": "call-bind-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
- "sha512": "83119606b4d3d49b8cc7a47ea393d35cc9949e19d5ccb43d48dbad0f862a2ad23a6a9f3deedded28409895aea0096124a655e794dc9b124660f46106c4a14283",
- "dest-filename": "camel-case-4.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "sha512": "2f6f124c1d7bd27c164badd48ed944384ddd95d400a5a257664388d6e3057f37f7ad1b8f7a01da1deb3279ef98c50f96e92bd10d057a52b74e751891d79df026",
- "dest-filename": "camelcase-5.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "sha512": "1a6cba161625098eee3849595126f1a365020c7f28c0493df7a8246eba6c806b6b24b33727b8c6c65f4873b430c23e22bce13901665644c79c0dd17b86a1a314",
- "dest-filename": "camelcase-6.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001304.tgz",
- "sha512": "6ddb1f65de8ae9aa7cec01aa48724ffecd55f94e99e65cab71b06ede8bdb0827fc712629c13b46ac204e6cca49ab0c5f4db2d6e984c875b6f58c47937a572961",
- "dest-filename": "caniuse-lite-1.0.30001304.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "sha512": "32d8be7fd96924d730178b5657cfcead34ed1758198be7fc16a97201da2eada95c156150585dbe3600874a18e409bf881412eaf5bb99c04d71724414e29792b9",
- "dest-filename": "chalk-2.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "sha512": "a0a9db845c91217a54b9ecfc881326c846b89db8f820e432ba173fc32f6463bfd654f73020ef5503aebc3eef1190eefed06efa48b44e7b2c3d0a9434eb58b898",
- "dest-filename": "chalk-4.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "sha512": "6666546b37cecdfd0dbdeeddba208a0f6dcf1520ace093e863271c8d4145dda42441a76a0617f3863930047da634e1bd71307085a98cdfb108b08919c379d182",
- "dest-filename": "chokidar-2.1.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "sha512": "8c9d1bab36b296626d567360cd37923acf033dabe96d8804aff6f460bf3fd863b7c4912122716684a3149c42508d9ba62bb297185854cbcf4faec25695a90156",
- "dest-filename": "chownr-1.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "sha512": "6c8a26b43179286a5da2090b77d56ca6f17393d29fa72c86952f18155665ed318f0472f9b2720e9f17ac8705603ed790f5be04c9d97ea556c8c84d4372f09681",
- "dest-filename": "chownr-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "sha512": "a772942f2420e12ecd2078b17706c65fe9c51e4a01880e18426c96b636fc5e7812295d76e27266472b2001eba36d455bd79be1f91bc551f08fa94eeb5e4fa166",
- "dest-filename": "chrome-trace-event-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
- "sha1": "04a106672c18b085ab774d983dfa3ea138f22205",
- "dest-filename": "chromium-pickle-js-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "sha512": "e6d2bb12dad9d0df8e2c532d86da8e8f87c8d8979bf3c0b808064fbb6e4b0d55205c9d00dc9b383cc1aaae7d095355b4321d7f67cc19cd83f1a94ad77816e809",
- "dest-filename": "ci-info-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
- "sha512": "ae24ffdef239629547ebfaa89a50e7268c3a4c179ed8f04a484a71dcedf61063d86d618846c2251919acdd29bbe30604d49328f119ced381dbd76fafd49e480b",
- "dest-filename": "ci-info-3.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "sha512": "a8e84f6bf163eece9363c1fc7ac1aee5036930c431cfbf61faeaf3acd60dea69fef419f194319fe5067e5de083b314a33eab12479e973993899a97aeae72cc7a",
- "dest-filename": "class-utils-0.3.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
- "sha512": "1095034fb9c35450ef690800a361bf3c9bf19a9d68fdcea25cb6ecc2c05b5055e2d4dafe02303670a99f6ca0cc8ccbf311eef98373fa2646830c02a4f7a03ce4",
- "dest-filename": "clean-css-4.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "sha512": "e1d882f4769313e29100c5a10e1ac63840a0599c687af31ce5396439b32a352b1553ad8f6335d9fd23138f3c8600517562eb20c46712593117061a7408fc10d4",
- "dest-filename": "clean-stack-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
- "sha512": "cb872831cca581209d5629e388306e47c3c20b66cb8f2193c0498f6fd34747f41a354e8450e5dc4d8fece958c6303e8435211a790607098d063464b98df3303f",
- "dest-filename": "cli-boxes-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "sha512": "3d87864849a61cceb3be879fdb0f133f396b9cda572234e2a582bbf3462cc2620ff6f8f199de98d9adc20762acebf014f0d1e366e817be8f30de858cdaa9f05c",
- "dest-filename": "cliui-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "sha512": "b7ac1b82da025ef033b2ded0817c4962a3edd2eb047db81075fb443db2cbfdcbefe873c4e5582fa82b80203474360539d9db3aac5c2aae06a434bac712309bad",
- "dest-filename": "cliui-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "sha512": "39c444ebc70eb15317a7562fa2797f7f39103b28cb4aeffc6e13c37d0b747b4fc46f6f374ca3f6d05b3632aa0fb2bf52c00e7de6b44203e40ccd873d9c13fe25",
- "dest-filename": "cliui-7.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "sha1": "d1dc973920314df67fbeb94223b4ee350239e96b",
- "dest-filename": "clone-response-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "sha1": "4bc0373c164bc3291b4d368c829cf1a80a59dca0",
- "dest-filename": "collection-visit-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "sha512": "41f014b5dfaf15d02d150702f020b262dd5f616c52a8088ad9c483eb30c1f0dddca6c10102f471a7dcce1a0e86fd21c7258013f3cfdacff22e0c600bb0d55b1a",
- "dest-filename": "color-convert-1.9.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "sha512": "4511023ec8fb8aeff16f9a0a61cb051d2a6914d9ec8ffe763954d129be333f9a275f0545df3566993a0d70e7c60be0910e97cafd4e7ce1f320dfc64709a12529",
- "dest-filename": "color-convert-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "sha1": "a7d0558bd89c42f795dd42328f740831ca53bc25",
- "dest-filename": "color-name-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "sha512": "74ecbedc0b96ddadb035b64722e319a537208c6b8b53fb812ffb9b71917d3976c3a3c7dfe0ef32569e417f479f4bcb84a18a39ab8171edd63d3a04065e002c40",
- "dest-filename": "color-name-1.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "sha512": "aa20639296cc2cefc72faf32fa5878ab4fced4c6458f6457e97fca98c6b7fa0243df3f96c08d59cc31f2b2fa87192de63fa9b39cf724a579b0d6723d7098f246",
- "dest-filename": "color-support-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "sha1": "0433f44d809680fdeb60ed260f1b0c262e82a40b",
- "dest-filename": "colors-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "sha512": "6be52a4e1e2481983f4a51af7dbcc31e9811bbb00040e9a6a911c99f185164808a1544fdd5bad584d36de7c08c594f4fb016efdcf0c26541db571b83887da6b4",
- "dest-filename": "colors-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "sha512": "1503783117ee25e1dfedc05b04c2455e12920eafb690002b06599106f72f144e410751d9297b5214048385d973f73398c3187c943767be630e7bffb971da0476",
- "dest-filename": "combined-stream-1.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "sha512": "1a956498cf2f176bd05248f62ef6660f7e49c5e24e2c2c09f5c524ba0ca4da7ba16efdfe989be92d862dfb4f9448cc44fa88fe7b2fe52449e1670ef9c7f38c71",
- "dest-filename": "commander-2.20.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "sha1": "9c99094176e12240cb22d6c5146098400fe0f7d4",
- "dest-filename": "commander-2.9.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "sha512": "34e2a6f31864cc08f3171f01dafe4e0074febb9a5141cd9409ad95abd8d82ffdf5a36c22f66c4103b2c816cdec5795520b8f73ea91217db3142ef4a12a3dba58",
- "dest-filename": "commander-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "sha512": "3f40b2b0d0d0eebb55c3840842d9be311c55ebabca152be5b10bc6617656477a855348e530a1d9659830f1efbc0d26a1e140ca32a9e49d10d0cfec6e41743f66",
- "dest-filename": "commander-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "sha512": "3a44cbf6e99ff877b60d9914abc7fc27da1fef22fa449288db875521306635f6419ab8bdcd8650aca92e5e22a1c9f3d2bbcb5486754107588a5debef9e54785b",
- "dest-filename": "commander-8.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "sha1": "ddd800da0c66127393cca5950ea968a3aaf1253b",
- "dest-filename": "commondir-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
- "sha1": "0162ec2d9351f5ddd59a9202cba935366a725080",
- "dest-filename": "compare-version-0.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "sha512": "45ddec7ba401fac3b54f0a998ec710aeeae910f21f3b4ff26274a29fa43fac3de63aeb47bd4ac202126e6f7afdd2e35bf9211206e134418a01f7461d7dab6c46",
- "dest-filename": "component-emitter-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "sha512": "005debecfe5d5b12fc331c884d132539140d68e036224005693af893b054ba68cfb51a460d36699743dbd5708ee89783081769d76e8282cf6c331a928e063246",
- "dest-filename": "compressible-2.0.18.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "sha512": "8da4880f33fda59552e197d0f93cefb625a17691611364431f3f10264a57f522292eaf3c56e785e63270eadfba09441c02803ab7ec7cf4c2eb580aa97c313c89",
- "dest-filename": "compression-1.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "sha1": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
- "dest-filename": "concat-map-0.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "sha512": "dbb1c18212718e266d224dd872f9ffe246c993fd6e66e2457ee3c49ece8b684be9bc6d5fd214de6bc96296ba2eca8f6655cd8659d70467c38ba0699200396b0b",
- "dest-filename": "concat-stream-1.6.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/conf/-/conf-10.1.1.tgz",
- "sha512": "cf6722bf0abf93c4cc62d727dd254fd0f7aca38a2d2169c7b5c4ee1e1434cc364374fe0d4f1a8473ca307e4cf8cc1b1d318767fcb15c13e6616c27aa921b6add",
- "dest-filename": "conf-10.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "sha512": "aa3f9ff003c04571eb33486b6aa5d86f6fdb395495e0fbc9425359fc3563d10ae634cdaad9eba2ce47ae55c910e7b27e5b49911fa1ef8be939d0ce09ba5d9545",
- "dest-filename": "config-chain-1.1.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
- "sha512": "68c2a9ae093962104dc87db9863f301addbe0f9d92c350d1448cea0702e9d986bd985998f0a3efbedbe69daf12c5547d24c678933303ebc376daf95a46991e14",
- "dest-filename": "configstore-5.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
- "sha512": "7b9e01f7dabf394a07eb8cd86117f71c13f9cf6e06dfc8790f7a97bb6dc9191a228295f94ace2bf599c393783467cb900b6c7694f689f9495605cd5958159d2e",
- "dest-filename": "connect-history-api-fallback-1.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "sha1": "3d7cf4464db6446ea644bf4b39507f9851008e8e",
- "dest-filename": "console-control-strings-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "sha512": "16f7994cdb86c34e1cc6502259bce2eb34c02ff9617a16966d3b6096e261e3f13de43a8cc139a16b7299375680580f1c148847ccc654bcb7af930e51aa4fad49",
- "dest-filename": "content-disposition-0.5.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "sha512": "8483f71043ecf2d07d013d4bf8d52ab70380a6ce269366686fcf4c5973078c75a0f668a517f8f8a2c9e740b5c108114193fb6f206fed51cf663942623c184f5c",
- "dest-filename": "content-type-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "sha512": "f8e41d8cfe3dcd5888ffa8bb9c826903cac0978b15fc974f7d4f6766cdd5a8ec062208b3202bee376aeee9f31dfb89652f4b5aaf5f146095df67f4d6b668548c",
- "dest-filename": "convert-source-map-1.8.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "sha1": "e303a882b342cc3ee8ca513a79999734dab3ae2c",
- "dest-filename": "cookie-signature-1.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "sha512": "670ac5906271511dc42285ed3bec9513af446fb2a58b16da78059f05007dbd5b0d9ffa3e630ebd8015924832bcdb985035d37ec05f3310b7f7745365fe4c6450",
- "dest-filename": "cookie-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
- "sha512": "7f676899df5fb150c5b5a15c6da459b985f0b5d9a7cea6c00d2c21496631601fd0f33b1d51414c5d54705c60cc5a66c4cc09f591d46bb48d53fca4c538be17d8",
- "dest-filename": "copy-concurrently-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "sha1": "676f6eb3c39997c2ee1ac3a924fd6124748f578d",
- "dest-filename": "copy-descriptor-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz",
- "sha512": "3925ec78d3d22b638f25ae8676d90ccff5f1797c7cfc226f7e14164ea77a9deb94adaba370be2356c8e42d0cf53969dac7cc554099d13ded15da3a8d58e440f8",
- "dest-filename": "core-js-compat-3.21.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "sha512": "65006f8b50dca49e060ea6a78ee719d878f7c043b9a590d2f3d0566e472bbddc64b09a2bc140c365a997f65745929f5ac369660432e090e6c40380d6349f4561",
- "dest-filename": "core-util-is-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/crocket/-/crocket-0.9.11.tgz",
- "sha1": "288fca11ef0d3dd239b62c488265f30c8edfb0c5",
- "dest-filename": "crocket-0.9.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz",
- "sha512": "9a42ed2497186c30b1106ec9b3a7949d43677568f2519c09dc7edb12b9a6b4e614fd96fdf43c949296a6b88644d1bddb86627267b0fdd2e4ba7fe086c514633b",
- "dest-filename": "cross-spawn-windows-exe-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "sha512": "79354bac14adedf8db0f2833f34e69327b2d22cd954c1364466d2ac5977e33b0395c377155158ee4cc460576618d8e1ca8b60b76dac6a917fc9813e6cf04a959",
- "dest-filename": "cross-spawn-6.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "sha512": "8910cf24a50f544343edd1cf3bcae46ce9cfa720f281c0c5b568e9796342832f163f6ad77315cbf13b2445e425e8eac1d86efe509ada82cd6ad7916e75cec6eb",
- "dest-filename": "cross-spawn-7.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cross-unzip/-/cross-unzip-0.0.2.tgz",
- "sha1": "5183bc47a09559befcf98cc4657964999359372f",
- "dest-filename": "cross-unzip-0.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "sha512": "bf5a65203df2f6bfe53e1be2275c2b5e92dec94206019d921cd61311aa66efff00f672cfa32bd5a7744afc43c5aa7e641339f25a061936c46d6182166ee1bc28",
- "dest-filename": "crypto-random-string-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/css-hot-loader/-/css-hot-loader-1.4.4.tgz",
- "sha512": "27fa971f3fabec5393f76a8c2097f1524d0b0bd7de71035956bd0cb3043814ea4a2f2382063a1f54c7dce91dbaf1b87fe64b644d286bc1e32bd305aa7ab0bdda",
- "dest-filename": "css-hot-loader-1.4.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz",
- "sha512": "339952ba4a168b521ff1d8500140af8f81fcbd4b77bce9f06d0047f437539bfb38626d81ff774f32d6197899aaed0dd2dcf6be23de03719ee973d6cfd7871621",
- "dest-filename": "css-loader-3.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz",
- "sha512": "fda52c94a873913342414076a935fce255667e26bd3728cfdd6a431ad8ff5b18700735816145770e0529bab1d399ef144cf70f9400f50c9f9bd2737fb79d330d",
- "dest-filename": "css-select-4.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
- "sha512": "6ab48c456208158d2157ca48c593047e6308e3b5a3dd1fda5a96430f159808f12238cbfab5f3ab9e90ed8310583c4403e15d18ffde7cfb54dd0b78964c57143f",
- "dest-filename": "css-what-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "sha512": "fd36ff25c8cad75d67352706a1be4c36db27b4d3356823540e2a41fd39306458720ebac4e3b48ec7fd7cc05d9b6e381cdd9cc248a5b54f99ede446c5a00cff56",
- "dest-filename": "cssesc-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dbus-next/-/dbus-next-0.9.2.tgz",
- "sha512": "b7342affec2b4d9db253e5393e879773deca001857dafe790bf4f47e29c7ded48a62e23c1ff4aaa69205ca6041ad41dc2b5dcbbc4198def763de290f3de9cbe6",
- "dest-filename": "dbus-next-0.9.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
- "sha512": "f296024222fd5dd720d143d20f777ed0a3253a3a7e28653910fc1875d83343b0c04ec8387ee5038d0b6c60b9968e7936a1b9cd1e0577bc4d98e237a348e25505",
- "dest-filename": "debounce-fn-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "sha512": "6c2ec496b7496899cf6c03fed44a2d62fa99b1bdde725e708ba05f8ba0494d470da30a7a72fb298348d7ce74532838e6fc4ec076014155e00f54c35c286b0730",
- "dest-filename": "debug-2.6.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "sha512": "0858f3618022e1385f890be2ceb1507af4d35c7b670aa59f7bbc75021804b1c4f3e996cb6dfa0b44b3ee81343206d87a7fc644455512c961c50ffed6bb8b755d",
- "dest-filename": "debug-3.2.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "sha512": "ff3c70e7ebe1d537effb8427edae67b1b70928f692bc20e1a239fa14497dbeea702b6542483b44884b6aafc0c5b7360539dcfadcb064c5e73b0d8b9cda3a27e9",
- "dest-filename": "debug-4.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "sha1": "f6534d15148269b20352e7bee26f501f9a191290",
- "dest-filename": "decamelize-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "sha1": "eb3913333458775cb84cd1a1fae062106bb87545",
- "dest-filename": "decode-uri-component-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "sha1": "80a4dd323748384bfa248083622aedec982adff3",
- "dest-filename": "decompress-response-3.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "sha512": "696df9c9933a05bff8a099599dc307d8b0a866d2574d1c444b5eef137868462a305369161da24a1644810e70d1f9c9bd27ef5085799113221fbf4a638bd7a309",
- "dest-filename": "decompress-response-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
- "sha512": "c9df5ce40762a95711f898dcc1441bf4392125cf2780daf431a844046bc3889c3ca6e59a6f6c99961fa791ab0e9d93fe1064c03faad1a76273261259cef345f2",
- "dest-filename": "deep-equal-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "sha512": "2ce1f120e68f61d1e5251b4241f0c8559b5fc3fb9f33cfab563eb8f51207cdc9bfbc6c1045716de8e3ea2055ac9b65c432b34812d591eb8b18d4b10a0f6bc038",
- "dest-filename": "deep-extend-0.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
- "sha512": "87ab0cad507554c595ad6d7799273a89afc3c18630e4c37af9ec4dbb539a25e15a73969202fc0cee56743557d3001b929107a5af8879a1e6e0dca0755cf76380",
- "dest-filename": "default-gateway-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
- "sha512": "d0849d368bac1ef653d84885959799007054bd2c662acc150847fc856eca5a01b86bc31512eff755beae598a33923ca5c82c5ed090488910758d5e394bbd1655",
- "dest-filename": "defer-to-connect-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "sha512": "e2dbedb5ea571b555a606ad189b93913025dd6de2e76e9d239531d2d200bea621dd62c78dfca0fc0f64c00b638d450a28ee90ed4bd2dc0d706b1dcd2edd1e00e",
- "dest-filename": "defer-to-connect-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "sha512": "0ecd3da8d87ccb0de48528e22638942276865fdc65a990d8ec956bc86c5dc55ecd3debaa41fa653a943aeb224566eb778cb6b9ccec245f0d60f44236b8a8783a",
- "dest-filename": "define-lazy-prop-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "sha512": "dcca9f60a8f694bcdd3127fc648644fd5f99bb2f81803e9fd7ae1ef0adb0edd827a4a02b0437ab198a4ce3a21861c8e791d3cd3233e4f40e95141f3edd22a55d",
- "dest-filename": "define-properties-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "sha1": "c35b1ef918ec3c990f9a5bc57be04aacec5c8116",
- "dest-filename": "define-property-0.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "sha1": "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6",
- "dest-filename": "define-property-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "sha512": "8f02b6515e1c9cfa5b706efe55101129364f516a30c1703c6f31f934feae774a1e031c983ee1995000bb84cba0a42773e01792665d8397d93ae821c9ff8e9961",
- "dest-filename": "define-property-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
- "sha512": "4301ae114a2e3f6915c107a702c3a87f916ff0af6ddc3f026bc3717172ab2291078d35cae49da75cb74ff802c8d5c82ff308fb2aec01853c0190e65224a3395d",
- "dest-filename": "del-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "sha1": "df3ae199acadfb7d440aaae0b29e2272b24ec619",
- "dest-filename": "delayed-stream-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "sha1": "84c6e159b81904fdca59a0ef44cd870d31250f9a",
- "dest-filename": "delegates-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "sha1": "9bcd52e14c097763e749b274c4346ed2e560b5a9",
- "dest-filename": "depd-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "sha1": "978857442c44749e4206613e37946205826abd80",
- "dest-filename": "destroy-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
- "sha1": "f0d66d03672a825cb1b73bdb3fe62310c8e552b7",
- "dest-filename": "detect-file-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "sha512": "4f4348b90a674ef14301336e1cde6ba0fc12046f37ac5b2e3be3175c7f7fdcdd5e15b9f8c1c3e3b6dbe330b10f589d11194620404edc1a04b7b4dc5ba8218cee",
- "dest-filename": "detect-node-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz",
- "sha512": "62a890ce4aec987307e6eba1f0e750154f7f6690039f0ce697ccf43b91ef44d75afb9519b1a5ffc4df800317d1da15aad58ec76670333bd2799495ceb83cf65b",
- "dest-filename": "diff-sequences-27.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz",
- "sha512": "415e8f31a1d308d98a49e3fa4285e1553c3db2773d543f0cba54d3d0177df4f69ca78492d5c8dcad83e004f9a26ea295b4c2497ea0ba5ef39780f30410f1ff7e",
- "dest-filename": "dijkstrajs-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz",
- "sha512": "97d866bbcc7fae3542f59db3986ce484e128c19bd6ee9998c2ce42587bad83cbb5260bec296331ed0fd43837aee1d8cb6781605b96deb30e72bcc427047cee08",
- "dest-filename": "dir-compare-2.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-4.0.1.tgz",
- "sha512": "1cebc7a5bab9493459263408073c282a74348c7a656c45855a53c3c175ca9bf6c82e1e27ce3720ee636a965d1463b46c8c5a1a5c0edefe861bff896fa5d6b6cc",
- "dest-filename": "discord-rpc-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.5.tgz",
- "sha512": "d46bc5190137df66ef3da99c330643a96a9f59f253cb20cb3ac1cc7068b4cecf8987b24e9faff3b8190724858776c8f64096e1ccb572776fd9aadb4e2afec8f3",
- "dest-filename": "dmg-builder-22.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "sha1": "b39e7f1da6eb0a75ba9c17324b34753c47e0654d",
- "dest-filename": "dns-equal-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz",
- "sha512": "050e85e2fc9c2d706f76b259e92de065ec2deab72b92cf4a06033dbeb856fa49c646a73cb84753edfb82c25a1cee79f2e71368309d7b1c61f447fe9fa68f0408",
- "dest-filename": "dns-packet-1.3.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
- "sha1": "b91d806f5d27188e4ab3e7d107d881a1cc4642b6",
- "dest-filename": "dns-txt-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
- "sha512": "81ddf2a483df38cafd8798c82aaf04dec1ce4c28de8ab9e5d162b965d4b5016d0e76dd1bd4f696687749e10938925bfe601f5a2414bb9844978c5a0340fbba0c",
- "dest-filename": "dom-converter-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "sha512": "e5ce78064e43c38a80c4d388d691448b33d28d5b31e7e6e924a98bda43e7f0984152adaad3db5309ade68e28ee9f635f2bbf0d328b8360d30190eacf6624be8a",
- "dest-filename": "dom-serializer-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "sha512": "0ed04ca3cda9bf5745b54987cabe3c6de8aeabbf764b1a21afef079bdce8c649583df6ba9f46770728e3d8857b6e6af6232a82967a844217e01c9279405d11e4",
- "dest-filename": "domelementtype-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz",
- "sha512": "2750b9ac800d51bb982be16e14bf7ceb9d2b8a1ca750e13344bc56fbdd1b29945607a0355f54dff361b1475a8058bc9f34f46f8ea7e2a77439b5d6259806bd94",
- "dest-filename": "domhandler-3.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz",
- "sha512": "7c2d1a5cd417a8a4854ebdb00cd64386c1188c2898b035a5dc3d35930b76e619b56083f20c61efbe2debc3e3cba87025fe6ef531a885edde73bc1af4a79501da",
- "dest-filename": "domhandler-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "sha512": "c3de828e87e9ef63392088698e0a1b06299811fa0f8f1d55c740525fd3f7d1605d656d9620a5344f505dd24cf678d67d8a48ca8076c4c8ac7c041e87d4bde1dc",
- "dest-filename": "domutils-2.8.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
- "sha512": "2afe672a587ac91addac6bf1789d9ee72d9e454a64528b085b8036012dfccf04b3dbbceeeee7c3c103e2e4986cdd702518d7ad9776e69c6850b0cb642899e3df",
- "dest-filename": "dot-case-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "sha512": "40cf2adf30dee7c86a52a8eb6903a6cd9d4b207f525902539442821f8909da842f2d993b45b417bed0ccd9712addfc2457d082bef1f82c0d0057ea2016c04cd9",
- "dest-filename": "dot-prop-5.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
- "sha512": "b44ef3b58cd71c87b2bdcecdfa1477a22ec521b7ff3488d53fd86602ddf2317ceb434ef6fdfa6318bc761b13711b1525e55ef7304a98ce2a0e32856118c27970",
- "dest-filename": "dot-prop-6.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
- "sha512": "617425d4349ae3f3d0c917e0aefe9aa0d8e16aca7fa78aacf458c9e2ae1c424fbc9b8afa938652884cb2b4a1bc7fc5bd822f16b10b4839b36629dfad33335398",
- "dest-filename": "dotenv-expand-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
- "sha512": "22b3dd5d0b24d816f3bc204604e4e69921f94a8766a9936de04440643996e024feb4bf15b6f8a7ab2c2e00d685bb86ce316922d7a9ea7f47b8a02d1021a0ebfe",
- "dest-filename": "dotenv-8.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz",
- "sha512": "23d3afbeb1e9e2920046fe3ec7d8ae7b0ad6c9c5fa09c66da00bb55ebccfc5ce54ca03095c9658981b329e4bbc224ac9c20ca91390c63630cf98f4610c2a6d52",
- "dest-filename": "dotenv-9.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "sha512": "8ed0fa606dfbd190888bff464da24a431593643d38e7ee11e214e4ff1d54ca8a9a77227dc7d0a04a2d519550d017c536b312cb4a716409a32286a9631c85a032",
- "dest-filename": "duplexer-0.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "sha1": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
- "dest-filename": "duplexer3-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "sha1": "590c61156b0ae2f4f0255732a158b266bc56b21d",
- "dest-filename": "ee-first-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz",
- "sha512": "f65b7d66c7b884fb9c3e4a0fec51c31742d00251b217d255a670a514b147dda4926f19b2a2a20d469a7ff7078f5894d497828e43044bef6230dc89c73c39281b",
- "dest-filename": "ejs-3.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.5.tgz",
- "sha512": "37bde149b5c5cfa333e59ea1e82e65cba081f9d50dea4d4bb820c98c8f15178edb317bff404d0713e2a46f418f2aa4ea33b1ec93fc88617fa41c27d2911e451a",
- "dest-filename": "electron-builder-22.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz",
- "sha512": "6f991c33786652a9fae3e4547078e3afc64ca474b6589e583b4a671bdf8ffd14ddc78ea87ff26b123b9c8875aec7aa44f8e9faca75a11c9179de3fc40c93743c",
- "dest-filename": "electron-devtools-installer-2.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz",
- "sha512": "f9f04b5c4cb8089590e5bcfc77269e486d610fa249d799016728f77a1db8a4856b77784b338ec7fee99f7eb7507d2e866747da945d20f494fd7f746ce8055487",
- "dest-filename": "electron-fetch-1.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.5.tgz",
- "sha512": "09f6b608a9f00619547c897faabd86179482a9fa00f723c1a9327aff03ecf8f127dfa336f8467746919268e858435059a6894bd425b27aede0306f1ea4b97736",
- "dest-filename": "electron-log-4.4.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.1.1.tgz",
- "sha512": "92e7ec9ea87ce824d7f3d018346dcd08fa1ba2a9e4bbffb7d91c5e276fbb03845b9b86db3b1d0d73b5d3cb7fe002505fa63f713c0c477e164b38781f8ba70957",
- "dest-filename": "electron-notarize-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz",
- "sha512": "89ca112c7cc5cffab1cc387f3783e2db3e32547bab96c080610bec0921bb7c279d2785095c14ba3e8432187ef521f72a2aea5c29e2bb1d7fcd9327c6fafeaf95",
- "dest-filename": "electron-osx-sign-0.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.4.0.tgz",
- "sha512": "26bacb7013f5e4a1ab3e3d1c67f00b28699a438809927de6a1c7f41376d129d47793129661c0d1a42bdd864b180d7c3faf723ab4c11c67b5f3c80a56157755a7",
- "dest-filename": "electron-packager-15.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.5.tgz",
- "sha512": "87e34035175a0343ea185d7918abe8aec7963f38753d76bfcf1e08dfbfff3c8a245bc78a228bfc932db77e85126f9e591565071a9c5026ec7bcb63427c1b507a",
- "dest-filename": "electron-publish-22.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-store/-/electron-store-8.0.1.tgz",
- "sha512": "6722ef372c22a92a5bc02fe9a7cf4efc0c9c55663f5092249adcb317605dd0d9bfacb99c15cd0d4c6b8b760ebe2c4f264bcaac88ae493287b83e7ade70b1c7e7",
- "dest-filename": "electron-store-8.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.60.tgz",
- "sha512": "879de16c488a0ba8628de943831824800502dcf2b247b4e621fbe31e70635063cc83fdec06e4f21ba783a2b9b0fa5636e2e509bc79143f307c7692bc6f6bb74b",
- "dest-filename": "electron-to-chromium-1.4.60.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.6.1.tgz",
- "sha512": "62c535987a972eb5d798132cc61c72db83eb6da07cae7a590cf9856b680e913624fc2875dfe4747e3b114a93d8beab6c915558d2ec7c7eef879d491592a73ba2",
- "dest-filename": "electron-updater-4.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-webpack-js/-/electron-webpack-js-2.4.1.tgz",
- "sha512": "34f6dc2389e7b9c9642c42a6c1123cb2e8b618d7b7ecd2a6d2909047a29903b612577290747e08ef03a0219d8091e0a9c9e507ac148c19063e56a84f0fb3ad30",
- "dest-filename": "electron-webpack-js-2.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-webpack/-/electron-webpack-2.8.2.tgz",
- "sha512": "ad1ee1c683a56487097fa474f26565ff84c1b4563e1d6eacbf8676f1374c5844ef70ce1904805d18d1b297117480dc01f20913828f149240db5c65f8f0ae15a3",
- "dest-filename": "electron-webpack-2.8.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz",
- "sha512": "d66353c027e4a255e5de431fe74c96def1369598f4cbdd8ffc7616141adbfafd92fe90a46b999dc0dddc6a02a6e39f00ecd8e7752c228f29d781c2d646876c56",
- "dest-filename": "electron-window-state-5.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "sha512": "0b004b444210ecbbd8141d16c91bf086ae4de6a3e173a3cc8c3e9b620805948e58c83825fb4bf1ab95476cc385a8b83b85f5b39aef13e59d50a1f8664c8848b4",
- "dest-filename": "emoji-regex-7.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "sha512": "3128d8cdc58d380d1ec001e9cf4331a5816fc20eb28f2d4d1b7c6d7a8ab3eb8e150a8fd13e09ebd7f186b7e89cde2253cd0f04bb74dd335e126b09d5526184e8",
- "dest-filename": "emoji-regex-8.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "sha512": "fe4c8cd7c11f8a7c1765b9e8f45c9419e161f3b282f074500501a295d1d96c4b91c9614e9afd54d74a3d041a7c5d564354d36e40ac88188bb96580005c9d15d9",
- "dest-filename": "emojis-list-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
- "sha512": "b9c027b8112150ae1ba07d878d5606e50da64323e8aefbf4bbfa1c4bece1770d12f00947618f8638584fd468a8e73e227293f68af152be1b458d08bcf93f69a7",
- "dest-filename": "encode-utf8-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "sha1": "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59",
- "dest-filename": "encodeurl-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "sha512": "11305aba8c354f7e58fd664c922a3d8e2334679c631c7989e179a364eab597f757cf796bdac467f3b9c9cb6d11ba9a928751769b71c73d2a7c4a120f409ac9dc",
- "dest-filename": "encoding-0.1.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "sha512": "faec358a720754f428695b87cd1c97776d6270cf9c9ede02cc3e6b5be342d708ce5124ceb3e4deec53afec084deef4bdc7fa08ca12cfe4f4751fea614001eee5",
- "dest-filename": "end-of-stream-1.4.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
- "sha512": "36ff66dfa4bfbf1a6c23e1dce3f64646cd27f665ea496186ab8f73c5bfdc25f3c040c6d4b6db4902534f4b8010cda05dc3fa4ab24c396cc6de913fd8ed6fd696",
- "dest-filename": "enhanced-resolve-4.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz",
- "sha512": "10601b1af1fb8fb5edda773413b0fdf4b6b53a212cf0b9f28a6911830131a5431270de8efb7c7db485acecf2d0655371e180fed34b241d73d78b5c901e902664",
- "dest-filename": "enhanced-resolve-5.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "sha512": "a7dda27f9373eb5f48d30f9a909acb647d0c5f43dbe435f7f573b0413b5749d41039a607d374b5b88429e2684e66d017af1ab85623baed84e22c1a36eb7f28f4",
- "dest-filename": "entities-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "sha512": "fa1d6590b2a164c4d88e8835544a49346ecd64959cb9cd830e4feab2a49345108e5e22e3790d5dd7fb9dad41a1a8cc5480097028d67471fdaea9a9f918bb92d8",
- "dest-filename": "env-paths-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "sha512": "d9b9a546934a0714ff09198f3a5c88490a4d8fea92798bdcca6fee4f4271d9b30e94a2ed4b2d5998bb95c5210a2b2a2bfcde7286fa7f6621b5a04dc311831214",
- "dest-filename": "err-code-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
- "sha512": "749ea806be5243555277daa493b0724606ffd521f82598c21d25bf9abeb7fd07173bdccb571bc9e8ecb5de78a8d37af1a529d50c38c5a2bef94a355e6563d6fc",
- "dest-filename": "errno-0.1.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "sha512": "edd147366a9e15212dd9906c0ab8a8aca9e7dd9da98fe7ddf64988e90a16c38fff0cbfa270405f73453ba890a2b2aad3b0a4e3c387cd172da95bd3aa4ad0fce2",
- "dest-filename": "error-ex-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
- "sha512": "daf27ab6303f51fa8b9b630fb3b8f15726cba01f22d6dd4977d4779084a5776d2c2313dc4db2ee82040e531796780bc852476ebff09f323ba1e169a25ebdaff7",
- "dest-filename": "es-abstract-1.19.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
- "sha512": "d47436336b0fb71c27bcebd3d590a51f24038a081d3635115a9636c1ee9a30a0908945714e656cd9460f2c8ac3f38b12fa431d5307c14b295b24fc0d9c1ae71d",
- "dest-filename": "es-module-lexer-0.9.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "sha512": "4023a5960649b5a528f6689805c2c285351a1cd8c91773d8b35562743ec0c22123d6463129e41372d2c07b300e1f964a447d20d8880f9fa2b0078213f22469bc",
- "dest-filename": "es-to-primitive-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "sha512": "526ffe17132bf422125a1d1b8b966fd22383fb8705879a8b7a4b35aa1028a4a540270dddae029b2b24a2929ef01a10cbd073de6a36b43f950b66bc4b92789456",
- "dest-filename": "es6-error-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "sha512": "9347abda05242dff0ed332898808669139c9953bc8346bfbca00cd3db788b17fd3263189647ba1f41d94c5bb1a1249a5128f4c7e1ad2ce68489614652361979f",
- "dest-filename": "escalade-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
- "sha512": "f3fb8885b1b5d82b23cb62445bb0fda476eb79a55a4bf3a9377c9c9f2bc49537703399fa198e96e9ed883de99fbc665e50ca99f40ff71aa2193202a7061030fd",
- "dest-filename": "escape-goat-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "sha1": "0258eae4d3d0c0974de1c169188ef0051d1d1988",
- "dest-filename": "escape-html-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "sha1": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
- "dest-filename": "escape-string-regexp-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "sha512": "529cdc2c25e895459c36ee47b5530761d5c98c0ae3b05f42d1a367aae658638b96fd5bb49a2cb96285af6d5df8e476ae56f700527a51ba130c72a4dc18e636fb",
- "dest-filename": "escape-string-regexp-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "sha512": "4eda5c349dd7033c771aaf2c591cc96956a346cd2e57103660091d6f58e6d9890fcf81ba7a05050320379f9bed10865e7cf93959ae145db2ae4b97ca90959d80",
- "dest-filename": "escape-string-regexp-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "sha512": "d8dc706c5fe16742a97a960dd1c35ba3e14de97a0aec6687950860c7f848665e956b46c5e3945038ec212c8cbc9500dbb8289a7522c20671f608562aba2b796f",
- "dest-filename": "eslint-scope-5.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "sha512": "786b85170ed4a5d6be838a7e407be75b44724d7fd255e2410ccfe00ad30044ed1c2ee4f61dc10a9d33ef86357a6867aaac207fb1b368a742acce6d23b1a594e0",
- "dest-filename": "esprima-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "sha512": "2a67ca2f76fa1be457bcff0dd6faf74ead642ffa021609f63585c4b6a3fcfcbde929aa540381bc70555aa05dd2537db7083e17ca947f7df8a81e692d8bafd36a",
- "dest-filename": "esrecurse-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "sha512": "dfd9e729f7d6cfcc4dd4153fd9cefd9fd9c1f470f3a349e2614ab1eb1caa527ca8027432c96a4e4dd6447a209c87c041bb9d79b78c29f599a055f5619fd101a7",
- "dest-filename": "estraverse-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "sha512": "30c74046e54443388d4de243f0380caa6870475d41450fdc04ffa92ed61d4939dfdcc20ef1f15e8883446d7dfa65d3657d4ffb03d7f7814c38f41de842cbf004",
- "dest-filename": "estraverse-5.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "sha512": "915b1ca97938382a7af126747648042958baffc8a3df4d0a0564c9ab7d8ffdd61e5934b02b8d56c93c5a94dd5e46603967d514fcb5fd0fb1564a657d480631ea",
- "dest-filename": "esutils-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "sha1": "41ae2eeb65efa62268aebfea83ac7d79299b0887",
- "dest-filename": "etag-1.8.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
- "sha1": "4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571",
- "dest-filename": "event-stream-3.3.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "sha512": "f20b870590b02a716161d1ebdb2b2e45612b4f08683765fc5c42d196b470a667de6368e3b94378b5a40cb142ca515a352b80ef665fb4a607f2a32b07c6f9af13",
- "dest-filename": "eventemitter3-4.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "sha512": "990c3ed9f9106c02f343b574318d08a9d9d734e793b4fe2bd2537dcfb0006b009782a79aedb0e28b6d0062b201ac577f1f1d0cd8e733e92d75d4268591471bd1",
- "dest-filename": "events-3.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz",
- "sha512": "5522634f9a0236b16f092ea2823ccf02de61073436a8f04521b274df32c8f521349b1c19a4cc3a05f26b6c51e6d5ad78d406af30407c24798185601deba3df0a",
- "dest-filename": "eventsource-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "sha512": "69d6f1732595e3aaa21f2bd2a79d132add39b41e2d2b71dc985eff9f17c07619e8c7cdec7930dbc276aa28ee2c5d1cbbae81c0205a893ff470fc0b846d7eb52c",
- "dest-filename": "execa-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "sha1": "b77735e315ce30f6b6eff0f83b04151a22449622",
- "dest-filename": "expand-brackets-2.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "sha1": "97e801aa052df02454de46b02bf621642cdc8502",
- "dest-filename": "expand-tilde-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/expect/-/expect-27.2.5.tgz",
- "sha512": "66b3b4c3b6e8f01806a0ffdb2f3f870c223ed077de8bd8d4499b39c88fd6ca7f55906f70f2827bac7460623f8c03bcaaa856b42301c0ddf949cd9b58ba04a124",
- "dest-filename": "expect-27.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
- "sha512": "a31971271710958c2a3d6295249b6f422c07828b07fcbacb48f03e1f8531a72bd24ba8c2e5a1fee4ca0714cf8a0018133add003ee7b8c3ae876bc8c2528f501a",
- "dest-filename": "express-4.17.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "sha1": "51af7d614ad9a9f610ea1bafbb989d6b1c56890f",
- "dest-filename": "extend-shallow-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "sha1": "26a71aaf073b39fb2127172746131c2704028db8",
- "dest-filename": "extend-shallow-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "sha512": "3666fa4179042ecb81af6e02252922968e941c781b7a42b95226607c4e941c3dc46f6ed80baa03f9b85c4feb49e9c97c766b20750c675a572bcbc92c04804ba7",
- "dest-filename": "extglob-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
- "sha512": "c688791b55bf3c1d3fdbb95780c4322213f90d263f2e1a02b0ec9981bfba88c991b42c15068e79b8a68ca0462b0c2290856bea122a7964f28073a7853727ff30",
- "dest-filename": "extract-zip-1.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
- "sha512": "183854f67b70b8ac865dd6415204c87bebd79d68f47e9a5412d3032f4fa275de52b5af131a91ecb27fdebac03d9ab3ebf6a343ca6e92c406198cdbc29fff5106",
- "dest-filename": "extract-zip-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "sha512": "7f7a90f68432f63d808417bf1fd542f75c0b98a042094fe00ce9ca340606e61b303bb04b2a3d3d1dce4760dcfd70623efb19690c22200da8ad56cd3701347ce1",
- "dest-filename": "fast-deep-equal-3.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "sha512": "96177fc05f8b93df076684c2b6556b687b5f8795d88a32236a55dc93bb1a52db9a9d20f22ccc671e149710326a1f10fb9ac47c0f4b829aa964c23095f31bf01f",
- "dest-filename": "fast-json-stable-stringify-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "sha512": "5be28973676620b94fa650ff1f82bd97d2dc00701f3ed3fa058f38b952d743a12f733f4b720df7636cf52156e54fac5d639e0f5d854712ffb45a9abc228eb390",
- "dest-filename": "fast-safe-stringify-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "sha512": "0b36c297095702e891400954c9fa8f82f3e834a4dc9133c67f0655e1974085570fda587d294c498366f91a413b5db8ca4376099d0f73e83f67b4b02507eb4ff2",
- "dest-filename": "faye-websocket-0.11.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "sha1": "25c7c89cb1f9077f8891bbe61d8f390eae256f1e",
- "dest-filename": "fd-slicer-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
- "sha512": "d1bb6723f1fc7f6a5abc630df30e349a548a39f4cad925499817c1795223de4370d2cc30833c91ab47794c954ec287459adbe93de58f37f30271fb961741336f",
- "dest-filename": "figgy-pudding-3.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
- "sha512": "aa8de096ac936bad58b60e2eef71ae96d8c71a3751ca2837b46ea53edc97fe338426f1e27fdb81d3f3822362a27fa72d17771a4135b61b98329b6d6802c238a7",
- "dest-filename": "file-loader-6.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz",
- "sha512": "b95b25ee21611d2398e1b10e34b9532b8ee2007b4db051d63f9604e3125f678ae75fb4b5437c1c7b4f5782a482ec4ff187c35cbff6ded65368ca9ae5507ff1e8",
- "dest-filename": "file-type-16.5.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "sha512": "d19b7eb372fb55fd5b8b0599dbd6804625582f1ee23069c4525f71df77db07f8f78d1f35bbf3b62dba8af819b508348d0ca56d27f623c18ed351de5291e2d02f",
- "dest-filename": "file-uri-to-path-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
- "sha512": "cfb3b4212f0f95cdfdad30aaea2ea21f1938dddb983a7f2e14989649ec08ab4070c3544dc9b5474828da866702f3b66a026e0e4ef173973786bb75c0cc6d5cb5",
- "dest-filename": "filelist-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
- "sha1": "abf73dfab735d045440abfea2d91f389ebbfa229",
- "dest-filename": "filename-reserved-regex-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz",
- "sha512": "85c14ac941b9ef2586033bb508cb7f74fcd866ebfe8c02544fce5b2fc9ab5ef35eea15a3eb210711ce0475c82203a677a22d7ff705c97593d7176759360c203a",
- "dest-filename": "filenamify-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "sha1": "d544811d428f98eb06a63dc402d2403c328c38f7",
- "dest-filename": "fill-range-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "sha512": "a8ea3d17e74c5260b62dc6f805b56f9ca2714cf8c29be451a5ee200ee1abce42fb984565fdd8d84aed8e750d8f6b7d36378a2a91283d8abea368b589d94495a5",
- "dest-filename": "fill-range-7.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "sha512": "68059c5b9eeec5536b419a855e3213a56dec2144261c61b7a926fd9946a1f4c80c0b835e5a134e94d8d7118ab71e3440bcbe9aad4be2646189b0183acf4cec58",
- "dest-filename": "finalhandler-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz",
- "sha512": "8c1d821c97aacba6bcdb4b2c8aac2b28c7b20ba9cd766adc8242962569a9a31a44f1129c89825709c5d1ab58760330a8e48e4125e376b641843b784b4ee78f44",
- "dest-filename": "find-babel-config-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "sha512": "c17655e5e985123aeb89d220103d753a850a2f18988c072aa2dfcd25d0243a1949faf1b3c213807dc1b9397d633fe4b43dc8c49fc6dd309bfe8368f04373a78a",
- "dest-filename": "find-cache-dir-3.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "sha1": "45d1b7e506c717ddd482775a2b77920a3c0c57a7",
- "dest-filename": "find-up-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "sha512": "d720fa4662c8d5705fc6e82f391c25724e9fef9b582fe891d23ab0b0eacec4c672198a94b83849d25e005dd3b5897fc54ecf5c040304935816484c759126f296",
- "dest-filename": "find-up-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "sha512": "3e93b001d43f6255d0daf8fc6b787c222a43b98462df071e550406616c4d20d71cab8d009f0ec196c11708c6edd59b7e38b03a16af6cb88a48583d0eb2721297",
- "dest-filename": "find-up-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
- "sha512": "61b7df6ab85c89c1213ab9b80adaf074a05d0aecf9efa44b761243b087ef36dc54ba17517add6a65cb0c8ea6de3ed02c78a7409c3c8cfc8c976eeecf44f44b62",
- "dest-filename": "findup-sync-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.1.tgz",
- "sha512": "77ef676bbb7d1721fc8012683434a2dbc984e0d8105461afc50e1a1ed1517ad8f28794978eebacf95e4465ac4598575755e9923abc7496c80497f64c8e739624",
- "dest-filename": "flora-colossus-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
- "sha512": "fa16f1a0b6c531b44a0f0a215fc1a44dab5a1aa3ba25bee31b0a40970832d9b233db95ed466eca13324cefa4755a2353e52c19917e18ef94b0068964a6613b89",
- "dest-filename": "follow-redirects-1.14.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "sha1": "81068d295a8142ec0ac726c6e2200c30fb6d5e80",
- "dest-filename": "for-in-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "sha512": "1131249521a2e6dd10319ba25e803f43abdc9f170b40fe6f76e812a6e0328ba4951a2d9c94f3e9fb180486e31a1c2fb31a09f7d4a776df95b7e5fec7ca491ac3",
- "dest-filename": "form-data-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "sha512": "6ee446d1fa41b511d24c238049eea10f6e7cb44b9b16844b6f864d03a3713151cdc3680e7301e8f70c9a6e5ccccce039cfdc40f4bd4a36393f36de8c4fd698a3",
- "dest-filename": "forwarded-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "sha1": "4290fad27f13e89be7f33799c6bc5a0abfff0d19",
- "dest-filename": "fragment-cache-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "sha1": "3d8cadd90d976569fa835ab1f8e4b23a105605a7",
- "dest-filename": "fresh-0.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
- "sha1": "83c60afc58b9c56997007ed1a768b3ab303a44fe",
- "dest-filename": "from-0.1.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
- "sha512": "0b9a306f5e2ef5e2708b328675c85c0d441e16d9521c7b61064f296d7f557353c566b2e899bb9d8c39cd9ecf3c698b250b217a218e52530dd1a33eb14a170421",
- "dest-filename": "fs-extra-10.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
- "sha512": "abaadb743775a369809d0ade3bb6000c8c5ffd6871e001c18917fa77efdc553f21e38b2cfa51e0c5fd457a672a0e742df57ddcb7831c1ebf893069584ac2bb0a",
- "dest-filename": "fs-extra-4.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
- "sha512": "6090da0896449c199c6f0d777ef74033d03034e2703b3ac4e29a8ca81ab99c5884a9752a1f094ae01fb7a54c3a24dbdf48fb57d39c451ed632ff59e2d357860b",
- "dest-filename": "fs-extra-7.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "sha512": "ca1950800ea69ce25428eb11505b2025d402be42a1733f2d9591b91c141f45e619cb8e8ec0b718f9989ad26b5d1ec3a8f72fe13fe0b130dd1353d431a0eb46e2",
- "dest-filename": "fs-extra-8.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "sha512": "85c8376667a94b7d3fec1485a91be8a370ce310bbb223ab13b99c20edfb333d5d68dbdf75a0ef388d4fe42fa9bb9cdfe816a733b4d89b9b5729361b866fa3539",
- "dest-filename": "fs-extra-9.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "sha512": "57f26038b1424be47a55cab4b250ae69e58474d0b7a2e0e524c348b1a707d95b402e2bbd995e0b3eb1dce5c0e5f24e5ac3a27c8f08165a9893a39458866233be",
- "dest-filename": "fs-minipass-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
- "sha1": "b47df53493ef911df75731e70a9ded0189db40c9",
- "dest-filename": "fs-write-stream-atomic-1.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "sha1": "1504ad2523158caa40db4a2787cb01411994ea4f",
- "dest-filename": "fs.realpath-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "sha512": "c88a2f033317e3db05f18979f1f482589e6cbd22ee6a26cfc5740914b98139b4ee0abd0c7f52a23e8a4633d3621638980426df69ad8587a6eb790e803554c8d0",
- "dest-filename": "function-bind-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/galactus/-/galactus-0.2.1.tgz",
- "sha1": "cbed2d20a40c1f5679a35908e2b9415733e78db9",
- "dest-filename": "galactus-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz",
- "sha512": "17cb14e39c90a63423c4a926d5438085fd14fced1a16dfff165ee1b2b355b68fa96ad3078ecedd3c8f6614e19429b86b80a9b44b71235b7b1c305b909964913b",
- "dest-filename": "gauge-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "sha512": "de137b35ab2462f3032d0639e609d6dcd43e99eb0401ea53aa583e5446e3ef3cea10c055361cdc19861ea85a3f4e5633e9e42215ca751dcb0264efa71a04bcce",
- "dest-filename": "gensync-1.0.0-beta.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "sha512": "0f214fdc133fdd81d340e0942ffc343991d1d25a4a786af1a2d70759ca8d11d9e5b6a1705d57e110143de1e228df801f429a34ac6922e1cc8889fb58d3a87616",
- "dest-filename": "get-caller-file-2.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "sha512": "91666b9d5338d900a2100d888356c6f338e820c3a0c56c1808478d77063a4effdc392786a5ca17e295c77ca53134a56802b9eb12bd9ef6cae7031c4622b692f5",
- "dest-filename": "get-intrinsic-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz",
- "sha1": "6432796563e28113cd9474dbbd00052985a4999c",
- "dest-filename": "get-package-info-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
- "sha512": "83f4356934833b11697215c2e22f195afc40d659cfab1fc91ea729230d3f2d7f53f31fc605b8ba62794de6785a2881644fca05b2c7142a00c96317f07d2e90b1",
- "dest-filename": "get-port-5.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "sha512": "18c6ade04279d7ad64232d877af2e5af896e363060be68f8d7729a400ee3b7857c078443b1fa4793b590f4656a7d8cb2c7c392fcbeba2a8c7eac944d9252caef",
- "dest-filename": "get-stream-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "sha512": "9c117e175ac06550aefe9eeb8f3800f986f895f617ae997b6ba56626b53cc05f48d422af3ff4303cd6479ce9706d3918e9dbed148cc5312c905db2e84d03d1a4",
- "dest-filename": "get-stream-5.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "sha512": "d8499d1f562f210899a65b4236092e8949f2ba4cf133f47a343257df529edc11b536ae5bd12d8f857e7d50a8bdbd9a4f0d055daa7fb521c680c27cd34f9bc28f",
- "dest-filename": "get-symbol-description-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "sha1": "dc15ca1c672387ca76bd37ac0a395ba2042a2c28",
- "dest-filename": "get-value-2.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "sha1": "9e6af6299d8d3bd2bd40430832bd113df906c5ae",
- "dest-filename": "glob-parent-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "sha512": "9645f51c95f0c8c729af0ff961465cdacec3ae90221c1db5fd5f84d6b1d4ad5368924bc1e9ba8ccd3d157d5ebff3a64d69bb75935e18388693ee70ef397dc88b",
- "dest-filename": "glob-to-regexp-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "sha512": "9662dfea0b72acfabcb538d29ab3bde3005e41b151dc76cb1dbbb20faf70bb2424226a76856a8c181e3b397eb914190f7df3bae3520ff6359ad73e22bea1b6e9",
- "dest-filename": "glob-7.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
- "sha512": "3d3e9745e27e0f4ec9bc6a3140c913eaa8e2fe354d7d7fe1dfae171d9396791cf2eb8b1216bfb1279397ecb2376f830f43374be07f18f0cd31ccfa6c54cc00f1",
- "dest-filename": "global-agent-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
- "sha512": "bfc868d834b94620a37ed8f59c3f4d9a77da3b34ddb9ded146755df6414d3a3a996c84a5c790d0f8ead3932c20774748b7ba050af29eb59487a0770fdec0dd88",
- "dest-filename": "global-dirs-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "sha512": "b0ace91247f5d46a4e16ec346738f39ade01e146708ce706ef9ecf3efadf87170b15bab4c29b20a4eab1a71b71162086e03b46f7733a5d155b176a0675ebfb6e",
- "dest-filename": "global-modules-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
- "sha512": "3466df989069f71f08c722527753fea2d60af2fa27a0969cb4ea20ad57c5448004635ba48a5f1148a0f3d98a3bc21d688a1979d65febe96e1ea6478a247a8bf0",
- "dest-filename": "global-modules-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "sha1": "dbf743c6c14992593c655568cb66ed32c0122ebe",
- "dest-filename": "global-prefix-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
- "sha512": "6b00a89c9495087546343eb1ded98c68a710bf05cb8637649a89b2d96f86a1aba2f183e06205c965ec218377d60be0e57eaa90b9683c030aa31930f69c03d55a",
- "dest-filename": "global-prefix-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
- "sha512": "e2cf83c9c896055d1e2b5e3cc2a5f17265406c554faad737b04b5413f19341fb94f34af248b70c8549872921c8eff2c38fcab4803608d6522145107b89e440aa",
- "dest-filename": "global-tunnel-ng-2.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "sha512": "58e069fc410652222c252a7bc1cbffcba30efa557d5289dc5aac6e15f9bc781c3358d8327c177a1b3f8878a43d8c29b28681fdf60d793374fe41a5471638b354",
- "dest-filename": "globals-11.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
- "sha512": "6509d214ed656bc3fb6ae20e4040a79b4b12ba831e692ab4104757301145d9024ee2e35cc1bca14a01b732bb9635b153a822e6c55c063a5ecb67d9004af1dd79",
- "dest-filename": "globalthis-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "sha1": "f5a6d70e8395e21c858fb0489d64df02424d506c",
- "dest-filename": "globby-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/got/-/got-11.8.3.tgz",
- "sha512": "ee0b50e4a88f87546d192f7f25bbf5a1f0e9045baae368327c489bf9e8da44126e8ffded405791e7e830e7b7b88a9694f1cfeb0a3bd7e9f910cf69720e51803a",
- "dest-filename": "got-11.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "sha512": "47b796a6d5ee198c708a3b34795fafde8ebe5c7d48a952bc74938479c41f4e6927730f4057875cc3f0e1c62f0c765a8fb61c71a59ca2ccccf283c453984b06f9",
- "dest-filename": "got-9.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "sha512": "36d371a947178295b688cadfa927d1ef71a5b77f4af812f05ac3ecf78c91eb7bf8e53d166de8fb79198be5c59fc0482a5e79a3429df36894ec85d456fea0b665",
- "dest-filename": "graceful-fs-4.2.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "sha1": "4cafad76bc62f02fa039b2f94e9a3dd3a391a725",
- "dest-filename": "graceful-readlink-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
- "sha512": "f509f8c81c5e971a21d8ec3ada73fe29afe4327397462f015e745a5307b32cd86a7a59cde3dc4acf817f74f3fc3982f12f1aba243b596f68bd5f39d441b34f4e",
- "dest-filename": "handle-thing-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "sha512": "2d2052d8b8db3414dfeb6f3b2446c4cef2607ed905e6a164982a3d8434690332a150e949fa1c7c75de144acd344a0b14370738eb5ec9f648b962d10294cd9f7c",
- "dest-filename": "has-bigints-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "sha1": "b5d454dc2199ae225699f3467e5a07f3b955bafd",
- "dest-filename": "has-flag-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "sha512": "1329094ff4352a34d672da698080207d23b4b4a56e6548e180caf5ee4a93ba6325e807efdc421295e53ba99533a170c54c01d30c2e0d3a81bf67153712f94c3d",
- "dest-filename": "has-flag-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "sha512": "7215daefdacbfd40b62a55f5ee3a37bd11b3d1acda584c79b46a99839a4edcd532109541d7b74caee425cc208e7d4bc496084a726e75f78f81091be2d91bff1b",
- "dest-filename": "has-symbols-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "sha512": "9058dc48d867946575932a0693b3972926b01f924e6ff2f351ce70f41d3684e4ced1d7c54636c740abe0d5de9c7f71db7949ad53d55b6d5deacd9d937a1f7b59",
- "dest-filename": "has-tostringtag-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "sha1": "e0e6fe6a28cf51138855e086d1691e771de2a8b9",
- "dest-filename": "has-unicode-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "sha1": "7b1f58bada62ca827ec0a2078025654845995e1f",
- "dest-filename": "has-value-0.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "sha1": "18b281da585b1c5c51def24c930ed29a0be6b177",
- "dest-filename": "has-value-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "sha1": "6d61de95d91dfca9b9a02089ad384bff8f62b771",
- "dest-filename": "has-values-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "sha1": "95b0b63fec2146619a6fe57fe75628d5a39efe4f",
- "dest-filename": "has-values-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
- "sha512": "52a051aa2e23bbb4fe4ea18d76a00ed0f692546b0318950142f93d79458d191635085183cd884b5a833b25011e9a796f55cbff60499cdb0356f010b6e049d4b3",
- "dest-filename": "has-yarn-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "sha512": "7f676f3b4554e8e7a3ed1916246ade8636f33008c5a79fd528fa79b53a56215e091c764ad7f0716c546d7ffb220364964ded3d71a0e656d618cd61086c14b8cf",
- "dest-filename": "has-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "sha512": "17fd439d418fa29391662d278be0afac28074391721001d12d2029b9858c9ab6d2c28376327ffb93e1a5dfc8099d1ef2c83664e962d7c221a877524e58d0ca1b",
- "dest-filename": "he-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz",
- "sha512": "722aba845b121bf069b760e6ad926dbfee7ace93dd9eaf8d4388a3105aef78a374646d66865fcb753d4d419f6c7bab72d5f002708e1de2f62a0bdbfc118a47d8",
- "dest-filename": "hexy-0.2.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "sha512": "7929a6584e5b6532b6368bb8834008df367daecc29ec644aa0a5d2d412d492f3ef88eaace184cdd5d8d022aad7cbd939804b5d2cfcbce898d1c2c34cf6d9c370",
- "dest-filename": "homedir-polyfill-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "sha512": "9b120301bf4bb26e83a0e27bc47fb9f97e32d4b53fe078b9d0bf42e6c22cc0adc9cd42d2e1bc24d45be374182f611e1bcd3e2db944220b5e451367f91db2ef63",
- "dest-filename": "hosted-git-info-2.8.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "sha512": "9320ae10e5a326a66e0db447ccbf15f77373421c0807bd681564b2cd5a3e28f648fa99d03cfc6e71d92b399be42d19eb7f9511b1033e209d3d0f0dbd71100b20",
- "dest-filename": "hosted-git-info-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "sha1": "87774c0949e513f42e84575b3c45681fade2a0b2",
- "dest-filename": "hpack.js-2.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
- "sha512": "f27c6370171df30a2f6de2b1ee1df04e38b87bafab85a56e3cda4cab05a09c787e37d4e8aac0ace97ced59104f43e52dceca0c01d299b5410da15cd4fc432d64",
- "dest-filename": "html-entities-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz",
- "sha512": "0c4914c12774b228cae4f1779115aca588b9e973fb6d3364ca0e58592cc17636920e6bc2b9f7a9e5ce15a5bdcf05fea550bd183ed2f005fcbd7cbd2de6104018",
- "dest-filename": "html-loader-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
- "sha512": "64faf930d39baa757f4fd6a4b213ca6d58323aa2e6cbe071a3b8ee2827d37e78cd9e24c031dcb8873db5610aa8a1f301243da475111aa8f3dd4e1a11efc4e0c6",
- "dest-filename": "html-minifier-terser-5.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz",
- "sha512": "ab9a187738ca5083d05633a8b2382f08740ebfd12db7d098607960bc97971b4a90bdd4a88e706ae2f01d401c27d7ec86bde0301c2a1efeb311f3aa335f7f9cd8",
- "dest-filename": "html-webpack-plugin-4.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz",
- "sha512": "e330ead5ad73844e2042ca3f7392cfd4eb6b8584e7717352a6f258b56241b570044cf94c7e2dc814d8c6b906d82ee558e1947440ca9156fa383ddcbd28bc8ff1",
- "dest-filename": "htmlparser2-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
- "sha512": "832c8f93aae0a272c51031a879181035a114bdd27892d4e699487f876b7bb3e33ca0fa483f180d00259afba112479ee45ecb70a8f882badd15f0d469730814ec",
- "dest-filename": "htmlparser2-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "sha512": "71aacf92571487b44e5912bb0afdbb44fb5d858854b1e95afee7b9fe32b38de815bd70ea33620b13d4360469fd259261d60f3b729e7ab2efc58104b37164bc71",
- "dest-filename": "http-cache-semantics-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "sha1": "fa7168944ab9a519d337cb0bec7284dc3e723d87",
- "dest-filename": "http-deceiver-1.2.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "sha1": "8b55680bb4be283a0b5bf4ea2e38580be1d9320d",
- "dest-filename": "http-errors-1.6.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "sha512": "2a993d4a6ecd988f911e19e3e8e2160c8d5de9f228140b45b7d44b693311960ffcc38f63b804adb2b060a740e9e0e7717556d121e2a1b4252fa22fd1b8084ee2",
- "dest-filename": "http-errors-1.8.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz",
- "sha512": "c7e2551243b63e833caaaa5b3db38bddca873f07ab7a9ecec332bb032fac3108cacda282a96be3a179b9b6a30ff6d5d65939d3cc08c885783e27df5762e3e13c",
- "dest-filename": "http-parser-js-0.5.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
- "sha512": "934cdd360a964c603a69e211569bdf5686f87cbe767537da7a1ca583463852f4b24af3aafd8f813b23eb82952b03b1f296abd4f2f2191ac46e5e6b29b245744e",
- "dest-filename": "http-proxy-agent-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
- "sha512": "c876138163103bc56fc0d4b6d9e2cb968024bee9e0b0a74a4cb3bc00995fb5820a35f26bdc62b7ccad1909fcc30c6501b6d74673cc45cb59828adbcd290b42dd",
- "dest-filename": "http-proxy-middleware-0.19.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "sha512": "ee6cffef6d406e72702156e7692bf50b3dc09b464b4ff501c240bdd95971857bff93f04141f3367d712540d0b6ec1546af4bb0529a6560f40cf4b9da04c47935",
- "dest-filename": "http-proxy-1.18.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
- "sha512": "57edb7b0332bd765a7cfb893703789af73ba008c659ef4ff6e66800003ff5dd6b7e42f74a7de7df69d05d5e1d1fcdd4a20b592a1654088e3058c105769748cc6",
- "dest-filename": "http2-wrapper-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "sha512": "124626e4170a50689dbb1cd2b77129a64a3e3e2356344a5ae324a4f6f4c2eb00ec4095bdac749af94846349a11629edbcfa1edd5e69121ae90689a8ee6b0856c",
- "dest-filename": "https-proxy-agent-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "sha1": "c46e3159a293f6b896da29316d8b6fe8bb79bbed",
- "dest-filename": "humanize-ms-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "sha512": "bf73179d901cbe7cb091350466898801cb657bb4575de79d391df5c3097b565ca85cee108bd6abbd27a73505a77b54dc4708422f51f02c8db56c4a9da63f3fac",
- "dest-filename": "iconv-lite-0.4.24.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "sha512": "e1f0a4efdc2c84c773329dab1f4eaa5ab244e22a25a8b842507f8e8ae22053ef91074fbde0d9432fcd5ab4eec65f9e6e50ab9ea34b711cdb6f13223a0fb59d33",
- "dest-filename": "iconv-lite-0.6.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
- "sha512": "e1a16aef0bd6c8c1ca831b07f1042d1a9bdb01209ff9e337c0f44b23a47e3200274c267a49362c46fb6d2ef4562b435f89fe69885dfde12b771de2436a58c63c",
- "dest-filename": "icss-utils-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "sha512": "75ccaa843bd7d42e3a95765c56a0a92be16d31141574830debf0dfe63b36ce8b94b2a1bb23ab05c62b480beeca60adbd29d5ce2c776ef732f8b059e85509ea68",
- "dest-filename": "ieee754-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
- "sha1": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501",
- "dest-filename": "iferr-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
- "sha1": "05698e3d45c88e8d7e9d92cb0584e77f096f3e43",
- "dest-filename": "import-lazy-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
- "sha512": "6fab34e26dcefacdc21926ea0c8c8fe11e9a03001e62556af7e59459ea7a8876bc11345ff727a2d54e3c0b93267c9995f4088b61804a3ccabf5befd646942609",
- "dest-filename": "import-local-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "sha1": "9218b9b2b928a238b13dc4fb6b6d576f231453ea",
- "dest-filename": "imurmurhash-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "sha512": "11d0c366ee00d8ec882bb2ebff6cc6fb0e6399bba4d435419c4c11110bc1ceca412640846d16bc1b153596085871a1890a745689b8c35e5abbefd5f5ff2e71c2",
- "dest-filename": "indent-string-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "sha512": "202963f97cfde3e77b8ab1f9a91c9f2689ce75f4f3b836a27c4e993d67f1d0dd3efc04d909bb933eada9ac5979dbabab91077dd16c942888750df050da1333f4",
- "dest-filename": "infer-owner-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "sha1": "49bd6331d7d02d0c09bc910a1075ba8165b56df9",
- "dest-filename": "inflight-1.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "sha1": "633c2c83e3da42a502f52466022480f4208261de",
- "dest-filename": "inherits-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "sha512": "93fbc6697e3f6256b75b3c8c0af4d039761e207bea38ab67a8176ecd31e9ce9419cc0b2428c859d8af849c189233dcc64a820578ca572b16b8758799210a9ec1",
- "dest-filename": "inherits-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "sha512": "255ff2ba0576bb35b988c4528990320ed41dfa7c6d5278de2edd1a70d770f7c90a2ebbee455c81f34b6c444384ef2bc65606a5859e913570a61079142812b17b",
- "dest-filename": "ini-1.3.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "sha512": "ecf9c5e283770af645db7003840e7045a60442927cab281291bb535d605e5d65e61154572bed484dc8875b01e1b23bf54e65b432069c22fea1122e695f935074",
- "dest-filename": "ini-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
- "sha512": "4b5cc1a350facdcb32b82e8f326639fb9e583082d0f5abfc968b4cc78e3b06ae92020a3fb032bacbab942a6b98856ede69c9c88457ec3e608d61d0f3b279c30a",
- "dest-filename": "internal-ip-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
- "sha512": "3b40c1d490bfb0fc9997b708a3bf27e5d47b7944b0c2960f8974614f337165500c52e07cbe59d11722f176b553a24b3a5cf2d59c57dbcda55de562e386083ebc",
- "dest-filename": "internal-slot-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "sha512": "6a013841f0762e4a7db880a7ec102aa2c730e1264ff644c4da1c62148de304f99725f76a89a8536d4b8a1ac3283761ada8bf40c61622a00715be0b1bd47bd16c",
- "dest-filename": "interpret-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
- "sha1": "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9",
- "dest-filename": "ip-regex-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "sha1": "bdded70114290828c0a039e72ef25f5aaec4354a",
- "dest-filename": "ip-1.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "sha512": "d0a23feb4ef1a31493a07ec68cdd457d26cba14d3e6ed4e2723b1049642587f859ca437c2a998c7fbb98c0f5b747e6a467a47fc35f199574870585e26143cede",
- "dest-filename": "ipaddr.js-1.9.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
- "sha512": "a2998d217eee1674bde8db4f9a1590810c7afcd60582c51760c96571fcf058a50cc1fa3c924bb54ef13a86435c1fe435b6ce5c315aec63b8f46f15d00dc8aef5",
- "dest-filename": "is-absolute-url-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "sha1": "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6",
- "dest-filename": "is-accessor-descriptor-0.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "sha512": "9b98671d391c56c3dfab1dc02a5cadb483dbec9f97ca41ef24fd81f5b6438e584b22812ae17a0aeb8560edba199555982ba2d463de1d60f104ecb87466464a71",
- "dest-filename": "is-accessor-descriptor-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "sha512": "f10ec40118f31272a9b7f3c20fb7b5720512d1ae97f2ee6d75288ca978688ce76857d4ec32c88efbd54b0b9bc098ef0deff1a65e7ef28d1f2a9c0e9b5401337c",
- "dest-filename": "is-arguments-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "sha1": "77c99840527aa8ecb1a8ba697b80645a7a926a9d",
- "dest-filename": "is-arrayish-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "sha512": "cc1f42aee31a9a3ca6f358b6259dd4327e783ca1ac433b097a8eb1bcddc7249e0202c40d07a891bada764e8efb39f08dba8c6ca6c221cda3e83b5cf20848453a",
- "dest-filename": "is-bigint-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "sha1": "75f16642b480f187a711c814161fd3a4a7655898",
- "dest-filename": "is-binary-path-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "sha512": "80361a2872669e3e1a5b1ca3e981f25d5a5d41ac2d54b1d4e5c6fe7b3b4f19ccdfe9c8ee4ddc2f7b964811f817a87e1ee7b027d43d4029ff02677918ad046a60",
- "dest-filename": "is-boolean-object-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "sha512": "35c7402f0a579139b966fbdb93ba303944af56f04a0e028fe7f7b07d71339e64057ece194666a739e2814e34558e46b7405a0de9727ef45dd44aa7c7a93694e7",
- "dest-filename": "is-buffer-1.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
- "sha512": "9ecbb0b7165f317ebb3abca5f4b090faea670b4674060a709eda52f3d9b51ff4cb174ccd7f37cb315ffd59affa319b23d1a72912300ed0a175c53e9974b97de7",
- "dest-filename": "is-callable-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "sha512": "61f253eeb929401d2ea5db1d1cb196aef84125f71fccd35ac180cd232417273d0856219fef93bc1013ca49dbf0dab17e2c60ac5f8159f2d72bddbd7d2dc66ae3",
- "dest-filename": "is-ci-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "sha512": "658bc282b79fc2aa10eb24f26146d0bbae07b084d9dcd7ca5f597368461d9130dc7cacf3088ff0b6145160a91d8c72855603625ca00a9bae59a35a64d9ab3f41",
- "dest-filename": "is-ci-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "sha512": "49d34252cdbce21af8d2115314fea5d087d9fd14ab317177aa0a111dddffefdba7513beb14efc9a17c241a6fb927f39edc4fdbe46b271b7df4b94360469bb53c",
- "dest-filename": "is-core-module-2.8.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "sha1": "0b5ee648388e2c860282e793f1856fec3f301b56",
- "dest-filename": "is-data-descriptor-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "sha512": "8db457cb5166b40a028d0915988558c2ebaa0c551b68e7838e679dd6d3863ebb0c86d240e2b0fdb64800d05d6a2778111515dc1d856475e68fe74439ac4fe32d",
- "dest-filename": "is-data-descriptor-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "sha512": "f5841a4b1b00892c1cbd2df7301937c130959d62be1e117c5594768d1c5e84cd7a41c54e747a8f9f854f1e644ae254abdfc9fd26b8aeac89cb70ff74c6c60d7d",
- "dest-filename": "is-date-object-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "sha512": "6af0d8af4481dc3c0ef73b0ca2fd20282112158a829c4e21abfe33dd375496e904cb9b7d0b4611abb1cbaec379d8d01ca9729a7a97820f49fe0746ab9d51b71e",
- "dest-filename": "is-descriptor-0.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "sha512": "d9e8ace56a90195ee97a8a03c8b98d10f52ba6cf7e4975f973da4bdf1101fb87bd1e71ae0daee607b907c47c3809ba92f64d53da1387de688bf27f16b62615b6",
- "dest-filename": "is-descriptor-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "sha512": "17e8b604ab05ac7eba89a505734c280fcb0bcbc81eb64c13c2d3818efb39e82c780a024378a41ea9fcfcc0062249bf093a9ad68471f9a7becf6e6602bef52e5d",
- "dest-filename": "is-docker-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "sha1": "62b110e289a471418e3ec36a617d472e301dfc89",
- "dest-filename": "is-extendable-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "sha512": "6ab9d73314f5861a0aa3d9352d976694dc897430dfcb6bf47d78c5966a24e3e8bcba5ffa5a56d581ef5b84cef83a934f40f306513a03b73f8a5dad4f9de27138",
- "dest-filename": "is-extendable-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "sha1": "a88c02535791f02ed37c76a1b9ea9773c833f8c2",
- "dest-filename": "is-extglob-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "sha1": "a3b30a5c4f199183167aaab93beefae3ddfb654f",
- "dest-filename": "is-fullwidth-code-point-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "sha512": "cf29a6e7ebbeb02b125b20fda8d69e8d5dc316f84229c94a762cd868952e1c0f3744b8dbee74ae1a775d0871afd2193e298ec130096c59e2b851e83a115e9742",
- "dest-filename": "is-fullwidth-code-point-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "sha1": "7ba5ae24217804ac70707b96922567486cc3e84a",
- "dest-filename": "is-glob-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "sha512": "c5e9526b21c7dfa66013b6568658bba56df884d6cd97c3a3bf92959a4243e2105d0f7b61f137e4f6f61ab0b33e99758e6611648197f184b4a7af046be1e9524a",
- "dest-filename": "is-glob-4.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "sha512": "8b01aa3b7276d5a692902ee35a71cffdd89f6b3c12ed215e22ac6feb012d2d4f18e4a9731538f2a9c4884f477cb38f9d0e12b2b6c93d3c96760644b9799c1045",
- "dest-filename": "is-installed-globally-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "sha1": "3d9877899e6a53efc0160504cde15f82e6f061d5",
- "dest-filename": "is-lambda-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "sha512": "76a26f6ab2dac17b056cd0de256ef3033f08b49f5c776f18b9fbae1738741bca4d1e324c9d8d3c0efeec617dae17952940ec2278078e13111801659fbbb65950",
- "dest-filename": "is-negative-zero-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
- "sha512": "596feb40b39acd4abe493fdb080541a7fda83044562ec47b3ab2b2b74e7674d0e4e031dc0c4d3fed04972139668be541715d770df21bcac1b7b59266e517dd04",
- "dest-filename": "is-npm-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "sha512": "6c454eaa245cbe8df33b5f86da554ccbe8249049bd621edc0cc46eb0a2aee5924a3d46122702024ca66b34a1c0d846d23f44eed3ee81fde9ac60d1d9ca7e8af2",
- "dest-filename": "is-number-object-1.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "sha1": "24fd6201a4782cf50561c810276afc7d12d71195",
- "dest-filename": "is-number-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "sha512": "e350a27e483a7bc4f2952a5db53a5e2d532abd20445734edb47bc4443ef8d7ea6767c00dbf4d34e0c44be3740a3c394af5c1af369e8d6566540656c65d8c719e",
- "dest-filename": "is-number-7.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "sha512": "76ba831b771b733c7110946839770e8ed769d49fe5ca9d66367d316b39d1b3cfa6b8186041cae76eca68c795f97cec341e73276df0f3be710c12da83109128f3",
- "dest-filename": "is-obj-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "sha512": "c3de366d372287c7dd24f266407173912efa3443fc2b3cef9b0f76717b1acdbf229edc0ba8f89b3cf7577f800d74a577ad832eb90606216b6fcfd262941dcd15",
- "dest-filename": "is-path-cwd-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
- "sha512": "acda1c5c7822a4efabbe73fa764df3236d11a4eb6b00cfe4cdb076e7c530e415abdd3a578bceb5cb38e8d7a0e7e21528c74ee2c3903278c2c75acba3923cef45",
- "dest-filename": "is-path-in-cwd-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
- "sha512": "c22ca14f37c35acbf0016e77381585e73baf68e1a567a3f063101b3d50e1a66fa0334f712901a306affcb98375d9a0ef3319c09eadddc53ca84a844d9a0e5816",
- "dest-filename": "is-path-inside-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "sha512": "15de200016fec9c18098aa2ef1e31fb42ba94a2af9951c6a7f8683fef774703daa7381cbd3b3a309eb8732bf11a380a831a782283074fc40813955a34f052f3d",
- "dest-filename": "is-path-inside-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "sha1": "71a50c8429dfca773c92a390a4a03b39fcd51d3e",
- "dest-filename": "is-plain-obj-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "sha512": "8793e98179168ad737f0104c61ac1360c5891c564956706ab85139ef11698c1f29245885ea067e6d4f96c88ff2a9788547999d2ec81835a3def2e6a8e94bfd3a",
- "dest-filename": "is-plain-object-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "sha512": "92f45dc43b31663873517d3b6672f27734b54d4fd32654d41c763860b2fcededfba14038f437e42ea832f958c5a1ca30cb6f5c2af7128aefa422fef6f234d356",
- "dest-filename": "is-regex-1.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
- "sha512": "214d0d9b2927619374ac285c2a144ed57f0b633e48b23fc5b2a87c3493927fe37f842393c32dbd177d8893b6be42ccc4eb721dbe6c1d4cf0dde9c679a60e1cc0",
- "dest-filename": "is-shared-array-buffer-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "sha1": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
- "dest-filename": "is-stream-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "sha512": "b44d945f38af8deea87cf5bb976ddc8c338c6b4f606fbc6502a1ba8c6e5e8fab8f577d939563f734a3e282d68678736ef5fa2171c458bc889931f38e9ce614b6",
- "dest-filename": "is-string-1.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "sha512": "0bf08f06a2969ef75cc6a200471c8e878bf551410e087a600dad16620a4a0c532ccdcacf71f7e0e6e8704a03c22c3d965b19aaea2b22b33f3bb734f4d6db8686",
- "dest-filename": "is-symbol-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "sha1": "e479c80858df0c1b11ddda6940f96011fcda4a9a",
- "dest-filename": "is-typedarray-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "sha512": "a9cb6cb8b666210d3ebd248c7e856fc857b6f86484be7999d9ecd3ba9d5206c7bdfadc0209e89a97a1048b735cd8a15c7fafaacf61413e78d7b24f3184a49a3d",
- "dest-filename": "is-weakref-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "sha512": "7972b55089ead9b3e68f25fa7b754723330ba1b73827de22e005a7f87a6adce5392a4ad10bde8e01c4773d127fa46bba9bc4d19c11cff5d917415b13fc239520",
- "dest-filename": "is-windows-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "sha1": "1f16e4aa22b04d1336b66188a66af3c600c3a66d",
- "dest-filename": "is-wsl-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "sha512": "7cacc0adad2b18951407018180d90766e4e865c9fe4ed5c7a5e0a09a430930c631d6c40361a092ca32414826b69c7d431a6eecde7d68067a21a154c168decbc3",
- "dest-filename": "is-wsl-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
- "sha512": "56349e6ff9479a4a3277caf23d520abce0a7e03d64a0ca98fafab28e351f737c722ad3f87583b1338e2c66b9ea412cd276cdf1c8ead44cb4c2f4b5425602e783",
- "dest-filename": "is-yarn-global-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "sha1": "bb935d48582cba168c06834957a54a3e07124f11",
- "dest-filename": "isarray-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
- "sha512": "f1c2412f9b53776392d1d3388f3d3bc107798347420aa2215313c81ad65f6b92fa85696f5793074c84f2fc3040b05f8e7b62d2d57de4ac1521370686516a56c7",
- "dest-filename": "isbinaryfile-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz",
- "sha512": "e7787a5c59e2abbed8756faca6846b79b8749a7993c513d395cb8802b3b9ee598c76ae2e04a14a69e4e39dbf76a185ab4a7fcb54bf8b4fe1daa76b45423f15fb",
- "dest-filename": "isbinaryfile-4.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "sha1": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
- "dest-filename": "isexe-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "sha1": "f065561096a3f1da2ef46272f815c840d87e0c89",
- "dest-filename": "isobject-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "sha1": "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df",
- "dest-filename": "isobject-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
- "sha512": "78ba4acab7c6de6cef184d83bbc5683db792911af2d3ddfeb723637586816c94bdbf5ee49c899818d5d009457480bc50b45f369b713c8916ffc1d49064ba2aec",
- "dest-filename": "jake-10.8.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz",
- "sha512": "ce3681d2c8742dbd775723ec77dd95ec792a17ac8a447f6f9b7debc01b7bacf62ba50bd2d670af948cb6a4809b2ad6be6635a78182cd9f87022b89f26648d2ff",
- "dest-filename": "jest-diff-27.4.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz",
- "sha512": "b64f68fa57794d6ab8d4390ad782f8c28c78b360fd32d4e929a015cd77ebe4250a9b964ad84c5c685134aa5b365bbd7313fe91d93c71acaf70dabeacbc014305",
- "dest-filename": "jest-get-type-27.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz",
- "sha512": "a8d47f921e9bcf40f2bf79baf029368357cb5b92a548e50d705421f3b5571d9c1673f818e97c272a87f1efa432b73df1e4b0d64f4f7fdbec979dd4e4686e1a5a",
- "dest-filename": "jest-matcher-utils-27.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz",
- "sha512": "5c3e0f293dd69f52d09d102aed9b13234551b8473d3ab08f1623b55cbedb7ed4c699f345d03704c0c1d182a8aeecd19ff19a190d11291ab0a7883923b7bf566c",
- "dest-filename": "jest-matcher-utils-27.4.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz",
- "sha512": "d29e6cceb88553453be1ccd14858c7e91c92ed46080249ff9edc0cb8ec13196ad020e8793735d7aeaef62cea8890928abc56cfabe6f264ab81cfbf1f8c111104",
- "dest-filename": "jest-message-util-27.4.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz",
- "sha512": "59e0a9329367a8960c4283a39b59d3b6c81b4785c7024d6ed34a83a0d050a3290cdbcd3efd39a0039421e60882d5e732e9ae5de216d2b07ce906dbb9caf95b12",
- "dest-filename": "jest-regex-util-27.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
- "sha512": "fddb12994908cb910119fbff2238ea985c6b34052904445f1acd681d13b20fbcb18c6ff0fadd063890d7f0ed64df6c9299defe6b92219c9536a9015c2789f5bf",
- "dest-filename": "jest-worker-25.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz",
- "sha512": "80758917fe978b90931b9402bd13abe86726a48a8d6290c9c9cf00d61fc3c97a87d6d0fa4a74423347775399ac577d43d8b07f53e13433e5b8a32bca578e2837",
- "dest-filename": "jest-worker-27.4.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz",
- "sha512": "aeed4758a7a4f2872dbd41c51ef139673435c80b09988bd17465af4a8295e765cacaec98038dfb4160edb574fc7995c349bb8ca4794bccf0d950f77a89d233f9",
- "dest-filename": "jpeg-js-0.4.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "sha512": "45d2547e5704ddc5332a232a420b02bb4e853eef5474824ed1b7986cf84737893a6a9809b627dca02b53f5b7313a9601b690f690233a49bce0e026aeb16fcf29",
- "dest-filename": "js-tokens-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "sha512": "a24307ece5d727b62b37d3a4dff497ae7bb8897f723a4fb6e67a97e22992da7a6ebd36039a8fd0119a2ac199186880e4de356f04e4ce20480485a2ceca7052f6",
- "dest-filename": "js-yaml-3.14.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "sha512": "c29c59b3d368c596891122462194f20c4698a65d0529203e141f5a262c9e98a84cc24c5083ade1e13d4a2605061e94ea3c33517269982ee82b46326506d5af44",
- "dest-filename": "js-yaml-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz",
- "sha512": "4f33bfeb61f179bdba40c6f8206948ff95fe40bafd52aa7514f930a76f8a388096f90faf4ae163eb573ca644fac009ece1670ae7a5fb0a64878497831963aac5",
- "dest-filename": "jsbi-2.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "sha1": "e7dee66e35d6fc16f710fe91d5cf69f70f08911d",
- "dest-filename": "jsesc-0.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "sha512": "398bbb5c4ce39024370b93ecdd0219b107cda6aa09c99640f7dc1df5a59dd39342b42e6958e91284ada690be875d047afc2cb695b35d3e5641a6e4075c4eb780",
- "dest-filename": "jsesc-2.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "sha1": "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898",
- "dest-filename": "json-buffer-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "sha512": "e1b57905f4769aa7d04c99be579b4f3dd7fe669ba1888bd3b8007983c91cad7399a534ff430c15456072c17d68cebea512e3dd6c7c70689966f46ea6236b1f49",
- "dest-filename": "json-buffer-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "sha512": "9abab264a7d7e4484bee1bea715e961b5c988e78deb980f30e185c00052babc3e8f3934140124ff990d44fbe6a650f7c22452806a76413192e90e53b4ecdb0af",
- "dest-filename": "json-parse-better-errors-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "sha512": "c5b6c21f9742614e53f0b704861ba1ec727cf075ee5b7aac237634cce64529f6441dca5688753f271ce4eb6f41aec69bfe63221d0b62f7030ffbce3944f7b756",
- "dest-filename": "json-schema-traverse-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "sha512": "34cf3f3fd9f75e35e12199f594b86415a0024ce5114178d6855e0103f4673aff31be0aadaa9017f483b89914314b1d51968e2dab37aa6f4b0e96bb9a3b2dddba",
- "dest-filename": "json-schema-traverse-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
- "sha512": "ec313c9a91befdf570f9d4e98dbc67c78ed368c9c37ce2358f07edf60d55c9b96d64276ec9140f24fbdcfb3cca63d58f1f184f59ccf216e61ae88f0cc38894e4",
- "dest-filename": "json-schema-typed-7.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "sha1": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb",
- "dest-filename": "json-stringify-safe-5.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
- "sha512": "73bffc99b52c2a28006cb903e41d35d012b80fd2d99bb035a4d22d904c2251946920deba7b1bbf7bb6105b2b06ba7f9344a689a7c3217a633e5647d6bf8d9a08",
- "dest-filename": "json3-3.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "sha1": "1eade7acc012034ad84e2396767ead9fa5495821",
- "dest-filename": "json5-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "sha512": "68a4b85908cf7a7471890b02f7730d7e3c7e9db1783c0758ce677fd49223f07633a9f6eef3a6de4ee3605c3ccf9275a4d27d2e0119727b0668e2cfbe112dfa3b",
- "dest-filename": "json5-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
- "sha512": "7fef1c95dbbb5ffcbb44026eacc10999da0a5c607f5f9e74c3636bded4db7b32fa470104fe231c9beb599d77a866d2ae3aae9fb7cf82ab3124ac8831d5f3e840",
- "dest-filename": "json5-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jsonc/-/jsonc-2.0.0.tgz",
- "sha512": "076f356cb093d9344c41af80414418e4019ca9239704e29a6063f8c03ce803ff90b3051f37cb0e0de92d6cf12cf416aaecb18aba7e6341b345a73c06b9560a87",
- "dest-filename": "jsonc-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "sha1": "8771aae0799b64076b76640fca058f9c10e33ecb",
- "dest-filename": "jsonfile-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "sha512": "e5d8277563ab8984a6e5c9d86893616a52cd0ca3aa170c8307faebd44f59b067221af28fb3c476c5818269cb9fdf3e8ad58283cf5f367ddf9f637727de932a5d",
- "dest-filename": "jsonfile-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
- "sha512": "a41c5c0772c573c41581d820bd95b27b2b3e867acd5a0e0e719214ff55f9f64e6341d2c1942b1819141acf6df84aaa112d30a0307d347d8d314491fe17d3044d",
- "dest-filename": "junk-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
- "sha512": "f72909ff8e9237ff4a3ccfec89c87343b3af5f218360a19368394a306080960d942bc291cb88dbd1df2c15cfb44edd186274e1abc5f645980283be113f181c54",
- "dest-filename": "keyv-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz",
- "sha512": "e77d699062ea57704c834783aaa2452344759a42b5366e7120fda633a91e3f93fc59f16d0a483620ec29953526946a1380883dc90619fe4762861cfcf571f7bc",
- "dest-filename": "keyv-4.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
- "sha512": "2f3aad2ca954c22ac453297f9e2722ad598d88fbd8b3b9799fcc0e3cfedfc8956950f92f0a75bfbee8971a9ca51949673c39c1ef7d75ac047302ddcc86cc298e",
- "dest-filename": "killable-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "sha1": "31ea21a734bab9bbb0f32466d893aea51e4a3c64",
- "dest-filename": "kind-of-3.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "sha1": "20813df3d712928b207378691a45066fae72dd57",
- "dest-filename": "kind-of-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "sha512": "346104ae71fa176bd4b970e1f8e95b70a5bbff039c7dd447699ed55ada82ced7c7ae2ffef982a63f9d4e7567863eea8239b6ba924d8e4dee5dd365664c1f343f",
- "dest-filename": "kind-of-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "sha512": "75c4b5ba5fbdb66783f794fec76f3f7a12e077d98435adcbb2f0d3b739b7bf20443bb44fa6dbc00feb78e165576948d305172ba45785942f160abb94478e7a87",
- "dest-filename": "kind-of-6.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lastfm/-/lastfm-0.8.4.tgz",
- "sha1": "4dddf08297a6fa23f84d4827052a0d282fe99688",
- "dest-filename": "lastfm-0.8.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lastfmapi/-/lastfmapi-0.1.1.tgz",
- "sha1": "ce336dcf7cc81820c22dc40247c97b31133486fa",
- "dest-filename": "lastfmapi-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
- "sha512": "c1e4feaf491391141d09d60236d90cc165d04cc12cc0aac50649b872440e315861aa120c235513da1323fb58a28088604999b98139ab45704da06520693635c4",
- "dest-filename": "latest-version-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz",
- "sha512": "d3f06718209fc943240697838168a16a720017d2666611c1814844ab3bdff9a7613462e83fa4da888e6817ca326f7238e4ff8f727aea8a149fd353349741b9f9",
- "dest-filename": "lazy-val-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "sha1": "7947e42149af80d696cbf797bcaabcfe1fe29ca8",
- "dest-filename": "load-json-file-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
- "sha512": "f76fa1bafc4cbd894ccccb748883ae91cc18045a64609769976c6c67b2eb95ac8eec4f123aff8925410ad7b07f74920700e2cc7e1d9d659fd8d7c5a0986b5837",
- "dest-filename": "loader-runner-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "sha512": "a87d1648c06d9ffa07bb08f2fcdb9c1206f1e5d6f1c67c6ea7db383d55c95031d905063eb3435603dac97f9dd1067419c5f721edeb94ba2ee1a6800fbc02d974",
- "dest-filename": "loader-utils-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
- "sha512": "4cce7b55e1e9b6fe7af5dfc62a1e9301877329b9700cd8ae98e7641677a38c3d17c131fcecaf74c373bb022251a9d4285f282f8b55504c94cb1a1265ed6a80ec",
- "dest-filename": "loader-utils-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "sha1": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
- "dest-filename": "locate-path-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "sha512": "ec03bbe3cc169c884da80b9ab72d995879101d148d7cf548b0f21fc043963b6d8099aa15ad66af94e70c4799f34cb358be9dfa5f6db4fe669a46cade7351bae4",
- "dest-filename": "locate-path-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "sha512": "b7b870f6923e5afbb03495f0939cd51e9ca122ace0daa4e592524e7f4995c4649b7b7169d9589e65c76e3588da2c3a32ea9f6e1a94041961bced6a4c2a536af2",
- "dest-filename": "locate-path-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "sha1": "82d79bff30a67c4005ffd5e2515300ad9ca4d7af",
- "dest-filename": "lodash.debounce-4.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
- "sha1": "64762c48618082518ac3df4ccf5d5886dae20347",
- "dest-filename": "lodash.escaperegexp-4.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "sha1": "2d177f652fa31e939b4438d5341499dfa3825e99",
- "dest-filename": "lodash.get-4.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "sha1": "415c4478f2bcc30120c22ce10ed3226f7d3e18e0",
- "dest-filename": "lodash.isequal-4.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "sha512": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a",
- "dest-filename": "lodash-4.17.21.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz",
- "sha512": "1ba03f9c92d18163aebb074db80ea4a28bdf115d58a6aa801b8a5152515acf78e3d90359f0ce2f06a9d503e1c14e653f00c354b653ac3264a917a3723a3ced6c",
- "dest-filename": "loglevel-1.8.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
- "sha512": "5ec3fe2a14227f86e35f591bb928b248914d01e84dc602dbea13d1189f50b14afc6a31e4b9719dac79855135145e10f0557d91e5b63824d644c1b52232157e30",
- "dest-filename": "long-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "sha512": "972bb13c6aff59f86b95e9b608bfd472751cd7372a280226043cee918ed8e45ff242235d928ebe7d12debe5c351e03324b0edfeb5d54218e34f04b71452a0add",
- "dest-filename": "loose-envify-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
- "sha512": "edf9b797734017d59f37a5b724e99fe5daf0a55a97efc26da0627703a5b46ba66795d338d70d9f5790f8f74a6c2854e931db3c4c9b1efde1cb145b0d1c78c782",
- "dest-filename": "lower-case-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "sha512": "1b62e3eb5b570e754514e8bc55976cf92a108ed402ddd82890a7431b69939b5b71e26e743541c1399481c10407cb2d15d760342531b889c7d9407fb13f287c54",
- "dest-filename": "lowercase-keys-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "sha512": "b6a357ad2efca0c384ef734cc4ae0430b42c428c167fc8caa281fd83bc4f6af453ef4e91e9b91027a0d8d937bb42e91a66cba5c5adf4c10edb934a66e1788798",
- "dest-filename": "lowercase-keys-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "sha512": "2a9340450037230bfe8d3034bad51555bae1f8996baf516fd1ee7a186cc014e5cdedd93f16f89a0d6f0b1e62b9d8395c1f858fda7ea023cbcdd5a7ac045828f7",
- "dest-filename": "lru-cache-5.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "sha512": "268e9d274e029928eece7c09492de951e5a677f1f47df4e59175e0c198be7aad540a6a90c0287e78bb183980b063df758b615a878875044302c78a938466ec88",
- "dest-filename": "lru-cache-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
- "sha1": "b5c8351b9464cbd750335a79650a0ec0e56118dd",
- "dest-filename": "lru_map-0.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "sha512": "83715e3f6d0b3708402dbffa0b3e837781769e0cded23cfbb5bceb0f6c0057ea3d15e3477b8acbfb22b699dd09fdf8927f5b1ad400e15ea8b9fa857038cfde1b",
- "dest-filename": "make-dir-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
- "sha512": "fb3a29c03cbb0cd9279b03d0a657a6e650195ff7823b34af48d35c48a9b9795c1390e073a24b447d7b1af4bdb727f188461c51b1ac7390f121ac91291361781a",
- "dest-filename": "make-fetch-happen-9.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "sha1": "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf",
- "dest-filename": "map-cache-0.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
- "sha1": "e56aa94c4c8055a16404a0674b78f215f7c8e194",
- "dest-filename": "map-stream-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "sha1": "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f",
- "dest-filename": "map-visit-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
- "sha512": "3a478368067f6d00b1785028ccce793ca70a534c8930f1a27cbc15e108238adbbee4ca007d240de25b0b25e5d9d5bf30d31fbf12675ae8c6605d2d63bec6a99e",
- "dest-filename": "matcher-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "sha1": "8710d7af0aa626f8fffa1ce00168545263255748",
- "dest-filename": "media-typer-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
- "sha512": "6a2b27ac33f818d7b4e9470a1675796df30d3c1530e23b0b19a5b059f9c7defd361a706e5d7d8c0959f945bad6a348f7a5ccd48a561b96aedf43b370dade572b",
- "dest-filename": "media-typer-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "sha1": "3a9a20b8462523e447cfbc7e8bb80ed667bfc552",
- "dest-filename": "memory-fs-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
- "sha512": "8c0d2b754e4aa10302d1eea9a68351b69a7abe316aebe358eebf21cb09c2ed5fb55e3fccb47c0621b07541a2bf76e9f28d6b5e2739a4a5dee8a1e5a0d744fb18",
- "dest-filename": "memory-fs-0.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "sha1": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61",
- "dest-filename": "merge-descriptors-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "sha512": "69bbffa8e72e3df9375113df0f39995352ca9aec3c913fb49c81ef2ab2a016bc227e897f76859c740e19aac590f0436b14a91debb31fa68fcba2f6c852c6eddf",
- "dest-filename": "merge-stream-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "sha1": "5529a4d67654134edcc5266656835b0f851afcee",
- "dest-filename": "methods-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "sha512": "3168a4825f67f4cdf0f9ba6c6371def0bfb0f5e17ddf7f31465f0800ee6f8838b3c12cf3885132533a36c6bae5a01eb80036d37fcb80f2f46aaadb434ce99c72",
- "dest-filename": "micromatch-3.1.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "sha512": "a519b3c3f5d47305c6a43f5a23dabfd173b02cdca08c44c9f32d1aa34c1daa9aebcc36b8627c4b733edf41166bf2fa21f15d7490684005b35c1d5939c07816c2",
- "dest-filename": "micromatch-4.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "sha512": "e72f00e7a8e0ed7550c7699bbf596ee3d351e1da24467859613b4bf8a19f69adbbbaae294935e4c10905265e29911332345cff12d6034a48a2107c7717b50dea",
- "dest-filename": "mime-db-1.51.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "sha512": "e9c3faf765b0188b3d5d774e3b8fbe37eeea8eabf4aeac7156f2775473e1fd273d99565c40ff991a190a893bd631046bdad6c79093ff627ed8d27a5bdd906ce0",
- "dest-filename": "mime-types-2.1.34.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "sha512": "c74567f2ca48fb0b89d4ee92ee09db69083c3f187834d1dbeca4883661162a23c4e1128ea65be28e7f8d92662699180febc99cef48f611b793151b2bb306907a",
- "dest-filename": "mime-1.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "sha512": "5123e431e113df5ace3226abb013481d928b1a0bca73f2eb8e87c09c194eb6d7f96a346faa2440f10b1e9db728a1cb4ae9de93b3a6aa657040f976e42ad86242",
- "dest-filename": "mime-2.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "sha512": "3aa6ce939a0441e019f165d6c9d96ef47263cfd59574422f6a63027179aea946234e49c7fecaac5af850def830285451d47a63bcd04a437ee76c9818cc6a8672",
- "dest-filename": "mimic-fn-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
- "sha512": "62c6e2f6e616f611727eb4e1743110bb290de04cba06ec0f0f6929239112fe71530e7ffdf32c5834b64972050028f4ff99cacb2ca686cc947d615c49ac874049",
- "dest-filename": "mimic-fn-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "sha512": "8f911cb67907eda99f57fab91e09a86a5d60d901c5251ada3ad9b1d09a48aa4c6106123f9494a5d67329438e6155aaf03444cea161229a7759e102b4447c6ec5",
- "dest-filename": "mimic-response-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "sha512": "cf4c9623ee050ebaf0792f199ade048f91dd266932d79f8bd9ee96827dfe88ae5f5b36fa4f77e1345ab6f8c79345bd3ae1ce96af837fc2fd03cd04e33731cd19",
- "dest-filename": "mimic-response-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
- "sha512": "969dc6798ef281c80099521c44f05584891ff14b3b1598c0f882e96a5e38a8b752bb5d709a3290dddf64d7995f0fba4ee1eb2ef5e508016eea898201a69bf8d0",
- "dest-filename": "mini-css-extract-plugin-0.9.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "sha512": "52d25c003e3211a1ad8cf7b35ae3bdc02e27c149d51fff3f226df210740fe1bebb717943fd0afd85d213094d710db4845e0d9728d68ff23b11795eef41dd34fc",
- "dest-filename": "minimalistic-assert-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "sha512": "c891d5404872a8f2d44e0b7d07cdcf5eee96debc7832fbc7bd252f4e8a20a70a060ce510fb20eb4741d1a2dfb23827423bbbb8857de959fb7a91604172a87450",
- "dest-filename": "minimatch-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "sha512": "14cf6735462b4410042d9413df179943b7e630e060ea758d989293720b0979a2ecb4ffd43835691acaf93a15e185783a7feaad27cba267e3d4c640d67202172f",
- "dest-filename": "minimist-1.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
- "sha512": "e93ea51f41fc386f642139bf266ead768a086e8806f5ed2d2e0a58ea6a615d29bf03dbbc36ad6bc811be42ca62b9bf4b8d69413ec3d2ded590fc1a2dab815dc4",
- "dest-filename": "minipass-collect-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
- "sha512": "0861f579b94bab6e98d79f80ce4edecb8c61d09fd77c97eb0a8c792c32622aa2364368b038b38aae598868e0e24904bc775f236a517acb62b678f526d0299287",
- "dest-filename": "minipass-fetch-1.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "sha512": "266412618a4f52a5f92729f5997691c0e75ad6e43c1cfe4a013fe80d22c2cedd41611850534fe10edb01d6e7d97c4133319f5a0159ac070f3e156b085e50a55b",
- "dest-filename": "minipass-flush-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "sha512": "c6e22aedc20eb74f513d1275f60762e1bf9188dbc31587b9247fa080dbc1a86aa941772bbb73dc466399b8704a58ad53c5ff7e710f8731537877acf8e8b64fec",
- "dest-filename": "minipass-pipeline-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "sha512": "31b9104360938813250360e6ff9718fbd49614437ca73cce5e2eab94ce57c6ad18a9b75ae59432f6c53be5aebbdc513d64ad19b1bafa63988feaef6792d7e0da",
- "dest-filename": "minipass-sized-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
- "sha512": "aedcb9929c3dff3f125fd766c5b94503a79d22d526c0980c7980d946bc25215376ee2f20cac19bce7270520830d95fc556a1520dd5b2d38d193d2f35d43600a9",
- "dest-filename": "minipass-3.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "sha512": "6c0c6c47c0557e3eb40d65c7137bb7d281f37e5e06ee48644ae3d6faabe977b8c54479bb74bc4e8d493510700227f8712d8f29846274621607668ee38a5ed076",
- "dest-filename": "minizlib-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "sha512": "591a039fffe65c1889d47e34aea6b7bc7d2da1e3f04ac19be398889d6953c926be52ee24ded6144b16b6bf52aa0222edbe5ad2cda131a92d60b64f7a03dcef10",
- "dest-filename": "mixin-deep-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "sha512": "34a98094449fea3306ca6d7ef91d116bbc2f855fb0156eb715a48e14fc116a1bde6b480c51c19485578083fd010b4c22bfd8a1e4d60f0755a7d54108d7f2fec5",
- "dest-filename": "mkdirp-0.5.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "sha512": "bd5a95650c9fdd62f1d9285dd2a27dc6ebea800c8a3cb022a884c4b6a5b4a08523ce8dcf78f0dde9f5bd885cf7d1e7fb62ca7fa225aa6e1b33786596d93e86cf",
- "dest-filename": "mkdirp-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
- "sha1": "be2c005fda32e0b29af1f05d7c4b33214c701f92",
- "dest-filename": "move-concurrently-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.2.tgz",
- "sha512": "002e967a90a7156c0e304f4e5a994767ca6cfc107e83d42b12950a0afef05fcd9f0cfcd1de73ebca938598bfc59b4265a0402ee904d649f0cb2dcea633f8e29f",
- "dest-filename": "mpris-service-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "sha1": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "dest-filename": "ms-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "sha512": "b0690fc7e56332d980e8c5f6ee80381411442c50996784b85ea7863970afebcb53fa36f7be4fd1c9a2963f43d32b25ad98b48cd1bf9a7544c4bdbb353c4687db",
- "dest-filename": "ms-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "sha512": "e85973b9b4cb646dc9d9afcd542025784863ceae68c601f268253dc985ef70bb2fa1568726afece715c8ebf5d73fab73ed1f7100eb479d23bfb57b45dd645394",
- "dest-filename": "ms-2.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
- "sha1": "899f11d9686e5e05cb91b35d5f0e63b773cfc901",
- "dest-filename": "multicast-dns-service-types-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
- "sha512": "8e2e89e5e9db3321911c802400ebb759d57c9e082abe228210ab5770ea9fa61659b50ae61cac9c7f29c9d95ede54f500e0d849e95ed67f84e619b4f0284f41ea",
- "dest-filename": "multicast-dns-6.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.11.8.tgz",
- "sha512": "29a273c4395821dd39ccdd36f5668a84961c4f9141d10993452183ab96d17cf4c1530e0797456f26f68ee42e669b401358c44479c300355f5851ab4b320fb432",
- "dest-filename": "music-metadata-7.11.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/musickit-typescript/-/musickit-typescript-1.2.4.tgz",
- "sha512": "dfeff6d0f8b6cce5401df5057fadf52d4d8dc1a0bfa841c1064b0cf9843343f7df7f8b4830f5f9589e967bf5979b04c790090720e122b495b87113e7bd502af8",
- "dest-filename": "musickit-typescript-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
- "sha512": "f19b6f12703673969809961dd5cbe076753a72ac22c51a1883bd313cb594c2ce4e4536bf967c3ebb86a68b1452fc0739539990560a7da679525276cd58569665",
- "dest-filename": "nan-2.15.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "sha512": "7e9a1ed93d116c7c014c150e7ed01f04f683122d3ab9f6946a2d2613a627d6469c7374a74c4adf6ff87e5fde155f323ae2b2851d82265d2bddc061829b03aa08",
- "dest-filename": "nanomatch-1.2.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "sha512": "8595dcecad9ef8f81e23578305eff5d00adde1e91b7ebaea1bc129fbc2667f82480f66cd83b36f08f39937e91f179ef8a45408ee6ba6d8052a0e27682aa7133b",
- "dest-filename": "negotiator-0.6.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "sha512": "f8452ca863cbb0cfa3ff37428598ec9d7e758385eb1c53885f07e70953c695093f9398226a470ab2ec4239b051bba0d29bda29c3f3bab2559b25d82140ce1b06",
- "dest-filename": "negotiator-0.6.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "sha512": "61ddd4112e665824aa47ea8d4fddd2dd4a18524a8067d94b83c6bb83dae29ac5a66062bc7154e8038fec17746bb21772577b0018c5d5526a4c60ec3e74ba4ebb",
- "dest-filename": "neo-async-2.6.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "sha512": "d67878e5d79e6f9a25358ede5fcd8190f3bb492c51e524982623d3ad3745515630025f0228c03937d3e34d89078918e2b15731710d475dd2e1c76ab1c49ccb35",
- "dest-filename": "nice-try-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
- "sha512": "7e000dde318087e468c541991d348e2c922a51cdb09a8070191e2d6e93402a69a8bc5a16ab439d4646f456495d45e3b66b68814ff384ba51bd5d251cd74af7ce",
- "dest-filename": "no-case-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
- "sha512": "89b3cade203ebda6357848c44a442433405b0aa14e6993225d14ed741d2eedbe1d8ed63a267b23bcf7541d5320eb142ddc1f1fa534d61c8f40f800e333d7ebce",
- "dest-filename": "node-addon-api-1.7.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "sha512": "66330f1447d5c798fecb6c85df92b3c79b05ee40f3c6e0e3eb3887e0515b3a9f3bcca0d9371f321312486f4e4e185e0d96df481c520c064465e3555dbdc35d6d",
- "dest-filename": "node-fetch-2.6.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
- "sha512": "3cf9aef1e11e1bdb1a114bc8f7b7e6e0e6315d507a6c5bf2353ca250e062721069146f00d4b8f0ddb63adbee683a30c430746777463b1d0fb1eeecf13b30ba24",
- "dest-filename": "node-forge-0.10.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
- "sha512": "a254c946052d01bfe13971b413ddf0643b3962226581b5f14f0400147c8d951b1742763351a17668682e8d96f0fa147c685e191bfad24f9edb58c583d7a8ebf7",
- "dest-filename": "node-gyp-8.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/node-loader/-/node-loader-0.6.0.tgz",
- "sha1": "c797ef51095ed5859902b157f6384f6361e05ae8",
- "dest-filename": "node-loader-0.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
- "sha512": "0aacb337acfb43a68c785fe4b5c3154f38401c21297fc48e6abc29ce97fca4d058da4e7fa0cdf850795d530a7c54a23bbb172dd87c5245d26305a65e112cdcc4",
- "dest-filename": "node-releases-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "sha512": "4db8faeeb7dfa9c79e2e97115eb4fbbca00df02c1f3de20180cec4ea206498a2d5edb10cc291a060b1afd2300252c10269afefbb13f42231289edeae99d320b5",
- "dest-filename": "nopt-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "sha512": "ff908c3774f44785d38f80dc19a7b1a3eae8652752156ff400e39344eae3c73086d70ad65c4b066d129ebe39482fe643138b19949af9103e185b4caa9a42be78",
- "dest-filename": "normalize-package-data-2.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "sha1": "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9",
- "dest-filename": "normalize-path-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "sha512": "e9e66ce4bb375ad0a2b075a9f52d86532f1daa4a468b80554b3dc66aa884e9ecee6f4e75d844b3b57530501e82e8829b4246363e76ff983e166288c24707302c",
- "dest-filename": "normalize-path-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
- "sha1": "2cc0d66b31ea23036458436e3620d85954c66c3c",
- "dest-filename": "normalize-url-1.9.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "sha512": "f546421511d074dadf4e91a0f3ed4834883ddc1eb3134697315164c35585c2f3b84a5672c14e9a2e0e4e7f4029fcf81c6d2c382cdc6f3165cc7ae8303025f400",
- "dest-filename": "normalize-url-4.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "sha512": "0e52fe5f03b2dcdc4043cc6e0b4a243e02b8ea2b953402b4d5837b46e79806aa85786b018d5f5798203301d82dfbaebb6c297990f87d12a28a0f09da3c6d48ec",
- "dest-filename": "normalize-url-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
- "sha512": "6227386d91c93adf510856d13f71a0a6a85270e6381c7dd5d8ff32063e82798ab5d7c42bf812d7a93d89be9274d26af22c44a980ec5fe57945bf86635f12d273",
- "dest-filename": "npm-conf-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "sha1": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
- "dest-filename": "npm-run-path-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.0.tgz",
- "sha512": "d37a691511a5b3251a4056c60b60bc41624dfc2fcaecfb1fc83f5a41d8552804081f8b1005cf16012a8504fecef94b78776a28e4ba1ea1ba01ddc19d0594a9e9",
- "dest-filename": "npmlog-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
- "sha512": "8add6f13de7317a7534fd941b186f1bea8744a8cb848fa307218f45011a3fd5e9c4cf9d75ed40e3d46e167a0a61b3003feb5b6d8b40ae84f7aa5c7495e4e00e3",
- "dest-filename": "nth-check-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "sha1": "2109adc7965887cfc05cbbd442cac8bfbb360863",
- "dest-filename": "object-assign-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "sha1": "7e7d858b781bd7c991a41ba975ed3812754e998c",
- "dest-filename": "object-copy-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
- "sha512": "1e8db3f346d522f265a07f98cd19a965541ef3bfaa01298150a6435a0c7d72ef8a0eb5f66431ffded332fa05db6444d51acd8cf1877139b3a1ed702d8a6f58d2",
- "dest-filename": "object-inspect-1.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "sha512": "ddcc83b321e0b668bb23b0df4922362c3a7a48ada5c2fb5b834a744757b446f4ea17971e1b1f8ad9d7d28e6d5b283315085103010bf2fa8f1ce9aed5ba339d77",
- "dest-filename": "object-is-1.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "sha512": "36e00449439432b9485ce7c72b30fa6e93eeded62ddf1be335d44843e15e4f494d6f82bc591ef409a0f186e360b92d971be1a39323303b3b0de5992d2267e12c",
- "dest-filename": "object-keys-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "sha1": "f79c4493af0c5377b59fe39d395e41042dd045bb",
- "dest-filename": "object-visit-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "sha512": "8b14f62f94c75ec029ca250f60a996fb6107a575dee488b733e7f87be6891401daa396a61515ba27438ee9cfcb53c05ee3bbad0b1d862fcf61c4607a5d298ab9",
- "dest-filename": "object.assign-4.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz",
- "sha512": "55d0e80b0bc923841d0ba9dd8e9a859a82f7ffe1f17df1416dc2732a2e61c0b2eaab1de675b79d4697d90dd2b44ab3926ae8fc5f81b306f9c3665e2f4cdedd3b",
- "dest-filename": "object.getownpropertydescriptors-2.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "sha1": "87a10ac4c1694bd2e1cbf53591a66141fb5dd747",
- "dest-filename": "object.pick-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "sha512": "3d7d70bb402601d3ea38bd665a1aa694e77c90e219430199c3aae1eee6f2f5f4dce6585a39614b5f723a47586b17d937cd4638d1eea282c2c69035caf762c936",
- "dest-filename": "obuf-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "sha1": "20f1336481b083cd75337992a16971aa2d906947",
- "dest-filename": "on-finished-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "sha512": "a59004f8524ba32213cad76a2b4539b3e148a6337424fdcecc58bfbbc471f84579fd6f894d61971bcc45cdebc4ec08c17c3a87bfff2f2fca90b088479ea464ac",
- "dest-filename": "on-headers-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "sha1": "583b1aa775961d4b113ac17d9c50baef9dd76bd1",
- "dest-filename": "once-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "sha512": "91ba5a4921894d674063928f55e30e2974ab3edafc0bc0bbc287496dcb1de758d19e60fe199bbc63456853a0e6e59e2f5abd0883fd4d2ae59129fee3e5a6984a",
- "dest-filename": "onetime-5.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
- "sha512": "5e014f3ccf81dbc16d0828126fd23eb3db33382d6f6514b0816b11500e72948c514e02a8cea8ce0ab54ea86b180013d82b9aa77ea0a5c594c505af0f2addafe9",
- "dest-filename": "open-8.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
- "sha512": "3ea1e98200bd6cb57455e59c74a864a7163edc94f37ad2d2a930962ffcffb4521b23a1bc2428e89dd5e4953d498a77332f3d9789beb6b12a744ff80a4f82a4b0",
- "dest-filename": "opn-5.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
- "sha512": "87205597a8aaa94389f05a917be97f812f07fa42988eb12775de4f9b531f06db04280d37f0792475b025ffbd840171b2a270ff3c5b2f9951be12f708a6588c06",
- "dest-filename": "original-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
- "sha512": "b3bdd7c4e678ce9b7579d658673be1a856babaf41cd6fc146b42b405db4866040c0098fd21b79b1fe26480a65cf61f81d393ca1cb3939786a31b506636b55997",
- "dest-filename": "p-cancelable-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "sha512": "0593abde74501ce9ed5234eb1fcf8b879e2c98a1e81f2babf167b557c0d2315ae5e40da66a538ec2e2519ca4438d29e4a1e061e1ab7a0701276f923b265df5c2",
- "dest-filename": "p-cancelable-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "sha1": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
- "dest-filename": "p-finally-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "sha512": "bef717b0b009f43af9ad038f93bb68650649029065d8ae09e9d00d4ac12e87a408e3525872c4bfaa14c66bd12b2145202b758d428258bf2971be3aa68aa100f5",
- "dest-filename": "p-limit-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "sha512": "ffff3c985592271f25c42cf07400014c92f6332581d76f9e218ecc0cbd92a8b98091e294f6ac51bd6b92c938e6dc5526a4110cb857dc90022a11a546503c5beb",
- "dest-filename": "p-limit-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "sha1": "20a0103b222a70c8fd39cc2e580680f3dde5ec43",
- "dest-filename": "p-locate-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "sha512": "c7ed76c3f4e8fb81857e0261044a620dc2e8cd12467a063e122effcf4b522e4326c4664dc9b54c49f5a3f5a267f19e4573b74150d24e39580fbf61fb230ba549",
- "dest-filename": "p-locate-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "sha512": "47bf5967fd30031286bb7a18325cfc8f2fe46e1b0dad2ed2299ecfc441c1809e7e1769ad156d9f2b670eb4187570762442c6f3155ec8f84a1129ee98b74a0aec",
- "dest-filename": "p-locate-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "sha512": "cb76fc2a977c380378e388717c16c57e3d4563f463b5377cb73630854a8d617c747d7c76897e2668fe10afaaa120a6d05c8d36c132c075ae1f6146c36a04d417",
- "dest-filename": "p-map-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
- "sha512": "777a9755317fb3e5be09d279036f70cb05769fc0904186a1960cf66c5880fb87953496c726874f67efe05f03c68746cea80fa3f12fbaf9c926bcb18f935429c5",
- "dest-filename": "p-map-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "sha512": "fdb8ceaa68044c1601e41a0478655e6bc766bc76f69bd18bcb513d5b8df27b27cfe9040264614d6be5d171e244b8307aceaafe80aa4802694b79b329ca4c3f31",
- "dest-filename": "p-map-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
- "sha512": "5c4e86e3e6134e44f66b45166f692365ef313707fc6c86e7aa973f212fe274e055872bdeb3498ae4e2607a8723c7bab9a6f5ffea6db7c6ecd53d84f5b8633bdf",
- "dest-filename": "p-retry-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "sha1": "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3",
- "dest-filename": "p-try-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "sha512": "4789cf0154c053407d0f7e7f1a4dee25fffb5d86d0732a2148a76f03121148d821165e1eef5855a069c1350cfd716697c4ed88d742930bede331dbefa0ac3a75",
- "dest-filename": "p-try-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
- "sha512": "9376dd9b69f6e6d932c5c8d22b3079c7c91f57194c760b1b3ebd069197301ec2e96dae9c063a82b752a570284a12fc4721c4c1d4554cbb0a228d9dbac5ec7931",
- "dest-filename": "package-json-6.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
- "sha512": "457963ef3098a2445ea96a4e3c7f68622bd4ccb619e6f00f21f1260933558a8b02efc17c1741fdcbb4fb806d8cdfdca682eb7117981c144b326504a987d069dc",
- "dest-filename": "param-case-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz",
- "sha1": "d3460bf1ddd0dfaeed42da754242e65fb684a81f",
- "dest-filename": "parse-author-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "sha1": "f480f40434ef80741f8469099f8dea18f55a4dc9",
- "dest-filename": "parse-json-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "sha1": "be35f5425be1f7f6c747184f98a788cb99477ee0",
- "dest-filename": "parse-json-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "sha1": "6d5b934a456993b23d37f40a382d6f1666a8e5c6",
- "dest-filename": "parse-passwd-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "sha512": "0a2c9e3b1153fc96723799b4cfd3df5f0e1208127a4b2833d43a65d30aa39610c418604fd469ec51510bd29eb78681b57dc8f77c7ca75e2f4d60ee2758e2fea9",
- "dest-filename": "parseurl-1.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
- "sha512": "b969464f76129caf71dc140968e75c670ae757a84fa5df23147d7fb9ca622d13e1ff6cc2549292d7d1381af607bda09c0029f77e85d9d1c2c1f56af1d4a19ee6",
- "dest-filename": "pascal-case-3.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "sha1": "b363e55e8006ca6fe21784d2db22bd15d7917f14",
- "dest-filename": "pascalcase-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "sha1": "cc33d24d525e099a5388c0336c6e32b9160609e0",
- "dest-filename": "path-dirname-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "sha1": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
- "dest-filename": "path-exists-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "sha512": "6a4f50cb943b8d86f65b071ecb9169be0d8aa0073f64884b48b392066466ca03ec1b091556dd1f65ad2aaed333fa6ead2530077d943c167981e0c1b82d6cbbff",
- "dest-filename": "path-exists-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "sha1": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f",
- "dest-filename": "path-is-absolute-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "sha1": "365417dede44430d1c11af61027facf074bdfc53",
- "dest-filename": "path-is-inside-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "sha1": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
- "dest-filename": "path-key-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "sha512": "a2399e374a9dfb2d23b3312da18e3caf43deab97703049089423aee90e5fe3595f92cc17b8ab58ae18284e92e7c887079b6e1486ac7ee53aa6d889d2c0b844e9",
- "dest-filename": "path-key-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "sha512": "2c32733d510410f47ecb8f33f7703411dd325dbf29001c865a8fe4e5861d620a58dbfd84b0eb24b09aeaee5387c6bcab54e9f57a31baa00a7c6a1bce2100fcb3",
- "dest-filename": "path-parse-1.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "sha1": "df604178005f522f15eb4490e7247a1bfaa67f8c",
- "dest-filename": "path-to-regexp-0.1.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "sha1": "f012ccb8415b7096fc2daa1054c3d72389594c73",
- "dest-filename": "path-type-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
- "sha1": "fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445",
- "dest-filename": "pause-stream-0.0.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz",
- "sha512": "f5f31acface8c70f72a4ed4a672e510c9812ba912dbb443e83f3aaaac5475f7aca191f2a7a144b633b050116786d5bddbdf9272a25efb836e43273b583a711a5",
- "dest-filename": "peek-readable-4.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "sha1": "7a57eb550a6783f9115331fcf4663d5c8e007a50",
- "dest-filename": "pend-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "sha512": "70c943a9a2c4a9f49a5bc67b379270fa5c885bcebd1334fbdff179961b58f5c2c6a15c525f39df81f5cc3b46792b4a344364e44d7abed0a16c76749ede30d588",
- "dest-filename": "picocolors-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "sha512": "d5fca0ae84cb947bbaeb38b6e95a130eff324609b415c71e72cb2da3e321b19d03fc3196dac9bc13c0235bb354e5555346de46c5b799e6a06e26bf87c8b6248d",
- "dest-filename": "picocolors-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "sha512": "254ded7874cd8e6136542185cee63c117cc20d5c04a81d9af1fb08bf0692b4784058911e55dd68d500fcd0253af997445d748b6d2b2e2f0263902056a9141454",
- "dest-filename": "picomatch-2.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "sha1": "ed141a6ac043a849ea588498e7dca8b15330e90c",
- "dest-filename": "pify-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "sha1": "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176",
- "dest-filename": "pify-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "sha512": "b81f3490115bfed7ddebc6d595e1bd4f9186b063e326b2c05294793d922b8419c86914d0463a9d252b082a438fe8e00815b8fb18eadcb9d739a4d8d9fa0795da",
- "dest-filename": "pify-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "sha1": "2135d6dfa7a358c069ac9b178776288228450ffa",
- "dest-filename": "pinkie-promise-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "sha1": "72556b80cfa0d48a974e80e77248e80ed4f7f870",
- "dest-filename": "pinkie-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "sha512": "f15f7e1d03eea67697300db773986f97af735ef4f04f3c8061ab2791bd13b6ce17bcee02962a8e34c3a7be5ab6eab9212c2de758314125fef72d4d5ed5564b69",
- "dest-filename": "pirates-4.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz",
- "sha512": "5a37007584a72abadd0dda93715118eda07b5218708d840a6211e205774979fd0c39a41e62951d43e895c812dae5804a4bc30f54f3cc5fbae9381c8848ba5e11",
- "dest-filename": "pixelmatch-5.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "sha512": "fc4e7b018928790db9aa4c4c8f93c1395805f0a8aefe1edc612df4679f91ed66a208205f2eae7c648fdd49e68429bf565495799ffd37430acddc8796205965bf",
- "dest-filename": "pkg-dir-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "sha512": "1d10f36da2a30be00e5955f1014ff1e7808e19e22ff5e6fee82903490a0d4ede17c96a0826fb8fb178b3c6efc5af6dc489e91bb59c2687521c206fe5fdad7419",
- "dest-filename": "pkg-dir-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
- "sha512": "9c3cb04e1164d62e0140ae2dc0f43a4c0e114fc6c363deb27ae0950562f778f0110a210a0d14ab3466c5220509a4ba7e5de211eb9bfcadaed6b89385501b6430",
- "dest-filename": "pkg-up-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.18.1.tgz",
- "sha512": "3402c697c475187cc62e58540299a999f87a335aebacf7034f2816be14dba6bc70181f6a77f8fd0d1c329f81d341c501ea8d3f54ea68e3a7c7f5ecf7f83fd1a2",
- "dest-filename": "playwright-core-1.18.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/playwright/-/playwright-1.18.1.tgz",
- "sha512": "f04697f44b5bb40a0cab9b67cc8b280376ff57ce95ffa32adac92e394e2a130fb9395c6cd65c1eb03c268f2fd1554d507f1e54bb0490ce1a78e70c87db6a1af8",
- "dest-filename": "playwright-1.18.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
- "sha512": "92caebf32f7e9d73b1401da8b1536aae0bd7fd740f397694e0140c2a362af0fbda635535f26a3e7ca8014b0ccafa5b92ca29ceb8f69ef79ea5495701c3194032",
- "dest-filename": "plist-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz",
- "sha512": "adfe7edbf8a81de43147a231b98358185cad5321b79666bf596d67b268de1e55b0b5bd9a07295ae9d91573ca6627d9e9973913034ab6c71ee6316ace4ea4f81a",
- "dest-filename": "pngjs-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
- "sha512": "e34416e586a504d7d0a39c916268b0ed8cfa4ca295af787af7bd01d9813eddf429b1672b6e3d4fcc9831789d7d0d142384c6ca3c8b8c63cac569773c9a8a2557",
- "dest-filename": "pngjs-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
- "sha512": "49efb68ac6a721c12a7f65cc1e3c942ac91ccf16cf1fb7509e53235d7ebe7726dacb21ef01ffd30a0c8c465cdffc1e900e100414e19eb34a73468ddbcb801b30",
- "dest-filename": "portfinder-1.0.28.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "sha1": "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab",
- "dest-filename": "posix-character-classes-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
- "sha512": "2da60b0cd4b8486f10e56016a882607473c9ac30ebfcbbfbef9acc04551b8234f3ea3df8954ce70021dc7515aba0fbd700d3f6563ef234ae7bbe9f5e16accb59",
- "dest-filename": "postcss-modules-extract-imports-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
- "sha512": "7b7c43abe2e8b6219eb329a946528d81a2743c2ce85087691f4763e3b89602e8bf9324e08770a202bd6a3f9e2ea1d989865ea9f6b37a06835c7440d5271f510f",
- "dest-filename": "postcss-modules-local-by-default-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
- "sha512": "632120b13311a4d77e1e6c82ec7fe6877cbe31e1567afcbb5757af5612567b098c6e30c721b65b3972020b6cbe9b5c48d5455f213d47316fced381f1caef685d",
- "dest-filename": "postcss-modules-scope-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
- "sha512": "d7ffc4e63081ad9f439915fecc2b6642d45257a3d5e36231ec1ce3f466f025c79dbae7fb22a3fc3207935ee4431ce5a3da6d15cd90f9faba05583b94f1142372",
- "dest-filename": "postcss-modules-values-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz",
- "sha512": "50edd282764e553c2ee24c8b476d94435c59874f3a472359a696fb94b00a0452bc6b7dadb46e62f3b63f3f7fb66d14a364dc89d41ee17c5368dbbded29ef58c5",
- "dest-filename": "postcss-selector-parser-6.0.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "sha512": "d4d342b3abaeadf9156de5c6e12f09153f6dd7d9b8e480a789ff3358b779a0f499e74427c0c7caf87de3bf8d3c7788f0ffb06db6fe5ac52e48887a0b69534779",
- "dest-filename": "postcss-value-parser-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
- "sha512": "ca2a1aca335b1e7eb3d7f072c326f6638b37caf0c079718ecb1a83f8b9d53a29eae8c76677ef925b6c14355cdabf2c87c5debe0f1cd6188ba8b20e8fd518fcb8",
- "dest-filename": "postcss-7.0.39.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "sha1": "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc",
- "dest-filename": "prepend-http-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "sha1": "e92434bfa5ea8c19f41cdfd401d741a3c819d897",
- "dest-filename": "prepend-http-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
- "sha512": "118e680f39ac5f9c2fbb29c0072ae66343f485ca7e4299c029b26783603630f8d52970b1ac3494933821549e1918f22ff890b8817f1f3d45ac702d11b63b161b",
- "dest-filename": "pretty-error-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz",
- "sha512": "35b96cb5e800d72fd1256d95c8c2fedcb969163cf1eb6714aed0482885835c40e48cd7a5780ece77b9ebcdcb3f54b42f01e5780a049886b377f4344df3c422fe",
- "dest-filename": "pretty-format-27.4.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "sha512": "de8b943a9421b60adb39ad7b27bfaec4e4e92136166863fbfc0868477f80fbfd5ef6c92bcde9468bf757cc4632bdbc6e6c417a5a7db2a6c7132a22891459f56a",
- "dest-filename": "process-nextick-args-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "sha512": "ecf887b4b965e4b767288330d74d08fbcc495d1e605b6430598913ea226f6b46d78ad64a6bf5ccad26dd9a0debd979da89dcfd42e99dd153da32b66517d57db0",
- "dest-filename": "progress-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "sha1": "98472870bf228132fcbdd868129bad12c3c029e3",
- "dest-filename": "promise-inflight-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "sha512": "cbe58a165051f011979ec3652071463d99b20dfdc314ca0b85a7e5027c99815eab1bac6ef89c1eb13a3643d47a5f0626b66c001429009377b7e6311da1e87fde",
- "dest-filename": "promise-retry-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
- "sha512": "4e334f6e537807001631753cb3d004cf82664319c3d4d34bedb34e63f00a533c9a99cdfbf4558049485cfcad692f69e855bf9799928b2faf1c8f32ec88e00c68",
- "dest-filename": "proper-lockfile-4.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "sha1": "212d5bfe1318306a420f6402b8e26ff39647a849",
- "dest-filename": "proto-list-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "sha512": "96542c30b4940d43d3e388ddad4fcedfbaa59e27e2b433fe670ae699972848ac8b2afb59c69c95d27dbf6c3fcde2d040019fe024475953b28cadaa0ad7e5d802",
- "dest-filename": "proxy-addr-2.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "sha512": "0fece439109b03d7f5b5d5912b445a091dc63efe7470cc5caf3e17f24e4b4d2503d43930e3b98a24465036e9c8b514e45b082d6944a8d515454481bd65788562",
- "dest-filename": "proxy-from-env-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "sha1": "d3fc114ba06995a45ec6893f484ceb1d78f5f476",
- "dest-filename": "prr-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "sha512": "2f0672fa9dd216cd4fcad77f8d872de30a6fe3d1e2602a9df5195ce5955d93457ef18cefea34790659374d198f2f57edebd4f13f420c64627e58f154d81161c3",
- "dest-filename": "pump-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "sha1": "9653a036fb7c1ee42342f2325cceefea3926c48d",
- "dest-filename": "punycode-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "sha512": "5d1b118dd7fe8f99a5fb2ffa18a1cf65bac5ffca766206b424fb5da93218d977b9a2124f0fdb1a0c924b3efa7df8d481a6b56f7af7576726e78f672ff0e11dd0",
- "dest-filename": "punycode-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
- "sha512": "9758cd02ca4805216a6d3fb2fb9168b288cda55a45f789e523ec03529a8ff5e9f03937c7c7d7f4821e6707deaf97eeb24e9b09b32a5e36bc1fccfacab87078d4",
- "dest-filename": "pupa-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/qap/-/qap-3.3.1.tgz",
- "sha1": "11f9e8fa8890fe7cb99210c0f44d0613b7372cac",
- "dest-filename": "qap-3.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
- "sha512": "117b73459982f981a61a50c56d72b142231937008b10ee8100d2971b8882b5220cd32a9cfe96a9a52c774482abe2bd2e87926c05c90e5de2ab077233ee6750a5",
- "dest-filename": "qrcode-terminal-0.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz",
- "sha512": "f4c811a6055cfbffb8edd16f41e0fa536b3467dd84b0acdc1e882dba6e1007e50d774db958e2521ef9ff86393dc66ce3ed2b63f790b2500b37d66ae3c65884b1",
- "dest-filename": "qrcode-1.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "sha512": "4c8464e1aa982cda0951b77e836944773e642d622e4cc45a8005f197bf10d118958c03ae80799e28d19d777730a3f92da5ff5a2fd7a909f16a58310acac5252d",
- "dest-filename": "qs-6.9.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
- "sha1": "bbb693b9ca915c232515b228b1a02b609043dbeb",
- "dest-filename": "query-string-4.3.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "sha1": "b209849203bb25df820da756e747005878521620",
- "dest-filename": "querystring-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "sha512": "148aa08f6114bd36bb479d2ed2b1acc937edce3626bff6b784edf8e5b64daea69b36a8ed8220cc826a389a452377e9f3539a05ddd0a52aa1483d42b26d4caaa1",
- "dest-filename": "querystringify-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "sha512": "5aec802d18d63c31adb7fc3326269d3b901763ef2167cd215697ba3328af82b691116ef9d57dd26e146f1b778b28e60dfbc544bea2dc7f7c1d9ede386784b848",
- "dest-filename": "quick-lru-5.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "sha512": "bd897788e5fee022945aec468bd5248627ba7eca97a92f4513665a89ce2d3450f637641069738c15bb8a2b84260c70b424ee81d59a78d49d0ba53d2847af1a99",
- "dest-filename": "randombytes-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "sha512": "1eb82cc7ea2baa8ca09e68456ca68713a736f7a27e1d30105e8c4417a80dba944e9a6189468cb37c6ddc700bdea8206bc2bff6cb143905577f1939796a03b04a",
- "dest-filename": "range-parser-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
- "sha512": "44f30015424fd7d5887adffdf67821e88bfc7f301baae9b82e2ec00fa0ed19a5b6469301ff5d710e86a53e224c4dbbba2378646cc564013bd9aea6fd104a9e79",
- "dest-filename": "raw-body-2.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "sha512": "cb76c682a2a3dd005dc4b6cb9289a5a2192fb00f207408944254812670617e7f813f18386dceb677c4dc056d79c1abc37e07b10a071c72485c66fcb0c9060f3b",
- "dest-filename": "rc-1.2.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz",
- "sha512": "5ccd09bf8d3fcb885502a8ff30eef4a3f216b38b8eb1a4a8a3698bca4de49450d6f924ad2e70adcee42efb53814c830694cf02bda2bd7ed9580a9e8327e70cb3",
- "dest-filename": "rcedit-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "sha512": "b3887de8ab4b0d4425b04361327d5aafcb766c46beabf600b63f293cf7488cf0c604321536cac3f5a5cd5aab2951ee80cca0881b40b51d964ba8b57baa938118",
- "dest-filename": "react-dom-17.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "sha512": "c361accae90beb62099e569f7ff9d17a03d047de02fd75da9af3169921d1278cbb4ecff8a1c1919931ef3acf0f484ea90777563ab0ff9ee7ae539b1db81b10e3",
- "dest-filename": "react-is-17.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
- "sha512": "82784fb7be62fddabfcf7ffaabfd1ab0fefc0f4bb9f760f92f5a5deccf0ff9d724e85bbf8c978bea25552b6ddfa6d494663f158dffbeef05c0f1435c94641c6c",
- "dest-filename": "react-17.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/read-config-file/-/read-config-file-4.0.1.tgz",
- "sha512": "e5c6840f7ba8d8801930f71b87ff61c7f3b6f6cdb8df444bc6d9c50ddcf1a47fdea44a5ac0ead09c6047b9ea2d21752b18f3c881d35037e4bf088a765a68927f",
- "dest-filename": "read-config-file-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz",
- "sha512": "831ecf82be48e7a26d633f96baa11b4078ffc56a3ee55c2e6b68e16f55703385a27793ea6266788b4d190746041887e4541b02bfd52b8e0caa0a241f4bf3a8b2",
- "dest-filename": "read-config-file-6.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "sha1": "6b72a8048984e0c41e79510fd5e9fa99b3b549be",
- "dest-filename": "read-pkg-up-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "sha1": "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8",
- "dest-filename": "read-pkg-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "sha512": "11b868f0ae2321b1c0c67bb18bba38d8ead9805fd94cd72c663ea744ac949a484b16af021c8b69fdfcba85066e6663ff9f7c99f550546e9e33cff997f219983f",
- "dest-filename": "readable-stream-2.3.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "sha512": "055887cbb2ca793cf8a0d9e470b27e95548beafa6215e5fafddde8487f33096ed4c4fda89dc864faf4c6075e37c6e1631d2ddd7938242a85d7ca65eaca688874",
- "dest-filename": "readable-stream-3.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz",
- "sha512": "78f78ae9c73511c28b121245b7f01e6cc08b2fe1a048a86eca0ad9fc62da29960479c22020409fe14694b9a072886b73724c11e1a8a7f55cd487de53d5ec581b",
- "dest-filename": "readable-web-to-node-stream-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "sha512": "d4953ff2af95805672c70ac9f925483ac87e2b2c161a976cdcd4ea8a488aa43319592726018c8a220aa43be011bcd5897d7797475cf1cfb687178bb80b21fabd",
- "dest-filename": "readdirp-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz",
- "sha512": "dc4d7651e3523df8eb8308e447cd66e49ec0c3f4f9e53bbb9d4c995506022843acfb6764c4463e0e93ed6733b862bbae88f6fb36460b55cc890b8fb309b939a4",
- "dest-filename": "regenerate-unicode-properties-9.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "sha512": "ceb71e47f5e119853f77fa29af610a3bb6911d47a2048f2a8ed7c7a800d3c1977a4b37f2d7a95aea4a83d0c214b39cf9871e8068a6be3e2c693eb476f3df88d0",
- "dest-filename": "regenerate-1.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "sha512": "a77553f9c38483116c45103d5f896423513e936fc2b672ad53881cc7268252b7a294bfefa88e82759df0c55531dd439483e82750e41071123b066488eb9e8c60",
- "dest-filename": "regenerator-runtime-0.13.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
- "sha512": "78e7fabe46b920ed79d497ecc3634ef56a465f9f16eb05a679f2b7235cc41abd25383d2ef2bc0f68da902f5691c546b12de28edc0acd87755883529b683f8517",
- "dest-filename": "regenerator-transform-0.14.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "sha512": "27a4838d4803c508f936eb273ad745c43c0dffe1d6ca447c1842f072d27b99daa1732cb5c44738491147517bf14e9ebad586952808df44b67d702a92ead9f7d8",
- "dest-filename": "regex-not-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz",
- "sha512": "a4c47b84155450623b3cc037ee6da87c87500aca265676acf899f950f1801d0fbf2e5c0a9bf6932c91dd6ac98747395f799c0788039a452a36adb0439b79cd51",
- "dest-filename": "regexp.prototype.flags-1.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz",
- "sha512": "d45e9b62ca188b3ea2b3ea33ef4356babd95961f4a5adb30b91bb324e7de614adf3d7da8f27ef802751568e1836d4a9518ef5f347bb8f3fa6324ee2c355c2c3a",
- "dest-filename": "regexpu-core-4.8.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
- "sha512": "ea09126f853a696241e1217666f2dbefac8206372fb9f5c1aafbc4c751db98a3e4badb308d6d71355458d3e75a96321845ba2037b3b47ad61295b89a110c8ccb",
- "dest-filename": "registry-auth-token-4.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
- "sha512": "f1a7185d74c8d00910bfa4403a3137bce6885d9913f70a382ce15b04a6101049e730d0692aa754ac8e92e0d4f428f228fd656f279b44fd7e4b17f4d051fd1e93",
- "dest-filename": "registry-url-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
- "sha512": "385153dcc7eb1fdd31216f0e392c94ae4e901c3e44f49393786a1d8897814b727a230960cc930d13fd5b664956cf9a1383ef5d08cc847ad725bc255738fa0ddc",
- "dest-filename": "regjsgen-0.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz",
- "sha512": "038a5c68e46a98d3035705235a84f3ba1c0c1a93fe3729297ea02c1202351521ff1330bb96b3794cc77e90df180a8bd7fa3329bbc79aa978173c26b483c15035",
- "dest-filename": "regjsparser-0.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "sha1": "54dbf377e51440aca90a4cd274600d3ff2d888a9",
- "dest-filename": "relateurl-0.2.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "sha1": "c24bce2a283adad5bc3f58e0d48249b92379d8ef",
- "dest-filename": "remove-trailing-separator-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz",
- "sha512": "a02705cb168cacab0a713639f6a9c202d9835522df3dbaefe80ded55b3dd14c32bbf98da2b5d15ea6e3470ab283cd840a8deab9875bdb2cc16e28debb92af051",
- "dest-filename": "renderkid-2.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
- "sha512": "2c588d7d1712bbb28addebccc983ae0b3bf72f5d135bbc82d46dbff92b4c8caf18e95a9dd8c1bbaff423c38821b6e08e8c5be59e6b3f88c98baa9bd6fc44bf59",
- "dest-filename": "repeat-element-1.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "sha1": "8dcae470e1c88abc2d600fff4a776286da75e637",
- "dest-filename": "repeat-string-1.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "sha1": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
- "dest-filename": "require-directory-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "sha512": "5dfd2759ee91b1ece214cbbe029f5b8a251b9a996ae92f7fa7eef0ed85cffc904786b5030d48706bebc0372b9bbaa7d9593bde53ffc36151ac0c6ed128bfef13",
- "dest-filename": "require-from-string-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "sha512": "34a37990c0f294aba577160b4947eb6e8e53bb387885dfb613c34f3d7d36999b67d55b911104e861efd9765272f89dee0a97da886174e5eec1f16d225db4079a",
- "dest-filename": "require-main-filename-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "sha1": "925d2601d39ac485e091cf0da5c6e694dc3dcaff",
- "dest-filename": "requires-port-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz",
- "sha512": "b95765cfc27b38ef804a9058a33d59ca9831d0a6ac098db41fe37c243d77a1432d3ef48742eb1cac7a29e0a6d7adbb0171d07d0ecee554aede4640487cee37bd",
- "dest-filename": "reselect-4.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "sha512": "d1ad45e25ef7fd915939a9099d0dc5be4276fa0493416cffaf6284e4e7436344f13e6e61e0692a91659f338ed3ec7b1b9ceb5c255105e1ea42572eaeed0dcafa",
- "dest-filename": "resolve-alpn-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
- "sha1": "00a9f7387556e27038eae232caa372a6a59b665a",
- "dest-filename": "resolve-cwd-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "sha1": "79a40644c362be82f26effe739c9bb5382046f43",
- "dest-filename": "resolve-dir-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "sha1": "b22c7af7d9d6881bc8b6e653335eebcb0a188748",
- "dest-filename": "resolve-from-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "sha1": "2c637fe77c893afd2a663fe21aa9080068e2052a",
- "dest-filename": "resolve-url-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
- "sha512": "1e1b6bc349cb792ac543ba613e9e0e39c5632cf21e327465af999c9d5b8c7bb33fede067f7c0378661512e8168dc32d9922bd26308515094f23f2580939e962f",
- "dest-filename": "resolve-1.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "sha1": "918720ef3b631c5642be068f15ade5a46f4ba1e7",
- "dest-filename": "responselike-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
- "sha512": "c47e3cbb715307d56c670ed1fafbe068a78b2b34fa8cea206d08447bf8dec309d98333dc9f25ae8b602fe89a6861917ff75bae782fa5aa15aa794470e7faa10b",
- "dest-filename": "responselike-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "sha512": "4d3958a5af8e2febcc30d1b6e314a5406109dc1fd1cc47d494b72dedbe46ff2b5abfec0fae9942a55305bb0cd76e479c26b6fa218a358856f44bdbf7efbe789a",
- "dest-filename": "ret-0.1.15.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "sha1": "1b42a6266a21f07421d1b0b54b7dc167b01c013b",
- "dest-filename": "retry-0.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "sha512": "b968db68a20add3d4e495a6dcd7ecd97a3ef437a801ad284b5546346e6b38df2f7071e5e238d3d5594aa80d0fee143679b32d574f8fd16a14934fa81645bdee3",
- "dest-filename": "rimraf-2.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "sha512": "25990931990018514f3f662a5d95cf6cc94c060b31cc4f082ece253085ffda8d0bf54070f4efd8de8eb0170fe2f582daa5c5095b0a9b8b791dc483dd0bad9320",
- "dest-filename": "rimraf-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
- "sha512": "08784f87e50d1c3d864d735884f58b9d4f0e347748fb90c8fb811820039a883eb7ac7798959bf287c3fe8a7e7df7d4d348581462e294023cd123899d87fa7ed8",
- "dest-filename": "roarr-2.15.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
- "sha1": "e848396f057d223f24386924618e25694161ec47",
- "dest-filename": "run-queue-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz",
- "sha512": "aa5e8fd8bce10534c37f32adb3e428e07f785542a9c4a0c5cfa431c7069464dd26c2f8bb2f7969388ec1a8f0aaee58038775cb974769797c1f715222b65ad8af",
- "dest-filename": "run-script-os-1.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "sha512": "19dd94641243917958ec66c9c5fb04f3f9ef2a45045351b7f1cd6c88de903fa6bd3d3f4c98707c1a7a6c71298c252a05f0b388aedf2e77fc0fb688f2b381bafa",
- "dest-filename": "safe-buffer-5.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "sha512": "ae9dd2a34eca71d9a629b1af81a37141226bedb1954959394bd12ad45fa9a5b468ef4f9879a0f1930e4377c34f37e183e9b8e7626d95b8fb825e6a6e62f9825d",
- "dest-filename": "safe-buffer-5.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "sha1": "40a3669f3b077d1e943d44629e157dd48023bf2e",
- "dest-filename": "safe-regex-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "sha512": "619a372bcd920fb462ca2d04d4440fa232f3ee4a5ea6749023d2323db1c78355d75debdbe5d248eeda72376003c467106c71bbbdcc911e4d1c6f0a9c42b894b6",
- "dest-filename": "safer-buffer-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
- "sha512": "cbfe7631ccbb6b0de0466ec8adc183171fdb0a4e00851876788f65b8739033cea766cab0891924ab619e9075c1043f9298f89d73c8b63eab58665fa9589f0e7a",
- "dest-filename": "sanitize-filename-1.6.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "sha512": "36a543bfd4e900d523166d0df2e3391b12f7e9480a8bdfdab59c3ec7b6059d0f1c9301462ab978c57e325adadecb75099b99cfd6451b9d880ba29a963524615b",
- "dest-filename": "sax-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "sha512": "d9e59f1a002aa96146aad74c99c2f9cc230ad54f0a957bfc4901468252f7084b5dd1a0d50d681e17f6280a6be59f9e66e734a4dc9ff6d214da48179239bb100d",
- "dest-filename": "scheduler-0.20.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
- "sha512": "8b6ecc89ce0aa2f33f9671accbcc214421e173b5627096a30234eb620d752bdcdf6579d822de24e45fa4664c239eb84accb89cfc72d4e23d759a3b33d86ffbe6",
- "dest-filename": "schema-utils-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "sha512": "48788db4c394196050270cc84a25582aef361a257841819e3e9de8765635b6e28eee03eda61013e51fe9cb47c0eb1b5b80b2ff46fb4966753d6fcb34175ab45e",
- "dest-filename": "schema-utils-2.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "sha512": "6393d0c52e084e50be11a84bb97698f3a4d77d1ec3739970dbde1a9573aaf3a2401c28a100865faaff273425af68426f682e75b8df616cb19e57470505d1fe17",
- "dest-filename": "schema-utils-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "sha1": "625d8658f865af43ec962bfc376a37359a4994ca",
- "dest-filename": "select-hose-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz",
- "sha512": "9648da880c9efb00590c206cbb90468b45e22d1c5e525b06a1de593fddb8091484a06b99030fdfef2f512aedbcaf04df88756175abe1074a87d08355e8fd6510",
- "dest-filename": "selfsigned-1.10.14.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
- "sha1": "0dee216a1c941ab37e9efb1788f6afc5ff5537fc",
- "dest-filename": "semver-compare-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
- "sha512": "197d08c7f089707c81f1ce329291c6200bcbc8ec0ea1bb4cffc77e4d090077cd7f6c48e03c7adf6dae355697acafb8d7fedf1487e477117f5e012e5b7be8d062",
- "dest-filename": "semver-diff-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "sha512": "b1ab9a0dffcf65d560acb4cd60746da576b589188a71a79b88a435049769425587da50af7b141d5f9e6c9cf1722bb433a6e76a6c2234a9715f39ab0777234319",
- "dest-filename": "semver-5.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "sha512": "6f7f5305a4d27d5eb206b6a953cf69e5f29e904da6fcdc270e870e56bb90152d7fbde320773b8f72738cdf833a0b0c56f231ff97111ae6b0680de530bb91c74f",
- "dest-filename": "semver-6.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "sha512": "f8607acd503d2d687ace8bd840b00b1f0bf9adbd8f1c69498b795f8aa207c51d2ebb00a079f70e25ce7dbfd7efd70f066d2b70c6ebaaa808c8f4d30038e82ad4",
- "dest-filename": "semver-7.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "sha512": "3e878625887c1cae014cefdaf537fa646def7a8fc0ed956c62b480e89f27cbd9dbdc1d55ae992e37ecfd384e707c4e69e87e0b721619b1e8224206c90fde1915",
- "dest-filename": "semver-7.3.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
- "sha512": "509601eb0152244dc6d349c48af479ae05a9f1cdb15ef27738f58f866bad794d082a3f2729b1b70eb8e23a62f0a671c6616015c00ebdce64e6fbe606d079b0c3",
- "dest-filename": "send-0.17.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
- "sha512": "f08f138d6e4a30e2ac6504efa318ee4886bb7e80303d618eb6cfbaa3bb208f3e35fea303f55407103c62e8f06f2b6974317526a99c8da542be4f6b5069a125bf",
- "dest-filename": "serialize-error-7.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
- "sha512": "19a340e78dfcd2e15e7d68213830561068ac2d9163d349d2e400aceb21daf672ea94ba552cef0284319e2918d99d5e0d8789f4422ee7858643ffd7c23f312a93",
- "dest-filename": "serialize-javascript-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "sha512": "42bdd3a2cbe0b85b7c78f5aab2f45facac905c8896fa719b629cbc5cadb83501c4f3771ac56b7e988ca64d3d7d0c615b35634b7c4c2cae44a637ae2555607d6a",
- "dest-filename": "serialize-javascript-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "sha1": "d3768d69b1e7d82e5ce050fff5b453bea12a9239",
- "dest-filename": "serve-index-1.9.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
- "sha512": "f9330d03d005c54106b82d33da67afa204a79fd31729be1f6bb9e079130969a1aff2f4f09c81242a2f901af3eddf71d29dff29452f9618cd046ccb4224b28c05",
- "dest-filename": "serve-static-1.14.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "sha1": "045f9782d011ae9a6803ddd382b24392b3d890f7",
- "dest-filename": "set-blocking-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "sha512": "2711dcd7078237af30458d1f842a17a722b9e66fd73c769f3a62b85160fb9b6088d7818c705ca9b78c3fd3e355e5ffd931bcb617a4b6c3003b7e0ca787d8164b",
- "dest-filename": "set-value-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "sha512": "06f13f4f0a595f8157131c4ec59c9119042feb9d4c4b09962991aabe63dc4488c3a96b9bebb9132ae20cc78ddc659ad2fdc041cf005c3435a8171b765c4148a5",
- "dest-filename": "setprototypeof-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "sha512": "1392c35fb5aba7ce4a8a5e5b859bf8ea3f2339e6e82aae4932660cde05467461fcc45a4f59750cb0dae53830ab928c4c11e362fd7648c2e46f6385cdc18309a7",
- "dest-filename": "setprototypeof-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "sha1": "44aac65b695b03398968c39f363fee5deafdf1ea",
- "dest-filename": "shebang-command-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "sha512": "907c6bdb366962d766acdd6a0e3aeb5ff675ad1d641bc0f1fa09292b51b87979af5ecc26704d614d6056614ce5ada630d7fc99a7a62e0d8efb62dbdb3747660c",
- "dest-filename": "shebang-command-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "sha1": "da42f49740c0b42db2ca9728571cb190c98efea3",
- "dest-filename": "shebang-regex-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "sha512": "efef9d161b5cc77df9dee05aabc0c347836ec417ad0730bb6503a19934089c711de9b4ab5dd884cb30af1b4ed9e3851874b4a1594c97b7933fca1cfc7a471bd4",
- "dest-filename": "shebang-regex-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "sha512": "ab95cfcada85108287906762308ad8d749af2d1be7421e36ffe1a8065156ddbd8b5cb136c71269645766f78c1ed016a85774702721aa839c12edea714efd19bf",
- "dest-filename": "side-channel-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
- "sha512": "b03978a8c1698a3706c36d94e70eb72a60f771925f06e16554d6d530a8deda47a828c2fb5f653359b7385eb9846c3c20d0d5c9737cafe3fa31edbf8959be7b91",
- "dest-filename": "signal-exit-3.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "sha512": "83d43585a79bcb7e8e492b706f89ed08618668ab1a5528d0ebc7c1c6841cbad9797d2d6fb98d7c1f7c12b778c5c85b6b931f8acf45751bce40e0cc80743322d9",
- "dest-filename": "slash-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "sha512": "f7884ad0787cacfa90976c577371ec681a0e5ca576d0c4e83e4717bf06c84962c4b3eeb8b01ab9905827da42431dbd4faf2f72acfd1dc6b088f5145c8bb4572a",
- "dest-filename": "smart-buffer-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "sha512": "3b6ee5e3168c62dfd1490e53477be9582001e4a6ff73321ca9414e33f0b87d870b9db6547353e48d300c8e87f6a4159a493c0e51deaa5077051951a3eda2309f",
- "dest-filename": "snapdragon-node-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "sha512": "99b2a431d40ab235f80402f86d16138f6d5e74e7fc70ded71dd6142447be667f7d85511870cbca3dcb7522a35eefe0193e2ae7f01083390047419927aa62a565",
- "dest-filename": "snapdragon-util-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "sha512": "16dc8e9d637fc021d355738cc2f4afdba77e928e6f5a52030face8509ecb5bcbe1f99042f107658ef7913fe72b36bb41c22a04516cbfe1d32d6c18c0e22a0d96",
- "dest-filename": "snapdragon-0.8.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz",
- "sha512": "6734713c1212404ed1a73947e2d2893106c733da5a6c796e9345816b1010fb09bf52279e055068bb4a78c159d240637d426a40672810d1c0c8ca95aea8e16615",
- "dest-filename": "sockjs-client-1.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
- "sha512": "18980b4d9eef61bfc9b4f492675d21b0e608bc462c8db354fb33dd20771469654d5043e2bf3c64bb7d7ceb9b124ae7740dad16e2511e38f966c3ddf32d0721b9",
- "dest-filename": "sockjs-0.3.24.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz",
- "sha512": "b7c274906ddcb2303883a1536ec30e5b0b3eed1eefb910bc690ff0cb7ff53969ac83003af33b3ff9c1314349284a2b540d7aa1b9f17f609afdc2d34c647c3913",
- "dest-filename": "socks-proxy-agent-6.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz",
- "sha512": "90b43d379b9c8fcb88731ac3c239b426caa4d3ac5da418c6350b695f2e10f3f418da4f9f63b9d91fc080472fa191b1be486028be6cf3b9ab82a4195bf05ae704",
- "dest-filename": "socks-2.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
- "sha1": "441b6d4d346798f1b4e49e8920adfba0e543f9ad",
- "dest-filename": "sort-keys-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "sha512": "aa743b81533118dc6c88be2512e2707bf4e8f149caedf02799b184107f11a4ba2eb8a6de126d2585b415148acd4ae07e1bbb55ac0955b198044d3e679637fe23",
- "dest-filename": "source-list-map-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "sha512": "1edcfe467b175a4e7e3f6b25c79261dd0ebabe1423d429659b4cef9da63df3e345c7e0efd8217f7f93bfb7cc7e29a35dadd200b2bb8dce887f2a989a95ba809f",
- "dest-filename": "source-map-resolve-0.5.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "sha512": "b6bcb4fc9ab13cb17d9ce8ef4ad6bbb55a277643f97708322c38d5a323039668ee813da5459d4e7ecad84e409dda19039c94ca45b3bf465de8ae6f2f96c5336c",
- "dest-filename": "source-map-support-0.4.18.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "sha512": "b811d4dcbddccec232617297f3c7ddac6a2fc5d482a13183459e92617b524712d95331e0e4fffae87b7aba85251eef4466877e8a75e12a8dea420c17513ff2d7",
- "dest-filename": "source-map-support-0.5.21.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
- "sha512": "70f8853932d42af245220e1229549ccb88a53cf5baac580c81fb9924f3680ee32cde70b51db314c9c068270efbc45229eb3d5425024e7f1e82f46307f340e24f",
- "dest-filename": "source-map-url-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "sha1": "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc",
- "dest-filename": "source-map-0.5.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "sha512": "52381aa6e99695b3219018334fb624739617513e3a17488abbc4865ead1b7303f9773fe1d0f963e9e9c9aa3cf565bab697959aa989eb55bc16396332177178ee",
- "dest-filename": "source-map-0.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "sha512": "0a40a3ea088ddd2fa7f6aad88814d7e60cacb6510d9d15b98d978d2c7a5ee9ab9ef92ac7706e55630ba3856f6ce1d637d66106b31043ac747aa08ebd7d35ec69",
- "dest-filename": "source-map-0.7.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "sha512": "70e61c516c210ae1c25e2e3d4611510b22442b788f8f5662cfd0e9562577b5b64ec170f8f50cc837732938b24dc61daac2ada524965a28c570f6a362e234c2d3",
- "dest-filename": "spdx-correct-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "sha512": "fed4eb60e0bb3cf2359d4020c77e21529a97bb2246f834c72539c850b1b8ac3ca08b8c6efed7e09aad5ed5c211c11cf0660a3834bc928beae270b919930e22e4",
- "dest-filename": "spdx-exceptions-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "sha512": "71ba87ba7b105a724d13a2a155232c31e1f91ff2fd129ca66f3a93437b8bc0d08b675438f35a166a87ea1fb9cee95d3bc655f063a3e141d43621e756c7f64ae1",
- "dest-filename": "spdx-expression-parse-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
- "sha512": "0ad97606b1623345f7300358823dc29328318519abf668bac617a36dd3bdeb49c5e840c90294d8a67d014270ca96734150b2a208dd67df0f440641caf195a0fa",
- "dest-filename": "spdx-license-ids-3.0.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
- "sha512": "86c2d5144e528c0e930a2b167895c52a788618ea4180c2e67ab7ced9a0b2094e6cee727fae901ea6a98589fbff1826d26ee7847802499e6490dab282fe0f0573",
- "dest-filename": "spdy-transport-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
- "sha512": "af8ea065065057e2a5f6822dbe5d49659a89286afea04901d3c03a07392247be7ddffec86edba77171ddd98a18793b06e35e7b66cb0cbbd298bd41cb723703a0",
- "dest-filename": "spdy-4.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "sha512": "3733558490d8a7071e5558a2f3f1eee8329f0f61be36b407952fd5fea82fefadc462e755c0470c40dc5dda587ed15ad40725cdfe826497982b3a1616bd05188b",
- "dest-filename": "split-string-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
- "sha1": "cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f",
- "dest-filename": "split-0.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "sha1": "04e6926f662895354f3dd015203633b857297e2c",
- "dest-filename": "sprintf-js-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
- "sha512": "544d123951070a4ed073cba5916c379ed0335eea9fed2da5bf041a0cb46751e20468a35027357a07098b2a13aa4fad5a1a17d432b5de68193ea03182cef85cba",
- "dest-filename": "sprintf-js-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz",
- "sha512": "c3e75a0b35cdf3d3ec7932fdf4c900f9fc4911c537c1f684fda8748b49673a5a46d4260b276663cc4af2ebc60129f2ece097e84d286b4c4b0990066e359fecb7",
- "dest-filename": "ssri-7.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
- "sha512": "f7ba92873cb5022cb1bcf34890b5a81ae6bbc68433ccf8d0d07007e01d2b58aa3b499e944ae3dcad488016bc2cd141fc46b6d69a0ab72cc4ce6e13c81db6c179",
- "dest-filename": "ssri-8.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
- "sha512": "c6b41c99884eb27ff5917f95adaabeee3e281368ffe8116c719d1eb66620f35c6e33c1aad34db63f16fcf88aa03855086b11ecd0a6926fb4f5f8e7a088dacd14",
- "dest-filename": "stack-utils-2.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
- "sha512": "8c7f4486d2888ee5d9d9c5b19974bc64ff345f20b789ab10c4c0d5f23ce1349a5f0dbed56d02d55b85afb31cfd419bf357e1b862849f05454a0cecb12f38bfb2",
- "dest-filename": "stat-mode-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "sha1": "60809c39cbff55337226fd5e0b520f341f1fb5c6",
- "dest-filename": "static-extend-0.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "sha1": "161c7dac177659fd9811f43771fa99381478628c",
- "dest-filename": "statuses-1.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
- "sha1": "4d5e433c185261dde623ca3f44c586bcf5c4ad14",
- "dest-filename": "stream-combiner-0.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "sha1": "279b225df1d582b1f54e65addd4352e18faa0713",
- "dest-filename": "strict-uri-encode-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "sha512": "bda7dcbfa2a3559292833d3aa0cfc7e860c1ac0b73f2f76141a9068c522f36b1c0eb2dc7085d422272f2f902eaf1d4c93d0d5bf8a0d4a8315cb647515b8e1ed7",
- "dest-filename": "string-width-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "sha512": "c0ac90450a63274b08a7ad84ad265d1ac8cc256b1aa79a1136284786ee86ec954effd8c807a5327af2feb57b8eaab9e0f23fdcc4a4d6c96530bd24eb8a2673fe",
- "dest-filename": "string-width-4.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "sha512": "cbdc428f0d4fdb703093c12f4e97322f6348af58fbc09dfd7fe93a96f46748ccfe9b3f421b3f4d60f7a50e4e3690ecfafaa97cc637caf28633cb78c03f9414e4",
- "dest-filename": "string.prototype.trimend-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "sha512": "8e1e9ef7ce0e05fbf14b9d2d758da74599e80b9fe62c528e44441fc3cb79cb2b64a14b0944dc6f23f137f6abb5b03d0eb56237382d1780a4a6716c338b062e67",
- "dest-filename": "string.prototype.trimstart-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "sha512": "9ff4a19ef0e2e851db6d57ef8aba3e5a88e2173bfeb3c30f30705ccd578f7d4a4324bc282d3d21b759786300426e2f29240bde104767907c8fc933ff9b345fc2",
- "dest-filename": "string_decoder-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "sha512": "864457f14d568c915df0bb03276c90ff0596c5aa2912c0015355df90cf00fa3d3ef392401a9a6dd7a72bd56860e8a21b6f8a2453a32a97a04e8febaea7fc0a78",
- "dest-filename": "string_decoder-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "sha1": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "dest-filename": "strip-ansi-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "sha512": "0ee46cd6029b06ab0c288665adf7f096e83c30791c9e98ece553e62f53c087e980df45340d3a2d7c3674776514b17a4f98f98c309e96efbdcc680dc9fa56e258",
- "dest-filename": "strip-ansi-5.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "sha512": "637f153d21dcaa416b0a916743dbee4979aabaebf9a1738aa46793e9a1abaf7a3719cf409556ba2417d448e0a76f1186645fbfd28a08ecaacfb944b3b54754e4",
- "dest-filename": "strip-ansi-6.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "sha1": "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
- "dest-filename": "strip-bom-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "sha512": "df1bab16fe6d1208a2df7662f09b69e79c042082d1f5e877e05016d343d97fe2674ac4e657f8a87b04a0425f7b247be08e8446c0f4a1b169be21daf1077e5dd3",
- "dest-filename": "strip-bom-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "sha1": "bb43ff5598a6eb05d89b59fcd129c983313606bf",
- "dest-filename": "strip-eof-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "sha1": "3c531942e908c2697c0ec344858c286c7ca0a60a",
- "dest-filename": "strip-json-comments-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "sha512": "e9f3dcf91e22870a8fe8dfda22fd9fd60307f25395b56407a2a0b8c8aea8483555a1cba602c7c2aa39179ea89832198cc12fe61072e9ed57a196ddea97a9448a",
- "dest-filename": "strip-json-comments-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
- "sha512": "939e72c4a1f06979e9606b0ece0e1597cfad0eb5b29710c4a649c68e14e2641f1d151539ad3a3d080cdec9c8afc55decfb39532b0aece96c4cc51f799f6ea4c2",
- "dest-filename": "strip-outer-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz",
- "sha512": "18ef0870517d1a6143bea76e22ca540700b309bab37a0c95288b12ca670c82264a7827eb37d4a8c2d5288bcf9be7d5993008c8cd566273f16df7bfa9ca747723",
- "dest-filename": "strtok3-6.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz",
- "sha512": "57b4c2391928f2bb3dac8aa44ab94c7e4a80eb70dfa060412662b590a1827128be0566f872acf4491b27a7897aad4e62c0e11dd3fd9e3efebc495db6557a27e1",
- "dest-filename": "style-loader-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
- "sha512": "32f8d7ce4cff04e7f2543906d2814eb41c475f6bb780a6cc1c817f7576e566c803dc158e14b987a2f229658ec1ca425d02372a442062d5660135d102f7223bbe",
- "dest-filename": "sumchecker-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "sha512": "423563c1d5c8b78d3c308880a825f8a142ac814d84a801b3b363e9926e1a4186e39be644584716e127c5353af8b8c35999ad1ecb87f99602eb901d1a5f440ca3",
- "dest-filename": "supports-color-5.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "sha512": "a9ed637e6d4c83b36afcd4a1e97136e203d744e115b161f10b52c8c7ffd73650fd8b0ed86501a364d8d837bc466841ba88a740f04b4d156e91d208e7557a7ec1",
- "dest-filename": "supports-color-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "sha512": "aa9080bd197db2db8e1ef78ab27ec79dc251befe74d6a21a70acd094effe2f0c5cf7ed2adb02f2bf80dfbedf34fc33e7da9a8e06c25d0e2a205c647df8ebf047",
- "dest-filename": "supports-color-7.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "sha512": "3295043763a876d533c6f29097bd9c505ed14391221ec1af4ac546d226bd73945b5862f6088e02ec4a4f4bc513048a659e5cd988db95e7ac3e16e371cb7b72d9",
- "dest-filename": "supports-color-8.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "sha512": "a2dd169d74bd7e076480871e3dee911cd935580f3e9ae3dae9c4a3791dd5f0adbbabd041d6b4c4dd1d69ec7bf4cf567201cf2ce95beff0323259febcd4c02dd3",
- "dest-filename": "supports-preserve-symlinks-flag-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
- "sha512": "e162bf6d86668fcc4bafe1d408e0c7185d59173b187df6ac2d480488c058e1f82d96d74ee81e1626d9526cf6834cba584dc195c0cdaa2e715320211c371b3790",
- "dest-filename": "tapable-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "sha512": "18dcd0bd04ce20fe91c937c4d90c5bf19565366c349fcf2fa75b33c1646298fd369a74ecc775ad9f9a9176a63dc365ddb8535482f3b084d9d0b23c02a7e92a69",
- "dest-filename": "tapable-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
- "sha512": "6a7fca650cd052464292ea0003ae2133dd97d14adbe95a51840165943cf3e3853699c0f9b1c993df305ce15815a64ba0179f34f83427f1e0054b2a10b74b739c",
- "dest-filename": "tar-6.1.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz",
- "sha512": "0b9b63942fc70ad5543a2dca595a24778bc755588e9868ed2f0221e0cbb33e8fe73184d5fe9d6eaeddd19cccf62165c374a106247de4e7e28fc6da91b14606b6",
- "dest-filename": "temp-file-3.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz",
- "sha512": "fdf2b0dd1fa15b21df631ec1bfaa0faa69381c641cad62ed5775fa820bcfbb03cd1d29f3bd5579d73e8e69a08ebace182e3bad6063b3de91296e17ba529dacd7",
- "dest-filename": "terser-webpack-plugin-2.3.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz",
- "sha512": "1af959753eb03d029b0cd5bf18343364583f8f8bca53deb2976aba99c524cca3a05b88307f567c7194e8502af3df55c794f587f0c55bd6bdad16d743b53189ee",
- "dest-filename": "terser-webpack-plugin-5.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
- "sha512": "1003e2a5335e5ac6ffdf02cf7aea75b553da5df21a53af3132755d3da7c82f54d5d393a101202b63221f16f9ef24236b4763483af0d534d4c545af917b6316cb",
- "dest-filename": "terser-4.8.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz",
- "sha512": "00c985f7d0cc7c40e24497f17d8e638f9c0d1ff6d83b4f5c9e24aa85fa32c5cf2c168608824272f3a1b4e14a195395639699e9955bb42ba4f1e84f5be7e0e51c",
- "dest-filename": "terser-5.10.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "sha1": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5",
- "dest-filename": "through-2.3.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
- "sha512": "78763b9c17ed813841a8ec8719537e97c805d01b9c3f4f5f328d283bf2dbd30d4e17cd1d26ffa50d5a571bad16310be47310243726cab2b10813766d28698fac",
- "dest-filename": "thunky-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz",
- "sha512": "47033b3283e88cfc6c381627c9dda1cb46f1b48955ae284db3da63e5252f63c673d6c41c406dad1b5852afc3c3c5f80407c44d28386a6c896ba086ab48d0cdb1",
- "dest-filename": "tmp-promise-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "sha512": "efa49486d7ea4762239fec6595c2393f5a326a79c73470720fcd16d6ae38ee05379a9f46f4f4a919d5a68d43874433e21d869c224eba5bbb9b0d3b8f177044b5",
- "dest-filename": "tmp-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "sha1": "dc5e698cbd079265bc73e0377681a4e4e83f616e",
- "dest-filename": "to-fast-properties-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "sha1": "297588b7b0e7e0ac08e04e672f85c1f4999e17af",
- "dest-filename": "to-object-path-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
- "sha512": "22adb95c1b7acc3e67a4f8652d55c614ddff832476fea38370a34dc9331de2f6e6dfd1d468e8803383ccab478c542fd3931cfe66376c739e60f72cb3f98ab4d1",
- "dest-filename": "to-readable-stream-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "sha1": "7c80c17b9dfebe599e27367e0d4dd5590141db38",
- "dest-filename": "to-regex-range-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "sha512": "eb93fb8b3e97e7212bd5cc1c82f4316db230ed493780ecb974876d678ac3bde2ea86b7493fe2e2fc7c7ab722b43446fed860b29de08c2621aaac00c248d93cb1",
- "dest-filename": "to-regex-range-5.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "sha512": "156b6578d02d67f2a2daab6a7a3d825d339ac8e1fd6c70d017e438f15a56c835e36d8c40e18cfc883077d735ce05494e1c72a27436ea195ad352f40c3e604607",
- "dest-filename": "to-regex-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "sha512": "a39b123ca12483f0c840d987e37574fee7ab2eba7355e764521f2d18dbda797a5fa6ec2329e9e54a8c7fd8efc14e5654b447be246eece58844cfad3c3e500744",
- "dest-filename": "toidentifier-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz",
- "sha512": "843f90cae500c88daca73b08d01ee07ff8c9da0811e118e4028dfb8f74adb9e3e1029254c1c5838e71c33857485984b0351dbc1f5e21a709b8108f95d5379dd7",
- "dest-filename": "token-types-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "sha1": "8184fd347dac9cdc185992f3a6622e14b9d9ab6a",
- "dest-filename": "tr46-0.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "sha1": "e3646a2ea4e891312bf7eace6cfb05380bc01c21",
- "dest-filename": "trim-repeated-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
- "sha1": "405923909592d56f78a5818434b0b78489ca5f2b",
- "dest-filename": "truncate-utf8-bytes-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "sha512": "5e78b7e4d2b38e032bc1ebf2b074c202bb4b0e93efc9ef3357fd04e04c989f8dcfeffeeabd0c0f87d0469077b06ccba5567b5b8a099c4fbadd5f704da3dc1126",
- "dest-filename": "tslib-1.14.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "sha512": "efb11bc8f3e9333f8544546e00595632d9a051619ef54386d99db936a0b08888d184e7f988a1aecd27b93f6c3595aabe164472e29f8f0ae5642521a4cd310a57",
- "dest-filename": "tslib-2.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
- "sha512": "d61fcb9eaf726a3298d8f11b05a74f5e3dd5c6c0c3bbce383a7680a39d9456623322fc30b413c8b8dbe48eecc19535a97c9c946c6ddecf42920626d0923e288e",
- "dest-filename": "tunnel-0.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
- "sha512": "df847b1d39c6d172097014a7e5784377b9cd14f45c5d8459ac10763b68dd2aa60e0e5752cc102acec5a865862f76e932ef7b68612fc44aac4fbe40dffc5d1732",
- "dest-filename": "type-fest-0.13.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "sha512": "35ef9e138af4fe25a7a40c43f39db3dc0f8dd01b7944dfff36327045dd95147126af2c317f9bec66587847a962c65e81fb0cfff1dfa669348090dd452242372d",
- "dest-filename": "type-fest-0.20.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "sha512": "c864b36bbe31934506f24fa92e1e687a8622aef2225a8e6dd3fa37cc71c03b6b510e265cc563fb7f2c0d95786a6fafebeac5afc22f91b3240c5a154b7b8055b8",
- "dest-filename": "type-fest-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "sha512": "4e444aafdb144f1107f0c75fb8248fed58b3272cd134c8e3d89d9da3626bdcaca6e7df0955d124b2eccf4029e514f5b8932f50fa203e99af411a6d3a5d0072f2",
- "dest-filename": "type-is-1.6.18.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "sha512": "cddbbc5cc3440dea4a291f9760e5c054fb56ba2d25cb436da2152c730f9499a1e20164fc86b575aebfff1fa57ed03bc9dce435f52f7bf4cd2568b7d7f2b9bcd9",
- "dest-filename": "typedarray-to-buffer-3.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "sha1": "867ac74e3864187b1d3d47d996a78ec5c8830777",
- "dest-filename": "typedarray-0.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
- "sha512": "4c24c8ba5ef42f259ee882564fc41261e039e1641ef048d0154e30639d856ac8f950ac7cf0b35828280110770e30eac5175aca19b0fcbffc5c356554abd4b298",
- "dest-filename": "typescript-4.5.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "sha512": "b5953fdcda8addd0398291352adca2254ac40749719c690c147a6d27baba7b0759f2cd7642b383c0d6e12094ad98991dd500d76b535103c685d80d7393f629cb",
- "dest-filename": "unbox-primitive-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz",
- "sha512": "7a4635361473ab4074f20e1b1ae5f8c1dda3671e469cacfa98a4aa14be27a8195fc8c1a21b5d200c58434cc11f6260cbe89cb4154219a7bc22441fb404fec9da",
- "dest-filename": "underscore-1.13.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "sha512": "c98e4fa4395f548539fb2fc1482c402510484b565cd9d0c6dd48eafac47453e26351ebd6d8986870e17eb2844e60349a01eccecce2aecb28b1843ea60649d299",
- "dest-filename": "unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "sha512": "e646990ab6e9e6699bcf9ba50640e46d8d12b0f3a32aa552df95692fdba530f7d29742745ec9bef44be986ff42a08645c2b7bb689a1af78018eac78c28654de5",
- "dest-filename": "unicode-match-property-ecmascript-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
- "sha512": "ed886473461efade0f358cce18a79d0e15db60805ed57110610c4e3f285c5cd309d1608006aaa3e9c93275dea95916531d5e06b823ca74101488c73ad2db0a57",
- "dest-filename": "unicode-match-property-value-ecmascript-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
- "sha512": "e597eecbdabf0c5af8b5f3bb64f7955dbd5a3e879049d78530ba58b8579b7a10c085bb9ebcbb39cb149998814dd6d3f917d5a5e08a49ad8a2383ce7fce0c991d",
- "dest-filename": "unicode-property-aliases-ecmascript-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "sha512": "b497d79b131e5989dccc256ced7004bc857b89ea6900b7727a958c90793072246966b686ff1c13facd8937cfa9af5fbc8c245ff34145cefafe32941e7a81785e",
- "dest-filename": "union-value-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
- "sha512": "566a748c8a76967df95135eeaf2be3ce48c6751c9ff5bda54d7b9261488f9b345c977143b58a80c0e9d3264027803f525a19e82730db4cac1a3ab67e493b7135",
- "dest-filename": "unique-filename-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
- "sha512": "ce85abf4e6dac402c3dc338f7e33d2ab1b787e766259b9711c881e5aa5bcc7b52a0f312d1c440bce38b672e258405094e8a9a826290e600665ad31c779b8f1db",
- "dest-filename": "unique-slug-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "sha512": "b8d69e8ab10fbe96564a0cf0b0f1ad536cd5493ae7ffc2f9abf21ec59987d1e1fa480ef70a6000e54e06c0e453c50019b3de530172cda9e2e83cf34ee6065f5a",
- "dest-filename": "unique-string-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "sha512": "ac125e2390970259b2d6957eeb5ed607d27add4e9771acc71c5d9fd9d6c98b1e17ce9505d114b765b8f414620e080bdae4ffddfc604e61a002435c3ed1acd492",
- "dest-filename": "universalify-0.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "sha512": "84066c2aaed8cb5d59bb50c4d0ecd68f0ee79cb6662596130d96721051d9754855f05907e4c09fa14d5731ac57a2fa725b99eae6c70faaad190cff59ca5d38a1",
- "dest-filename": "universalify-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "sha1": "b2bf4ee8514aae6165b4817829d21b2ef49904ec",
- "dest-filename": "unpipe-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "sha1": "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559",
- "dest-filename": "unset-value-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "sha512": "699c06a5a9853bad60dce95f4fb390087aa11a75b8de2787f5665e3fb43137f1bf8d2e237ea524671a2bcaf26054f11cae5e4d2ff8201ec4a62cc1ee1fae0b86",
- "dest-filename": "upath-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
- "sha512": "22d9c80876de321f46a94cb7d6114fac3d6472e677ae9c4365b7f82940dabd7c12d1b5b99bb48b6c3429197dd462bd3bd9c6eb17984552cdebe6d52c3f08df1f",
- "dest-filename": "update-notifier-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "sha512": "eeb294cb2df7435c9cf7ca50d430262edc17d74f45ed321f5a55b561da3c5a5d628b549e1e279e8741c77cf78bd9f3172bacf4b3c79c2acf5fac2b8b26f9dd06",
- "dest-filename": "uri-js-4.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "sha1": "da937f7a62e21fec1fd18d49b35c2935067a6c72",
- "dest-filename": "urix-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz",
- "sha512": "dc14d5f35dbe0151c738940ef0ee4c916819e5aa2c3fb1a744e270bf32d2f615838f4d2567a674c0d6a4e36dcba7d3c164dd3937e264fcde528bc8d10251b258",
- "dest-filename": "url-loader-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "sha1": "16b5cafc07dbe3676c1b1999177823d6503acb0c",
- "dest-filename": "url-parse-lax-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz",
- "sha512": "213780072596a2abad14295cfe54599c5a6581780466bdd627a5e780c33f37d0cc226e0af335cf099d4976ed2b111c0ef38c35582e709257b6b9bc1303835306",
- "dest-filename": "url-parse-1.5.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "sha1": "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1",
- "dest-filename": "url-0.11.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "sha512": "73011255794edeeae5f585a5156fd303d72c842121b6eec8289fe9e6ca09fe01a98fbbdbbc5ac063f7888a843a0f0db72a3661620888a3c1ceb359d0dafaffa1",
- "dest-filename": "use-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
- "sha1": "f45f150c4c66eee968186505ab93fcbb8ad6bf61",
- "dest-filename": "utf8-byte-length-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "sha1": "450d4dc9fa70de732762fbd2d4a28981419a0ccf",
- "dest-filename": "util-deprecate-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
- "sha512": "8beeaa03630f86fa0a2eec6724da57006860ec7a6140e494ab62ca3190f49b5e448ac91752432f29d17852e8b459878250679afa8d9cc3f66ec1e86d7ecacd90",
- "dest-filename": "util.promisify-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
- "sha1": "8a16a05d445657a3aea5eecc5b12a4fa5379772c",
- "dest-filename": "utila-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "sha1": "9f95710f50a267947b2ccc124741c1028427e713",
- "dest-filename": "utils-merge-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "sha512": "1e3483470ea0644e4932081cb4705c8d56a4d3cf8a1158522220f31674fd4bd69e826a7ce52fdb45e0554dbe104c5691369b49f64b9868d8676cd10e91b29bfc",
- "dest-filename": "uuid-3.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "sha512": "f8d62cd9078c5b2f865853849bdc679fa1c20e9d25ed0043ee697cccb52627ef77439345d0da1c12b9f09139175453625f7fdfa42e9a7d2f0385bfe0cfb47b7a",
- "dest-filename": "uuid-8.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "sha512": "97c9421262dc2d8661e276ee9cd66f40225ce69bfbf910b06bcabf2dd531f2eee5b16bcf0ca9a9a1d24024dc24021242fff745638f0ab881268ed778455883ac",
- "dest-filename": "v8-compile-cache-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "sha512": "0e92a6d948bfc4deff1d0282b69671a11581859f59d24aadca01bc5c280d43c6650e7c6e4265a18f9eba8fc7cde02bb7fc999b86c0e8edf70026ae2cf61dbb13",
- "dest-filename": "validate-npm-package-license-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "sha1": "2299f02c6ded30d4a5961b0b9f74524a18f634fc",
- "dest-filename": "vary-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/vue-devtools/-/vue-devtools-5.1.4.tgz",
- "sha512": "1010045ef0075229ec3f3a12884969b34260b4b5d49c95ca2096cfea77ddcff47add574a04c7c9df8feb162a7ee224fb88c6d54b9940e16e8dd63ab81e3e0b0a",
- "dest-filename": "vue-devtools-5.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz",
- "sha512": "c74b7426ec9d228f2a08d72d743ae7d4ecc7fea0f3936fab742382dd8cee999e367e232a990ed3df142eaf291832161f1da3c74e9e19c40c7635f528d4ae9068",
- "dest-filename": "watchpack-2.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "sha512": "3bce103a7af489cb1b1462d2d0eddb23916cc31cd1afcfe01f05a40e5405b248523ebc905efad33318f118fe3e8966286ae2e806f7c3a64ace6ae67ed226690c",
- "dest-filename": "wbuf-1.7.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "sha1": "24534275e2a7bc6be7bc86611cc16ae0a5654871",
- "dest-filename": "webidl-conversions-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz",
- "sha512": "3555816b3f64f37f591ffb229eeaccf87703bc93935f04a3629d64bbee5729e382d37cfcbf9422b672bfc7e940c465c5ca175aca821ffc63a9bfce73dffc4f6a",
- "dest-filename": "webpack-cli-3.3.12.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz",
- "sha512": "7637a573fcc68b3f67663fd4ecf4c18b6562a2b1895c45a8ff796d90f6c3cb1097861117916d1c7bdf5f6a56a89384cf8fe02cc4b897251d0404e6f4ce1f5f29",
- "dest-filename": "webpack-dev-middleware-3.7.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz",
- "sha512": "df1df5ae36c441628c37369c519444eb05ef505b86a47eefaf494811b6293001bd04ec62d3ddbc414d4106cc0e00fde48371f53b88624beb2ae18c809fa00d9c",
- "dest-filename": "webpack-dev-server-3.11.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
- "sha512": "717f06daf47ff395181b9f45824a0c6a6c075089124a55776c1311b1bc555d5524da3e8d95e08a8d0fd613d79883d598e30db93bdc3cc0a3f8af335916651c52",
- "dest-filename": "webpack-log-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
- "sha512": "4d4135506a135f609de368f792b198a8e6d96ce0fec45eeedbc581eed7d4a2b772b528db5932232bff15d1a9a405f4d8378fe907f1880e525967ae7b0461b5f6",
- "dest-filename": "webpack-merge-4.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
- "sha512": "9604d2dd786fd6508e2a8ed20394e3297323a52338b018cd579faad9ba9eb1b48fb391631a653a8e3b414a45fd6f8a96f3bbc322c0889543ce1216d9acc76379",
- "dest-filename": "webpack-sources-1.4.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "sha512": "fc3c8c10eac380b28a206d1f9afb73fb87545ffdc6868cf0826ea23e9f0a461be7f9e41ff7e43b196c5534c937fae08f59f757602e04c4605c9085dd1447c7d7",
- "dest-filename": "webpack-sources-3.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz",
- "sha512": "439a2bda8e842acefea0a989a3b2daa9968c3a50d642c7bd4e6e65d5601f53fba32c63793dbd12a8679590dff86e93e612a10fe519d5862aac3ad5ad515c0647",
- "dest-filename": "webpack-5.65.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "sha512": "6f5eca783210563bdbd2cb2e4831767185d28368b3b65889e01f5676cb81e89f79daa08f2a69d5ab80f25b99a8b489971c30b57014ffd547b3ac956c2b0e738e",
- "dest-filename": "websocket-driver-0.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "sha512": "3aa79d3c818e7ec0e5a37d5437061b08531268ef66f46ff47da2078f9fdd6450cc16a3d3731e94c2ac8ecb708e11a10e83ff55b0622976a9fad96e4a868292a6",
- "dest-filename": "websocket-extensions-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "sha1": "966454e8765462e37644d3626f6742ce8b70965d",
- "dest-filename": "whatwg-url-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "sha512": "6f065dbf400a2e9a65158d8a6515fa4efcae37ba238ebee5c2483a9a5d2ba08cbd61eb92afb252dfbdaa94d5b5f14418ce060af7388671ead6a993a6127f5536",
- "dest-filename": "which-boxed-primitive-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "sha1": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
- "dest-filename": "which-module-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "sha512": "1f125d616ab53132106c9de7c3472ab2c1e84cd536ebb2a5ac3b866755989710d2b54b4a52139a266875d76fd36661f1c547ee26a3d748e9bbb43c9ab3439221",
- "dest-filename": "which-1.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "sha512": "04b2374e5d535b73ef97bd25df2ab763ae22f9ac29c17aac181616924a8cb676d782b303fb28fbae15b492e103c7325a6171a3116e6881aa4a34c10a34c8e26c",
- "dest-filename": "which-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "sha512": "78330e45868f359e2c408bae60f0c7750bdfe20c8217dac4115ff23f119fc0f911a1dc048223145174f1fdd7b1f8c7b4c31c79dd2f8d8141da3fbcb73069439a",
- "dest-filename": "wide-align-1.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
- "sha512": "36c9a85da96c5950cc1aea71679474f246bd7e56638e22ef1d501660e2ad88a33cba3b595abf5c45f7da93eb92138f3e39bf0e6da957a70c9e522c830fa40582",
- "dest-filename": "widest-line-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "sha512": "402d7f88dff6fd13d52798d82bc046b6d8f9cfcdcb9922a6bdbbeb5cf3422d94846f7d8a2950c90e5fcc3add8dd35a94d87fc593311af4f2ada3506a0e3b5ded",
- "dest-filename": "wrap-ansi-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "sha512": "afa94f7011b1657948732984bbb227c43321756d0a0f1a4b82814b720b9ab3109a27f48e219c0835ab4af4a63fb5ff99ae5cb038a5345038f70135d405fc495c",
- "dest-filename": "wrap-ansi-6.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "sha512": "6151888f691a98b493c70e8db198e80717d2c2c9f4c9c75eb26738a7e436d5ce733ee675a65f8d7f155dc4fb5d1ef98d54e43a5d2606e0052dcadfc58bb0f5e9",
- "dest-filename": "wrap-ansi-7.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "sha1": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
- "dest-filename": "wrappy-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "sha512": "02f1dcc99e499d27eade2a12ca3ac1907f725b89bb03293cffd332fc30fda2729ebbff787f0acca1c7a63b64002450259e70cdf990d2f998c0479b9ad7f3d5fd",
- "dest-filename": "write-file-atomic-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
- "sha512": "ce6865b68491f2ed5c9c3b03e374d7e7d9b3a0c66c2caa94c1ec9804022f4e7811dec85cd16e9a399ca5666abfee1ab25713dd8bee547764089db960c84ef67f",
- "dest-filename": "ws-6.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
- "sha512": "e862e00aaa36732d80dab8c2345971412e999631bf72865f65772595d23c141ff51b7082237e9977cc72d87ac55400a2f2d7e4e57ae02d0124f8fd139f3f5470",
- "dest-filename": "ws-7.5.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz",
- "sha512": "29b938371caaeff656aabfed6ab23dc88b7ffa234d14e8c15c45a04dbe3275a34704d1a0bdfd901db4bd7dd7ec9dd7e316517011de0097e9b0f37624683d7464",
- "dest-filename": "ws-8.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
- "sha512": "3d23611090de8d9615ee1e7406884bd3d12bf5568879faf62cc01fdce126a429233a2df8798c906005d44e3110b5925329c17413650a4e1fa8b032ec80d8a6f5",
- "dest-filename": "xdg-basedir-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "sha512": "c923e2323334fa92c37ed1e05d8e01cb4bacc08dd23ca2c3c3f8b75176e73bc33fa76f33a9ec425283e6405ad80feff5073846252b368b511158a240b622ebba",
- "dest-filename": "xml2js-0.4.23.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "sha512": "7c396c23f905131ee02ef6de71cd3fa212c6e747ee810a7caf21f3313b96f6f49ad462745d858a9e1b14c7ba227b71bdf3eaf9e9a4d0214078921b78d91dc9bc",
- "dest-filename": "xmlbuilder-11.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
- "sha1": "132ee63d2ec5565c557e20f4c22df9aca686b10d",
- "dest-filename": "xmlbuilder-9.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz",
- "sha1": "8dd8bf45fc3f7f55f0e054b878f43a62614dafdf",
- "dest-filename": "xpipe-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "sha512": "24a86a4cec12aea340d4d639952ced2751ab06252874b326219b8b88368c449fa2b4577e001544f170633af2162fead2a8d0c2ef82c24859a56ff538519e2125",
- "dest-filename": "y18n-4.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "sha512": "d297c5cde81e0d62472480264cb44fd83c078dd179b3b8e8f6dbb3b5d43102120d09dbd2fb79c620da8f774d00a61a8947fd0b8403544baffeed209bf7c60e7c",
- "dest-filename": "y18n-5.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "sha512": "6b850641a58f1f9f663975189c01b67b09dc412e22e05e374efdc9a0033eb365430264bd36c2bc1a90cc2eb0873e4b054fb8772ba4cea14367da96fb4685f1e2",
- "dest-filename": "yallist-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "sha512": "df074689d672ab93c1d3ce172c44b94e9392440df08d7025216321ba6da445cbffe354a7d9e990d1dc9c416e2e6572de8f02af83a12cbdb76554bf8560472dec",
- "dest-filename": "yallist-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "sha512": "de56ec3517ff8fe03842e4997c3440ec74527d6af33b4623a9325de648c0ab7ed97a9d421206989ab1fd4371b03e207d707c9dd58d54c208068491a8c62a5bce",
- "dest-filename": "yargs-parser-13.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "sha512": "a39d23d09793a32ff82ba39971a4265ba9725d72a1abb72c4445dc0f0936a2614f244c1434e56d24abe60ebf442357c025953265c445ee4c460569915ee76b09",
- "dest-filename": "yargs-parser-18.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "sha512": "cb5d67184953215f824f766ff6ded52a5f90de14d0a13f5ad50cdece1865e91a76d6027f2154d6ed9df2f4459786e5010b64a19dff835f46a7b5e72903048ff3",
- "dest-filename": "yargs-parser-20.2.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "sha512": "cfd900a5850e0b0a1e67bf2b7d161859d894fe234bea6c3062592465f268c8c475c69b3e344057e57ed7991a719191e15c9ebe132d342302b1041496f45223c8",
- "dest-filename": "yargs-parser-21.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "sha512": "017dd9c3988faee37989eeb119120382a913f9986746564c2cc1c0b3cb60ee746bbb2d8d6fe8b9a3d6f082102882d334f2ad5da6bd8b5684bc2924cc62959753",
- "dest-filename": "yargs-13.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "sha512": "69e3dbc4399c616fbe3daa81b09f8761417009dbf82d5bdd9e1072efc139ecf228afcfce56f84cac00c51440e1f031c3151bff3bd8b794f86c10d8ceed05f4f8",
- "dest-filename": "yargs-15.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz",
- "sha512": "59400d41e5608cb6cdb04986936d1ffa794780eab3445a6219655a06b60660818034822ede55a3a328b47cd94598992f7e1099e815c835eeff5b63b66d5e2268",
- "dest-filename": "yargs-17.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "sha1": "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9",
- "dest-filename": "yauzl-2.10.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
- "sha512": "a6110d8b63cb8879c76fa401568b7e7499da019d31a2c8fba777d697ece7223043967308d8fb19089677d3a04f4c539a1dfe6a743108f31e6a16b48e04de6faf",
- "dest-filename": "yazl-2.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.npmjs.org/youtube-search-without-api-key/-/youtube-search-without-api-key-1.0.7.tgz",
- "sha512": "3e3c1e8c5e98029643a93168e3aff8aba210973b54b50b0fffcca07076326a43c7aa28c82a7dfafb251054f4c2f76ffe219b6ac99061a5328fd5b1bab9928ffd",
- "dest-filename": "youtube-search-without-api-key-1.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-4.0.0.tgz#8f5b45b7a0a79c6f4032de2101e0c221847efb62",
- "sha512": "ddd8812c85413cf8778f8fa16f9968d08d43f92fcefd50c93c8e18e74d9aa41c66c04aa3c971b881348f154966e35b1265e67331aad3fc6ce8bf0f6457b027d3",
- "dest-filename": "@ava-babel-plugin-throws-helper-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-4.0.0.tgz#9be5a59ead170062e228bb6ffd2b29f0489424fd",
- "sha512": "959115d5900dcdfcd260153a587484aeccbb8cb3db0f58888006e80123cc70aa3bc285678b9ff920a59e4f44710bcad8f34d8c164b6eaf738a130d896354efdb",
- "dest-filename": "@ava-babel-preset-stage-4-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-6.0.0.tgz#639e8929d2cdc8863c1f16020ce644c525723cd4",
- "sha512": "f1e2a1173669ed072ad552dfa02ef9820193f2742cf6af1f23196d538ef2081ed68bb63c41fea8a98d419b4cf4e1f21e736e2f120af410d8431c43941950ea9c",
- "dest-filename": "@ava-babel-preset-transform-test-files-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d",
- "sha512": "dbb778959a28995ca8e7555e831236d3164fb921eeb2a6d06a0ff3b6b042ef07a05a84359cb4443d548a496f1bca14e5cd32b2344e227da4c0ea50a9ec98e917",
- "dest-filename": "@babel-code-frame-7.5.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/core/-/core-7.7.4.tgz#37e864532200cb6b50ee9a4045f5f817840166ab",
- "sha512": "f9b61bc79ea3e276019a9b16b673d4b0a5b735d9d8c5bab27eb3f6c3dc082c1b87cdd7c82b3f69ae27992b40c53f223392361551ee1092eb062f4eebe695f39d",
- "dest-filename": "@babel-core-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369",
- "sha512": "9b9aa8d9681d3897b262780a2266e4c90ae750dd663dc79a1b9055f86d04de05ac6b897f8c24abc9625d336c7c3ae1803b287eddde695587d958288d16dca7c6",
- "dest-filename": "@babel-generator-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce",
- "sha512": "d814264201022b360a14fa62c9ca05f6d95be4703896b5720262cb54ad7bec471002a8d52dc8946f6fd1fa7d5ba10f72e44355deecf666a88dc3b40c041c353a",
- "dest-filename": "@babel-helper-annotate-as-pure-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59",
- "sha512": "32dfa304a6b12f4cdf3885ab7d0a677d808deffad2e862b1e820827eea2a55577ed7b47cccd0e5cd5626222f6ac9bdb03a4d34d8db264930f29a4232803507ec",
- "dest-filename": "@babel-helper-create-regexp-features-plugin-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e",
- "sha512": "02790621d881844ba2c1da0c9ca9bb8df3dfa88b5986045a65f320d575f76d2db920d3a72cf8cf1b53e99da8e1f1eaa0b7990f2677eaad11ea16a9a328364bcd",
- "dest-filename": "@babel-helper-function-name-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0",
- "sha512": "41318a11d0a48e0ce07c9ddb032470178cb24f7a60faf0e06a7f034a2bead5e4b48308be286284e71f2445c6de1536ffebbde690ee523752197e609f039a3e10",
- "dest-filename": "@babel-helper-get-function-arity-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91",
- "sha512": "74672b5fa2bd97cdb9f16163c832c9c2e54ac51e1765f534fef4d480e4185849d10fc9a0afea7877a7c250cabfcacd21e020adfd2e4985bbedc84ae35a8b8051",
- "dest-filename": "@babel-helper-module-imports-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz#8d7cdb1e1f8ea3d8c38b067345924ac4f8e0879a",
- "sha512": "7a1181bb8997ae1b3417102a37cb5693317c19220602212e9aee0e359fe10fd33cf2e1dc0fe62edadb4a7ce0a0c33a1eb09389aed421eedac8e583db46d3269c",
- "dest-filename": "@babel-helper-module-transforms-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250",
- "sha512": "09800e502011c04c67122c4b741eac0e6d9d209fd880400a0ccd4c39e31e66ef4b77f6c3815a3c6a25ab5f0718ece061fb511adae51c5517312a4d0626f5bb40",
- "dest-filename": "@babel-helper-plugin-utils-7.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351",
- "sha512": "0a409840b91f922ba06d10cef1e667ea546e47c9336681970a0df5e3d893939b1eee0eaaca44a9cb7fa110b4b0aae86ef938079fc9e42e20701ef357f07a1f73",
- "dest-filename": "@babel-helper-regex-7.5.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234",
- "sha512": "4a4e319ad55d33db00fe3088f347fe292f8c77e6472298eeaa660f93533b17fba91e8bb97b845e626131022bba3d57bae418493d9036098f71f64e01a84e6497",
- "dest-filename": "@babel-helper-remap-async-to-generator-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294",
- "sha512": "ccaed31de1177da9fb5255ac1b603a088fcbf63567239fb1c4a64e75e8f7f58d18b4360ac7dada1e4e45d84b4af4af031d14e2858c20db4003b7d4b7e8647bf0",
- "dest-filename": "@babel-helper-simple-access-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8",
- "sha512": "82e020d525c5715af4e06ba4f5eab44b8feb592fbeb1b9b2aa8b09cd5b3cfb57c7e4d23e65c9a469291cedd9ad0056c716f6bac912678d6df201c1b18ee783ba",
- "dest-filename": "@babel-helper-split-export-declaration-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace",
- "sha512": "56c7f366deb09aca1c39a554d0ea24c2b232b47343e79cafc93e013c1f40208830afcfb1efad7b85eb5d253b2e1b0ca0379442ea6c40f44273b538eec26da87e",
- "dest-filename": "@babel-helper-wrap-function-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302",
- "sha512": "6a4e4d199189e8b57ce50d5973d827da7f9ac973a2cebca18d25014ddbb98a1d6d9550897ae40437373822dc8256120d557bc84ff650e2685e188b1f064a6c92",
- "dest-filename": "@babel-helpers-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540",
- "sha512": "edd5787aef60071a0cd1d0278ff0421435bd2c5534cef4eb92ad2e80cee99c712082e38478ecf5b28d9982111dcef898cd01040f4af8100829b010a12b2d5345",
- "dest-filename": "@babel-highlight-7.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb",
- "sha512": "8c8c2f2ced3308bf8efcb9842508d603be4c4135b0c77737bb624e4c32b90f7ffd7a0ad6451034ff4864f575f2c189d7655569ceb0587884139a1c1469e3c8f6",
- "dest-filename": "@babel-parser-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d",
- "sha512": "d72a7266f1915eb898fd03faebcfacf2c16bda6aa29e19110cc3d240b360842404f8602416da7ec241d5be0dbe1dd922f20c0ff8d17324127f37505fcc208313",
- "dest-filename": "@babel-plugin-proposal-async-generator-functions-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d",
- "sha512": "4ad1fe9c601d3baa8307597cb19e54055f000b7176556d88f157e577bdd330aca9b4c53d0d8e58b09012f14f35faf12dc5c1f763f2dad301b46ed0eb8699e18d",
- "dest-filename": "@babel-plugin-proposal-dynamic-import-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379",
- "sha512": "0f233b5366e7b107ab090fac7a371335987c290114b82dee7f37675674a252ffeaa06269d99de16a728bd7c28386c053e568fa6bb08c4f999dc82349b04680f7",
- "dest-filename": "@babel-plugin-proposal-optional-catch-binding-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889",
- "sha512": "2e2e3e1234a9060c5cb2678417c20571f57ffb2246c475c38ab0e4128c858ee9aec1b99f0951d4b741eea300ff88633b3a1211c97247f585f1aa21fa37cd79fa",
- "dest-filename": "@babel-plugin-syntax-async-generators-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec",
- "sha512": "8c7416d2f6d11afc10360c95c700e1e32b97bb86c7d5fe7f1080892c0865d526e52ecd820e1aec98293ebf95cb744f70c6d005472c71f8ffff230f9ae4bfed4e",
- "dest-filename": "@babel-plugin-syntax-dynamic-import-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6",
- "sha512": "e194aecd6805c6a1d1137d4696ef9f12bfcc8ab35938c6260ffd018415b22f238e433fe04c097b4265a6da15f54311085ecaf6be4765c312334f2898442e3171",
- "dest-filename": "@babel-plugin-syntax-optional-catch-binding-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96",
- "sha512": "9a4d1c1f5cf231afd71de6fa2ce4d74db1bbb8827c46b8e5ceef75a54c7f292dc9a5c81a4c3c0c4bc90cf9aafc48b3af94bd8ba1f8b80860408c2a376b6c7e97",
- "dest-filename": "@babel-plugin-transform-dotall-regex-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3",
- "sha512": "93c8954bb261737ebb21c345e77282c085ed2801fb7337aff3ae9386c4e0cbc0b09578e72999dad951f00a1825ccb95e62b707cf5790108265191431079de7a8",
- "dest-filename": "@babel-plugin-transform-modules-commonjs-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b",
- "sha512": "a94ce286054f82e0335c22bb597c3ca6ab3a704c22e78b3713e1eb7a3964b963ba8af30ac7d8599776367d25e9f62e478325a68fb44a3feba56989ca338c98c7",
- "dest-filename": "@babel-template-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558",
- "sha512": "3f52f9f21432ba99fcf9ecd5036cf92819b8fd9af89420bc770282318cec6b98c5303310033681372f56e558c1f8a0260636f8d14edafc7e9aa3e5e8fbdb1a23",
- "dest-filename": "@babel-traverse-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193",
- "sha512": "733e498b6dca0a2e13f98204fc1a255a8b2b26e4a6a1978dd4416746d07017e28a2e2f061bf67673684e2497825cf9389b0938405bd39b0228749a305e0b6d44",
- "dest-filename": "@babel-types-7.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@concordance/react/-/react-2.0.0.tgz#aef913f27474c53731f4fd79cc2f54897de90fde",
- "sha512": "86e2d2914b8cdbf3fe534bb2d96c252ae8b132c4ce0c3f29e09550048e1529ea299223740bb33737d5d855ac1be0cfb8b2937946b3bf78b864ecaa105fa9ec7c",
- "dest-filename": "@concordance-react-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde",
- "sha512": "6cf1e9e898bc6f8d6ccd339c68feb75659db6cee4dcba7700004ed63a2538e1e4dd8e2eb6f9424fd38797119114219160adf8426c62b341d0c88bf86a67e9ede",
- "dest-filename": "@mrmlnc-readdir-enhanced-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b",
- "sha512": "7869b06109f7831a38afb8dd42792bacde9b638efc0b73fe6bfcbbd8826e905f0b8c1e991de07773e12169c8f7b187929945c696703aeff3e66ccf425702fb0f",
- "dest-filename": "@nodelib-fs.scandir-2.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b",
- "sha512": "b210260f26900b81fdd803c5a086950c70b1e5b4ad228720bdbc10cb13d1adb518db45751184db48372159bbb094c1b7575edca6b66103afbbf097c1fb70d33f",
- "dest-filename": "@nodelib-fs.stat-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3",
- "sha512": "6d0045aee4764c0c287af04477f356328000b4d1b34d181daea9d809cedd8737e836fa8fccbcaa944427cd9de456736b4a9db98b2c44d34ff78767ea180180ac",
- "dest-filename": "@nodelib-fs.stat-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976",
- "sha512": "d55f57398e2b0d6d2b7a1cdbadca809879f3f1eed22af5f6ee087c1add96801d3ea5dcdd88b57cde9ef69193d4fa3bcc6d2d6a53999ab8fda23af3bcae19aead",
- "dest-filename": "@nodelib-fs.walk-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea",
- "sha512": "f4d113f75d0335a20f9e06272cb3de83e3a0ceab22f6e3389926e8539cbaa7c4b90f3313544b0966b6b08be0680cd51505ad83849a9061416f3037e0534eb62d",
- "dest-filename": "@sindresorhus-is-0.14.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421",
- "sha512": "5c80765dbcc74cdea27888df20c57d86555c7cf536eacdaf69f61641c6475971cec62691658103284c1d975dbd672839d3e7e8615da30a0b6ba9203aa8db8d48",
- "dest-filename": "@szmarczak-http-timer-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.10.tgz#0eb222c7353adde8e0980bea04165d4d3b6afef3",
- "sha256": "6fb9669ad0b5b7ddfe9d7a3a1b4e65f1697260d04a5803a0436bdcd7d49f4ec1",
- "dest-filename": "@types-chai-4.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a",
- "sha512": "d98f2e3edd3f8f08e143a12296e4f45c2ae2d436e996bd19c5f157533fb27b5de06aa13cbb980be69a5aa3526b518afd7088a9e52e8cbd0cc14bb2a47bb53d54",
- "dest-filename": "@types-chai-4.1.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0",
- "sha512": "aebf8e432023c737bb1a05ab49a270c9d1d2b48847ab696f63704e0b6323eca9f323b5cad14c354ce39d23d943a1a8c46d258b898828a387f5479d5ead07e13d",
- "dest-filename": "@types-color-name-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.30.tgz#dc1e40f7af3b9c815013a7860e6252f6352a84df",
- "sha256": "50d7c4bb89ed3b828d0f013a211d283b1114c36138eaf5afb15f80d28e31d207",
- "dest-filename": "@types-debug-0.0.30.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.31.tgz#bac8d8aab6a823e91deb7f79083b2a35fa638f33",
- "sha512": "2d2d4c08f6902aab2983b16f7b1ba19836d6521136c8827ee0081523239b7dcd3afd4299f11120c4636365cf36c0f2d699b78e9bb4be812b0b828ef94da9c6e0",
- "dest-filename": "@types-debug-0.0.31.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7",
- "sha512": "11a39bab022f6b22396bc742ce116b8cacd5c0a2f18e81bd4fa3e9779084a34ecb44a7d0f18a24c39e2be7e5aaec568143ec9746f40060fac7c326b5fd416df6",
- "dest-filename": "@types-events-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-4.0.7.tgz#02533262386b5a6b9a49797dc82feffdf269140a",
- "sha256": "c6f917a02b1ebd28d38dfec8403ba487c412b51c70acf0d544ca2c3cde9e6f2d",
- "dest-filename": "@types-fs-extra-4.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz#b971134d162cc0497d221adde3dbb67502225599",
- "sha512": "0ec927a01bc3f2cf9115f4868e611127b64e3f51c8d1465103715223e65a921adcfc6cb6e9842c2c8fa6e55e431f1ae81d126a0832ca269ec78b19fccf2685ee",
- "dest-filename": "@types-fs-extra-5.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575",
- "sha512": "d41874e9c6d62541cc0bdeda72e0fa50c1b6f6732dd00ab3d6f17782e2df1be9071c9872dc0ca8859145c589367fb43549022b370be7731004d0dffdb3bd05db",
- "dest-filename": "@types-glob-7.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d",
- "sha512": "b47abaa9d6d3f54d4845219fd7808bd2952550b92cbd8f4e67ee5e12097537bb7e380ded1af369c490b3b8a425b0d8025706c0b3aef42f5bdc5508bc8fd1e39c",
- "dest-filename": "@types-minimatch-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.45.tgz#816572b6e45164526a36d4faa123e8267d6d5d0a",
- "sha256": "c8679e1fc5843eff37986cf17bb0174573a75064e98fa57d0b5e7aab72e23483",
- "dest-filename": "@types-mocha-2.2.45.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073",
- "sha512": "940569f8a8f9e2e8bfbcb505c6c25332d5af66b699c6e9b7c3737091b95ed9d36e5795673c0f8c8b6a065fd5d8240688bd98b7b67ddc6e34bfa9c25745be81c3",
- "dest-filename": "@types-mocha-5.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/node/-/node-12.12.12.tgz#529bc3e73dbb35dd9e90b0a1c83606a9d3264bdb",
- "sha512": "306baf609acf5341d4c2a17b2eabc88f9d116545f6dd9fa6e7cdca07280a61464b959f3c9fac36f1744d251260b07ba42c49cbcfac3a4afc59a0b81baf9c0ba9",
- "dest-filename": "@types-node-12.12.12.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/node/-/node-8.5.2.tgz#83b8103fa9a2c2e83d78f701a9aa7c9539739aa5",
- "sha256": "4d00daeb6e822e9b8f0898bb5c4064c8d068694b44bc485a40113489a0c3433c",
- "dest-filename": "@types-node-8.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01",
- "sha512": "50baaf64d18cbf4cd116faa7f3fe0b48fb6798de0c7e194f36d2424e92ae208c46546676ad85b3157aef101a21f42572a9213b0fa605449d61c9d2c723a91b5b",
- "dest-filename": "@types-plist-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2",
- "sha256": "7112ae99f1409c474e540823a5d52d1cf02deffc62689e2cedaa832b219e034b",
- "dest-filename": "@types-strip-bom-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1",
- "sha256": "abd5e855e0a4dc0d80450b31802924607e07dddac8b2d2536e0f2f0bf0d3125c",
- "dest-filename": "@types-strip-json-comments-0.0.30.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/tempy/-/tempy-0.1.0.tgz#8ba0339dcd5abb554f301683dc3396d153ec5bfd",
- "sha256": "8274b6d74ec1fa398e2f43c1c712c538f3184554cd2bdfb24965302b069f3a80",
- "dest-filename": "@types-tempy-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.5.tgz#2a1413aded46e67a1fe2386800e291123ed75eb1",
- "sha512": "f548cc0872b918f81046835ba9d2c802f032d04227ba2a9b5b43c132d54fe81e41d8740996fa091ccf8aa1d3d93048ce6b956449cfb92c7ef1cbe714cd07661f",
- "dest-filename": "@types-verror-1.10.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44",
- "sha512": "b0bfdc12f2560270a55f0d301e4f39ff62f41ba4a3f140740ad7354c431b292b26a51a2caa1c23f605a0151652ac1af67fdb625c84b036108f9a57ea52ac9bf5",
- "dest-filename": "@ungap-promise-all-settled-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8",
- "sha512": "9e77bdfc8890fe1cc8858ea97439db06dcfb0e33d32ab634d0fff3bcf4a6e69385925eb1b86ac69d79ff56d4cd35f36d01f67dff546d7a192ccd4f6a7138a2d1",
- "dest-filename": "abbrev-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384",
- "sha512": "b4c52ac0159f2c56c96e2cd198471648bc3a1e71737dd26cdac38910ec30b553cca07ff4032f84ef4de8673efc5525d98a20dc66b4395ca8cf214422c619a057",
- "dest-filename": "acorn-jsx-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c",
- "sha512": "90be42ba85c0fdd8319416d5adf96c7e5cd0dcf01ab3b458641e7634e9bfebcdfd89560980a309ddc4090feb768b9faa15af21dcc0e910e2624bae04f092e749",
- "dest-filename": "acorn-7.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee",
- "sha512": "b1a95c1a78a75749cfaf0a46367e154d705bd523ae5d0062a9bacd5e87a2cc9b07aec2fa11114cd8d7b725448159113a69e34923644e3ff5841080d48837b772",
- "dest-filename": "agent-base-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52",
- "sha512": "4d7b54504607b9a4c46cb65620a52be69981ba10cbcbef0a62d3d875c57ca82fa93992fe34aa98c2f59246b5571e7f99991440bbcbc94c0ce71fb39a83a45547",
- "dest-filename": "ajv-6.10.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117",
- "sha256": "050f54a2d7e5cbcf6fce522d3890845637a0d3f8f2b10bb54655d1e4257c5c0b",
- "dest-filename": "align-text-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5",
- "sha256": "6c7ec6ea1fdb80e0b8a55e9945490b9803e0ae8a4e45e62efb0e3f0409c97922",
- "dest-filename": "amdefine-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f",
- "sha1": "c36aeccba563b89ceb556f3690f0b1d9e3547f7f",
- "dest-filename": "ansi-align-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb",
- "sha512": "6690a554aa973774460662a26dd7d6cea098e259e312ea0dcd4e53d28105a5f77fcf9a891d56abba4ae2743e23b8b3b6157322c14431afd5aa42d6986bc5d163",
- "dest-filename": "ansi-align-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348",
- "sha512": "2685f46a919b1da50904d97ac85fa9e89005619ebaebf86108628de6df501636c940a514fe0f0c35b1436ef7eb80a5ef23542966994f3a7c08a3df655ff00098",
- "dest-filename": "ansi-colors-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b",
- "sha1": "5bae52be424878dd9783e8910e3fc2922e83c81b",
- "dest-filename": "ansi-escapes-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d",
- "sha512": "122621c28d2fdb9e4750be9e0f2b8bad71244e2ed6c1508b030f9278e43b33ba9dba7d73d69ba6e03126fe7baa2156cfbe2f513cf73d93d2dbc81bfa1f40f056",
- "dest-filename": "ansi-escapes-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "sha1": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "dest-filename": "ansi-regex-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "sha256": "52b8ab148865eeaf538e630a937fa153d5af21232f014a5d4e38491937be8037",
- "dest-filename": "ansi-regex-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998",
- "sha1": "ed0317c322064f79466c02966bddb605ab37d998",
- "dest-filename": "ansi-regex-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998",
- "sha256": "bdadb0d036d35d54a71c47d94b2abfedb595775f41b8137bec044dc5efe43d35",
- "dest-filename": "ansi-regex-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997",
- "sha512": "d5aa5e3df5ccd54392ab0d28f48885028bd5cfd3394b50e0fb84eb0f07cc7b043aa7fae632e79beed5998d0d6bc782e8cb502b060828a86a5faaa748e2ba2776",
- "dest-filename": "ansi-regex-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75",
- "sha512": "6d8e9f8f9e8e510d215352a314d0d0b8915ecea29dac0c857487af0038aaad61f04a56e604d307a796a4d9fe343e6f094c5c8cda6ab1906ea78241ced757ff96",
- "dest-filename": "ansi-regex-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe",
- "sha1": "b432dd3358b634cf75e1e4664368240533c1ddbe",
- "dest-filename": "ansi-styles-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe",
- "sha256": "8d603cbfa5e38e5302fe9ed0d50d968853ff3f144522c6d291b7f9f17413121f",
- "dest-filename": "ansi-styles-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88",
- "sha256": "879177345a4a3fd8a5899b8da1f2b59466a1ada42d4b52a48ec9a3cec7365c0e",
- "dest-filename": "ansi-styles-3.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d",
- "sha512": "553d1923a91945d4e1f18c89c3748c6d89bfbbe36a7ec03112958ed0f7fdb2af3f7bde16c713a93cac7d151d459720ad3950cd390fbc9ed96a17189173eaf9a8",
- "dest-filename": "ansi-styles-3.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172",
- "sha512": "ee415082711a31d46dc1feae49f52756bf604860bb7dabab9fe27f32ff74fd6fa24ed374e34e7f9cb768a5f316c1c872c616c6625e930b849c727f5352418082",
- "dest-filename": "ansi-styles-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937",
- "sha512": "cdb07dac22404f5adb8e25436f686a2851cd60bc60b64f0d511c59dc86700f717a36dc5b5d94029e74a2d4b931f880e885d3e5169db6db05402c885e64941212",
- "dest-filename": "ansi-styles-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a",
- "sha512": "d1735ac82f254c7436388f1a963342377b12c7a86caffd7eae5703028b57251ec2d686591c236c7e96cac0c8d103752a6f9b45d5169eda89684ebe31a6af968c",
- "dest-filename": "anymatch-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb",
- "sha256": "409d9be0df71d525ad461cba3dba13e671d4a2a18d68a6eb3dafa6193c9748b2",
- "dest-filename": "anymatch-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142",
- "sha512": "98cf39db6a6c442ab357ee8b868997e70829db961589b8e1f168f6dc8e513e43e9a525528f2283d80da604999619af8a37b7f60fa2cd87d8e40427b22e4b738e",
- "dest-filename": "anymatch-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991",
- "sha256": "a23b5a4b3a0e1b6e01384a027eff16ee970f6ca97b559e6ad09e62efb44489f4",
- "dest-filename": "append-transform-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab",
- "sha512": "3f4d3da1891e1f253be36892649cd9672c23e104497674d67df68ab8940b69b942675bb3ebf716e3269181c0daa10faec0ec719edd204547307ec34fdab8b483",
- "dest-filename": "append-transform-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a",
- "sha512": "63d27a6635eda1887c4675d508c394fedb439a4d5a063ba7abdbced2d6b9c7ce560d08907d417db083c121375b8a2215701a34dc78b78ccc62801b6c75d95747",
- "dest-filename": "aproba-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
- "sha1": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
- "dest-filename": "archy-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
- "sha256": "1659a980f11d9df11cd89bfda2e21db3a7e1ed821c96a0d88d4ff0fad5370c26",
- "dest-filename": "archy-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21",
- "sha512": "e6161d024665706f2d38bba35434e0093fae3d7d159e9007dbc816b0b7f3a57626ef03fa9a9e50fe063247b610d1c29525c5c99e5de3da4a416a7d773ed41feb",
- "dest-filename": "are-we-there-yet-1.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911",
- "sha256": "7faa149cd7811b7e11fc8353dc6e4e9c4de68a02f8221aa8f7dc22108315ac0d",
- "dest-filename": "argparse-1.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911",
- "sha512": "a39468cbab4d1b848bfc53a408037a4738e26a4652db944b605adc32db49a9b75df015ab9c0f9f1b3e7b88de4f6f4ea9bc11af979810d01e3c74996c957be84e",
- "dest-filename": "argparse-1.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab",
- "sha1": "ecbd16f8949b157183711b1bda334f37840185ab",
- "dest-filename": "argv-0.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf",
- "sha1": "8f3b827f955a8bd669697e4a4256ac3ceae356cf",
- "dest-filename": "arr-diff-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf",
- "sha256": "ed72c1065bb45dd8320bba7172d5136e5f8f6fe38dc4124e7e1e63f1bfa80ea0",
- "dest-filename": "arr-diff-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520",
- "sha1": "d6461074febfec71e7e15235761a329a5dc7c520",
- "dest-filename": "arr-diff-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520",
- "sha256": "ddb3765f2b759692dff2f3db49ba693bc14a120180149bf6c43bd76db05f659c",
- "dest-filename": "arr-diff-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1",
- "sha256": "5e6d678d5ba687bd199b8ce1a1a51293976411f46945d672221279e303c0b62a",
- "dest-filename": "arr-flatten-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1",
- "sha512": "2f784a57947fa79a3cd51eced362069f0a439a4a7a13df365e1b5bbb049edcee2a3ad30c32da1d89c0120350a7cb653e6825dc3699a5fa6e1d3ecbec2778dab6",
- "dest-filename": "arr-flatten-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4",
- "sha1": "e39b09aea9def866a8f206e288af63919bae39c4",
- "dest-filename": "arr-union-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4",
- "sha256": "77b44fdf330e520dee618cef90a37f6c8d2dd876ff267aed5e7474db0d762ccb",
- "dest-filename": "arr-union-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1",
- "sha1": "df010aa1287e164bbda6f9723b0a96a1ec4187a1",
- "dest-filename": "array-find-index-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d",
- "sha1": "184b48f62d92d7452bb31b323165c7f8bd02266d",
- "dest-filename": "array-includes-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39",
- "sha1": "9a34410e4f4e3da23dea375be5be70f24778ec39",
- "dest-filename": "array-union-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d",
- "sha512": "1c6cb1a0e4d853208ceacb547ba1098277781287b0008ef331d7ea3be9068e79599810f3fdc479a5ff2bfdc4785aaeb4b0bfe9d0891c8d41043f04b7185ac8cb",
- "dest-filename": "array-union-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6",
- "sha1": "af6ac877a25cc7f74e058894753858dfdb24fdb6",
- "dest-filename": "array-uniq-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98",
- "sha512": "6dd1f1b5ebfb14debe3172356055b443c990f1d4c97364bc00c7e3bbe651efba5b836c80755c8397091a508ec76abd0bc8e31114f1eb27d9587728d966cc1d95",
- "dest-filename": "array-uniq-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
- "sha1": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
- "dest-filename": "array-unique-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
- "sha256": "7e4f36d75b071730d7da025eec05d0f4a4fce80712b7fe8dbc1d7022f024478a",
- "dest-filename": "array-unique-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428",
- "sha1": "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428",
- "dest-filename": "array-unique-0.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428",
- "sha256": "2fbdcf30f58eda555408afc8d61f763c988061e27f11589ac227661c1059792e",
- "dest-filename": "array-unique-0.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d",
- "sha1": "898508da2226f380df904728456849c1501a4b0d",
- "dest-filename": "arrify-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d",
- "sha256": "97aedd9df226f1c9415ee5670d31fa1178cc671e192d004b03cf7d5e85828937",
- "dest-filename": "arrify-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa",
- "sha512": "dddb84c2d8bcf34c6a8b878030df00c91e1ad01c93f74ce861d2e57af7ebbd4e37bdbd186706557f13a0c56acb5d75e9cae80bd2135973d1ba0620790779d4ba",
- "dest-filename": "arrify-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525",
- "sha1": "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525",
- "dest-filename": "assert-plus-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c",
- "sha256": "fcfb6f6be3104cb342819ca025bb310abab104fc90b882a1a2cddb4cd6139fb9",
- "dest-filename": "assertion-error-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b",
- "sha512": "8e0b1a35dbb3fa776f1b216ddee4ae5aabf2e250a72098a8beda2e40de4964738a092d90ba111d6dc407161564b33d8dd94f615c9a3ca1d1bb113c969447ae0f",
- "dest-filename": "assertion-error-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367",
- "sha1": "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367",
- "dest-filename": "assign-symbols-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367",
- "sha256": "4b7571316a051e6b9c816119fecabc1c23f2d3d72ece4150a28436f89f59ecd2",
- "dest-filename": "assign-symbols-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9",
- "sha512": "f91c9fea0dc12a845cee37e9eda77cb4ce13b4c89a5af6c5ff5fec41c64f9244bb6a0dc3e6730109ed947ce4ce36d024686d2d3b48a3dc2e4bc267f5122ca31e",
- "dest-filename": "astral-regex-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31",
- "sha512": "67bb4cc35cad4d7b798ea31c38ff8e42d794d55b8d2bd634daeb89b4a4354afebd8d740a2a0e5c89b2f0189a30f32cd93fe780735f0498b18f6a5d1ba77eabbd",
- "dest-filename": "astral-regex-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf",
- "sha512": "cff5a143914fc922ddbd1101c88daf6624d6c029c5d26a0c27584af584300d31ca87a23bfee49c90c7ada1119be540593c2d73d23970fa7fd70a08de1fbcb501",
- "dest-filename": "async-each-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a",
- "sha256": "df1f8e1ab87b78beeefcd5ff69d61d68b24bd946df383017b7d546a75aacd300",
- "dest-filename": "async-1.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc",
- "sha256": "213d514063e7b7372727583f49899f42c4a13c1b74b018adb3adef60d8867221",
- "dest-filename": "atob-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9",
- "sha512": "5a6eae92868e1898bfef7a7f725d86bcb8d323924cd64fced788ac0fbdd830bf12b6b1ffeff9511609a0f272026600f76d966f8f0086c6d30e0f7c16340bbc72",
- "dest-filename": "atob-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ava/-/ava-2.4.0.tgz#a3bd8b0e01d8826004c91de375eb2313ba5237c3",
- "sha512": "0905adcd9659794da0e12b688d1bfa30ef512118b8b0bc46481f7edc2de1bf4b6d5041b5b6424b4cbcab0507854b858478ad76678a2f1377f688f5614b2f1e94",
- "dest-filename": "ava-2.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1",
- "sha1": "502ab54874d7db88ad00b887a06383ce03d002f1",
- "dest-filename": "babel-cli-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b",
- "sha1": "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b",
- "dest-filename": "babel-code-frame-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b",
- "sha256": "ce2fec717473e4484b1ec48f96ff22407ffc28a310bd4fee32e3e51ee3a8b6cf",
- "dest-filename": "babel-code-frame-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8",
- "sha256": "de5c7830c33d354a294d97d1d9565a3c1c1a327c29e5c35d1abd42a27dc77e2c",
- "dest-filename": "babel-core-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207",
- "sha512": "ea3c852ee0e67a274a99411bdcd33eff26b01b43366c367d675a9b64fe7d7321cbcfc91818a630a493f453050a29489344dbf17cb7ac2674de76a7333fb7130c",
- "dest-filename": "babel-core-6.26.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90",
- "sha256": "357ad762b1b3e43ada991c98817ecaea76abff9e49f026e11f4892e1b380f055",
- "dest-filename": "babel-generator-6.26.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90",
- "sha512": "1f27f063a029663ec1613709511a4ce6dce7ba5681bf28a8effd1de3314e78c3d499fc640a31e8702ba82dad92006cc123c01111c1f778fdfbe7c17aef60e9a4",
- "dest-filename": "babel-generator-6.26.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664",
- "sha256": "5591cd94264c6dacf295c2ee686f6e47a2d26d94bb1ba435208ddbb1d9c26675",
- "dest-filename": "babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d",
- "sha256": "f55360dc5792122bc31fd4e7cd29427b51c182ade280ac86073e2f3bcb3ce4c0",
- "dest-filename": "babel-helper-call-delegate-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f",
- "sha256": "bf5d8a0058d513ed3e1d8959bdfc03d0cb72af8e7a9a3d8ed62952b7aa16a1c8",
- "dest-filename": "babel-helper-define-map-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa",
- "sha256": "c95805377590dc77b65d0747c1ab7a3c8141715c7360b4777ffd4ba52e04cfcc",
- "dest-filename": "babel-helper-explode-assignable-expression-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9",
- "sha256": "8c83dd34e512c68e6a4c5567b8ae8b1e0479111e26d01b5c9fa50abfe9ea6de8",
- "dest-filename": "babel-helper-function-name-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d",
- "sha256": "6b05270878634032ba38d2d055b3f8337686883a7a25f5860f86c6e2a6501aa5",
- "dest-filename": "babel-helper-get-function-arity-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76",
- "sha256": "38e50f215aa6974937119b951e990246a0a8df3ce42356f91b2974f042528bd3",
- "dest-filename": "babel-helper-hoist-variables-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257",
- "sha256": "07ccbbcb068000e2c2a19d292b2fe455230723e772973fa004ecb7a1567c6128",
- "dest-filename": "babel-helper-optimise-call-expression-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72",
- "sha256": "b5a2e2fbb796895c5dc6a409cc6d4dbdf5ce194f5dd0f252bc273ec15610d8c4",
- "dest-filename": "babel-helper-regex-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b",
- "sha256": "ef32c8b7fa232e3d19ca5d8c4b8d26e2706b141e05e19283c9c61a5cc294193f",
- "dest-filename": "babel-helper-remap-async-to-generator-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a",
- "sha256": "b8956d8ee1dec5a5e79aad8bddd8cbb57999c064463e3ec98dc8a4cd1ed4d2f7",
- "dest-filename": "babel-helper-replace-supers-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2",
- "sha1": "3471de9caec388e5c850e597e58a26ddf37602b2",
- "dest-filename": "babel-helpers-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e",
- "sha1": "f3cdf4703858035b2a2951c6ec5edf6c62f2630e",
- "dest-filename": "babel-messages-6.23.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e",
- "sha256": "487345a6086165fd5a3d69cd38bcb914dea5d27ea24176b802519d26647dd936",
- "dest-filename": "babel-messages-6.23.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a",
- "sha256": "cc3bff453634e5c801174d193b61b9c059ed5ad3ac99d3a464ca821e850113b8",
- "dest-filename": "babel-plugin-check-es2015-constants-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f",
- "sha512": "a3aa85929790101c5caadd176255b3015c4d09209975481c47c2119610fff03ca5c638cee1fa0f72f4d6d0618a6bf715b77aefc59ee8e62a6927eff49ef2e195",
- "dest-filename": "babel-plugin-dynamic-import-node-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-3.0.1.tgz#180db17126f88e754105b8b5216d21e520a6bd4e",
- "sha512": "32ce3d53b54802d43f4ed72a45b0fa501989054092c620b7fb33dcf9e1aac4a50814ed654ec8721034548e1a006dddab59fc187f7719eb6a17a33addf16e89d0",
- "dest-filename": "babel-plugin-espower-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1",
- "sha256": "0fc22874c4ae821f9186f3f5e3a5c0a0c26a77e25868b84d39c9bd9bbaf28bd6",
- "dest-filename": "babel-plugin-external-helpers-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95",
- "sha256": "d1e2646eeae782e138c301db9d673b39a834c918cc0b5549517d3ef9bc2c067c",
- "dest-filename": "babel-plugin-syntax-async-functions-6.13.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de",
- "sha256": "17309a2b1fa4f9cc918fe65791e924b53809057b0d4fdacfc99d060bc4255cbf",
- "dest-filename": "babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3",
- "sha256": "392ecb6039ddf1c577d2106ea03201e4cf686352acf3297b7d2fb1eb0bc62c69",
- "dest-filename": "babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761",
- "sha256": "818036c530167d684f38e850a9f27f3c297869d8ad07597d0970a55250ef5a3c",
- "dest-filename": "babel-plugin-transform-async-to-generator-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221",
- "sha256": "538b807a9dace3a621d084085c5f9a3bc739ed5f3a287b331dfdfdd263461d57",
- "dest-filename": "babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141",
- "sha256": "7921372d06328726305fc77fd6fe8a958df4628959c436f4cd9ec56ab7e177c9",
- "dest-filename": "babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f",
- "sha256": "c720227672e8178adddcc0154822fc2b23dd1c7dc9138f1a47836fdd94bbb707",
- "dest-filename": "babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db",
- "sha256": "2bddc84ed1ea2a2a69d4bd05e42f9358cbfbec72e172cd26ca7c945661af2d05",
- "dest-filename": "babel-plugin-transform-es2015-classes-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3",
- "sha256": "1d88d043485401a938dc950e798d8c45d2792bd99ea27080368fa8a88fc8c02b",
- "dest-filename": "babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d",
- "sha256": "2240aaca93fc6eae1f263478e4b0564d5913bf0bb59e2ae7746f952d4942b890",
- "dest-filename": "babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e",
- "sha256": "e6f82395e2e8d36f4518c46f56251e732d90194bfcc6014483648391585e5887",
- "dest-filename": "babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691",
- "sha256": "0a58b5579348561ebf5adc794c209ac2a1da4e58ee843e195c56eefae8f12af0",
- "dest-filename": "babel-plugin-transform-es2015-for-of-6.23.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b",
- "sha256": "e35efde05af4d2b06d9bd09115b545f5343b4379c8d5a24cea4e682a326785a0",
- "dest-filename": "babel-plugin-transform-es2015-function-name-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e",
- "sha256": "5430af6c2aa583f1027d16690cf944c57e96e4048b5a29140e95e27ef16e4391",
- "dest-filename": "babel-plugin-transform-es2015-literals-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154",
- "sha256": "4311efbff5d70677c05b13350cf993f53c95dd3bc10f0fef7720c76ef88485a6",
- "dest-filename": "babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a",
- "sha256": "09b25093d740b7db66a32067b8fa3b263a44672043c45519b0527182a0d83f76",
- "dest-filename": "babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23",
- "sha256": "b7dff91c5cc2dd5766911766f5b8b76186c385e2d7efcbc9a23acf50037cf599",
- "dest-filename": "babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468",
- "sha256": "b9083f68f55c20030010a24eb5579ae44b20a4e34962245944dbc5bab87d2296",
- "dest-filename": "babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d",
- "sha256": "b921263cb2d1ea5855010f4dce07a828f9c93249d4f0ff02c28313551f1cb81a",
- "dest-filename": "babel-plugin-transform-es2015-object-super-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b",
- "sha256": "eefdda72d2c2aad22638bc66635b07eec4a298f5fa11d562a1cccf8ec30cb157",
- "dest-filename": "babel-plugin-transform-es2015-parameters-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0",
- "sha256": "0e557f298c9834c5efa602102d40a7fc1b2289cd54efa337a2fe415879dd90c4",
- "dest-filename": "babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1",
- "sha256": "c18cb2823590b87ab708620dec79c6861c7d3c07ab55ae7f13c77f863939f0a7",
- "dest-filename": "babel-plugin-transform-es2015-spread-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc",
- "sha256": "b17ebc49093f2d76f08835fa6aa95fdfcf99a5f0e728d245dc386213fcc1582f",
- "dest-filename": "babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d",
- "sha256": "64189bc0fe4ec43e017dc69243584d3fb99a8c8e2a628e9d883d106a50160373",
- "dest-filename": "babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372",
- "sha256": "ae0833c0430c3096680db7d321f0af06630074dc0cb9e5c0a8832161c60eddf6",
- "dest-filename": "babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9",
- "sha256": "6a586be6bd2e668c0fa3ba48aa41e019c43c85330793ce23f4a10215a5fb33ba",
- "dest-filename": "babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e",
- "sha256": "72f6aeb6f5c93b0b457a6f4aabaad04acfa28b9a4714ad3134e8e72fcc37b9e9",
- "dest-filename": "babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f",
- "sha256": "832e40c88f4f2b499e289985b6ffc686ced9a2a27a2e743857250e7aa0d4ba3f",
- "dest-filename": "babel-plugin-transform-regenerator-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758",
- "sha256": "3f009b8bc9f42b66cff4a4f1fcca53e32d3122838dbc8cb89ee4e89c19aa7291",
- "dest-filename": "babel-plugin-transform-strict-mode-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153",
- "sha1": "379937abc67d7895970adc621f284cd966cf2153",
- "dest-filename": "babel-polyfill-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939",
- "sha256": "89abd630f618a53a9608c5b3e4a5d7ce2deeb68e925bb027160b8cdd7cf104f4",
- "dest-filename": "babel-preset-es2015-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz#f900bf93e2ebc0d276df9b8ab59724ebfd959f8b",
- "sha256": "d7fd839ec3b5696def4a8206014bca386165f627172acba198e6ab65aa35aa12",
- "dest-filename": "babel-preset-es2016-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1",
- "sha256": "e2678aa5aff7992b7f25a68c0f4e9c761de802a7565ce800d0b74a70c680e531",
- "dest-filename": "babel-preset-es2017-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.24.1.tgz#677de069154a7485c2d25c577c02f624b85b85e8",
- "sha256": "0d32228c58cee79e1c28ecdbd60ba655cbe1698b747ebe376a4caf24b4c695dc",
- "dest-filename": "babel-preset-latest-6.24.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071",
- "sha1": "6ed021173e2fcb486d7acb45c6009a856f647071",
- "dest-filename": "babel-register-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe",
- "sha1": "965c7058668e82b55d7bfe04ff2337bc8b5647fe",
- "dest-filename": "babel-runtime-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe",
- "sha256": "14d2488946744b70c47999b48b1989aa3b85d828181b3c61f35818be9033946b",
- "dest-filename": "babel-runtime-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02",
- "sha1": "de03e2d16396b069f46dd9fff8521fb1a0e35e02",
- "dest-filename": "babel-template-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02",
- "sha256": "0560b9872b2eec15ed29a81e4fbd1326d47f80e951f62287cc6ba347e832df83",
- "dest-filename": "babel-template-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee",
- "sha256": "a32a6f73c2770a56bd1f8a92b50d8c1a7824523170bd93227a7deeb20b3f1ac9",
- "dest-filename": "babel-traverse-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497",
- "sha256": "87be443f0c98a35a9d9c718e7eab868529bb515206cf284fbcfbe762ba196de9",
- "dest-filename": "babel-types-6.26.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3",
- "sha256": "ce1e81d36b5789279f8aba716d2ec5aabecbc306585f867f1a6a1c8dc478d88c",
- "dest-filename": "babylon-6.18.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3",
- "sha512": "abf5048df189d829b7a0a57bd43273f5ddb94cf9eae6b84154bd90e1f039c1c0b78dcadd9fbf92b2c1326c5231c00bef3fe602b0260d2ae821a05df71b183271",
- "dest-filename": "babylon-6.18.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767",
- "sha1": "89b4d199ab2bee49de164ea02b89ce462d71b767",
- "dest-filename": "balanced-match-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767",
- "sha256": "2896602c12d3cef566bfbed7ccdef79232f4f1e00622fc5c9b40737465baffad",
- "dest-filename": "balanced-match-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f",
- "sha256": "40b19256da00763327b8a914f013c4df34d3b7b89be0d84ae804a321ce580372",
- "dest-filename": "base-0.11.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f",
- "sha512": "e53e8fe313e0a69d180c5bd25b0119e0da04dda3384014170f39956eb6829058fccc733e99b6bc4b2a81e436d95b247b9981e8e98ec1750a373280389b44de42",
- "dest-filename": "base-0.11.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65",
- "sha512": "527ecc2040dd502e603697060d5f7ba29d58c24ef8f0ca477054c7a18b3aaa78f56778fb239dd51b79f06612b3a016666dd44d9dbe9645d165c25eed483b991b",
- "dest-filename": "binary-extensions-1.13.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c",
- "sha512": "3e196dd29960a482013864d3fde85f1676cd95fb03122aa6cc4d8a457a17d5b2c8962af85ff311fb34b204490bd397df5a09d149ffc35eff96ad4015afddffa3",
- "dest-filename": "binary-extensions-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9",
- "sha512": "d588fc87d43e40317917384cb3f73dfba527b5b0f932445f47069cf03a049bd65f50167bb59e7961c19503311ee1b5ec7501c493eb3d4b9c2c38a55d66bc34b5",
- "dest-filename": "binary-extensions-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df",
- "sha512": "a76abfb7f9a1bee3a3fd478b955eb9eba183fe0ba8c25af4847c42948d16f66ecc59890bd45d212e8fb401ec6cf4748f0ad4754974344c3dcc30aad765a8db89",
- "dest-filename": "bindings-1.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de",
- "sha512": "0dd9b2a060a57899e46e9de791bc532c9d7cae30ec138c8282013028d5e4795d76dec3cd7ce098783a1eb8e63e17616b4a33b561771353e76ccbde8a332fa072",
- "dest-filename": "bluebird-3.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.12.0.tgz#be7367938a889dec3ffbb71138617c117e9c130a",
- "sha512": "ce8f8721d221ce88efe85d6c8903ea3c544ec95cbb0b9d0acc7bff93f233f81b6fb55cd21d788c5cea6adb009f364781a9d0aff95f17395f7ab6c12dd96ff7ad",
- "dest-filename": "blueimp-md5-2.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b",
- "sha512": "4cd3e37d3af8df6ab1ef23a34326979b7752474307f6f5e9ede4f50454a5fc2e7583e1059ce47d85383522b79a8460660cd09e86c72c85ee397fe0b54c165b2f",
- "dest-filename": "boxen-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb",
- "sha512": "714e09ffe36874cdc81dd48bdb237c6ea62a9e69414e2743478442ee726ceb5666b46cfc559cccdc72d05f4cd8e66ad298fb51df15b0b2ada339442a15937cf8",
- "dest-filename": "boxen-3.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd",
- "sha512": "882b8f1c3160ac75fb1f6bc423fe71a73d3bcd21c1d344e9ba0aa1998b5598c3bae75f260ae44ca0e60595d101974835f3bb9fa3375a1e058a71815beb5a8688",
- "dest-filename": "brace-expansion-1.1.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292",
- "sha256": "7dd8d0413f3c06f2e0f729e116c7df3b96420b4e12a124eb9e69861965b170fa",
- "dest-filename": "brace-expansion-1.1.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7",
- "sha1": "ba77962e12dff969d6b76711e914b737857bf6a7",
- "dest-filename": "braces-1.8.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7",
- "sha256": "9c7fdc41cccb6e146eb1e4c1f9236af514a6c261f8b230fdd3a1ca979e8c2395",
- "dest-filename": "braces-1.8.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb",
- "sha256": "287be35650d203cbda2425f8da760a64ca01310d71267cd4cadc182c80d28bf1",
- "dest-filename": "braces-2.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729",
- "sha512": "68d75b9e3f4ff0f8dd5d4e326da58b2b6205de373f1280d86c2ec06b35bab68dd346c7d7c6c702f545ce07988388442b93221b5a9d922d075ae3e4006bb9dcdf",
- "dest-filename": "braces-2.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107",
- "sha512": "6fcba6f8bd51cccdd60d2cef866ea0233d727d36c1b7a61395c10a02fb26a82659170e3acfadba9558fd8f5c843d6df71f91fe94142964c3f593c97eefc1dad0",
- "dest-filename": "braces-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce",
- "sha256": "0e2dd5b2e04f8f6e27ceeb659623261bf7859c1f482a77dde6c773a08ab8f14b",
- "dest-filename": "browser-resolve-1.11.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f",
- "sha256": "a711aeeb3d1d7d50b984d8dc89f18ea55e5566c7819de9beb21cf15c0521a87e",
- "dest-filename": "browser-stdout-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60",
- "sha512": "aa1015235f80bf65fba9e94e7c0218c1738da2877a5e5644fdf5da052996fd3e52ccb0260a0ce2f9e89613b7d4bdb1da78d0501f5dd47ed8e95f1b1f2e432983",
- "dest-filename": "browser-stdout-1.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719",
- "sha256": "e784697801764d68c5afbf2ec1c9b29a1e99a51d24120dda75697611277d158e",
- "dest-filename": "bser-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a",
- "sha1": "fef28da8b8113a0a0db4430b0b6467b69730b34a",
- "dest-filename": "buf-compare-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242",
- "sha256": "27d1154427f0131259994c6849888411be7d43723589e383487fd5886f53c66d",
- "dest-filename": "buffer-crc32-0.2.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef",
- "sha512": "3107171146c22ad128edb86a12ceb9eb41f27785daa2f6653bf93d57786355417fcf05bb28155d48ae2022dfdbcf04bd31b479aa86fe1798eeb19b1bd1840ad8",
- "dest-filename": "buffer-from-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0",
- "sha512": "10773220f050e0148696f8c1d7a9392a0009dbb088b0763fd8906609145ea38f32f6b43731a533597dca56505ae14eccc97d361dd563d0aec2dd6681de3bbb15",
- "dest-filename": "buffer-5.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f",
- "sha256": "e789717824e8688269c241c203d9f615cf15286d6217d74defc7f395b0da5f11",
- "dest-filename": "builtin-modules-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2",
- "sha256": "e870d5b8a27320468651257576c9d5503c60b05aa274980653a5a36b231fdec6",
- "dest-filename": "cache-base-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2",
- "sha512": "00a71d4e71525804dde7f1823d1c6bd82870209f3909ecab1328d11e52b1439e9de1724c1b29b4b8088a9f4c5b2ce18e977fb24693938b8f38755084739014cd",
- "dest-filename": "cache-base-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912",
- "sha512": "3a3ddc0063c2a8e657ed1cfae149f2d8660064d962412a9f6de3eb800435c0a022858982527ada06d26d29c191e31cfbc05f8ba090beb2c159befe41805f4882",
- "dest-filename": "cacheable-request-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1",
- "sha256": "896fdefa039680425b81fd9837eef6c4e3c01cab9306418eba4374fb3828ceca",
- "dest-filename": "caching-transform-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70",
- "sha512": "32d81cbf7961dd4d334628bfeaa56040e0dd3c0e06df3846fa3b5b0968f7f515ee5054cccc7d2f71d32d6894b58cfa3077e22dd8faabeb2dcd24c42a3aa084db",
- "dest-filename": "caching-transform-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432",
- "sha512": "22840b78dc307fd29335bb5203b68405bd727c36dd9f3c2309eb63902f22a39a0678e98ad8204d760d31afeb5a75160a3b4a7bb90c99cefa27d245e565bbc6af",
- "dest-filename": "call-matcher-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b",
- "sha1": "26d208ea89e37b5cbde60250a15f031c16a4d66b",
- "dest-filename": "call-me-maybe-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996",
- "sha1": "a84abc825a55ef4cb2b028bd74e205a65b9a4996",
- "dest-filename": "call-signature-0.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73",
- "sha512": "3fc06302c5ef652f95203508d7584709012fef8613ebb6148b924914d588a8bdb7e6c0668d7e3eab1f4cbaf96ce62bf234435cb71e3ac502d0dda4ee13bb2c69",
- "dest-filename": "callsites-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77",
- "sha1": "a2aa5fb1af688758259c32c141426d78923b9b77",
- "dest-filename": "camelcase-keys-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39",
- "sha256": "09f39e3f9fdde6f23671234381258840cc1995dc76fca7612c01bb5607fa50e1",
- "dest-filename": "camelcase-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd",
- "sha1": "d545635be1e33c542649c69173e5de6acfae34dd",
- "dest-filename": "camelcase-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd",
- "sha256": "9a3bf68000a538b7f58d96a81eca7267965b058167ea2990782c170eda7592f5",
- "dest-filename": "camelcase-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320",
- "sha512": "2f6f124c1d7bd27c164badd48ed944384ddd95d400a5a257664388d6e3057f37f7ad1b8f7a01da1deb3279ef98c50f96e92bd10d057a52b74e751891d79df026",
- "dest-filename": "camelcase-5.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809",
- "sha512": "73bc15bdbc377f7ee7ba86d036d82c806f4f382f6a31b36e3109930aa66fdb76fa308cf47dc6290623a5bfd80437f85d2dd9d94c342183a7bd0eae4cd6f2af7e",
- "dest-filename": "camelcase-6.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f",
- "sha1": "1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f",
- "dest-filename": "capture-exit-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d",
- "sha512": "99840b667c7942dd49801d561223027f6eb8ee996919e43634c47fe4bd07359cc6428e1fb923e72bec237cf9ca655d1a8890e0ce65aaaa457f83b243f835b4ab",
- "dest-filename": "capture-stack-trace-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad",
- "sha256": "447c612d0c7d8985c9d8862cc83bf4c29d122a085e21ce25fa1611e1a259b28f",
- "dest-filename": "center-align-0.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c",
- "sha256": "dd20186f63cf19bb6fb07de5fb3ee29ff4995ce716e9b76e4aee8d8b6dd9fd61",
- "dest-filename": "chai-4.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5",
- "sha512": "5d05376e106e92b3ac402bb066777019c095407c998b9ddf43a62cd45ca6ec4e2896922aa99661868149a1a295bd5d7b9564285d8c2058dda717972b03c2768f",
- "dest-filename": "chai-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98",
- "sha1": "a8115c55e4a702fe4d150abd3872822a7e09fc98",
- "dest-filename": "chalk-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98",
- "sha256": "33979c4833fa486f3e1ea6afb5557e55abc38d37ad518e80c9f9261c9d54445d",
- "dest-filename": "chalk-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba",
- "sha256": "e60843450ee6d101fdfddee15d65f8c7cb52fe71dc4475605b1abb40b7956a7a",
- "dest-filename": "chalk-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424",
- "sha512": "32d8be7fd96924d730178b5657cfcead34ed1758198be7fc16a97201da2eada95c156150585dbe3600874a18e409bf881412eaf5bb99c04d71724414e29792b9",
- "dest-filename": "chalk-2.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a",
- "sha512": "ab0c75d80c577b6439c50e3701cfff23abf96974e2a58ad211274e833acdfbd5e3804a728e92aebd219a378a84f777fb4d04e57ab410f12f844341320e854bd4",
- "dest-filename": "chalk-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e",
- "sha512": "993f220dcae1d37a83191466a00da1981267c69965311fb4ff4aa5ce3a99112e8d762583719902340938acf159f50f39af6eee9e488d360f193a2c195c11f070",
- "dest-filename": "chardet-0.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82",
- "sha1": "574d312edd88bb5dd8912e9286dd6c0aed4aac82",
- "dest-filename": "check-error-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82",
- "sha256": "92554b32cbf947c79e2832277ee730015408dd75e753ee320ba1fc7bf5915dda",
- "dest-filename": "check-error-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468",
- "sha1": "798e689778151c8076b4b360e5edd28cda2bb468",
- "dest-filename": "chokidar-1.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6",
- "sha512": "74698a2c3753dc6765edf0547bc5cafa002d1a6cf2e459f45e491642e63118881654f3ec7b60b1140e66b6b943d133876878c452a9163723f55dd1e82444bfe0",
- "dest-filename": "chokidar-3.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b",
- "sha512": "0ed33783b8ee09743115548d3cd072102dbe3489ad06ec5042f5a51ee9e92484b939caf4946df4e9c0bb1428bb7040347f39b26cf508978b71048a1b93580639",
- "dest-filename": "chokidar-3.4.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494",
- "sha512": "8f7f04bcee7e2c75fce23968ea1e14ce63b08b45205bad564723ed273e2a69a74ae5e6370534b94d8fd2d52b5cdd493694833a4cf7af02550b88427089ef3ad2",
- "dest-filename": "chownr-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/chunkd/-/chunkd-1.0.0.tgz#4ead4a3704bcce510c4bb4d4a8be30c557836dd1",
- "sha512": "c71dcf6f9545f506aa0a8b68972675cb0141832b899aeebef5d2e2a81c607a512c7bd5ecaf7c94969a17dcee0e875d4cd34193da460cb110724ca20c256d8b92",
- "dest-filename": "chunkd-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497",
- "sha512": "bec19d9304820e95a63fcd277004d7ee279ae435907a6835520096e49f2daa3537958c3814162e8fcf49d024d5a2603b0447ef49977ce06987928f8cc45414d8",
- "dest-filename": "ci-info-1.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46",
- "sha512": "e6d2bb12dad9d0df8e2c532d86da8e8f87c8d8979bf3c0b808064fbb6e4b0d55205c9d00dc9b383cc1aaae7d095355b4321d7f67cc19cd83f1a94ad77816e809",
- "dest-filename": "ci-info-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ci-parallel-vars/-/ci-parallel-vars-1.0.0.tgz#af97729ed1c7381911ca37bcea263d62638701b3",
- "sha512": "bba771db41415e6f9aa4c8bee71ed4566e841fb04bd607385eb72741ec23701ec7591728aff579a96737446d87c29803276ea0222d83484bb707bb17ca7030fe",
- "dest-filename": "ci-parallel-vars-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463",
- "sha256": "503aa70f2c48c67a536df3379fd38bbf60b26e9335bb90643e7425992055c714",
- "dest-filename": "class-utils-0.3.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463",
- "sha512": "a8e84f6bf163eece9363c1fc7ac1aee5036930c431cfbf61faeaf3acd60dea69fef419f194319fe5067e5de083b314a33eab12479e973993899a97aeae72cc7a",
- "dest-filename": "class-utils-0.3.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b",
- "sha512": "e1d882f4769313e29100c5a10e1ac63840a0599c687af31ce5396439b32a352b1553ad8f6335d9fd23138f3c8600517562eb20c46712593117061a7408fc10d4",
- "dest-filename": "clean-stack-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68",
- "sha1": "63fb110dc2ce1a84dc21f6d9334876d010ae8b68",
- "dest-filename": "clean-yaml-object-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143",
- "sha1": "4fa917c3e59c94a004cd61f8ee509da651687143",
- "dest-filename": "cli-boxes-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d",
- "sha512": "829681acc022cd510034ea5f669fc41148b14d70f21adec317374ae6153e51b5adfc9d25074c36d277198f9f59f5af77c476fdbb5db3179052ea2f5129bb60e3",
- "dest-filename": "cli-boxes-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5",
- "sha1": "b35dac376479facc3e94747d41d0d0f5238ffcb5",
- "dest-filename": "cli-cursor-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307",
- "sha512": "23fcc7030b0a7fd16a1a85cce16591002a1bf7e48dba465377de03585e7b138b68a2e46e95b0b171487a44a5043909584c7267ce43ccc92bcf35a6922cd7cb67",
- "dest-filename": "cli-cursor-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77",
- "sha512": "b605377cac3362388b11080f303f49b7e2631d52fd916f7716220c5ff97bae2bef383e3f2cbd0c7fb81d6b7fb8536289065a326f0823e4a1284201918a832229",
- "dest-filename": "cli-spinners-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.0.0.tgz#68ff6aaa53b203b52ad89b8b1a80f1f61ad1e1d5",
- "sha512": "0b8869fbc18220556c514897730f9c7beef07b1556226c3cad0ae030116ca9eaf1f4bbef7069709bab0c8d060012657f5dbf3bc5cd5be53b71e74e4c4a9655aa",
- "dest-filename": "cli-truncate-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7",
- "sha512": "9fc7ce8b1c030fa6ff39b8a7cd3ae9d59285cdb82f299beecff4ef7a39cb9f56907c2eabe765c4c7ce459ae0bedc723e24cedca0145752f36a114d8f1d5ac7a6",
- "dest-filename": "cli-truncate-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639",
- "sha1": "ff19ede8a9a5e579324147b0c11f0fbcbabed639",
- "dest-filename": "cli-width-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1",
- "sha256": "7555af1730a8ec76a3fb649d3da5db30d7080f69eab698698c8bf863ac4dcbdb",
- "dest-filename": "cliui-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc",
- "sha256": "fb95696399a517ad43910fd7270a11b772d91c0b6546a49aa9022dbe1d93b0a2",
- "dest-filename": "cliui-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5",
- "sha512": "3d87864849a61cceb3be879fdb0f133f396b9cda572234e2a582bbf3462cc2620ff6f8f199de98d9adc20762acebf014f0d1e366e817be8f30de858cdaa9f05c",
- "dest-filename": "cliui-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b",
- "sha1": "d1dc973920314df67fbeb94223b4ee350239e96b",
- "dest-filename": "clone-response-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e",
- "sha1": "da309cc263df15994c688ca902179ca3c7cd7c7e",
- "dest-filename": "clone-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-2.1.1.tgz#5fe3057bfbb71a5f300f659ef2cc0a47651ba77c",
- "sha512": "b492e11f7129166ff5c7b85e216d217a65c94d45391169765741085f9e7c8e9d3932dd54e8356bc82824a77977edcc6ab3e0cd6cd8311b8dd2930257a50d7827",
- "dest-filename": "code-excerpt-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
- "sha1": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
- "dest-filename": "code-point-at-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
- "sha256": "5279ca78986d6381852ac1b02592ae2dc5cc979317284b8aa1d7554107770b3d",
- "dest-filename": "code-point-at-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/codecov/-/codecov-3.6.1.tgz#f39fc49413445555f81f8e3ca5730992843b4517",
- "sha512": "214241e961b8ee758aee8e747ad17c8c169dc5d330ec39a8420d39c88963b2d5c504607a725399b088fa883e0ff364f661a214deaabe145bbc2bda718240890d",
- "dest-filename": "codecov-3.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0",
- "sha1": "4bc0373c164bc3291b4d368c829cf1a80a59dca0",
- "dest-filename": "collection-visit-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0",
- "sha256": "86b0559c14662f08944683804c780fcef44c1a4c5e4d7a3799db4937143a5818",
- "dest-filename": "collection-visit-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed",
- "sha256": "0b20ed48be09d825e63e623592780923133e6e6de496d3c856e69580f5cd2703",
- "dest-filename": "color-convert-1.9.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8",
- "sha512": "41f014b5dfaf15d02d150702f020b262dd5f616c52a8088ad9c483eb30c1f0dddca6c10102f471a7dcce1a0e86fd21c7258013f3cfdacff22e0c600bb0d55b1a",
- "dest-filename": "color-convert-1.9.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3",
- "sha512": "4511023ec8fb8aeff16f9a0a61cb051d2a6914d9ec8ffe763954d129be333f9a275f0545df3566993a0d70e7c60be0910e97cafd4e7ce1f320dfc64709a12529",
- "dest-filename": "color-convert-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25",
- "sha1": "a7d0558bd89c42f795dd42328f740831ca53bc25",
- "dest-filename": "color-name-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25",
- "sha256": "b0ef3371fb2563cbeb6379f1639dc2a8c0a895d1d48ac72c7ad43c5ff409784e",
- "dest-filename": "color-name-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2",
- "sha512": "74ecbedc0b96ddadb035b64722e319a537208c6b8b53fb812ffb9b71917d3976c3a3c7dfe0ef32569e417f479f4bcb84a18a39ab8171edd63d3a04065e002c40",
- "dest-filename": "color-name-1.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563",
- "sha256": "32da223bd59643b0c19e76ce648aa2be502a4a9f7e092032edb15d8678285a00",
- "dest-filename": "commander-2.11.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa",
- "sha256": "2851f33fbef1c34ec9b9f2d37b970163a2e0b36fa436cfda80140ab3549bb1fa",
- "dest-filename": "commander-2.14.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f",
- "sha512": "5657d3f45dd5d2ffa3af8cb13dce6083db3adbf7c8556b1dd81936883e37e6e9b536518c61d542abe3237179e162ada270d3a2cc7af590afb94c8e87d07cb46a",
- "dest-filename": "commander-2.15.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33",
- "sha512": "1a956498cf2f176bd05248f62ef6660f7e49c5e24e2c2c09f5c524ba0ca4da7ba16efdfe989be92d862dfb4f9448cc44fa88fe7b2fe52449e1670ef9c7f38c71",
- "dest-filename": "commander-2.20.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0",
- "sha1": "cd52f6f0712e0baab97d6f9732874f22f47752c0",
- "dest-filename": "common-path-prefix-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b",
- "sha1": "ddd800da0c66127393cca5950ea968a3aaf1253b",
- "dest-filename": "commondir-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b",
- "sha256": "5b89851be4f799923e48320a13165883d2ffcb8cd4ec71023263255497c251b0",
- "dest-filename": "commondir-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6",
- "sha256": "5ff1fe2cc660cd91de7036c1fa73024bf820ff339aa38643956c2f0fb1c42ded",
- "dest-filename": "component-emitter-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0",
- "sha512": "45ddec7ba401fac3b54f0a998ec710aeeae910f21f3b4ff26274a29fa43fac3de63aeb47bd4ac202126e6f7afdd2e35bf9211206e134418a01f7461d7dab6c46",
- "dest-filename": "component-emitter-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b",
- "sha1": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
- "dest-filename": "concat-map-0.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b",
- "sha256": "35902dd620cf0058c49ea614120f18a889d984269a90381b7622e79c2cfe4261",
- "dest-filename": "concat-map-0.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/concordance/-/concordance-4.0.0.tgz#5932fdee397d129bdbc3a1885fbe69839b1b7e15",
- "sha512": "974445b81f112df092d0fb7621ddfdfe808fca4134d69cb1800172a564e5686460bcb919aed73367c6ad107a53784216fb36165d306e03d70249e10e49cc5179",
- "dest-filename": "concordance-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f",
- "sha512": "bedbf91ed1a371852016b5dce8ac7be3b07cdcc451552e51d554c44285efb8ffa4308fa27fabb2c15d270c6a22c9d251cb8ca4ee1f687793a0d24c71e335179b",
- "dest-filename": "configstore-3.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7",
- "sha512": "0a6aae017141a1caf369233c9ad18f30cfc78969b2229af809c265feb818dae08e6d9fd2edc294d2c8a5c6c96a25e8e5fadfd3f474bc1343d43500fcd4919411",
- "dest-filename": "configstore-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e",
- "sha1": "3d7cf4464db6446ea644bf4b39507f9851008e8e",
- "dest-filename": "console-control-strings-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a",
- "sha1": "fe8cf184ff6670b6baef01a9d4861a5cbec4120a",
- "dest-filename": "contains-path-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5",
- "sha256": "7f0041f2260a56d45a42138ca14ad07ef266a478374269e98d00c6806b53c9bd",
- "dest-filename": "convert-source-map-1.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442",
- "sha512": "e052645f3297103075b270856652cfe20a42dc920b89c0a919bcc6f5ff46eed1aa182cc44d0da158fadc8a703da14e30b5fd9b8946841f9d3ae549cc791df7a0",
- "dest-filename": "convert-source-map-1.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715",
- "sha1": "7e3e48bbe6d997b1417ddca2868204b4d3d85715",
- "dest-filename": "convert-to-spaces-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d",
- "sha1": "676f6eb3c39997c2ee1ac3a924fd6124748f578d",
- "dest-filename": "copy-descriptor-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d",
- "sha256": "e010f2a9224a6c270ff834d740ab7ea508b5c7a086d329eb0cd641029e79b4b6",
- "dest-filename": "copy-descriptor-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f",
- "sha1": "f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f",
- "dest-filename": "core-assert-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e",
- "sha256": "8980021c6183a5c2171e2a97bcee49ebf7dc7d0953c512deeb9a5740ea0dede5",
- "dest-filename": "core-js-2.5.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f",
- "sha512": "237f6def8fb8b7ecdabbae043757c4e6fd96df501db5cfd1121cd637e8164515e0e961f9a80b199bad831e9435f9885ee34e3b4f9e63bf3cfb314a85fdd04194",
- "dest-filename": "core-js-2.6.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec",
- "sha512": "29bdb00b47efb167d0ae093c1d4e655ba53f2dcb3cfbd69a61ccb864573a0c3968e2767b9fbd1d120139aed474a06eae7ca0d49ebc1f58bd665d1e658c36adad",
- "dest-filename": "core-js-2.6.12.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7",
- "sha1": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
- "dest-filename": "core-util-is-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d",
- "sha512": "7e6bd5e1c6819e87e13def2439c8ad0704a7d9fdfd40b8e70271aade03bd75f77be66532b7328d641d6175ee901ee9d6d91b7e3b0b8138c7378b5b4d1256eccc",
- "dest-filename": "cp-file-6.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6",
- "sha512": "897de67e0713308ab764a2c8b151406efefe31cd7493169b00641bf07be3035a374f53c8629adb6a443ae5ddc8fb61c61edea748a90cf4f62382824ed8a70505",
- "dest-filename": "crc-3.8.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6",
- "sha1": "06be7abef947a3f14a30fd610671d401bca8b7b6",
- "dest-filename": "create-error-class-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41",
- "sha1": "7b9247621c23adfdd3856004a823cbe397424d41",
- "dest-filename": "cross-spawn-4.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41",
- "sha256": "ad6f0fd0b683c3ae9a325d4c60fb5acbadc98b9fa2915511e49eaf61576fbb79",
- "dest-filename": "cross-spawn-4.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449",
- "sha1": "e8bd0efee58fcff6f8f94510a0a554bbfa235449",
- "dest-filename": "cross-spawn-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449",
- "sha256": "910805e8cd5da64d6f42f789f0965eee18a37c57a2631f764f847f8e8fccff6d",
- "dest-filename": "cross-spawn-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4",
- "sha512": "79354bac14adedf8db0f2833f34e69327b2d22cd954c1364466d2ac5977e33b0395c377155158ee4cc460576618d8e1ca8b60b76dac6a917fc9813e6cf04a959",
- "dest-filename": "cross-spawn-6.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e",
- "sha1": "a230f64f568310e1498009940790ec99545bca7e",
- "dest-filename": "crypto-random-string-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e",
- "sha256": "f561d650122b4c93a86916280cd28cea3763d635c8f0cab2b77e12683b73f3f1",
- "dest-filename": "crypto-random-string-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea",
- "sha1": "988df33feab191ef799a61369dd76c17adf957ea",
- "dest-filename": "currently-unhandled-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2",
- "sha512": "ffdf82e385fb968b7421e8b27e0266113b5132106274160cd9014522419ad14d64fa14b263cecdc3b3d8dde0eaa6f0819bb23758249f3de66c916fd862aea6e2",
- "dest-filename": "date-time-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f",
- "sha256": "5ce5df47b00f65b6d84df8da4692a421edce014ad9d41fd72539fa103d85e453",
- "dest-filename": "debug-log-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f",
- "sha256": "34ae48c66698f1f81e2a2e6e322f34e8a88b0986a3fa7b74bb5ea14c0edb1c98",
- "dest-filename": "debug-2.6.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f",
- "sha512": "6c2ec496b7496899cf6c03fed44a2d62fa99b1bdde725e708ba05f8ba0494d470da30a7a72fb298348d7ce74532838e6fc4ec076014155e00f54c35c286b0730",
- "dest-filename": "debug-2.6.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261",
- "sha256": "dac8e5de92ce0e149d5708c893ef9d401fe80729ce9a0d66b4f40678708fd5ec",
- "dest-filename": "debug-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b",
- "sha512": "99e97e8dfee7aed125e4f9f5431e3acc0457283a416efcdecec7bba7b2ea20d99da0893c3d83f94b249ac44998bfa4d9d09c84280d61b0221de832218084ed59",
- "dest-filename": "debug-3.2.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791",
- "sha512": "a58008cde468f09e8a3c4689d1558e8793f391bc3f45eb6ecde84633b411457e617b87cf1f1dab74a301db9e9e8490a45fe5d1426d7a7992ea2cd4bc45265767",
- "dest-filename": "debug-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1",
- "sha512": "217da7718efcbc34e364c154766b2f211158d827f81670f4c11b3e9d0c0953c2eef7dfed3c575bd15c9b8a23133dedc8eab426c2ca90a9106fc54f9b67f23cb2",
- "dest-filename": "debug-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9",
- "sha1": "d171a87933252807eb3cb61dc1c1445d078df2d9",
- "dest-filename": "decamelize-keys-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290",
- "sha1": "f6534d15148269b20352e7bee26f501f9a191290",
- "dest-filename": "decamelize-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290",
- "sha256": "b4adeff510e38c3a02703bcba72ffbe3c65b591f13c78c6a459b5e801a3e2864",
- "dest-filename": "decamelize-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837",
- "sha512": "f621353e04a293d1de208c3624ef78222767137781a10ac5277c3bb05bb3497e03a66677bf9b19a54895e52c1c7fa990105f98d2bbbc35ea3ea7e9f287627e85",
- "dest-filename": "decamelize-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545",
- "sha1": "eb3913333458775cb84cd1a1fae062106bb87545",
- "dest-filename": "decode-uri-component-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545",
- "sha256": "0a3e427c86cd249b0b402907132bf8ba85efb2a34ed1d2b3aa4694fd21730ad6",
- "dest-filename": "decode-uri-component-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3",
- "sha1": "80a4dd323748384bfa248083622aedec982adff3",
- "dest-filename": "decompress-response-3.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df",
- "sha256": "d0d75e7828b6b044cd81ddf332f03830b6f80e671495b265eee22a187a49c3a9",
- "dest-filename": "deep-eql-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df",
- "sha512": "f9078843237966e3bedd49390d887aff578a3b49b462624518d9851c6002a5fd4294bd679a557fa7880d81b976a491b18176f87daaa8e9413e33900210cc9573",
- "dest-filename": "deep-eql-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a",
- "sha512": "c9df5ce40762a95711f898dcc1441bf4392125cf2780daf431a844046bc3889c3ca6e59a6f6c99961fa791ab0e9d93fe1064c03faad1a76273261259cef345f2",
- "dest-filename": "deep-equal-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac",
- "sha512": "2ce1f120e68f61d1e5251b4241f0c8559b5fc3fb9f33cfab563eb8f51207cdc9bfbc6c1045716de8e3ea2055ac9b65c432b34812d591eb8b18d4b10a0f6bc038",
- "dest-filename": "deep-extend-0.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34",
- "sha1": "b369d6fb5dbc13eecf524f91b070feedc357cf34",
- "dest-filename": "deep-is-0.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz#4a078147a8ab57f6a0d4f5547243cd22f44eb4e4",
- "sha1": "4a078147a8ab57f6a0d4f5547243cd22f44eb4e4",
- "dest-filename": "deep-strict-equal-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8",
- "sha256": "20d21cd370f7b5dea9795fa4be3ca0c8d1e801b31d01f82ba74c842478d9676a",
- "dest-filename": "default-require-extensions-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7",
- "sha1": "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7",
- "dest-filename": "default-require-extensions-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d",
- "sha1": "c656051e9817d9ff08ed881477f3fe4019f3ef7d",
- "dest-filename": "defaults-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.0.tgz#b41bd7efa8508cef13f8456975f7a278c72833fd",
- "sha512": "584dac66872d5a6fefe2c99f08076361badf4b9e4988c45d958f59b9b161b186ed7822bdf81bc0c78615ee73e360ce999d7e4172854ac1f9b2c7db0815381031",
- "dest-filename": "defer-to-connect-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1",
- "sha512": "dcca9f60a8f694bcdd3127fc648644fd5f99bb2f81803e9fd7ae1ef0adb0edd827a4a02b0437ab198a4ce3a21861c8e791d3cd3233e4f40e95141f3edd22a55d",
- "dest-filename": "define-properties-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116",
- "sha1": "c35b1ef918ec3c990f9a5bc57be04aacec5c8116",
- "dest-filename": "define-property-0.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116",
- "sha256": "d317d5d4dc0ba4cc92daa979be09f9f7e98bf84a870e9a43049bdf7a90e64fe4",
- "dest-filename": "define-property-0.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6",
- "sha1": "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6",
- "dest-filename": "define-property-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6",
- "sha256": "a61a958973b476aec5401e5ceb5e3ef40ef2a24093ec2f91680f920336a98794",
- "dest-filename": "define-property-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d",
- "sha256": "0ade8d2e984ecfcdbaafc3eb236fc61d5ea71e49580676cee1a399e37d1d1d55",
- "dest-filename": "define-property-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d",
- "sha512": "8f02b6515e1c9cfa5b706efe55101129364f516a30c1703c6f31f934feae774a1e031c983ee1995000bb84cba0a42773e01792665d8397d93ae821c9ff8e9961",
- "dest-filename": "define-property-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4",
- "sha512": "4301ae114a2e3f6915c107a702c3a87f916ff0af6ddc3f026bc3717172ab2291078d35cae49da75cb74ff802c8d5c82ff308fb2aec01853c0190e65224a3395d",
- "dest-filename": "del-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619",
- "sha256": "ac38fce4217dfb1d772427c7d8d0d073e35ecd832915e97a61d9ab5c504129d3",
- "dest-filename": "delayed-stream-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a",
- "sha1": "84c6e159b81904fdca59a0ef44cd870d31250f9a",
- "dest-filename": "delegates-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208",
- "sha1": "f76d064352cdf43a1cb6ce619c4ee3a9475de208",
- "dest-filename": "detect-indent-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208",
- "sha256": "d4436cafa0273e1d69d67968a9432b3b78a1ed2b55a32e57c52f0772f818c3d2",
- "dest-filename": "detect-indent-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b",
- "sha1": "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b",
- "dest-filename": "detect-libc-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75",
- "sha256": "fba1bd9afa7843fe5bba330a95b15d6ebb9bd885cc3e579722a4eacb2bd8e56c",
- "dest-filename": "diff-3.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c",
- "sha256": "39d8c7a5bc53e832dff1810dc7dabac047c9192ffbea6d340be0f2e5e40f10e5",
- "dest-filename": "diff-3.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12",
- "sha512": "038eaab4581dfa0ee90d98a7a67c22449b716c2d61a607f4bb33f7886f3db1c1e4d00502ec0d531b17f93a288e52ffc931947c18eb7c84bf74d215746cecb9c4",
- "dest-filename": "diff-3.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d",
- "sha512": "e7c966c4a480e013722f3f871cc53394e129834f4557e7afe9931edef262860771ce073067c5681043e600b0991bd2e6a9f56834c30aa6db48613546eae0d8ec",
- "dest-filename": "diff-4.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4",
- "sha512": "7fd2c18b9416cc85b723a7bffeec59a0b06552df64729ebaaa8d2c482c4be9864a73be51d5ce0c142a1efcb6998811a682e8ef41dc5ce419f74217f2bcae47b3",
- "dest-filename": "dir-glob-2.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f",
- "sha512": "5a4ad6a7d191e0a5df28663338b993b86562d545857f0b37efb9fd71ce79fed6fa0eeab217aa5c43901b88712c85a0e963dbfaa1a4abd9708389d1a633077320",
- "dest-filename": "dir-glob-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.10.tgz#89f52afae25d827fce8d818c13aff30af1c16bcc",
- "sha512": "49579eca239e8a75792423c75cc74a3a02b56156da93fe3ef162f6ac19dfa9162903915a7856909d059bdb9c7adbc6a6d70ef409b8a9183bfd4b9d5b8a987adc",
- "dest-filename": "dmg-license-1.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa",
- "sha1": "379dce730f6166f76cefa4e6707a159b02c5a6fa",
- "dest-filename": "doctrine-1.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961",
- "sha512": "c92f90e62de105fec6064778286f1aede04d3563462d3684c306165228c860cef3ae56033340455c78e33d6956675460ed469d7597880e68bd8c5dc79aa890db",
- "dest-filename": "doctrine-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57",
- "sha512": "b54317af1944c525ba5361178a228648155d620b55f2a9472fe0b5d13b16e0f51163f89cf9e6b2b274a4c01e2403f981942cb2fc828327e2dcdf06d679a5edb9",
- "dest-filename": "dot-prop-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb",
- "sha512": "b845326832a8490d4ce0eabc978e61484dba4a74f12fab27367aaf2bf556c79c098667dfe73d055152432836a7a2bffac379331378bb5d93a4fbbc02d045ebd4",
- "dest-filename": "dot-prop-5.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
- "sha1": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
- "dest-filename": "duplexer3-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/emittery/-/emittery-0.4.1.tgz#abe9d3297389ba424ac87e53d1c701962ce7433d",
- "sha512": "af879149e4ad1067fa33948a76b42184b2b96cec0e071421204dd84939d91371a92a22df9e7844fad3edac913bf7e7832609b7f4133a2d2a08f120b1e076f095",
- "dest-filename": "emittery-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156",
- "sha512": "0b004b444210ecbbd8141d16c91bf086ae4de6a3e173a3cc8c3e9b620805948e58c83825fb4bf1ab95476cc385a8b83b85f5b39aef13e59d50a1f8664c8848b4",
- "dest-filename": "emoji-regex-7.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37",
- "sha512": "3128d8cdc58d380d1ec001e9cf4331a5816fc20eb28f2d4d1b7c6d7a8ab3eb8e150a8fd13e09ebd7f186b7e89cde2253cd0f04bb74dd335e126b09d5526184e8",
- "dest-filename": "emoji-regex-8.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c",
- "sha512": "83af8ae867b2735a3a15d5ecf47c2b5e578215a9fb77ae86e714827d217bc759890c27aceadd289bd945406df33abce1dc191bff8e4dd1c6791aab1fed8af319",
- "dest-filename": "empower-core-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0",
- "sha512": "faec358a720754f428695b87cd1c97776d6270cf9c9ede02cc3e6b5be342d708ce5124ceb3e4deec53afec084deef4bdc7fa08ca12cfe4f4751fea614001eee5",
- "dest-filename": "end-of-stream-1.4.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/enhance-visitors/-/enhance-visitors-1.0.0.tgz#aa945d05da465672a1ebd38fee2ed3da8518e95a",
- "sha1": "aa945d05da465672a1ebd38fee2ed3da8518e95a",
- "dest-filename": "enhance-visitors-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c",
- "sha1": "21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c",
- "dest-filename": "equal-length-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc",
- "sha256": "77b75727ed24faaba5d36a73c231b5ed4aa9243afaebf04ac7d0cef4617a32c1",
- "dest-filename": "error-ex-1.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf",
- "sha512": "edd147366a9e15212dd9906c0ab8a8aca9e7dd9da98fe7ddf64988e90a16c38fff0cbfa270405f73453ba890a2b2aad3b0a4e3c387cd172da95bd3aa4ad0fce2",
- "dest-filename": "error-ex-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34",
- "sha512": "8d8a3f27c5d4d9e98b5e5dce2f07f0b6e15fb85db0e8360fb3ec72f597d5c8f90372b6aebba2d8af0fead93c82b6b6dcfca51d0a20b97bd51a8d1860364568a4",
- "dest-filename": "es-abstract-1.16.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a",
- "sha512": "4023a5960649b5a528f6689805c2c285351a1cd8c91773d8b35562743ec0c22123d6463129e41372d2c07b300e1f964a447d20d8880f9fa2b0078213f22469bc",
- "dest-filename": "es-to-primitive-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d",
- "sha512": "526ffe17132bf422125a1d1b8b966fd22383fb8705879a8b7a4b35aa1028a4a540270dddae029b2b24a2929ef01a10cbd073de6a36b43f950b66bc4b92789456",
- "dest-filename": "es6-error-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613",
- "sha256": "cb920c89db01cc86c45750a52b7ee5d552976a07476b5f18c72d3a1862ebc72c",
- "dest-filename": "es6-promise-3.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a",
- "sha512": "1c90c6c7975ac5e22fc5d071bc6d9c6fd838b44bf0224de2f3e9e15f4c86ad89995336e4760f106c37af85e0c1f20774fffb8f8f8735110b9af10f8c5624f4ff",
- "dest-filename": "es6-promise-4.2.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203",
- "sha1": "5109d62f3e56ea967c4b63505aef08291c8a5203",
- "dest-filename": "es6-promisify-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
- "sha1": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
- "dest-filename": "escape-string-regexp-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
- "sha256": "e50c792e76763d0c74506297add779755967ca9bbd288e2677966a6b7394c347",
- "dest-filename": "escape-string-regexp-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344",
- "sha512": "529cdc2c25e895459c36ee47b5530761d5c98c0ae3b05f42d1a367aae658638b96fd5bb49a2cb96285af6d5df8e476ae56f700527a51ba130c72a4dc18e636fb",
- "dest-filename": "escape-string-regexp-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34",
- "sha512": "4eda5c349dd7033c771aaf2c591cc96956a346cd2e57103660091d6f58e6d9890fcf81ba7a05050320379f9bed10865e7cf93959ae145db2ae4b97ca90959d80",
- "dest-filename": "escape-string-regexp-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz#b23da2b76fe5a2eba668374f246454e7058f15d4",
- "sha512": "105e9792bac655bbeff212ff9186bf9babe7be6513f8af36a4925ce0925530cebe420aa1d299f0a6b4b175db832c1f69ffb6c8c43f985793b4c1f6fc96670f6c",
- "dest-filename": "eslint-config-standard-14.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-formatter-pretty/-/eslint-formatter-pretty-1.3.0.tgz#985d9e41c1f8475f4a090c5dbd2dfcf2821d607e",
- "sha512": "e4363ae18d6b6029bb71f1431c41949f9e1bbc29cafb0494545d3b37ca177aa50915277e82760e4d76f37a54351eeac44a5b98ea09c440f997388901e166be80",
- "dest-filename": "eslint-formatter-pretty-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a",
- "sha512": "b1f993a897cf4a2cd6bb86b299b3ebe0889da79c8a9bcc83907a7e22bdd88931e28837f187af66394b268aa5ba459f7345715a17ae06b5898dedefbc18706fe9",
- "dest-filename": "eslint-import-resolver-node-0.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c",
- "sha512": "1fa0ce8fe7a3c3b4deb1d81b7ece23792e18305ad3f2e23cc7077582d42a5ecb1a474110dba2fed8eff0eb0918172d8cca638dd1f4f01e65c1bef7cb35955913",
- "dest-filename": "eslint-module-utils-2.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-9.0.0.tgz#a8d569ae7127aa640e344c46d1f288976543b1bd",
- "sha512": "989a90d7043da71062e4fbbe82baea8dfb922f18924a09e96b9a79bcc744a41a80f67f5c533482bf4c4c67f3644cc023e6278e0774d617c8feec2df4622bf844",
- "dest-filename": "eslint-plugin-ava-9.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976",
- "sha512": "7fa7dc795b60dbb051d361189c186058b1507cae9b3782e5d27405ac11ce942b00cb1799927d0d1e7b393b461938fad5d41deb6a677a7201706a814b71293011",
- "dest-filename": "eslint-plugin-es-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6",
- "sha512": "e68869b0702250144d681580174f22cf050695bac9a0927e5bdfd3070b06a11d4c9e581fc0c20aac57928d66edea6a1a6e25d6f7136fb45cfef7b28745f2381d",
- "dest-filename": "eslint-plugin-import-2.18.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6",
- "sha512": "d424b233f4028ece8f5da4f5f3ecee017b235c6206a39470eb7d2b48ac28912b368eb614450738479259a686a7342ab03667a983ed1e67d2fb62245425bf2389",
- "dest-filename": "eslint-plugin-node-10.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a",
- "sha512": "568334f6f4fb6df03b0feba9b7e1637813b9787209401516922d5a3ef07ebdb3621d2dfea062091887b206d2904cc13a50f5d7cb7bd5d3b38bd6d1dddc036e0f",
- "dest-filename": "eslint-plugin-promise-4.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4",
- "sha512": "bff2819dfc9a38c3e665cfdd99cea8cce756a9e906a7b6c11aae232c079c11f3c699f2a2592e2c03cb02d0baa257dc39aa65c0b57567e0cde9d634b2858f3949",
- "dest-filename": "eslint-plugin-standard-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9",
- "sha512": "a18ae1256ed2d1bc40143bd6ab3bcc3d19baa5c81c9d6738427a1f080a914d17d00b425cc1e9f31a0953b6c2f222eb9615f92a0c6f6fcfaedc9edb52779ddd8f",
- "dest-filename": "eslint-scope-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f",
- "sha512": "7db04de56db1758e392ae9465e62c76777371477d56262a0d08ac02863a44ffe3ae0f42cc7651e2337f3d51984722f8a2e6d5b05a03364087cfbf13e5c0799f1",
- "dest-filename": "eslint-utils-1.4.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2",
- "sha512": "f32f588ed335241254fc0f4a73e49b68e578cb6f6c4967240703076be146b558f980dfec6e72837fac49525fbc83b1408a3f4b55a3fc0b6e035221ff7ffd99f4",
- "dest-filename": "eslint-visitor-keys-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/eslint/-/eslint-6.7.1.tgz#269ccccec3ef60ab32358a44d147ac209154b919",
- "sha512": "516cc14bbf6935cb034b18316dd8e49b39ff07a061b1731f51a3879cdc3213c9c3f90ea9c93f7aa30d8c71c55ac944d5e32322778a8b84c8906b2c1cb519012c",
- "dest-filename": "eslint-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10",
- "sha512": "535b2e899da80d55afe333cee7a4b435c47942b8846a11ad74dd8e47a162386e1626f723055141d2a238f9e2a85851f8f373ca1ae2eebba57c6784f983add454",
- "dest-filename": "esm-3.2.25.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5",
- "sha1": "a17b7ecc59d30e179e2bef73fb4137704cb331b5",
- "dest-filename": "espower-location-detector-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d",
- "sha512": "da250fbae3cffb25b53d968c48333d7b255ff03e4fd078bc87cdd8b59e5b3dcff31d88c8239921a22c4851330eefde0d398f05fd3845d41a3c9dc6482daad44c",
- "dest-filename": "espree-6.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804",
- "sha256": "1367ea7204a4819d1771feaf562fb240496a50e46b6deeb770eee1f3622aca47",
- "dest-filename": "esprima-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71",
- "sha512": "786b85170ed4a5d6be838a7e407be75b44724d7fd255e2410ccfe00ad30044ed1c2ee4f61dc10a9d33ef86357a6867aaac207fb1b368a742acce6d23b1a594e0",
- "dest-filename": "esprima-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056",
- "sha512": "643928e9e63fa3e0ff807096c874d4f3998a0e061c4b81498fb4be603e962089e6ec643a0273a399c2f8f9bb8557f24eced54b10b8bfecc9ae194e4d1ed6b432",
- "dest-filename": "espurify-1.8.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/espurify/-/espurify-2.0.1.tgz#c25b3bb613863daa142edcca052370a1a459f41d",
- "sha512": "ef0fdd52b45e23f41b2451d1c1fa264e5910397681d4db82ac1467e58dba1d79f982f875f3fd7d0202db6b256b3715d07e4724be0ac99685b2bd90ee27b76110",
- "dest-filename": "espurify-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708",
- "sha512": "4a68b2679cc8587f5533e49151178b4b943c6bb1b1b51771101559a66f7cac933b49bf80f435429dd5df91e1547776f275eae0f846c391f9debdf0b0ca759a34",
- "dest-filename": "esquery-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf",
- "sha512": "eb844107ef9f20e0173f0dcff5ccbcf6a7cc96f6445d992aa89923aaa5c8bf33f97b34598d6fa53d68f0df9517ff712150f1586e0e44478258803c38d34eff0d",
- "dest-filename": "esrecurse-4.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d",
- "sha512": "dfd9e729f7d6cfcc4dd4153fd9cefd9fd9c1f470f3a349e2614ab1eb1caa527ca8027432c96a4e4dd6447a209c87c041bb9d79b78c29f599a055f5619fd101a7",
- "dest-filename": "estraverse-4.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e",
- "sha256": "cafb1a4b68a310246d00fcc8dc77139a8f69479a6d3b3fc0836efc7bab648c98",
- "dest-filename": "estree-walker-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b",
- "sha256": "9e978bed6f447a9f644f2a371e64a51673d5f2cb13401974fae6ee373304d796",
- "dest-filename": "esutils-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64",
- "sha512": "915b1ca97938382a7af126747648042958baffc8a3df4d0a0564c9ab7d8ffdd61e5934b02b8d56c93c5a94dd5e46603967d514fcb5fd0fb1564a657d480631ea",
- "dest-filename": "esutils-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38",
- "sha256": "c0d57384b240451a33c82723eff5036c2fdd1ce93236aca6f5095f5c94b784e2",
- "dest-filename": "exec-sh-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777",
- "sha1": "944becd34cc41ee32a63a9faf27ad5a65fc59777",
- "dest-filename": "execa-0.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777",
- "sha256": "da8b373ec5ee3e58795a5f12762d839c883e1f88c58b5826b190be1449375c16",
- "dest-filename": "execa-0.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b",
- "sha1": "df07284e342a807cd733ac5af72411e581d1177b",
- "dest-filename": "expand-brackets-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b",
- "sha256": "83059b85f78245edd96e498c3eef432faabe985a3e06124d3bb22b272e5befbb",
- "dest-filename": "expand-brackets-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622",
- "sha1": "b77735e315ce30f6b6eff0f83b04151a22449622",
- "dest-filename": "expand-brackets-2.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622",
- "sha256": "d88edc204920f7e2e1d6fe9d564fd70cf53cad77f16e106e136ef6d05dbf5d33",
- "dest-filename": "expand-brackets-2.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337",
- "sha1": "a299effd335fe2721ebae8e257ec79644fc85337",
- "dest-filename": "expand-range-1.8.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337",
- "sha256": "f423822ca3fcb9755c2242177ec8abfae026548a2537270ff23a202fc2cbe8b4",
- "dest-filename": "expand-range-1.8.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f",
- "sha1": "51af7d614ad9a9f610ea1bafbb989d6b1c56890f",
- "dest-filename": "extend-shallow-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f",
- "sha256": "1b7c9a6b7c7a3d812460eaee0561d0b367ece710fcdc8a2b1e3c078ee8ed6a25",
- "dest-filename": "extend-shallow-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8",
- "sha1": "26a71aaf073b39fb2127172746131c2704028db8",
- "dest-filename": "extend-shallow-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8",
- "sha256": "a01acad649571a4afc14ac53871ba89c362664c17b65d1a3ebd949bad8647109",
- "dest-filename": "extend-shallow-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495",
- "sha512": "84c438097d69d62ce6b8b63266a2cc3bfa86370d74c12bfd40308f7f35dfc85ace682492a117ea13529fd6ce5a9fae89e49642eb635ec06fa62b8f63382b507b",
- "dest-filename": "external-editor-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1",
- "sha1": "2e18ff3d2f49ab2765cec9023f011daa8d8349a1",
- "dest-filename": "extglob-0.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1",
- "sha256": "2855f0194e6d68b7582b4217727d195797ea9d57e87f68545b09244a6bd62a98",
- "dest-filename": "extglob-0.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543",
- "sha256": "5ea33b732f0bfe301d0d2bf19836b860222c112c86c58fc41a28b30dd120eaf3",
- "dest-filename": "extglob-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543",
- "sha512": "3666fa4179042ecb81af6e02252922968e941c781b7a42b95226607c4e941c3dc46f6ed80baa03f9b85c4feb49e9c97c766b20750c675a572bcbc92c04804ba7",
- "dest-filename": "extglob-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07",
- "sha512": "5ab937e5ef327422838ff02b0a5a3556b3d598df33a61e55e00b47c08b8786f317b0a7fbdd44f704e0fe6b30485bedf0389e058441fbcf2689085bc286362f30",
- "dest-filename": "extsprintf-1.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7",
- "sha256": "155d0987eb3a267c56689523bf3b96b021600d255bb19e75fde6de0c3ae3824e",
- "dest-filename": "far-0.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49",
- "sha1": "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49",
- "dest-filename": "fast-deep-equal-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03",
- "sha512": "c49ba84f9f8bf7d5e567cb7079d6917fa031d93810571be064e6283caa99b9f98989bd2d2f6b5e80f04e65bd6954d808865a83940d1e3b4737c01bd0726cf1e3",
- "dest-filename": "fast-diff-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d",
- "sha512": "8352ae4301ce64098e64cb81b477710ed8eef93d914fc8e0082f5a00db1ba5d8830d34a78e07ee56c20134a6d4789237a0a31113171f343b499783a16df7ccb3",
- "dest-filename": "fast-glob-2.2.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.0.tgz#77375a7e3e6f6fc9b18f061cddd28b8d1eec75ae",
- "sha512": "4eb533dd31e2ab6572ddb8df414076c0dc8f74605e1a67636f3cc12e17c7378605bab629b422b01aafd37e245abdb1b2c0547363a53609d990d739ac639c986b",
- "dest-filename": "fast-glob-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2",
- "sha1": "d5142c0caee6b1189f87d3a76111064f86c8bbf2",
- "dest-filename": "fast-json-stable-stringify-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917",
- "sha1": "3d8a5c66883a16a30ca8643e851f19baa7797917",
- "dest-filename": "fast-levenshtein-2.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2",
- "sha512": "8e6c6a43767f9d7a1ec8399603317d907d5a1994a2b3a7bf49b7cf989a549f2674a20afa8ac70741a9a5e30b047a911649db66a72f9e557982448329c5a5ea38",
- "dest-filename": "fastq-1.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58",
- "sha256": "307357d7cd0ad97a2401cee3fb548f31b421fa35c00a894b6c719852a6d95199",
- "dest-filename": "fb-watchman-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec",
- "sha512": "adabe1f15457a87b8cbd9b7f77c19b9417aa0cc91d24c05dbffd8a9ed147fab6b931790eee7c4d2a9cd0de7e900ffd9d6b5907d1a5a634849dbe133b825da056",
- "dest-filename": "figures-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c",
- "sha512": "6c2836f6272db8168a530c00acae28b826aa0e02d9732b0214b98cfd89ff143a2a9dd87ff6f36e41f5d10ef4ee5ca2f17c3fc9b594062854fc30670904aeb8e2",
- "dest-filename": "file-entry-cache-5.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd",
- "sha512": "d19b7eb372fb55fd5b8b0599dbd6804625582f1ee23069c4525f71df77db07f8f78d1f35bbf3b62dba8af819b508348d0ca56d27f623c18ed351de5291e2d02f",
- "dest-filename": "file-uri-to-path-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26",
- "sha1": "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26",
- "dest-filename": "filename-regex-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26",
- "sha256": "427984fa14af1ec14cafbdd524bdd0c145f8567325a6ece4ad39f73d763e946b",
- "dest-filename": "filename-regex-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723",
- "sha256": "45024df8d280ba034b447ee3128647b5e24d7693677a70dc517257b139fc8089",
- "dest-filename": "fill-range-2.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565",
- "sha512": "727adc09b8f4d7e8f68131bddb55593e71db8e67407fca1057f886795da4671192c9f6238d3c98efd12bb0ad56256329c3a0da029117ef66e29ea244fbf77ee5",
- "dest-filename": "fill-range-2.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7",
- "sha1": "d544811d428f98eb06a63dc402d2403c328c38f7",
- "dest-filename": "fill-range-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7",
- "sha256": "fd73b16149446ae57657c0f23c2d8a2baa835e7817e88629d36e421fec546a92",
- "dest-filename": "fill-range-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40",
- "sha512": "a8ea3d17e74c5260b62dc6f805b56f9ca2714cf8c29be451a5ee200ee1abce42fb984565fdd8d84aed8e750d8f6b7d36378a2a91283d8abea368b589d94495a5",
- "dest-filename": "fill-range-7.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9",
- "sha256": "fa7ad781a5d50ce33f04ff241f32315ed45c537beaf032f08d1e33e8841eb736",
- "dest-filename": "find-cache-dir-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7",
- "sha512": "4eae8f8b1134c3f54c15f0a06ce36792240856897f2492fb9d1322db47eacc0e0d46cf407dea8c19e45d3e2df0221624c63781696876af1c1aa67e53bb722a39",
- "dest-filename": "find-cache-dir-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
- "sha256": "b1e6968c7ccf27d31504353bed2b0748b9b0284bc847b0a0480f5b56137d8b7f",
- "dest-filename": "find-up-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7",
- "sha1": "45d1b7e506c717ddd482775a2b77920a3c0c57a7",
- "dest-filename": "find-up-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7",
- "sha256": "e3ffbffcc7334b7eace925188baedbc1eaa83e506fce2b8a734136b31633ad1d",
- "dest-filename": "find-up-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73",
- "sha512": "d720fa4662c8d5705fc6e82f391c25724e9fef9b582fe891d23ab0b0eacec4c672198a94b83849d25e005dd3b5897fc54ecf5c040304935816484c759126f296",
- "dest-filename": "find-up-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19",
- "sha512": "3e93b001d43f6255d0daf8fc6b787c222a43b98462df071e550406616c4d20d71cab8d009f0ec196c11708c6edd59b7e38b03a16af6cb88a48583d0eb2721297",
- "dest-filename": "find-up-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc",
- "sha512": "efcfcf5d3d7094b2c3813cc3b3bb23abd873cf4bd70fece7fbbc32a447b87d74310a6766a9f1ac10f4319a2092408dda8c557dd5b552b2f36dac94625ba9c69e",
- "dest-filename": "find-up-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0",
- "sha512": "2e841eeb20ee50c0f3400107f2c82687831dea866773fecf8edc233454b3bde5ea487b7a91af5f3c1baca3b2067fd473e2eaa74a75a2147d81ff38f6e1ae5178",
- "dest-filename": "flat-cache-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241",
- "sha512": "6fab2e103fb9ff7ad3a5405d1b582ea4897c30f14200c034417c269632e1bc250a714bdd138816932f73a6e1827171ceb33e09f703c6356aba38aa66233cf785",
- "dest-filename": "flat-5.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08",
- "sha512": "6b5850324b6a5bd366aabe5a92d02ec7724c36a6ae73119c8ed8d69d92c75fbcb23c29a5495dcce789c661ba93f0afb41a117734182624273799af963a05fc26",
- "dest-filename": "flatted-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-1.0.0.tgz#54729c361edecee014dd441679e1a37c1d773a45",
- "sha256": "7760792db9056ac73e082229fa343cd51ef9c30b28c7b2527f5b813181669f83",
- "dest-filename": "flora-colossus-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80",
- "sha1": "81068d295a8142ec0ac726c6e2200c30fb6d5e80",
- "dest-filename": "for-in-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80",
- "sha256": "4e7da30d44cd6cf66e4883328d6ced16fa83a5da11bbe46b4837ddfd526fa85e",
- "dest-filename": "for-in-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce",
- "sha1": "5265c681a4f294dabbf17c9509b6763aa84510ce",
- "dest-filename": "for-own-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce",
- "sha256": "f0fa350a77c2e6375efb7730f2884e377e0cc0cf7fa4ba0b0539d8a34072b22f",
- "dest-filename": "for-own-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9",
- "sha1": "4fd71ad2dfde96789b980a5c0a295937cb2f5ce9",
- "dest-filename": "foreground-child-1.5.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9",
- "sha256": "f31c6279638e310b2469b4485e8ab1f06d698fc1c2219cdf7c2ecbfcbe7eed16",
- "dest-filename": "foreground-child-1.5.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19",
- "sha1": "4290fad27f13e89be7f33799c6bc5a0abfff0d19",
- "dest-filename": "fragment-cache-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19",
- "sha256": "e63cac91ed9159f180a4856278525147e3f037f19638784410e5ef8b4b759284",
- "dest-filename": "fragment-cache-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94",
- "sha256": "56a34e78924434580cc936bef05a4a685a9c8463d0b19584f3861bcdd820990f",
- "dest-filename": "fs-extra-4.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9",
- "sha512": "6090da0896449c199c6f0d777ef74033d03034e2703b3ac4e29a8ca81ab99c5884a9752a1f094ae01fb7a54c3a24dbdf48fb57d39c451ed632ff59e2d357860b",
- "dest-filename": "fs-extra-7.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07",
- "sha512": "72b86fc9770c7a38efdd9e5dd856bdb1fe712d85421793b573bd50c5b5676cbb2660c044bc301fb5ec1eb0dfc7858d37611a00ef338cc63346ac5e6cbc669a79",
- "dest-filename": "fs-minipass-1.2.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27",
- "sha512": "18d6a75e556bda97f4dbeb0f378d1737c1c6f9e3da35cbccd2ae6664177aebc39bc1bd320f91a251b64e160c27f2418c63a23799dc8327389e532dcf4d8c9344",
- "dest-filename": "fs-readdir-recursive-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f",
- "sha1": "1504ad2523158caa40db4a2787cb01411994ea4f",
- "dest-filename": "fs.realpath-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f",
- "sha256": "9e80cb8713125aa53df81a29626f7b81f26a9be1cd41840b3ccdcae4d52e8f9c",
- "dest-filename": "fs.realpath-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38",
- "sha512": "a166f567a9a41c8b242f3109fd7597d2cae4a644d0eef6a8a4c424c9a108a2ad1f9ad155c4eb616fc702c5e4fea77ca74dd924fd16706e01b86eb47905e5840b",
- "dest-filename": "fsevents-1.2.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f",
- "sha512": "a1eca3d87dc48e3a2759c1630f936f64d13d46a7b8516fa74015361cd78ac3492854b105221b72113c806a478033775eed9fd25b991c03e7d951a8adf440299f",
- "dest-filename": "fsevents-1.2.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805",
- "sha512": "478c03881c19d0ace980e59eb4a0ee83515971886a6275182ad7d962de260f9481cfbeaad0a47843da3b1883da9ac54f1a65b71183cf27474e3a3bf1df695d64",
- "dest-filename": "fsevents-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e",
- "sha512": "02ec3d6b8031a96a5af4651f8f7ef404c3f3cf29dc7c10015bc31a6fb0465816038f822c82af9c0cab71d22eaef63717f694039ecc2c69a393813980e69123b9",
- "dest-filename": "fsevents-2.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d",
- "sha512": "c88a2f033317e3db05f18979f1f482589e6cbd22ee6a26cfc5740914b98139b4ee0abd0c7f52a23e8a4633d3621638980426df69ad8587a6eb790e803554c8d0",
- "dest-filename": "function-bind-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327",
- "sha1": "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327",
- "dest-filename": "functional-red-black-tree-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7",
- "sha1": "2c03405c7538c39d7eb37b317022e325fb018bf7",
- "dest-filename": "gauge-2.7.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5",
- "sha256": "14c82f01361452d3ee9e7879d90e66819557d8e84a69ec0f6c7c65c6563049a7",
- "dest-filename": "get-caller-file-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e",
- "sha512": "0f214fdc133fdd81d340e0942ffc343991d1d25a4a786af1a2d70759ca8d11d9e5b6a1705d57e110143de1e228df801f429a34ac6922e1cc8889fb58d3a87616",
- "dest-filename": "get-caller-file-2.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41",
- "sha256": "791183ec55849b4e8fb87b356a6060d5a14dd72f1fe821750af8300e9afb4866",
- "dest-filename": "get-func-name-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-port/-/get-port-5.0.0.tgz#aa22b6b86fd926dd7884de3e23332c9f70c031a6",
- "sha512": "8a6ccc534163b19a8d6ba06a3a36db5bac39062bc722e40aa298e93ea727c740151c940a0b12b53be01bdcead55e1ade92a7d5323c00f5962ed3ad91f8a708b1",
- "dest-filename": "get-port-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14",
- "sha1": "8e943d1358dc37555054ecbe2edb05aa174ede14",
- "dest-filename": "get-stream-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14",
- "sha256": "775e05b483a9a801fafb4f4858b200dbc34ce38a9bc1442efb4b00f92245006e",
- "dest-filename": "get-stream-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5",
- "sha512": "18c6ade04279d7ad64232d877af2e5af896e363060be68f8d7729a400ee3b7857c078443b1fa4793b590f4656a7d8cb2c7c392fcbeba2a8c7eac944d9252caef",
- "dest-filename": "get-stream-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9",
- "sha512": "117af514ecebcd37c678bd2041d78512f38c9b69b330e825ca2397493a4f0be8808c029fb5baf78e908c5b29e883062733e7928fdb0719ceb08c8703bd88b283",
- "dest-filename": "get-stream-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28",
- "sha1": "dc15ca1c672387ca76bd37ac0a395ba2042a2c28",
- "dest-filename": "get-value-2.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28",
- "sha256": "54006eb984cd6bde4583f72fd3de97bdb9bfb552eb235053f98ffea33cf8fc14",
- "dest-filename": "get-value-2.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4",
- "sha1": "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4",
- "dest-filename": "glob-base-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4",
- "sha256": "c7aa93cb5439345a22efef1ec734c5c7a68e236d34d916e108e3aeb826eda8a5",
- "dest-filename": "glob-base-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28",
- "sha1": "81383d72db054fcccf5336daa902f182f6edbb28",
- "dest-filename": "glob-parent-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28",
- "sha256": "6331c038d9b238fcdea3b1721c26ffa33765b16354abfd5091aa58d2e070854d",
- "dest-filename": "glob-parent-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae",
- "sha1": "9e6af6299d8d3bd2bd40430832bd113df906c5ae",
- "dest-filename": "glob-parent-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2",
- "sha512": "aa3b5182721598e7e729413734901011d93e94aaf17f0f2de647bb497b5f3131dc8ec05f39f5970907dd6f7d337c3a194362114888a27668ed6c764f67ef8887",
- "dest-filename": "glob-parent-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229",
- "sha512": "16723e5463a99e5187599c6d84f191f90851efc7ee88ad2c34b90742ff9b2fd7d08b9ee534d76ab886e76bf5ab7d13aba25abc18ae4493a062330a8bfefa1161",
- "dest-filename": "glob-parent-5.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab",
- "sha1": "8c5a1494d2066c570cc3bfe4496175acc4d502ab",
- "dest-filename": "glob-to-regexp-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15",
- "sha256": "cf3d3e47a1308b512fd707f1df593737cb569079d04bf975e1fc48de6a629ed1",
- "dest-filename": "glob-7.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255",
- "sha512": "8642cf7a97a19a72a4e35a541a6dec631a05b3fba6bab61f60909eadb5c4c85216700cefa62a40815901aaa4fd44128c1a39eaea432ec98c216ba72cc5b88cd4",
- "dest-filename": "glob-7.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6",
- "sha512": "2f06b1c3267bd8b93bbd920db4d36bcb05f466e2f24adadd0ed69b79f64a018e59189855b607739e5b917acc4d98f8ad1344803be3b6eac5931de292236c0c04",
- "dest-filename": "glob-7.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445",
- "sha1": "b319c0dd4607f353f3be9cca4c72fc148c49f445",
- "dest-filename": "global-dirs-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e",
- "sha512": "58e069fc410652222c252a7bc1cbffcba30efa557d5289dc5aac6e15f9bc781c3358d8327c177a1b3f8878a43d8c29b28681fdf60d793374fe41a5471638b354",
- "dest-filename": "globals-11.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13",
- "sha512": "c007e374b805b0f66c9252c9bce054066cd813cfc2c2112a48110c457037ab122236dcaabe362eac0b487c387a7219443d47e64d8dcc9d98791df878ab452523",
- "dest-filename": "globals-12.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a",
- "sha256": "437a12c10dd45aa191c4a5d77648026f1d65a578b65e2c88ee249ec8945c737a",
- "dest-filename": "globals-9.18.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a",
- "sha512": "4b49c6dc22c442263f20bc6ab73b53587ff789145dc812f0e8a303c6728c721aed6e3d8e1667a1561d165027d6dc352b220c7fa85ac93c80abab8678b1347d51",
- "dest-filename": "globals-9.18.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22",
- "sha512": "b12b388a7135141d98422ca67264efe8d58436bc8006350d3de5a13af9a7e128ed2b26e096cc8f671141dd4d7ff8bd5b622d2b3590ea08b947c8b6039753eae4",
- "dest-filename": "globby-10.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c",
- "sha1": "f5a6d70e8395e21c858fb0489d64df02424d506c",
- "dest-filename": "globby-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d",
- "sha512": "a2594f1d139ae667310c493083a6cfb7741b11fe290d048db5de893cbd58bcebc0a3feffd15026f5371c51ea1399aae33f0e297d4b61482a9cc9f341d48dd94a",
- "dest-filename": "globby-9.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0",
- "sha1": "240cd05785a9a18e561dc1b44b41c763ef1e8db0",
- "dest-filename": "got-6.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85",
- "sha512": "47b796a6d5ee198c708a3b34795fafde8ebe5c7d48a952bc74938479c41f4e6927730f4057875cc3f0e1c62f0c765a8fb61c71a59ca2ccccf283c453984b06f9",
- "dest-filename": "got-9.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658",
- "sha256": "6ab070270ef8dd8edd446df87425829ed31091dc7e5f30787f5abb9cb5c2b6b8",
- "dest-filename": "graceful-fs-4.1.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423",
- "sha256": "982d3ba32bb6c9bcf4868bba575d5bb7360ba1de2d2b9adb78589d6b9f7ac778",
- "dest-filename": "graceful-fs-4.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423",
- "sha512": "6b7d151019b83c4771d5d441ecc14aec17a37a3bc2bc1ae89db2e386dfac1ee1988fc3c7b3b33fe59fabb79970e79d6f67bc9f4c28f856ecb2de6489cad0d645",
- "dest-filename": "graceful-fs-4.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb",
- "sha512": "5a328f34917bf5db490159e2525186587606cf68d6c53e9584dff89b535d91b6769ceb0417e708d44760aa5e7309186cfd5b10611beb5dcb7192d557654922c7",
- "dest-filename": "graceful-fs-4.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f",
- "sha256": "c2b3b8616ef6b39b1b7ce7a09d9a8b4f70b355f6cc6b7d26e070f7087085b23f",
- "dest-filename": "growl-1.10.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e",
- "sha512": "a81af83ae10b9213de9d6ea0a0a5578afe3b512ddc95bdff21bb9617d28d2848a3032f68787c54f488338ef2611e453385a8fbace503efe6065aa5232e9e6848",
- "dest-filename": "growl-1.10.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc",
- "sha256": "b3ca96fefb7fe3d85caa18d0f82c62549d21bce667385ca62f6c2bbeb62a3613",
- "dest-filename": "handlebars-4.0.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482",
- "sha512": "df23de709a091caff873a699852bf13b21b8bc9283b21577e951e9d225420d587ba3dc36bf08b73529cbd8c30f8f761d76ea9a05cbbb7066e080940cd1bafdc4",
- "dest-filename": "handlebars-4.5.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91",
- "sha1": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91",
- "dest-filename": "has-ansi-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91",
- "sha256": "e30265eb491e78d3586ea64dea6b61f3d45a28a28d908caf73f04531764344ed",
- "dest-filename": "has-ansi-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa",
- "sha256": "48b69ec5354f64a225937160b1fc95e5583eb23db08041086d33a04e11ad4ea7",
- "dest-filename": "has-flag-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51",
- "sha256": "0915ab7bab71d000cd1ccb70b4e29afe1819183538339c8953bc9d3344bc4241",
- "dest-filename": "has-flag-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd",
- "sha1": "b5d454dc2199ae225699f3467e5a07f3b955bafd",
- "dest-filename": "has-flag-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b",
- "sha512": "1329094ff4352a34d672da698080207d23b4b4a56e6548e180caf5ee4a93ba6325e807efdc421295e53ba99533a170c54c01d30c2e0d3a81bf67153712f94c3d",
- "dest-filename": "has-flag-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8",
- "sha512": "3cb72ca2abbef9d98421907eeada2d3452aaffb0e8f99d2ee284f4cca389365de560aeaf1b0c2eda18c7b3eebc38465b4e389413d6e03800576cffc6beb4b42a",
- "dest-filename": "has-symbols-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9",
- "sha1": "e0e6fe6a28cf51138855e086d1691e771de2a8b9",
- "dest-filename": "has-unicode-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f",
- "sha1": "7b1f58bada62ca827ec0a2078025654845995e1f",
- "dest-filename": "has-value-0.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f",
- "sha256": "de562805d0b419b653f2ca54cf89d71ebdc4424ea294001490f7eb9cf2b78dc0",
- "dest-filename": "has-value-0.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177",
- "sha1": "18b281da585b1c5c51def24c930ed29a0be6b177",
- "dest-filename": "has-value-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177",
- "sha256": "29f7c52387889aeef39b66c717db0d79a47b208f3ae17431b683d7189c5b77c6",
- "dest-filename": "has-value-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771",
- "sha1": "6d61de95d91dfca9b9a02089ad384bff8f62b771",
- "dest-filename": "has-values-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771",
- "sha256": "a6826e9f6b99687fd5d655374a5a6e9a1dd99af24c8f9a71ec9d025e3817d7d2",
- "dest-filename": "has-values-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f",
- "sha1": "95b0b63fec2146619a6fe57fe75628d5a39efe4f",
- "dest-filename": "has-values-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f",
- "sha256": "8caff002766ef426bae3d98dfa2ac180fa7adbf54bc1bd6de7b2c682e057efa5",
- "dest-filename": "has-values-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77",
- "sha512": "52a051aa2e23bbb4fe4ea18d76a00ed0f692546b0318950142f93d79458d191635085183cd884b5a833b25011e9a796f55cbff60499cdb0356f010b6e049d4b3",
- "dest-filename": "has-yarn-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796",
- "sha512": "7f676f3b4554e8e7a3ed1916246ade8636f33008c5a79fd528fa79b53a56215e091c764ad7f0716c546d7ffb220364964ded3d71a0e656d618cd61086c14b8cf",
- "dest-filename": "has-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39",
- "sha1": "52a32fab8569d41ca69a61ff1a214f8eb7c8bd39",
- "dest-filename": "hasha-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/hasha/-/hasha-5.1.0.tgz#dd05ccdfcfe7dab626247ce2a58efe461922f4ca",
- "sha512": "3853c35a6ccf37597b6ad395d5380156636d071688cac4e82ba55ef432bebd3ea962e925c3f9cf353f8725b662d0a0dc23abd607ef6d82f679603edf03709770",
- "dest-filename": "hasha-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd",
- "sha256": "a5caab6aef32441afbfa10aae3969b9737e7b45cd84450e90b8728c27278c480",
- "dest-filename": "he-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f",
- "sha512": "17fd439d418fa29391662d278be0afac28074391721001d12d2029b9858c9ab6d2c28376327ffb93e1a5dfc8099d1ef2c83664e962d7c221a877524e58d0ca1b",
- "dest-filename": "he-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8",
- "sha1": "e36c3f2d2cae7d746a857e38d18d5f32a7882db8",
- "dest-filename": "home-or-tmp-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc",
- "sha256": "fd654fb1e48b6d489ac3940583e8d5cc7b8ad23413e851198a74925f3dcb8b52",
- "dest-filename": "homedir-polyfill-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c",
- "sha256": "6147b743df5b0396ff5fde32fb088bc02b292c43412b2215e0db9e71a98b9e51",
- "dest-filename": "hosted-git-info-2.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c",
- "sha512": "92cb2369bf02bdd5df71731755cbec5ee9b81f076af571ad443dd3b5e304bc46ead0b5f288d42be80a6ba8aa9f79a0d7cdeed2c56bd1c5da7013a92eee290b92",
- "dest-filename": "hosted-git-info-2.8.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5",
- "sha512": "4dc20c1b7a9e54b803af54c47765ef1da4e730fc1841440c2012f2fb9a4b48329815ced422a8f7f70f041b36646b1a0bbff9762bc1da234b7901503e6188147b",
- "dest-filename": "http-cache-semantics-4.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b",
- "sha512": "3a6bdfa10e7758b8ed03d1de60ff5136b58c273cc0cf524669216bd678a38343d547525a0ffc5b26ad667442089711a95e9f5e49efced8b814f432664cf77412",
- "dest-filename": "https-proxy-agent-2.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a",
- "sha512": "4f5d2abe4c34cf3e309e6e7ad253848343e8bd5a945ee3858611c0922c70f3fb32732ed326deeffd1ae410a1109c0c36be23d226eea202412bc67cd1d20f0fa5",
- "dest-filename": "iconv-corefoundation-1.1.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b",
- "sha512": "bf73179d901cbe7cb091350466898801cb657bb4575de79d391df5c3097b565ca85cee108bd6abbd27a73505a77b54dc4708422f51f02c8db56c4a9da63f3fac",
- "dest-filename": "iconv-lite-0.4.24.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09",
- "sha1": "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09",
- "dest-filename": "ignore-by-default-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8",
- "sha512": "0d3565331dc860f7b4fc925c60fec6c60eedb5966edc822786e1216dc86eaa7798f7059ee4e8f2da65cb05a4055109a8d005b6af7a86ee6d6683cea3b3e82795",
- "dest-filename": "ignore-walk-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37",
- "sha512": "9bba3ac6e39a4f56aa85e60729ff16e89e69607f39648f70d3bedeaceccb8dedc9b01d6091a7e40211c7635f5daa3ba5808647166df60a9e6e35981c42a7492b",
- "dest-filename": "ignore-walk-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc",
- "sha512": "7321432aba9cfd875c5859e2261cc8e36f80cd2fa0370994cce485711090630c92b81041cbf2a3bb158b67f147107e8ca2ad4d8b330e056c9372ff0ee0e64832",
- "dest-filename": "ignore-4.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf",
- "sha512": "3336d449a8644d6d6eec9a4a2a363b2c20117757d4e56dab2ddc6533891d91acae0b06489a392996e17d08cd5a2dec18260b8f0ea7b02da9b5f18e8053af40f0",
- "dest-filename": "ignore-5.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66",
- "sha512": "e9ed6ad5c9d63f64570fdfe47929311d2720e74f02757a975a05816844cd872b81173fa451994a6e887e2122be6d4fbe0e66c78a6541acecffcf33ded2c677b1",
- "dest-filename": "import-fresh-3.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43",
- "sha1": "05698e3d45c88e8d7e9d92cb0584e77f096f3e43",
- "dest-filename": "import-lazy-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6",
- "sha512": "be32f7fb0d28ba50156748411e7c5afcd9b94c0bab7fd60b4090e1a91672a9bf95286381e8b53cb7d1f536be42228d7abe1f577c94cea07c14d01ef54b9e7b80",
- "dest-filename": "import-local-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/import-modules/-/import-modules-1.1.0.tgz#748db79c5cc42bb9701efab424f894e72600e9dc",
- "sha1": "748db79c5cc42bb9701efab424f894e72600e9dc",
- "dest-filename": "import-modules-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea",
- "sha1": "9218b9b2b928a238b13dc4fb6b6d576f231453ea",
- "dest-filename": "imurmurhash-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea",
- "sha256": "ac23a031966a7371d192e35c7852ab31c772b7d4e468ddd886ad3c014372cb60",
- "dest-filename": "imurmurhash-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289",
- "sha1": "4a5fd6d27cc332f37e5419a504dbb837105c9289",
- "dest-filename": "indent-string-3.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251",
- "sha512": "11d0c366ee00d8ec882bb2ebff6cc6fb0e6399bba4d435419c4c11110bc1ceca412640846d16bc1b153596085871a1890a745689b8c35e5abbefd5f5ff2e71c2",
- "dest-filename": "indent-string-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9",
- "sha1": "49bd6331d7d02d0c09bc910a1075ba8165b56df9",
- "dest-filename": "inflight-1.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9",
- "sha256": "5a9fdcf59874af6ad3b413b6815d5afaaea34939a3bee20e1e50f7830031889b",
- "dest-filename": "inflight-1.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de",
- "sha256": "7f5f58e9b54e87e264786e7e84d9e078aaf68c1003de9fa68945101e02356cdf",
- "dest-filename": "inherits-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c",
- "sha512": "93fbc6697e3f6256b75b3c8c0af4d039761e207bea38ab67a8176ecd31e9ce9419cc0b2428c859d8af849c189233dcc64a820578ca572b16b8758799210a9ec1",
- "dest-filename": "inherits-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927",
- "sha512": "45963986e20a08c4560d4a999448bbd9ffe599728cbeeb3370c05dba5890de79d66f1f57fd90503bb0e28cc1184bd1211c16f6a9a71150cb42eecbcbc1ed2573",
- "dest-filename": "ini-1.3.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a",
- "sha512": "ad2742ef37a51dd4501645a786c32edbed923b8d66a6fda8176cf2e2d3219a22d691c29b380b3cedf580261557b6d295c21759bf29af9ee33de44c845e0dbfb5",
- "dest-filename": "inquirer-7.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360",
- "sha256": "3309486391d70fb7ee5139dbb0388ab9c67391c96d444591638a1e8848d72173",
- "dest-filename": "invariant-2.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6",
- "sha512": "a6125f41506e689339ada3a926349f9220fa0696c213836cfff2da5e5eb0198b54058f379d64ba45ff6d5e6d9ef1568aeb42448d895d6cf89ffc0d81d42da034",
- "dest-filename": "invariant-2.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6",
- "sha256": "ad334f834b1876490ce47e220ff1b712e5b678216552abbd005639c14974d29e",
- "dest-filename": "invert-kv-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766",
- "sha1": "2ca9b033651111855412f16be5d77c62a458a766",
- "dest-filename": "irregular-plurals-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-2.0.0.tgz#39d40f05b00f656d0b7fa471230dd3b714af2872",
- "sha512": "63be730582e4874949f6ac5e1e532343b6d26f2892a8d5bf50e3d60e6cc2edc5ec90bd617a44884e1d4e73a255d17096599f4313c558481ef5c6870b9378261b",
- "dest-filename": "irregular-plurals-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6",
- "sha1": "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6",
- "dest-filename": "is-accessor-descriptor-0.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6",
- "sha256": "2356586375dd98e696cdcec427de57d1796130c245c09bdb448287732a6133c9",
- "dest-filename": "is-accessor-descriptor-0.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656",
- "sha256": "14f7ea5a61dbaf00843ea03e55f20e3daf0db2bf1efe8aee3bde60d080a6cba3",
- "dest-filename": "is-accessor-descriptor-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656",
- "sha512": "9b98671d391c56c3dfab1dc02a5cadb483dbec9f97ca41ef24fd81f5b6438e584b22812ae17a0aeb8560edba199555982ba2d463de1d60f104ecb87466464a71",
- "dest-filename": "is-accessor-descriptor-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3",
- "sha512": "c4f874466b7c344eb9b0dcefc94996808d6dcf798aabbe25180d262fc2d865ca08cca3b30e1e879ab626dddd7c93ad271deac2f00f4a9bc918bbcef37d21672c",
- "dest-filename": "is-arguments-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d",
- "sha1": "77c99840527aa8ecb1a8ba697b80645a7a926a9d",
- "dest-filename": "is-arrayish-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d",
- "sha256": "848d15d93e447897263a654c114c8e45c340ce7fdc1bc86e7a44a4c44f27e38c",
- "dest-filename": "is-arrayish-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898",
- "sha1": "75f16642b480f187a711c814161fd3a4a7655898",
- "dest-filename": "is-binary-path-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09",
- "sha512": "64c11161eb3aa43c9dcae1a276c7bb3ac1f1b5b23b595794128ce047f83baddd31522998365bd9444fcad8c8194e35b2ef6e487de94b79570433dee69ad4465f",
- "dest-filename": "is-binary-path-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be",
- "sha256": "3d1ad8c0a086873150d3dc69e6c6e628a3729e04e954f90ba6c0f7407272880e",
- "dest-filename": "is-buffer-1.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be",
- "sha512": "35c7402f0a579139b966fbdb93ba303944af56f04a0e028fe7f7b07d71339e64057ece194666a739e2814e34558e46b7405a0de9727ef45dd44aa7c7a93694e7",
- "dest-filename": "is-buffer-1.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe",
- "sha256": "4420b4ff39f7b135241b0426243d4edbf02d1f6dd32a4fba68c7f68f0e820e8e",
- "dest-filename": "is-builtin-module-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75",
- "sha512": "af9a7db3126362702b2e339ba63038c6ee44288dc2b8a1e42573214fb9306e95322050f59f93cc02ca0fbd69efb5988dcfb2e39180d166177b16523478c8a310",
- "dest-filename": "is-callable-1.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c",
- "sha512": "b3ab5fb1a41a422dc935c8811fab2156a103be11aeb744945ebdf56a0f0f77c0416d55657067d68693e610ea0ce912794c585bca9bdfe72c91c3f5575b52225a",
- "dest-filename": "is-ci-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c",
- "sha512": "61f253eeb929401d2ea5db1d1cb196aef84125f71fccd35ac180cd232417273d0856219fef93bc1013ca49dbf0dab17e2c60ac5f8159f2d72bddbd7d2dc66ae3",
- "dest-filename": "is-ci-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56",
- "sha1": "0b5ee648388e2c860282e793f1856fec3f301b56",
- "dest-filename": "is-data-descriptor-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56",
- "sha256": "43a72ac8b607310debe4f2e66deac30927d0d5c0ab12d1da091a65026f952c3f",
- "dest-filename": "is-data-descriptor-0.1.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7",
- "sha256": "28c25461e29798d16795eadabe11cc5ced4904f9ca1761bc0463e403759ca12c",
- "dest-filename": "is-data-descriptor-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7",
- "sha512": "8db457cb5166b40a028d0915988558c2ebaa0c551b68e7838e679dd6d3863ebb0c86d240e2b0fdb64800d05d6a2778111515dc1d856475e68fe74439ac4fe32d",
- "dest-filename": "is-data-descriptor-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16",
- "sha1": "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16",
- "dest-filename": "is-date-object-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca",
- "sha256": "b0d542e7aa38610efea55af9bf42c812a73d93ae522b1ceaa106f831900bb06a",
- "dest-filename": "is-descriptor-0.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca",
- "sha512": "6af0d8af4481dc3c0ef73b0ca2fd20282112158a829c4e21abfe33dd375496e904cb9b7d0b4611abb1cbaec379d8d01ca9729a7a97820f49fe0746ab9d51b71e",
- "dest-filename": "is-descriptor-0.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec",
- "sha256": "fe5ee7a359c2ae4ec7c12a075d903150c23365bf55c0c471b8d34fade96c6ead",
- "dest-filename": "is-descriptor-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec",
- "sha512": "d9e8ace56a90195ee97a8a03c8b98d10f52ba6cf7e4975f973da4bdf1101fb87bd1e71ae0daee607b907c47c3809ba92f64d53da1387de688bf27f16b62615b6",
- "dest-filename": "is-descriptor-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1",
- "sha1": "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1",
- "dest-filename": "is-dotfile-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1",
- "sha256": "91c66568d2de605796160ab63b4e856f426ce7a9ef650a34de39ae572dec678e",
- "dest-filename": "is-dotfile-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534",
- "sha1": "2238098fc221de0bcfa5d9eac4c45d638aa1c534",
- "dest-filename": "is-equal-shallow-0.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534",
- "sha256": "14c38bccdd723796b71ee84f9c05528bf0e955f4caa262f8f7ad6af570ff98e9",
- "dest-filename": "is-equal-shallow-0.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-error/-/is-error-2.2.2.tgz#c10ade187b3c93510c5470a5567833ee25649843",
- "sha512": "20e42ab6cfda1d66e28ac6390ee3c943481c6ef68b1426bb7c16bdc682dfc4166f43e648fd987dc6823b1a4f86eb837415d2b801b89bcad1e1b76b568292562e",
- "dest-filename": "is-error-2.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89",
- "sha1": "62b110e289a471418e3ec36a617d472e301dfc89",
- "dest-filename": "is-extendable-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89",
- "sha256": "eb342b3dbc0586b3b0fecbb75f1758ee70f8c340c3f54ca5e0306d06030fc989",
- "dest-filename": "is-extendable-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4",
- "sha256": "42ebd9d5d0cafcb3ce0bef5f579d0ada4233772386e4f9078169e3d232082658",
- "dest-filename": "is-extendable-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4",
- "sha512": "6ab9d73314f5861a0aa3d9352d976694dc897430dfcb6bf47d78c5966a24e3e8bcba5ffa5a56d581ef5b84cef83a934f40f306513a03b73f8a5dad4f9de27138",
- "dest-filename": "is-extendable-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0",
- "sha1": "ac468177c4943405a092fc8f29760c6ffc6206c0",
- "dest-filename": "is-extglob-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0",
- "sha256": "473e563bc34d59eac27dfaacaac6c154e3fb4596b2e44e04157ebef4765c599d",
- "dest-filename": "is-extglob-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2",
- "sha1": "a88c02535791f02ed37c76a1b9ea9773c833f8c2",
- "dest-filename": "is-extglob-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa",
- "sha256": "41316f8afebe7d7dbc13338f5496c1edeaa4ba52008a9f6afbf8bcad6fa879d3",
- "dest-filename": "is-finite-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3",
- "sha512": "71dc8cb6a5ff04eaaa3410622a5215932b4d1e6e3d32d3256329f5cf1cef24a5a614c946ce6fabcb90417d8c9e63d62634a6d14a8fe8ece5fdc3d6a57b4c20df",
- "dest-filename": "is-finite-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb",
- "sha1": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
- "dest-filename": "is-fullwidth-code-point-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb",
- "sha256": "77ed656a130d47cc804c1d8fdae8f0fc4ad355625552fcde37703ca5f8b3686c",
- "dest-filename": "is-fullwidth-code-point-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f",
- "sha1": "a3b30a5c4f199183167aaab93beefae3ddfb654f",
- "dest-filename": "is-fullwidth-code-point-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f",
- "sha256": "4cd0d0edee6bf328b641662054d69e9faf91262beee6f158eb974220ceaba06b",
- "dest-filename": "is-fullwidth-code-point-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d",
- "sha512": "cf29a6e7ebbeb02b125b20fda8d69e8d5dc316f84229c94a762cd868952e1c0f3744b8dbee74ae1a775d0871afd2193e298ec130096c59e2b851e83a115e9742",
- "dest-filename": "is-fullwidth-code-point-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863",
- "sha1": "d096f926a3ded5600f3fdfd91198cb0888c2d863",
- "dest-filename": "is-glob-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863",
- "sha256": "e71c2b7aa1b2df462766ed7c7faf786be5dd29945098f17315b1b9f2026790ad",
- "dest-filename": "is-glob-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a",
- "sha1": "7ba5ae24217804ac70707b96922567486cc3e84a",
- "dest-filename": "is-glob-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc",
- "sha512": "e46d2d2ad05314898ea839cb076846e81a76a9c28415dba8e2d66ef4c4ff1fa350bff821872df4a39e6e7da7f127f2dd1fbf4b2ecd8a7eb9fce532cac80ec152",
- "dest-filename": "is-glob-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80",
- "sha1": "0dfd98f5a9111716dd535dda6492f67bf3d25a80",
- "dest-filename": "is-installed-globally-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4",
- "sha1": "f2fb63a65e4905b406c86072765a1a4dc793b9f4",
- "dest-filename": "is-npm-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053",
- "sha512": "c2c8a00ebd4a92c721a76a290b81b7c80eabf4481503a3634695b3222f5ac57a9e21a0004cf449738b8bba35dedcd77db8ef0aa03c80e0c0fa69949e5d300384",
- "dest-filename": "is-npm-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f",
- "sha1": "01fcbbb393463a548f2f466cce16dece49db908f",
- "dest-filename": "is-number-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f",
- "sha256": "22a39e192bea7e2300aa808aa1d47b2d24ff8071cbea69864b389ab5c7a7671f",
- "dest-filename": "is-number-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195",
- "sha1": "24fd6201a4782cf50561c810276afc7d12d71195",
- "dest-filename": "is-number-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195",
- "sha256": "c4ad5fbaebeb2e367b73366a71016c31d7f0554a955f0017127e749f4b5c37a7",
- "dest-filename": "is-number-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff",
- "sha256": "5e5bccc70a0fcc5d10e146678a50ee0b2e1cf6ef0f054b6793ca70c025c587b8",
- "dest-filename": "is-number-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff",
- "sha512": "ad29257002257f53a615dc80a9b9d64cb55e96c439f2ebd9eba4bf6726b08d6a88be24d60a38363f3546c3c59403e9cdb8f4ea6f8c2003e36cceb27ed3c2e581",
- "dest-filename": "is-number-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b",
- "sha512": "e350a27e483a7bc4f2952a5db53a5e2d532abd20445734edb47bc4443ef8d7ea6767c00dbf4d34e0c44be3740a3c394af5c1af369e8d6566540656c65d8c719e",
- "dest-filename": "is-number-7.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f",
- "sha1": "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f",
- "dest-filename": "is-obj-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982",
- "sha512": "76ba831b771b733c7110946839770e8ed769d49fe5ca9d66367d316b39d1b3cfa6b8186041cae76eca68c795f97cec341e73276df0f3be710c12da83109128f3",
- "dest-filename": "is-obj-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-observable/-/is-observable-2.0.0.tgz#327af1e8cdea9cd717f95911b87c5d34301721a6",
- "sha512": "7e1059bf77852946f21d7675a07ba3768dad67e08d6dda5dcf39443600866540bc91ea06c547b0da36052d8714078aa8ecb0c3d37a3828ad759bf4180fb9048e",
- "dest-filename": "is-observable-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24",
- "sha256": "a5efd5ac0efa1deb0a2de7ccb7881af02fa243ea34dd986b134477cfa23ffa7f",
- "dest-filename": "is-odd-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb",
- "sha512": "c3de366d372287c7dd24f266407173912efa3443fc2b3cef9b0f76717b1acdbf229edc0ba8f89b3cf7577f800d74a577ad832eb90606216b6fcfd262941dcd15",
- "dest-filename": "is-path-cwd-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb",
- "sha512": "acda1c5c7822a4efabbe73fa764df3236d11a4eb6b00cfe4cdb076e7c530e415abdd3a578bceb5cb38e8d7a0e7e21528c74ee2c3903278c2c75acba3923cef45",
- "dest-filename": "is-path-in-cwd-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036",
- "sha1": "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036",
- "dest-filename": "is-path-inside-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2",
- "sha512": "c22ca14f37c35acbf0016e77381585e73baf68e1a567a3f063101b3d50e1a66fa0334f712901a306affcb98375d9a0ef3319c09eadddc53ca84a844d9a0e5816",
- "dest-filename": "is-path-inside-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e",
- "sha1": "71a50c8429dfca773c92a390a4a03b39fcd51d3e",
- "dest-filename": "is-plain-obj-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287",
- "sha512": "6169dfc91c312fff92b2b5987cea54b73e5bdd80fe9f27e41ef8db71a9f393cce0c8ee00483ebbb95311b7c9396cce252cc0e75dfae24613a97a6c3e35f4f578",
- "dest-filename": "is-plain-obj-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677",
- "sha256": "4893fd94b7cf23cc0c936fdea4ada5d174e53adba6c72e7334b8cec0804ffdc6",
- "dest-filename": "is-plain-object-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677",
- "sha512": "8793e98179168ad737f0104c61ac1360c5891c564956706ab85139ef11698c1f29245885ea067e6d4f96c88ff2a9788547999d2ec81835a3def2e6a8e94bfd3a",
- "dest-filename": "is-plain-object-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928",
- "sha512": "b59229a1f47e3f4e64f00a1ca7b508ff65136bd95325279b097a4516847d6a26e9a240e3fee5c1b09f25b94bb4b535582a4314e9444352e39f259ee4a1ec17be",
- "dest-filename": "is-plain-object-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4",
- "sha1": "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4",
- "dest-filename": "is-posix-bracket-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4",
- "sha256": "838c5047b9fcc7be55608f41a5ca56615ea900108f1f483f60fb1f66d2e4df07",
- "dest-filename": "is-posix-bracket-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575",
- "sha1": "207bab91638499c07b2adf240a41a87210034575",
- "dest-filename": "is-primitive-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575",
- "sha256": "cd2ec246afcd04c30e433ad494cd108915f1686983aff94ddbc845ec1cd7a7e8",
- "dest-filename": "is-primitive-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa",
- "sha1": "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa",
- "dest-filename": "is-promise-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24",
- "sha1": "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24",
- "dest-filename": "is-redirect-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491",
- "sha1": "5517489b547091b0930e095654ced25ee97e9491",
- "dest-filename": "is-regex-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4",
- "sha512": "4546d478ac2f9b75c6d9561a9a124bd71164b608ef3f32f41eaf02fbacab588b300f2dc12171aa0b187191cdf437d8ea2b7d75815535dfb2bc122e79ff354946",
- "dest-filename": "is-retry-allowed-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
- "sha1": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
- "dest-filename": "is-stream-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
- "sha256": "9dd833c75e16693641970a1c2c0aa6dd5f5da392424e23494ed9ba20311c381f",
- "dest-filename": "is-stream-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3",
- "sha512": "5c2a32f96954afb775f99f06812b979a9b94142f5f3a145782524cc7e7702ca4e42f8e028dde16d59e4ff81419a6bf9c47ddda18fe12fecec5b70e8d77f92213",
- "dest-filename": "is-stream-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937",
- "sha512": "3b08a385a45282abe19bfd19740717359b7d95874a1697110d3e542d4b985cfa13efde1434e754fa0a53e91ce8edbe15d87525fe8a7a1aa63cf78019c2ff5f69",
- "dest-filename": "is-symbol-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a",
- "sha1": "e479c80858df0c1b11ddda6940f96011fcda4a9a",
- "dest-filename": "is-typedarray-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52",
- "sha512": "213bc68a6f058518987b8210e6e1d2923ee955a3c3ac24e435ddf2ab7715ee26407097474d430f3041dca923b2f7167da857a7402be2fb6c231fd6b59d7a87c3",
- "dest-filename": "is-url-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72",
- "sha1": "4b0da1442104d1b336340e80797e865cf39f7d72",
- "dest-filename": "is-utf8-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72",
- "sha256": "842b40f45caefe6d44673cb105ca8f852fa57fce75ee2db7923e414d43d65674",
- "dest-filename": "is-utf8-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d",
- "sha256": "7b1128270d2aafc5a03af6e5cc5336eab331dd7cfbae805f76da6867fe8731a2",
- "dest-filename": "is-windows-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d",
- "sha512": "7972b55089ead9b3e68f25fa7b754723330ba1b73827de22e005a7f87a6adce5392a4ad10bde8e01c4773d127fa46bba9bc4d19c11cff5d917415b13fc239520",
- "dest-filename": "is-windows-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232",
- "sha512": "56349e6ff9479a4a3277caf23d520abce0a7e03d64a0ca98fafab28e351f737c722ad3f87583b1338e2c66b9ea412cd276cdf1c8ead44cb4c2f4b5425602e783",
- "dest-filename": "is-yarn-global-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11",
- "sha1": "bb935d48582cba168c06834957a54a3e07124f11",
- "dest-filename": "isarray-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11",
- "sha256": "e23c76f14f5222e07e39d89858b61e8e33f96956de9e0df3659cbdf8db950c87",
- "dest-filename": "isarray-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
- "sha1": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
- "dest-filename": "isexe-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
- "sha256": "47cfe872e088e28c53b736fef305324b57cc1cfc9f72a9b0f769f92731cb8359",
- "dest-filename": "isexe-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89",
- "sha1": "f065561096a3f1da2ef46272f815c840d87e0c89",
- "dest-filename": "isobject-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89",
- "sha256": "626c7518d53309aa1e0ef7cdb5f27bbc4fa80b3158074140a2157e26af0eae91",
- "dest-filename": "isobject-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df",
- "sha1": "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df",
- "dest-filename": "isobject-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df",
- "sha256": "3cc6c92b005a644c93fbc9e3eb450b6a642bbca3443cc9dcc169152961367d37",
- "dest-filename": "isobject-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0",
- "sha512": "4bfd9f179c07f12240fe49b0afa1d884afd123f3a4843f3893c9ed6a5a348898d98a482ad5716f47933c34f4f5c7917b7c1c021b7a877e7cde3ff561fd9c4250",
- "dest-filename": "isobject-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da",
- "sha256": "b090a41f307c015306ae5a787aa8037e84033f4529c3b9d9e20e191509a3f9ab",
- "dest-filename": "istanbul-lib-coverage-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49",
- "sha512": "f1a5f39ee10f089bc69cc4917ede2e743443b5bd55de991090c308e4b23ee87b90cf9a10e09d94167d47f36ada037a89b7238b924c15a880814248e71ad9f998",
- "dest-filename": "istanbul-lib-coverage-2.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b",
- "sha256": "00c34b56cdef4c818bd85877112b8ba9cc76005cf16d9754362840b2e72be8ba",
- "dest-filename": "istanbul-lib-hook-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133",
- "sha512": "beb473b54f55451143c82f9a9257cba1e5f235d4df81ad84237b9d0c69f8719e9fa525e91cb57d5fa087bdfa0c08fb60820f33bc30e60b86fdc5fbb4cfafe594",
- "dest-filename": "istanbul-lib-hook-2.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e",
- "sha256": "7ff0eb95be410eb50f6b635fc449292b701484c881c45993ded83cb3b104a1ad",
- "dest-filename": "istanbul-lib-instrument-1.9.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630",
- "sha512": "e679c8378be8e714191dd5e7a3f6035c9d06f88ddd026e178337d25533cb4298ffcc0576755e89bb2d3269fd74ff3ac9389787a0dddfada15ef9746ad9b15564",
- "dest-filename": "istanbul-lib-instrument-3.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425",
- "sha256": "5a5ee16d08a92cb521bec4809b8a898458dad8b28be618da7b2ae915a8ef8ac0",
- "dest-filename": "istanbul-lib-report-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33",
- "sha512": "7c705e1b9ef71088a18406e5c20c6b49e9e9d036f2ead24c151fc7be57ab06cac24c3e5b914ba836d9f7815876f59092f36e1c18604f9fb4a0edc364fb6c54b1",
- "dest-filename": "istanbul-lib-report-2.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c",
- "sha256": "42abe74b85accdf6b01cb3af22f716720d5a763c0d24481a7b0d14b7c1738bc2",
- "dest-filename": "istanbul-lib-source-maps-1.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8",
- "sha512": "478ecacccb43247e97e3f616f574f1fa3acb9d99ec716e15a4d37ed4f5624984de8cb54f5afee8a2ff83b9ff184123f255152fb9e42acf54dcb02ea6a286535f",
- "dest-filename": "istanbul-lib-source-maps-3.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10",
- "sha256": "692fe75f20714a812b8b9487769c7675ee7241816f54787a1b567cd9668cca23",
- "dest-filename": "istanbul-reports-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af",
- "sha512": "48a8b8ae73322c129ed09cb6b94771dbc87ca06ee98763cfb903ef200877d5df828be952884bb80be877a013ee27dfa63ca84ec96d0cf2063853934cd562de5c",
- "dest-filename": "istanbul-reports-2.2.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef",
- "sha1": "e2625badbc0d67c7533e9edc1068c587ae4137ef",
- "dest-filename": "js-string-escape-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b",
- "sha1": "9866df395102130e38f7f996bceb65443209c25b",
- "dest-filename": "js-tokens-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b",
- "sha256": "85ce7a76734264e093bcb1dbbe6d4d4130ee0a7fa562e7608693ee8c3c197d19",
- "dest-filename": "js-tokens-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499",
- "sha512": "45d2547e5704ddc5332a232a420b02bb4e853eef5474824ed1b7986cf84737893a6a9809b627dca02b53f5b7313a9601b690f690233a49bce0e026aeb16fcf29",
- "dest-filename": "js-tokens-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc",
- "sha256": "291c8ae9f474f106414f00a231d4bcd8b8b4f7582d72ab25fdc8792aa3d1e683",
- "dest-filename": "js-yaml-3.10.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847",
- "sha512": "61f6dc3bb8d70ddca3d031b16154a549e40d1db0fb5cf5afad559e554ba3ad0128673589211ac23e8ca4ea42fa2008c01b622894c2b84f484d51ed07394b3927",
- "dest-filename": "js-yaml-3.13.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482",
- "sha512": "ff821b21e1dc0fd54c1c5a8347f810ec475974b8a63af5b60dd731163772c99f4db1b4be71cad7a95583b5a6ff95197902552a9a9071f0484f69647e3ad635ec",
- "dest-filename": "js-yaml-3.14.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d",
- "sha1": "e7dee66e35d6fc16f710fe91d5cf69f70f08911d",
- "dest-filename": "jsesc-0.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d",
- "sha256": "3e9a10467c80fe53f193fab92ae0ea5efd58decaa9a97f540fba18fd242f6674",
- "dest-filename": "jsesc-0.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b",
- "sha1": "46c3fec8c1892b12b0833db9bc7622176dbab34b",
- "dest-filename": "jsesc-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b",
- "sha256": "104abc400e260c6f53c22af36e2349e772fcd09cf71735a53ab5e2532f7825a1",
- "dest-filename": "jsesc-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4",
- "sha512": "398bbb5c4ce39024370b93ecdd0219b107cda6aa09c99640f7dc1df5a59dd39342b42e6958e91284ada690be875d047afc2cb695b35d3e5641a6e4075c4eb780",
- "dest-filename": "jsesc-2.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898",
- "sha1": "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898",
- "dest-filename": "json-buffer-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9",
- "sha512": "9abab264a7d7e4484bee1bea715e961b5c988e78deb980f30e185c00052babc3e8f3934140124ff990d44fbe6a650f7c22452806a76413192e90e53b4ecdb0af",
- "dest-filename": "json-parse-better-errors-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660",
- "sha512": "c5b6c21f9742614e53f0b704861ba1ec727cf075ee5b7aac237634cce64529f6441dca5688753f271ce4eb6f41aec69bfe63221d0b62f7030ffbce3944f7b756",
- "dest-filename": "json-schema-traverse-0.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651",
- "sha1": "9db7b59496ad3f3cfef30a75142d2d930ad72651",
- "dest-filename": "json-stable-stringify-without-jsonify-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821",
- "sha1": "1eade7acc012034ad84e2396767ead9fa5495821",
- "dest-filename": "json5-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6",
- "sha512": "97edc75c3d06108de1b86ab59e3baab7360af0e609c9732438bb50e77a635a1f3db6f592da1ea5fb5ccc9185aa95be7bf92890a1d299caf30415bd97f8aac585",
- "dest-filename": "json5-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb",
- "sha256": "5fb99597f70008b05f401d4d0d522a9c18e019be5e780fa17f7bd13a3c0be0e8",
- "dest-filename": "jsonfile-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9",
- "sha512": "f72909ff8e9237ff4a3ccfec89c87343b3af5f218360a19368394a306080960d942bc291cb88dbd1df2c15cfb44edd186274e1abc5f645980283be113f181c54",
- "dest-filename": "keyv-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64",
- "sha1": "31ea21a734bab9bbb0f32466d893aea51e4a3c64",
- "dest-filename": "kind-of-3.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64",
- "sha256": "78a42e34fb8ba2b9459207e6003bd3cb082333591b488f2071c5d93086b65d47",
- "dest-filename": "kind-of-3.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57",
- "sha1": "20813df3d712928b207378691a45066fae72dd57",
- "dest-filename": "kind-of-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57",
- "sha256": "d5c72f5a2a7a520b74e67779387d75ce6d7ed16cf0c9931303f4e4038079dc29",
- "dest-filename": "kind-of-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d",
- "sha256": "4d60c4c0840f198934811b6fbe8cecebb3474f3b7c5a99cb95e23dfe83097772",
- "dest-filename": "kind-of-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d",
- "sha512": "346104ae71fa176bd4b970e1f8e95b70a5bbff039c7dd447699ed55ada82ced7c7ae2ffef982a63f9d4e7567863eea8239b6ba924d8e4dee5dd365664c1f343f",
- "dest-filename": "kind-of-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051",
- "sha256": "b844572ea82bfa9603d0dae736510edd14a151e9e8c87ab3b640177cb90a7e90",
- "dest-filename": "kind-of-6.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051",
- "sha512": "b3990b39c9c7d17a833be16fb9a2d7f030e3675f0218593b572807e3442828f510856e1edabbccd2bc14ab4b7c2100cec1849e2cad3553dd0e8f305399ed90a8",
- "dest-filename": "kind-of-6.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd",
- "sha512": "75c4b5ba5fbdb66783f794fec76f3f7a12e077d98435adcbb2f0d3b739b7bf20443bb44fa6dbc00feb78e165576948d305172ba45785942f160abb94478e7a87",
- "dest-filename": "kind-of-6.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15",
- "sha1": "a205383fea322b33b5ae3b18abee0dc2f356ee15",
- "dest-filename": "latest-version-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face",
- "sha512": "c1e4feaf491391141d09d60236d90cc165d04cc12cc0aac50649b872440e315861aa120c235513da1323fb58a28088604999b98139ab45704da06520693635c4",
- "dest-filename": "latest-version-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e",
- "sha256": "95c934b514416958916f168f9e83717eaf4b8138625f27fd5b46ad8d3be19cbf",
- "dest-filename": "lazy-cache-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835",
- "sha256": "4c49d600aaa40a822928c13fae5575bb2debc38a3e8f7877d290cc9ff2d24c43",
- "dest-filename": "lcid-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee",
- "sha1": "3b09924edf9f083c0490fdd4c0bc4421e04764ee",
- "dest-filename": "levn-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0",
- "sha256": "edf8d9c1a69850f6efd099390ce2c3b50edb9ac99b997e957bbb2f947d145d7e",
- "dest-filename": "load-json-file-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8",
- "sha1": "7947e42149af80d696cbf797bcaabcfe1fe29ca8",
- "dest-filename": "load-json-file-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b",
- "sha1": "2f5f45ab91e33216234fd53adab668eb4ec0993b",
- "dest-filename": "load-json-file-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3",
- "sha512": "70918fe3425cfd55d4b29f3f3ab9f22b24d9d72eaffdda619b76e2a12f91aca5e32b6041eb01d477a269b591050c68066a1313f889e764ee62d448bd9a90bc07",
- "dest-filename": "load-json-file-5.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
- "sha1": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
- "dest-filename": "locate-path-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
- "sha256": "b1ab0fff582a3a7098905544c47221ee52088be97e9cec4f8fd44c2ea7fa72c2",
- "dest-filename": "locate-path-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e",
- "sha512": "ec03bbe3cc169c884da80b9ab72d995879101d148d7cf548b0f21fc043963b6d8099aa15ad66af94e70c4799f34cb358be9dfa5f6db4fe669a46cade7351bae4",
- "dest-filename": "locate-path-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0",
- "sha512": "b7b870f6923e5afbb03495f0939cd51e9ca122ace0daa4e592524e7f4995c4649b7b7169d9589e65c76e3588da2c3a32ea9f6e1a94041961bced6a4c2a536af2",
- "dest-filename": "locate-path-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286",
- "sha512": "88f64ae9e6236f146edee078fd667712c10830914ca80a28a65dd1fb3baad148dc026fcc3ba282c1e0e03df3f77a54f3b6828fdcab67547c539f63470520d553",
- "dest-filename": "locate-path-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef",
- "sha1": "e23f3f9c4f8fbdde872529c1071857a086e5ccef",
- "dest-filename": "lodash.clonedeep-4.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2",
- "sha1": "fb030917f86a3134e5bc9bec0d69e0013ddfedb2",
- "dest-filename": "lodash.flattendeep-4.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lodash.islength/-/lodash.islength-4.0.1.tgz#4e9868d452575d750affd358c979543dc20ed577",
- "sha1": "4e9868d452575d750affd358c979543dc20ed577",
- "dest-filename": "lodash.islength-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a",
- "sha512": "d0aa63a97455beb6320ac5f5b3047f5d32b4bdae9542440ce8c368ecfa96efb0728c086801103c11facfd4de3e2a52a3f184b46540ad453fd852e872603ba321",
- "dest-filename": "lodash.merge-4.6.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548",
- "sha512": "f3139c447bc28e7a1c752e5ca705d05d5ce69a1e5ee7eb1a136406a1e4266ca9914ba277550a693ce22dd0c9e613ee31959a2e9b2d063c6d03d0c54841b340d4",
- "dest-filename": "lodash-4.17.15.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52",
- "sha512": "3e585d15c8a594e20d7de57b362ea81754c011acb2641a19f1b72c8531ea39825896bab344ae616a0a5a824cb9a381df0b3cddd534645cf305aba70a93dac698",
- "dest-filename": "lodash-4.17.20.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511",
- "sha256": "ab20a32e64c8c7f631635460f1874e7dd622abd6c1cb7daef2957daa18bc1afe",
- "dest-filename": "lodash-4.17.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a",
- "sha512": "55e20016c97221eac424b5c7ce279da366dab0a6cc2ad4f0def7e7e48cc6d174e38405442723479cbda9eef73ec010d2750b94a4dc37336bbac5bf50b0063912",
- "dest-filename": "log-symbols-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920",
- "sha512": "14df090732f1e82cde32b074b60ea9aa5194d700ab5d6f995c61f8f3591fb01a9eaf4853a132221dd8c7e0cabcc4951bbc04ee8ca0af6911065a91948a89eb68",
- "dest-filename": "log-symbols-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097",
- "sha256": "a615736b976e8e5cf340fb5b07c461ad8f8c40aafafdbdfa95c5788535f91b33",
- "dest-filename": "longest-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848",
- "sha256": "fb526ac195ab33e34c3a5fc5a4f68ae865de3310209191c2f5ab56d9631ce088",
- "dest-filename": "loose-envify-1.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf",
- "sha512": "972bb13c6aff59f86b95e9b608bfd472751cd7372a280226043cee918ed8e45ff242235d928ebe7d12debe5c351e03324b0edfeb5d54218e34f04b71452a0add",
- "dest-filename": "loose-envify-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f",
- "sha1": "5b46f80147edee578870f086d04821cf998e551f",
- "dest-filename": "loud-rejection-1.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-2.2.0.tgz#4255eb6e9c74045b0edc021fa7397ab655a8517c",
- "sha512": "4b415ac8c5e4bbcd2da1ae6c67a468e02facf84b450c2b3224d1bf03314c7d7dc0c43e528b8759b20ce6fe42a76cec479790aff230659e8f3edd7608876a4d8d",
- "dest-filename": "loud-rejection-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f",
- "sha512": "1b62e3eb5b570e754514e8bc55976cf92a108ed402ddd82890a7431b69939b5b71e26e743541c1399481c10407cb2d15d760342531b889c7d9407fb13f287c54",
- "dest-filename": "lowercase-keys-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479",
- "sha512": "b6a357ad2efca0c384ef734cc4ae0430b42c428c167fc8caa281fd83bc4f6af453ef4e91e9b91027a0d8d937bb42e91a66cba5c5adf4c10edb934a66e1788798",
- "dest-filename": "lowercase-keys-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55",
- "sha256": "de7068efeec994c1bbd013276acccd5cfb35d18acf6577abd27944977e2e9f62",
- "dest-filename": "lru-cache-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd",
- "sha512": "b166656c43f63ac1cd917acc97919893f8ca93bd0c06783a514e1823fa860d86e07fa61b3f812f9aa2126d70a826244ab3ed5b4a9147560431bc9d7b176962e6",
- "dest-filename": "lru-cache-4.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c",
- "sha512": "db0df547b489b6278926742d19ced154bd92b4cdaf19855fa943af503c47e9b0ba6894f13f14c5d069c8802caeeed8e872489458061045bc5aeef2a7df8b39b1",
- "dest-filename": "make-dir-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5",
- "sha512": "2d2f57f9d73c28bc5709bf1d9e2efd7cb208500e55c99a328d2302c1396e697034a36edc08ad1b857929830fac4d75693f2fe548ee7b8a5462c6a934bc39ad44",
- "dest-filename": "make-dir-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801",
- "sha512": "82b3490e16fc6f5266d6a7aa5b947f3badf0528e145e8dafd8732273a613f62fc706517ddd2f2390c807ef2ba0bd8f400434a11f8559327f08f94f3e7c235e83",
- "dest-filename": "make-dir-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/make-error/-/make-error-1.3.2.tgz#8762ffad2444dd8ff1f7c819629fa28e24fea1c4",
- "sha256": "5c8bc3f44827e4dcb657229e8aa1c3aca3491ddf1f19b226ebdcfa5fe0cd07e0",
- "dest-filename": "make-error-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c",
- "sha256": "4e5f34e88c9f2e5bb59a9a250709b9fa7adcb3c43cbe90951cdbc5676a768e55",
- "dest-filename": "makeerror-1.0.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf",
- "sha1": "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf",
- "dest-filename": "map-cache-0.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf",
- "sha256": "41c29927cd11bedb0b997af2117d65842f22287db9c4da9c13f4848e7c004f3d",
- "dest-filename": "map-cache-0.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d",
- "sha1": "d933ceb9205d82bdcf4886f6742bdc2b4dea146d",
- "dest-filename": "map-obj-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9",
- "sha1": "a65cd29087a92598b8791257a523e021222ac1f9",
- "dest-filename": "map-obj-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f",
- "sha1": "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f",
- "dest-filename": "map-visit-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f",
- "sha256": "f16e5cdde4bf6b419826fdd7657b5ff599b424b866251db4187dea2a41f6d0a5",
- "dest-filename": "map-visit-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/matcher/-/matcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28",
- "sha512": "a3e9d9afebed26d80f3649727942a4907e363ac2bc5807dd81a244d853717232cf83ee506de1284fabd18fc5eafe2bf5f09950f5c98ab04bb46fde22c567f561",
- "dest-filename": "matcher-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c",
- "sha512": "ad4c63cacaa27ff059407db285de406aaeef5cc4b1f4d744b10732034eee13322fc6023bcc8af7de01ac87e454d3f5e3990a425bb46c5687f5be592f41508ae4",
- "dest-filename": "math-random-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4",
- "sha256": "007a399a5ad2148651c04538ff2cdddf8aa7b808e1977da7f5c29c6db0c20a13",
- "dest-filename": "md5-hex-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33",
- "sha1": "d0588e9f1c74954492ecd24ac0ac6ce997d92e33",
- "dest-filename": "md5-hex-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c",
- "sha512": "054891b53b55dfd2c82708a75818ea56c53dc61767cfbfe2f3cf55f39f48045a6ea86023e8bb8ebc7bf95cb6e067647ba6d26825a11cc64bfcf3f876e53ec28b",
- "dest-filename": "md5-hex-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3",
- "sha1": "822bccd65e117c514fab176b25945d54100a03c3",
- "dest-filename": "md5-o-matic-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3",
- "sha256": "af13f2f634ddc288ea9d05bdbda59474cd2503464404b8d860a763b3b2c6f1ff",
- "dest-filename": "md5-o-matic-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76",
- "sha256": "24f11e05dee731f86fe35d75013d6bf1b2901c31e9e636e33a58183badea3792",
- "dest-filename": "mem-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4",
- "sha512": "09b4ea614d7b00168b79f3bcbc2535e77659969aca6160e58dc9dd28a0c215c610213cd6097640564e1030564f82fceb9d4437b88b67204fcba143b0ad3d7922",
- "dest-filename": "meow-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646",
- "sha256": "13e9a21251cc07d266d34a4c856e3547808b234f687db6a8b078dd23507fd9d3",
- "dest-filename": "merge-source-map-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646",
- "sha512": "424729ecfdb2824b6930f87698241969fde384de83dd9fea5591d2756bd0fb611fe4781100f04ee7b03befe10d9b408fc76fb509efcc60a8b7ca6a9d7eeaa26f",
- "dest-filename": "merge-source-map-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da",
- "sha256": "b73b84d9ad6d9142d646e65c7f2e7256067bb964a438ccffa3428033b80020fa",
- "dest-filename": "merge-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81",
- "sha512": "da3e0301d9413a4892648b1a5e4e264c4dec452d36c811c0b5fcb5dbbc515776d0505a979231c21cb5ba49cbfb0f03516c858d1c7f33a67cfdccc68a5c876f63",
- "dest-filename": "merge2-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565",
- "sha1": "86677c97d1720b363431d04d0d15293bd38c1565",
- "dest-filename": "micromatch-2.3.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565",
- "sha256": "8af65fec82ef6400964362eb43ce88d4957c4f6aa34881363f01ea6361e0e4bf",
- "dest-filename": "micromatch-2.3.11.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23",
- "sha256": "e59e75293e290db328efbf5bf1b4b445bffbfda19546974b442b6ad1910f95c8",
- "dest-filename": "micromatch-3.1.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23",
- "sha512": "3168a4825f67f4cdf0f9ba6c6371def0bfb0f5e17ddf7f31465f0800ee6f8838b3c12cf3885132533a36c6bae5a01eb80036d37fcb80f2f46aaadb434ce99c72",
- "dest-filename": "micromatch-3.1.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259",
- "sha512": "cbb1691d26cc50ca323db6144b33ba3da67a17246740ea47b8ac1ba351be2a7724f795d553840088a7461278f9c30a12ecf94e82d857ff4f6ee62149f9a61fe5",
- "dest-filename": "micromatch-4.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022",
- "sha256": "b1931fd7a65dd3298684adfa6e213c9907ad01c3a81278f1fa3bd06b4cc66b3a",
- "dest-filename": "mimic-fn-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022",
- "sha512": "8dff38bb1cf08ae88854a88e2e97d893b378e934b2f2e6d3a279a7798f6fae91cd027a74401b76071595f5d3b7fe3f81a1501bf9ae46e980cf5b73391ce74c59",
- "dest-filename": "mimic-fn-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b",
- "sha512": "3aa6ce939a0441e019f165d6c9d96ef47263cfd59574422f6a63027179aea946234e49c7fecaac5af850def830285451d47a63bcd04a437ee76c9818cc6a8672",
- "dest-filename": "mimic-fn-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b",
- "sha512": "8f911cb67907eda99f57fab91e09a86a5d60d901c5251ada3ad9b1d09a48aa4c6106123f9494a5d67329438e6155aaf03444cea161229a7759e102b4447c6ec5",
- "dest-filename": "mimic-response-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083",
- "sha256": "426a24d79bb6f0d3bb133e62cec69021836d254b39d931c104ddd7c464adea71",
- "dest-filename": "minimatch-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083",
- "sha512": "c891d5404872a8f2d44e0b7d07cdcf5eee96debc7832fbc7bd252f4e8a20a70a060ce510fb20eb4741d1a2dfb23827423bbbb8857de959fb7a91604172a87450",
- "dest-filename": "minimatch-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954",
- "sha512": "17206b4ff774778fae89945bab39cf5eac372296591b7825df0296897efce05c9c50a57006dd2e2c116442bb44e2d64eae0a3bf27669da39cacf72fae53e4b75",
- "dest-filename": "minimist-options-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf",
- "sha1": "de3f98543dbf96082be48ad1a0c7cda836301dcf",
- "dest-filename": "minimist-0.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf",
- "sha256": "73e03ee5fba64f3ee864fa90aacd4fc799e427a0555e27b41dd1988a35ffcb76",
- "dest-filename": "minimist-0.0.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d",
- "sha1": "857fcabfc3397d2625b8228262e86aa7a011b05d",
- "dest-filename": "minimist-0.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d",
- "sha256": "7953afa208b921faf59c1fa5693764ca2be03e261ef91c88717ef20c8c474a33",
- "dest-filename": "minimist-0.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284",
- "sha1": "a35008b20f41383eec1fb914f4cd5df79a264284",
- "dest-filename": "minimist-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284",
- "sha256": "ec0d0bdf71837612eea9fa61e5689e14856807946d499ce6ebf062ba09a5f270",
- "dest-filename": "minimist-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602",
- "sha512": "14cf6735462b4410042d9413df179943b7e630e060ea758d989293720b0979a2ecb4ffd43835691acaf93a15e185783a7feaad27cba267e3d4c640d67202172f",
- "dest-filename": "minimist-1.2.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848",
- "sha512": "1a2d56e24d39f60c916f2554650e2612a2e6d1821488661fbf1845e92225937ba2d5657131319f19d4364889e1dcf0eb45356f3ca8142e4a49b53e111f5d3e54",
- "dest-filename": "minipass-2.3.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614",
- "sha512": "efee284d43962a0ec0b8bdef9681167a45d8dbf0f6d1c7afcecacd4f69065a6fb7f49f61193081bfc548e4f9b995767fa37fe6751e1ff2b7e500f86741bf263c",
- "dest-filename": "minizlib-1.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe",
- "sha256": "2b88616a4768d2153ba099744ece83cd3ecf6d9f2c9214495ea274203fa860b9",
- "dest-filename": "mixin-deep-1.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566",
- "sha512": "591a039fffe65c1889d47e34aea6b7bc7d2da1e3f04ac19be398889d6953c926be52ee24ded6144b16b6bf52aa0222edbe5ad2cda131a92d60b64f7a03dcef10",
- "dest-filename": "mixin-deep-1.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903",
- "sha1": "30057438eac6cf7f8c4767f38648d6697d75c903",
- "dest-filename": "mkdirp-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903",
- "sha256": "77b52870e8dedc68e1e7afcdadba34d3da6debe4f3aae36453ba151f1638bf24",
- "dest-filename": "mkdirp-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def",
- "sha512": "34a98094449fea3306ca6d7ef91d116bbc2f855fb0156eb715a48e14fc116a1bde6b480c51c19485578083fd010b4c22bfd8a1e4d60f0755a7d54108d7f2fec5",
- "dest-filename": "mkdirp-0.5.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mocha-qunit-ui/-/mocha-qunit-ui-0.1.3.tgz#e3e1ff1dac33222b10cef681efd7f82664141ea9",
- "sha256": "b12e1a0d2e6564240ff2a0036ad08b78c6f99833abc2af36042c0ba1efee402f",
- "dest-filename": "mocha-qunit-ui-0.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794",
- "sha256": "ba2611f47bb676b1bfa3b309871d80ab90f8306379495f2ac3db8305d039bf3d",
- "dest-filename": "mocha-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6",
- "sha512": "d8852028385cdc9ed4ba0f85c4c5eea88c98cc7ee02635c408a7bfc38dc81a04074d28f7227262fb2000ed3db82fd6d03112a25041f1117dfb1b926955418b71",
- "dest-filename": "mocha-5.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mocha/-/mocha-8.2.1.tgz#f2fa68817ed0e53343d989df65ccd358bc3a4b39",
- "sha512": "72e2c155fc857c5a9b351d2e50a6c319728693e50315ee9a478a2cefc5c8acc429665fe7bfb2581dcbcfe4c14801bdfbe1bdb3157b1d8041b09b332d3f45e0f3",
- "dest-filename": "mocha-8.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8",
- "sha1": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "dest-filename": "ms-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8",
- "sha256": "362152ab8864181fc3359a3c440eec58ce3e18f773b0dde4d88a84fe13d73ecb",
- "dest-filename": "ms-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a",
- "sha512": "b60a7e765e5c1a4dbcbad624b41b2b16a03b1ca82b8603ec83a67f11f856238825d47c2af01fc6998ff4a1767a9c5f210d57ac4bf1699d8683fe439685842fca",
- "dest-filename": "ms-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009",
- "sha512": "b0690fc7e56332d980e8c5f6ee80381411442c50996784b85ea7863970afebcb53fa36f7be4fd1c9a2963f43d32b25ad98b48cd1bf9a7544c4bdbb353c4687db",
- "dest-filename": "ms-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d",
- "sha512": "9e76d658e9285b252c4e32ab8600f475ccf6da67644a7a58a9b123226da787086ec654a4a72c09981a3c87466a25d929ef799bf744acb0790de2bb1168101f00",
- "dest-filename": "mute-stream-0.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c",
- "sha512": "20d3858f7ec2ee4dc07da353b57f1186c4f0eea472ede2c44f5e1c44e8bdfb91c055b6c7b885941c46ae06fe6a4f802fdad59ab224d8d49c3aa6e50da9125742",
- "dest-filename": "nan-2.14.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19",
- "sha512": "336b9fcc888834a0ae0df052014af5bd643ebee55c03d92ac7c24952c6d08bac9fd6e191c9bec77e975f52be6a2d77f707fb7c74fbdc8e128c9a57e73f8ec4cd",
- "dest-filename": "nan-2.14.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654",
- "sha512": "d6ab2d8fdcf9fb1e3dd637e20b835e964f9ff1705a77b2cddb43e6c9620d24431149fdf07008c05b2b30d6a680f33e8d48a7b6b23ab5851483a411f9a5a09be8",
- "dest-filename": "nanoid-3.1.12.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119",
- "sha512": "7e9a1ed93d116c7c014c150e7ed01f04f683122d3ab9f6946a2d2613a627d6469c7374a74c4adf6ff87e5fde155f323ae2b2851d82265d2bddc061829b03aa08",
- "dest-filename": "nanomatch-1.2.13.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2",
- "sha256": "ede59d84b6299458218d314cad2d679c52b412eae1e8876dd5ecc22af3b84ba7",
- "dest-filename": "nanomatch-1.2.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7",
- "sha1": "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7",
- "dest-filename": "natural-compare-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c",
- "sha512": "e079f0cebde68b92fdee131878d97cc115bf3a7872e2750a47f9557a627c80979dc7153204b9bd924ac30a8949be849fc22d2308d843fb109d3ad8860d089166",
- "dest-filename": "needle-2.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c",
- "sha512": "8b26a6f1f06e094a5678a3c6a5a34c7ad12870cb77eb8aa40ac7cbf49ba18d75fa7519e0b9154e7e4d8665a0e93e370e2a289708f20d642d4673343b893ab767",
- "dest-filename": "neo-async-2.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61",
- "sha512": "00ef35bec20ed64d6c33866b77a1eeeeb7a09893753528808dad7481ce1b5f7174c1dfbdad099cb8741a1d5402608102f221579c4fa66af876dc63adef0060ba",
- "dest-filename": "nested-error-stacks-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366",
- "sha512": "d67878e5d79e6f9a25358ede5fcd8190f3bb492c51e524982623d3ad3745515630025f0228c03937d3e34d89078918e2b15731710d475dd2e1c76ab1c49ccb35",
- "dest-filename": "nice-try-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd",
- "sha512": "f1d1b81f9ba37ef162a83995bbd7d0e5b387502d7924c8cc63f66e9afdbaa0ebef5498ccebb285f24a0258869b290d462486bdaf698c66c701abf4db74e72634",
- "dest-filename": "node-fetch-2.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b",
- "sha256": "2502628937c895945e2ceea48ff453c4812b35c2a270a4efb93ff77a8c0f2257",
- "dest-filename": "node-int64-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149",
- "sha512": "e0a821c15f2f1f993e836ca54feb0b4e3cb9c2650e6fdbcf86733c347bd17fd7479a75bf0a776b157cb66913da3d24fa76e81749d1d77de687426efb3c8cffd4",
- "dest-filename": "node-pre-gyp-0.12.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d",
- "sha1": "d0d4685afd5415193c8c7505602d0d17cd64474d",
- "dest-filename": "nopt-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f",
- "sha256": "95d71abd1850913e09421b69fbe2786938299be5b616f275f8eaa8259a52465a",
- "dest-filename": "normalize-package-data-2.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8",
- "sha512": "ff908c3774f44785d38f80dc19a7b1a3eae8652752156ff400e39344eae3c73086d70ad65c4b066d129ebe39482fe643138b19949af9103e185b4caa9a42be78",
- "dest-filename": "normalize-package-data-2.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9",
- "sha1": "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9",
- "dest-filename": "normalize-path-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9",
- "sha256": "920110b8616e904bbfaaa5546a7f47ee69f3ed3e5393f52746f3618fb19702b5",
- "dest-filename": "normalize-path-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65",
- "sha512": "e9e66ce4bb375ad0a2b075a9f52d86532f1daa4a468b80554b3dc66aa884e9ecee6f4e75d844b3b57530501e82e8829b4246363e76ff983e166288c24707302c",
- "dest-filename": "normalize-path-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129",
- "sha512": "dace3bcb353175ec5fd4e872462e049bcde2424d1a3efc1375db45cf8867492c3d74212c2c419fe92c083bcb2cff5f52f6205be6c25a3ae4ef4c60de648d3405",
- "dest-filename": "normalize-url-4.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd",
- "sha512": "f3f24269fb47c1b77ffe4eb2dab116a7a935c3155fa45cc1eadd69f36e7e7146fb626d9741f870202e4ac21aefcd9449bbe2ed0c4e7ce7355a4b7dbe086b5fd2",
- "dest-filename": "npm-bundled-1.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc",
- "sha512": "f9371d3bb1c927ca5e8a2621bcfc6c103845dcf245194191705b06bdedefc6fc5d7293b667867bae4a2c44cd245a3e8b7db2bf3f482edddce4e515357dfbc573",
- "dest-filename": "npm-packlist-1.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
- "sha1": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
- "dest-filename": "npm-run-path-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
- "sha256": "656d56148ba099836db1bc2bd397fd8a385bd63708f9bca79458217dc770e1f7",
- "dest-filename": "npm-run-path-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b",
- "sha512": "dae52a6b3b8a95369223f742f00ce2714724efe22b11a3a737f7b48dddd7b6dd4a706a70c77d2fe7498bee83f2aff87d6cbdc4e1a65c715c29c0ffb95bd56392",
- "dest-filename": "npmlog-4.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d",
- "sha1": "097b602b53422a522c1afb8790318336941a011d",
- "dest-filename": "number-is-nan-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d",
- "sha256": "896ec5dd2269a0f219b0e46dd24b5532cdfd1648f1e5156078854b912d619f3c",
- "dest-filename": "number-is-nan-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nyc/-/nyc-11.4.1.tgz#13fdf7e7ef22d027c61d174758f6978a68f4f5e5",
- "sha256": "371428ed99f32475f291847996fe3c19c6a98e3f3aa801f37f03b840ea72063f",
- "dest-filename": "nyc-11.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb",
- "sha512": "388d2f9ba646527a0666ffed2dd6767ac495cc3c140bcf1236cfba26848e315c40fa028c07c4e4ee307081e98bc783b8d25861bd9095c350be3982ce04e3d75b",
- "dest-filename": "nyc-14.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863",
- "sha1": "2109adc7965887cfc05cbbd442cac8bfbb360863",
- "dest-filename": "object-assign-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863",
- "sha256": "782d726a263ba7b26cced612af97b80035516df4b0cd788524e7b2cebc4e29ed",
- "dest-filename": "object-assign-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c",
- "sha1": "7e7d858b781bd7c991a41ba975ed3812754e998c",
- "dest-filename": "object-copy-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c",
- "sha256": "1cb8c20150d427b2fec17bd68d09632f950a60991e5e3e25fc6d822f06bea9ac",
- "dest-filename": "object-copy-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67",
- "sha512": "6bba441dd875c4a200813c9250680b331ff1c0366c90dd5477a7a061837711d456e1930f3440d44c5fa1c32d8b502f8197e4b22d700d9f0cff8f287faaeb4a53",
- "dest-filename": "object-inspect-1.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6",
- "sha1": "0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6",
- "dest-filename": "object-is-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e",
- "sha512": "36e00449439432b9485ce7c72b30fa6e93eeded62ddf1be335d44843e15e4f494d6f82bc591ef409a0f186e360b92d971be1a39323303b3b0de5992d2267e12c",
- "dest-filename": "object-keys-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb",
- "sha1": "f79c4493af0c5377b59fe39d395e41042dd045bb",
- "dest-filename": "object-visit-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb",
- "sha256": "545feba3c3f1b32996f96431e92179645da5d88205555cc56c80602f0fd41717",
- "dest-filename": "object-visit-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da",
- "sha512": "7b11c97aaea404a8f9f26a86c9343d0c5beb642fde47a3b0c73a0cf58468181aab5d8a27685c8688532e73d559ad77fb0daaeb784c0ca6eac6ddd77e08dc96e7",
- "dest-filename": "object.assign-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa",
- "sha1": "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa",
- "dest-filename": "object.omit-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa",
- "sha256": "9aff227cc24ca40f1c928197ab0b010caa791eb39be2cebeb60bd7279d84d2ff",
- "dest-filename": "object.omit-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747",
- "sha1": "87a10ac4c1694bd2e1cbf53591a66141fb5dd747",
- "dest-filename": "object.pick-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747",
- "sha256": "8000226024d4532fbe482d4b9631e9562ecbcc496d7869d52eebc7b9d3f3ee0b",
- "dest-filename": "object.pick-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9",
- "sha512": "f267f49ca2c0a055fa5653557611a3df549562968d16d527ba83975b2144b2db1646053cdfb00af8960cd22031c244b31916f09fc71b16681bcb18f58f855b5e",
- "dest-filename": "object.values-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-1.0.0.tgz#37e136f16a15385ac063411ada0e1202bfff58f4",
- "sha512": "72a9c652b36c13abdd5434cf017f7f59e573c32ff3dfbbddc6ea5d41753cbe04d74451fbd8a09989981af1a71adae9513c879e9bc5b7bd6f6b4070707c897658",
- "dest-filename": "observable-to-promise-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1",
- "sha1": "583b1aa775961d4b113ac17d9c50baef9dd76bd1",
- "dest-filename": "once-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1",
- "sha256": "cf51460ba370c698f68b976e514d113497339ba018b6003e8e8eb569c6fccfcf",
- "dest-filename": "once-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4",
- "sha1": "067428230fd67443b2794b22bba528b6867962d4",
- "dest-filename": "onetime-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5",
- "sha512": "e4d71290f1e1c1354521037e4d4a97a12e7e7651251d7769016bbd2341cfdb460eb488be699d02b7cda376520b0f18cb1005b0be6faa8f59ba684b6c0d59a6e9",
- "dest-filename": "onetime-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401",
- "sha256": "329884659eca508971d922946c07fcb904aed4b4e68c52aaa4fbea5b2db645d7",
- "dest-filename": "oop-0.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686",
- "sha1": "da3ea74686fa21a19a111c326e90eb15a0196686",
- "dest-filename": "optimist-0.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686",
- "sha256": "56425fd38177f312912848ff242a684e0c69a03a4c370f49269e1411e031a1a5",
- "dest-filename": "optimist-0.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495",
- "sha512": "f885bda4009d9375d69a64d71bc9b7ba919426cb795d11b3c4c4635f302e2755e720536f7e18e322e6240efcac9cf43bab3a95ccbb7bf010abba7b6a4615906c",
- "dest-filename": "optionator-0.8.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318",
- "sha512": "78dc07b9d35b3b57e89413f726c675f6ff5acd75ad4198c809daf74344c33c869e050de65cbae1e78c0cf9eaf4fa14a9f9d58a7fe67c28ce7c098cc4c8863162",
- "dest-filename": "ora-3.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3",
- "sha1": "ffbc4988336e0e833de0c168c7ef152121aa7fb3",
- "dest-filename": "os-homedir-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3",
- "sha256": "0ee885c8afec352b70b7b65f7ab8e54a912f8ba4c309ae1c106aa4b67cb24475",
- "dest-filename": "os-homedir-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2",
- "sha256": "a1dd0708b2b7bc893de98a70cbf7668b5e98639de2a47b2f004c9b91476c5674",
- "dest-filename": "os-locale-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274",
- "sha1": "bbe67406c79aa85c5cfec766fe5734555dfa1274",
- "dest-filename": "os-tmpdir-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410",
- "sha512": "d0259c08409d315736470dd4e70f598ea5fa81aeae6e4d710d52b1b4140f2bbc22b3fd05dabf53ea4e3274662179c97b614071055c612f9a22b0fb0dc403deda",
- "dest-filename": "osenv-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76",
- "sha1": "d0a33eefe61a205facb90092e826598d5245ce76",
- "dest-filename": "output-file-sync-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc",
- "sha512": "b3bdd7c4e678ce9b7579d658673be1a856babaf41cd6fc146b42b405db4866040c0098fd21b79b1fe26480a65cf61f81d393ca1cb3939786a31b506636b55997",
- "dest-filename": "p-cancelable-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae",
- "sha1": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
- "dest-filename": "p-finally-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae",
- "sha256": "effd84e09e1330542a84a243f1f4da21a700d459b83761eaca16070eb1fb8841",
- "dest-filename": "p-finally-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c",
- "sha256": "893b57bd69a090311445b16d732e17bb6180ca1c8dea49e72041820b5267d78b",
- "dest-filename": "p-limit-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8",
- "sha512": "bef717b0b009f43af9ad038f93bb68650649029065d8ae09e9d00d4ac12e87a408e3525872c4bfaa14c66bd12b2145202b758d428258bf2971be3aa68aa100f5",
- "dest-filename": "p-limit-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537",
- "sha512": "f394e4fbdd140955af6c36af08b28f38b0bdbef63c3b0117fd1b4a17eff53800c93159457c41ce88c4cf572c60ee693f74a6be8a97479b4394913bc2a4c4eec2",
- "dest-filename": "p-limit-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1",
- "sha512": "ffff3c985592271f25c42cf07400014c92f6332581d76f9e218ecc0cbd92a8b98091e294f6ac51bd6b92c938e6dc5526a4110cb857dc90022a11a546503c5beb",
- "dest-filename": "p-limit-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b",
- "sha512": "4d839a9ccdf01b0346b193767154d83c0af0e39e319d78f9aa6585d5b12801ce3e714fe897b19587ba1d7af8e9d4534776e1dcdca64c70576ec54e5773ab8945",
- "dest-filename": "p-limit-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43",
- "sha1": "20a0103b222a70c8fd39cc2e580680f3dde5ec43",
- "dest-filename": "p-locate-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43",
- "sha256": "07c74b4f9a9800bf5b4eb14775b34a460ca83c25b6d1558e9dabf33a8f2afb46",
- "dest-filename": "p-locate-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4",
- "sha512": "c7ed76c3f4e8fb81857e0261044a620dc2e8cd12467a063e122effcf4b522e4326c4664dc9b54c49f5a3f5a267f19e4573b74150d24e39580fbf61fb230ba549",
- "dest-filename": "p-locate-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07",
- "sha512": "47bf5967fd30031286bb7a18325cfc8f2fe46e1b0dad2ed2299ecfc441c1809e7e1769ad156d9f2b670eb4187570762442c6f3155ec8f84a1129ee98b74a0aec",
- "dest-filename": "p-locate-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834",
- "sha512": "2da363b51594058fbecc1e6713f37071aa0cca548f93e4be647341d53cdd6cc24c9f2e9dca7a401aded7fed97f418ab74c8784ea7c47a696e8d8b1b29ab1b93f",
- "dest-filename": "p-locate-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175",
- "sha512": "cb76fc2a977c380378e388717c16c57e3d4563f463b5377cb73630854a8d617c747d7c76897e2668fe10afaaa120a6d05c8d36c132c075ae1f6146c36a04d417",
- "dest-filename": "p-map-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3",
- "sha1": "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3",
- "dest-filename": "p-try-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3",
- "sha256": "99fed4a8c1a77b52c3ca3fed495182ec87b98f82125161ee56bfe359c40254de",
- "dest-filename": "p-try-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6",
- "sha512": "4789cf0154c053407d0f7e7f1a4dee25fffb5d86d0732a2148a76f03121148d821165e1eef5855a069c1350cfd716697c4ed88d742930bede331dbefa0ac3a75",
- "dest-filename": "p-try-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e",
- "sha512": "94eb66ba430356fb642fce2b24723b7694d8abed2b962f0ddb0967a94701b835827d585151f3a69d1f52b281c530ba400af115eb4757eeb774ac56980d923e14",
- "dest-filename": "package-hash-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506",
- "sha512": "c217643c8a284aefdb01282067de81595bd94d130e1719f2506e4f9d34862a8244da077999b54d991d8d8f6d10173c58620017a68a82f80897ce5f9431187bcd",
- "dest-filename": "package-hash-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed",
- "sha1": "8869a0401253661c4c4ca3da6c2121ed555f5eed",
- "dest-filename": "package-json-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0",
- "sha512": "9376dd9b69f6e6d932c5c8d22b3079c7c91f57194c760b1b3ebd069197301ec2e96dae9c063a82b752a570284a12fc4721c4c1d4554cbb0a228d9dbac5ec7931",
- "dest-filename": "package-json-6.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2",
- "sha512": "190d84591a5057cfe8f80c3c62ab5f6593df3515996246e2744f64e6ba65fe10b7bed1c705f1a6d887e2eaa595f9ca031a4ad42990311372e8b7991cb11961fa",
- "dest-filename": "parent-module-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c",
- "sha1": "b2c376cfb11f35513badd173ef0bb6e3a388391c",
- "dest-filename": "parse-glob-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c",
- "sha256": "b0764545e030134c4bd7322c0c43b817416c427e98b92a698a84b6f91d5746de",
- "dest-filename": "parse-glob-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9",
- "sha1": "f480f40434ef80741f8469099f8dea18f55a4dc9",
- "dest-filename": "parse-json-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9",
- "sha256": "8bb1291c36fff54df555487976888dad81666a05291e6b6ddc5d2dc74d9f6ed5",
- "dest-filename": "parse-json-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0",
- "sha1": "be35f5425be1f7f6c747184f98a788cb99477ee0",
- "dest-filename": "parse-json-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d",
- "sha512": "907b7b9332e84bd54165f52c88a8efe379abf7579af94d391322a412daa9eef35b1f199a56e12a37b5f17845671ab32d60e0311ab0c49528bde8aec480ed7308",
- "dest-filename": "parse-ms-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6",
- "sha256": "dcd6323a1511c012304cf77a7c7a86b3ef0d85ad4c3530d33b7e1735d5d289f3",
- "dest-filename": "parse-passwd-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14",
- "sha1": "b363e55e8006ca6fe21784d2db22bd15d7917f14",
- "dest-filename": "pascalcase-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14",
- "sha256": "556c9cd92f0374592aa0ba702e6c3c402bdb0b0145ffde060a8343a7b3f4a241",
- "dest-filename": "pascalcase-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0",
- "sha1": "cc33d24d525e099a5388c0336c6e32b9160609e0",
- "dest-filename": "path-dirname-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b",
- "sha256": "fa338f850c34beea601a2680566bbcf095611f003934b47f0e71deb2c06aa889",
- "dest-filename": "path-exists-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
- "sha1": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
- "dest-filename": "path-exists-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
- "sha256": "d7f78752dc75e2f8a3a232b064fd099330334997413ded8296c7ad5d8d06322d",
- "dest-filename": "path-exists-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3",
- "sha512": "6a4f50cb943b8d86f65b071ecb9169be0d8aa0073f64884b48b392066466ca03ec1b091556dd1f65ad2aaed333fa6ead2530077d943c167981e0c1b82d6cbbff",
- "dest-filename": "path-exists-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f",
- "sha1": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f",
- "dest-filename": "path-is-absolute-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f",
- "sha256": "6e6d709f1a56942514e4e2c2709b30c7b1ffa46fbed70e714904a3d63b01f75c",
- "dest-filename": "path-is-absolute-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53",
- "sha1": "365417dede44430d1c11af61027facf074bdfc53",
- "dest-filename": "path-is-inside-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40",
- "sha1": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
- "dest-filename": "path-key-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40",
- "sha256": "ee71986a430792b5bf7e0c398355215b534d3eaec9cde73879db69fd58b14ef0",
- "dest-filename": "path-key-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1",
- "sha256": "7bcf82ceab94ec610b0242df2e33f132c8d0595ae7122bf8e72fc1fd23cadc03",
- "dest-filename": "path-parse-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c",
- "sha512": "19298e4f611b1eb20d05ff5247b08310bc2527c004364dd09fb3a290ae2715802edceb5edbe258355be4a401109b7fd32cd109143ff16498f3cb183728158ecf",
- "dest-filename": "path-parse-1.0.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441",
- "sha256": "c6910e17a214f4edb0f4b04f6f9c74300d4bf2d587756eafdade29d33d9fb13b",
- "dest-filename": "path-type-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73",
- "sha1": "f012ccb8415b7096fc2daa1054c3d72389594c73",
- "dest-filename": "path-type-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f",
- "sha512": "4f6654b1d6451e0037bb87b93df3db8ddec70c3a713e741be633744ab0ec8cd4ae5571c9aadc139d6a86d01d6366b82627fee58f51265480725add60c46916be",
- "dest-filename": "path-type-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b",
- "sha512": "80329bf1a64c0de0ffb595acf4febeab427d33091d97ac4c57c4e39c63f7a89549d3a6dd32091b0652d4f0875f3ac22c173d815b5acd553dd7b8d125f333c0bf",
- "dest-filename": "path-type-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0",
- "sha1": "b942e6d4bde653005ef6b71361def8727d0645e0",
- "dest-filename": "pathval-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0",
- "sha256": "a950d68b409ee5daf91923ce180bab7dc1c93210ee29adbce1026be1ca04d541",
- "dest-filename": "pathval-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5",
- "sha512": "398332aa42b32bb6e558effe5d960feb0f211f42c3be406f76f2ae92d8beee4a98142884024fa02370d69ebc9aa5cd036aed39ba0193cb47e843a9aa9f800760",
- "dest-filename": "picomatch-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad",
- "sha512": "ab433ff5e647ce6af402e957c8fc0d7d98edc19fd105995b3772b7084ad5ae4e744f6012608ec1c9ed04bde90563720fd4db760c7bb4adef95d991c8a4c92e5a",
- "dest-filename": "picomatch-2.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c",
- "sha1": "ed141a6ac043a849ea588498e7dca8b15330e90c",
- "dest-filename": "pify-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c",
- "sha256": "74a52c931eea5d226f6a04deb6e138f1a9896abcc64fc1c597f83d19a7b20530",
- "dest-filename": "pify-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176",
- "sha1": "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176",
- "dest-filename": "pify-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231",
- "sha512": "b81f3490115bfed7ddebc6d595e1bd4f9186b063e326b2c05294793d922b8419c86914d0463a9d252b082a438fe8e00815b8fb18eadcb9d739a4d8d9fa0795da",
- "dest-filename": "pify-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa",
- "sha1": "2135d6dfa7a358c069ac9b178776288228450ffa",
- "dest-filename": "pinkie-promise-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa",
- "sha256": "92b6c810617351cb03c62b39fa6241003e5da043074561448b9f08ff4f93ad14",
- "dest-filename": "pinkie-promise-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870",
- "sha1": "72556b80cfa0d48a974e80e77248e80ed4f7f870",
- "dest-filename": "pinkie-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870",
- "sha256": "79a858c25e63ade9eb3e65b2aa2a491cc9e1d2fe671c0168f9291b3ba7da3d83",
- "dest-filename": "pinkie-2.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae",
- "sha512": "9b43936d1ff954f34fa8ed6987a16a6e3ec7bfa414ee047fb505b8d19aab2f5ae380253ce56e82d5b267d0122db89aa747df0f5b3c3b67c847782843d56ae075",
- "dest-filename": "pkg-conf-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4",
- "sha256": "862c533c020b507154c4714e615e4809ca8dbe8f1854eded17e6592c295555b3",
- "dest-filename": "pkg-dir-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b",
- "sha1": "f6d5d1109e19d63edf428e0bd57e12777615334b",
- "dest-filename": "pkg-dir-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3",
- "sha512": "fc4e7b018928790db9aa4c4c8f93c1395805f0a8aefe1edc612df4679f91ed66a208205f2eae7c648fdd49e68429bf565495799ffd37430acddc8796205965bf",
- "dest-filename": "pkg-dir-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3",
- "sha512": "1d10f36da2a30be00e5955f1014ff1e7808e19e22ff5e6fee82903490a0d4ede17c96a0826fb8fb178b3c6efc5af6dc489e91bb59c2687521c206fe5fdad7419",
- "dest-filename": "pkg-dir-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a",
- "sha1": "7482452c1a0f508e3e344eaec312c91c29dc655a",
- "dest-filename": "plur-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/plur/-/plur-3.1.1.tgz#60267967866a8d811504fe58f2faaba237546a5b",
- "sha512": "b75031f0a52f577145208f25b5cccf9f6b49763a9b775b08ceeeade092fb9d0dc4c9e2ff953ae3e4f58a6f4ea2739ffa5d80ebeb9ad0e2ecd010637bd3fe97e7",
- "dest-filename": "plur-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab",
- "sha1": "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab",
- "dest-filename": "posix-character-classes-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab",
- "sha256": "99e5e48d09840a2dc918ae128cd29a037a8017a0144a5b432343aa78563c8021",
- "dest-filename": "posix-character-classes-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54",
- "sha1": "21932a549f5e52ffd9a827f570e04be62a97da54",
- "dest-filename": "prelude-ls-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc",
- "sha1": "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc",
- "dest-filename": "prepend-http-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897",
- "sha1": "e92434bfa5ea8c19f41cdfd401d741a3c819d897",
- "dest-filename": "prepend-http-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b",
- "sha1": "815ed1f6ebc65926f865b310c0713bcb3315ce4b",
- "dest-filename": "preserve-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b",
- "sha256": "294f5aa92d40d6a7049bafd6e29b81fbd8aa3a5b9b3e26a4816b75155a309382",
- "dest-filename": "preserve-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-5.1.0.tgz#b906bdd1ec9e9799995c372e2b1c34f073f95384",
- "sha512": "e2068ad6c903da0c2c7027e4b3061046675d51bd86259b730c64631d669d547b4afc320a16e7dad7632f112ebfc6ed6d55b5187a26b96e62dcc09b5925052a9f",
- "dest-filename": "pretty-ms-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff",
- "sha256": "22ba10fa69b6ff5f28c3697594ac19b2540d9ae15b686869cfc533c3c9f23c1b",
- "dest-filename": "private-0.1.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa",
- "sha512": "32d102d53a8dd045399dea61689e2b02d4e11ed0bce9d34df6a0ae121b6c86fa55064016e593bb04048df5112717d7a85c6711b9bfa916e284a4e1c4f876c433",
- "dest-filename": "process-nextick-args-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2",
- "sha512": "de8b943a9421b60adb39ad7b27bfaec4e4e92136166863fbfc0868477f80fbfd5ef6c92bcde9468bf757cc4632bdbc6e6c417a5a7db2a6c7132a22891459f56a",
- "dest-filename": "process-nextick-args-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8",
- "sha512": "ecf887b4b965e4b767288330d74d08fbcc495d1e605b6430598913ea226f6b46d78ad64a6bf5ccad26dd9a0debd979da89dcfd42e99dd153da32b66517d57db0",
- "dest-filename": "progress-2.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3",
- "sha1": "f052a28da70e618917ef0a8ac34c1ae5a68286b3",
- "dest-filename": "pseudomap-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3",
- "sha256": "07e9563487c9b0161412ec9d1dd2c3ae13c7b125040bbac4e0a99a38790b5b8e",
- "dest-filename": "pseudomap-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64",
- "sha512": "2f0672fa9dd216cd4fcad77f8d872de30a6fe3d1e2602a9df5195ce5955d93457ef18cefea34790659374d198f2f57edebd4f13f420c64627e58f154d81161c3",
- "dest-filename": "pump-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d",
- "sha256": "1bf719e58dfed9efbde40cde25e5c9a00868b09b8e8eb7d97484ea4ca0a0c4bf",
- "dest-filename": "punycode-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec",
- "sha512": "5d1b118dd7fe8f99a5fb2ffa18a1cf65bac5ffca766206b424fb5da93218d977b9a2124f0fdb1a0c924b3efa7df8d481a6b56f7af7576726e78f672ff0e11dd0",
- "dest-filename": "punycode-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8",
- "sha1": "4360b17c61136ad38078397ff11416e186dcfbb8",
- "dest-filename": "quick-lru-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c",
- "sha256": "ee54048289bc252c353a4b5d22ada4abc7d6791f50b6858c9a2cd48727d9bca1",
- "dest-filename": "randomatic-1.1.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed",
- "sha512": "4ee0c4e4ac59d09e3ad51563ac964225cf89fb30a44dbd4c6c7f40414abaf2c32138c732f632dc6f706b64a829f6af4d725b5d838415a96ac7d365b610515563",
- "dest-filename": "randomatic-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a",
- "sha512": "bd897788e5fee022945aec468bd5248627ba7eca97a92f4513665a89ce2d3450f637641069738c15bb8a2b84260c70b424ee81d59a78d49d0ba53d2847af1a99",
- "dest-filename": "randombytes-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed",
- "sha512": "cb76c682a2a3dd005dc4b6cb9289a5a2192fb00f207408944254812670617e7f813f18386dceb677c4dc056d79c1abc37e07b10a071c72485c66fcb0c9060f3b",
- "dest-filename": "rc-1.2.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02",
- "sha256": "e7058ddcb7a13ab36cf55795d6a31629e5be82f206a50d35a10b91d17c7e4726",
- "dest-filename": "read-pkg-up-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be",
- "sha1": "6b72a8048984e0c41e79510fd5e9fa99b3b549be",
- "dest-filename": "read-pkg-up-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07",
- "sha1": "3ed496685dba0f8fe118d0691dc51f4a1ff96f07",
- "dest-filename": "read-pkg-up-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978",
- "sha512": "e9eb50487ee7246b0ad116c6ff64de0f36456bcb218d0d6e9be4b0410e5cc0acb476149774e9dc1216f508fa6f406e21ec5c8e57a101e98955d3226f65034090",
- "dest-filename": "read-pkg-up-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28",
- "sha256": "8ec36eb1bbfbbeafd98799818804e94528bde09db50a87a9aac0f0eaaf56eff2",
- "dest-filename": "read-pkg-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8",
- "sha1": "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8",
- "dest-filename": "read-pkg-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389",
- "sha1": "9cbc686978fee65d16c00e2b19c237fcf6e38389",
- "dest-filename": "read-pkg-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf",
- "sha512": "b50b4a03d588021045dfe54b02c7b232a65e0635b4007268c4eb58a92519349c5ab84ae62db566d855b5cbe27f600f5d52b002dfd2137a39595a1548c1ac242b",
- "dest-filename": "readable-stream-2.3.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57",
- "sha512": "11b868f0ae2321b1c0c67bb18bba38d8ead9805fd94cd72c663ea744ac949a484b16af021c8b69fdfcba85066e6663ff9f7c99f550546e9e33cff997f219983f",
- "dest-filename": "readable-stream-2.3.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525",
- "sha512": "d4953ff2af95805672c70ac9f925483ac87e2b2c161a976cdcd4ea8a488aa43319592726018c8a220aa43be011bcd5897d7797475cf1cfb687178bb80b21fabd",
- "dest-filename": "readdirp-2.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839",
- "sha512": "72b93842ede9997c20c5d4a01a1800fde5e22403d0897e0630e6593179ea2b11d7ed36a82fede0415a3f59eb808a882bd3b0e99df8c83295d76be3c022fc0f19",
- "dest-filename": "readdirp-3.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e",
- "sha512": "70c86eedcffcadd8641d75ac63ea2c0617d2cb4262930a472bfe7e8a6a3e2e979ab1317ca2e12b1eb9589304f4fbe9e38b2b83bdcece158e53dee92f67caa615",
- "dest-filename": "readdirp-3.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa",
- "sha1": "c1b2007b42d57eb1389079b3c8333639d5e1ccaa",
- "dest-filename": "redent-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e",
- "sha512": "2c6673920b4b63bf467972e6f03a740552dd4255880b3067273fe2a56520a39f6a05a67e047b6ae753f6ab5b95665a6932e5004f7ed20e4dfda946e34d607b6c",
- "dest-filename": "regenerate-unicode-properties-8.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f",
- "sha256": "e6657be589fb26101c71759e6c2fdcdb88c09f776d40fda9e189abcd624a6557",
- "dest-filename": "regenerate-1.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11",
- "sha512": "d46ea32550d6aedd2b2bdf64063bc4b7389934220202ebc83e44a2505210c553f4e91095a6addd983a36a22e8006961a0d869346bebb04484bf2bd708046592a",
- "dest-filename": "regenerate-1.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658",
- "sha1": "336c3efc1220adcedda2c9fab67b5a7955a33658",
- "dest-filename": "regenerator-runtime-0.10.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9",
- "sha256": "cdd8985b84b3b6b08fe5dcb39b9506d70ddddffda9f9d703dd33534c60bc373b",
- "dest-filename": "regenerator-runtime-0.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9",
- "sha512": "320b86f79a228f47c2dd05775117f8576483606261267246aaf20881d10278e0c24fdf304960c027de124ae5696105284dc19420be8be32341ee3d431451d206",
- "dest-filename": "regenerator-runtime-0.11.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd",
- "sha256": "b6fb60950898c5d1b5f491a71cb7f1397f24e0a557f865f197b996191fb45dde",
- "dest-filename": "regenerator-transform-0.10.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd",
- "sha256": "66d49d35e7e084cba2f0841cc794cdfe63870b17c79e43d119124c39c6791480",
- "dest-filename": "regex-cache-0.4.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd",
- "sha512": "9d5219c2d0a3902f5882f5a4a4ce79079ac184161166101a25b81c1585d7b079db67d51923d9e7556619a41942aaff61a36799af23e75ab646b0e74fc1559759",
- "dest-filename": "regex-cache-0.4.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c",
- "sha256": "fa4448bb964e8f97905f8e557d529884f08dea1a5e61e88d7589819967bef276",
- "dest-filename": "regex-not-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c",
- "sha512": "27a4838d4803c508f936eb273ad745c43c0dffe1d6ca447c1842f072d27b99daa1732cb5c44738491147517bf14e9ebad586952808df44b67d702a92ead9f7d8",
- "dest-filename": "regex-not-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c",
- "sha512": "ced6b0e0cd55aa033097d1e53e93ae898808b5c1e5ba75b41ded9f13a78d7d3e84fc217616d622f687ce61ee262a7b6cb5893417287fac3441752dc09f18e5ac",
- "dest-filename": "regexp.prototype.flags-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f",
- "sha512": "96fd0cebe4e40d59e2037683d448340d5a5f53f6e8a12bbb11ebf74c33bf99928705f563802193578b786eea691121180ed900ad814ec53256bfa4b90be89a37",
- "dest-filename": "regexpp-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e",
- "sha512": "67e84dafb440556c739cb3ee03b0c887c50d5f58fd083ad4431b24c3d22b044d43c6e7b69725d3fac86a10878b523ae893120ff02332d56923806deb4ec779fe",
- "dest-filename": "regexpp-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240",
- "sha256": "ea28b108b285a8c4e8e9495c835d2b7a38d08baed79ca0ac31adf1e14fbc40b2",
- "dest-filename": "regexpu-core-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6",
- "sha512": "62555a79f97c3f90671583884d33730ef6a7d6e94b3a25c9cc2359c5db93228b0dd7b6fcee1ddbbc6f721cca07691ba8f3c1f8990d3a028763e55b581861a24e",
- "dest-filename": "regexpu-core-4.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e",
- "sha512": "e0b33a170f1e0507703187044b8c939e7d93a886ac6d7bb00f1dee9be411b3b4b9e5a30a081281c6f3d79764625231f0b892d3c987f14a999f4808d0a5cb8ff8",
- "dest-filename": "registry-auth-token-3.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be",
- "sha512": "9694241f177d50bead6f793f6870157e756d9fe05cb3da1be489ee14b2c40ea4aa7aaf8096307c1995bdc58d31ec5fb163011c8ca7b4ee7ca8c73118cfacaf93",
- "dest-filename": "registry-auth-token-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942",
- "sha1": "3d4ef870f73dde1d77f0cf9a381432444e174942",
- "dest-filename": "registry-url-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009",
- "sha512": "f1a7185d74c8d00910bfa4403a3137bce6885d9913f70a382ce15b04a6101049e730d0692aa754ac8e92e0d4f428f228fd656f279b44fd7e4b17f4d051fd1e93",
- "dest-filename": "registry-url-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7",
- "sha256": "c3ef01d4c06a3de88c027238d42df152b461d6c4bb40776c20a6f2b33a3f2938",
- "dest-filename": "regjsgen-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c",
- "sha512": "e6ac731998c3b3dc38b734f74cf84226a59d09cdd12d8c32f49d8d0749e6e4bcfe4b6ef796f59ca63693187b13d5d73a1e17eae35b9210ec3cc019b1aca3aeca",
- "dest-filename": "regjsgen-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c",
- "sha256": "aaeb398fd9fcb47773f837a91cd0f8173296ede0c00dd7a93f1521fb32ee3944",
- "dest-filename": "regjsparser-0.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c",
- "sha512": "450ed8ca890b89006899426e506f22195be480e2f1c3264cf24e9ddeae52017a60e2be5364966280a16f0ba3e90fea90f7c6c20c2e587a53de03712e703a0d79",
- "dest-filename": "regjsparser-0.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730",
- "sha1": "09700b7e5074329739330e535c5a90fb67851730",
- "dest-filename": "release-zalgo-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef",
- "sha1": "c24bce2a283adad5bc3f58e0d48249b92379d8ef",
- "dest-filename": "remove-trailing-separator-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef",
- "sha256": "4e1340d198749dbcf0986dde8b657e0470f395d2c9be1da90a7c169dbeae6321",
- "dest-filename": "remove-trailing-separator-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a",
- "sha256": "aa0e5c12fccb4fa26936d541f86b3780505781c03f98807eb2aef0629bf67b06",
- "dest-filename": "repeat-element-1.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce",
- "sha512": "6a11aad199d5e66e57b592cc6febcfefa91c00ce6790baa4d25a6a02ea2348a1a042d9f87918b86591a6da8968db32851feb0cb166aa3825b576a0273abbbbda",
- "dest-filename": "repeat-element-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637",
- "sha1": "8dcae470e1c88abc2d600fff4a776286da75e637",
- "dest-filename": "repeat-string-1.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637",
- "sha256": "0be1cb94d6cb3c063946f502d39eb59ffe837a846951dc9d2ff1a49b8598b4fe",
- "dest-filename": "repeat-string-1.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda",
- "sha1": "5214c53a926d3552707527fbab415dbc08d06dda",
- "dest-filename": "repeating-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda",
- "sha256": "2b686da5dedfd4fc6a1368690df313213e801a5d8b320b786082bf6facb28097",
- "dest-filename": "repeating-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
- "sha1": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
- "dest-filename": "require-directory-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
- "sha256": "703bee0844360383fe4a8792d4a5a562647426a053e7597a1d272ac554f386c8",
- "dest-filename": "require-directory-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1",
- "sha256": "63a72dd24ef77958d01bcf2797a2e5fe57e1c5d11579fbd1bdc8b784c89999c3",
- "dest-filename": "require-main-filename-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b",
- "sha512": "34a37990c0f294aba577160b4947eb6e8e53bb387885dfb613c34f3d7d36999b67d55b911104e861efd9765272f89dee0a97da886174e5eec1f16d225db4079a",
- "dest-filename": "require-main-filename-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa",
- "sha1": "5a1b52eb70ebed43eb982e974c85ab59571e56fa",
- "dest-filename": "require-precompiled-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d",
- "sha512": "3ab65a5f631bfab242a47ffa0a94aab7dc4556937efb1d355e737689ef60e8fe7fdf17a52c0917595003a5dcf52070ff2857c45f213a574534d4e43750edab12",
- "dest-filename": "resolve-cwd-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57",
- "sha256": "5f8f9c45d91ed1ed57eff2b5156656aaf60ce71462c922d4ddc70bde3030c09a",
- "dest-filename": "resolve-from-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6",
- "sha512": "a5bfcc6265ecb40932b11171f2988d235b4614d408140def904dc6ab812e035745ea01e9ffebe066ab021896a9bf2f0ddd0fb8a3b170beab8f25c9d9ed1632e2",
- "dest-filename": "resolve-from-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69",
- "sha512": "a9883d28fdb8743e6a91af49e3b774695932d0df9be1f4d4f3d2cdf620e78c1e706a4b220b8f6bbcc0743eb509406a13987e745cf8aa3af0230df6a28c6c5867",
- "dest-filename": "resolve-from-5.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a",
- "sha1": "2c637fe77c893afd2a663fe21aa9080068e2052a",
- "dest-filename": "resolve-url-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a",
- "sha256": "88e9cb578b6373125c416cacb9f42c4896fe3e072e4b94ba6948cba70e551824",
- "dest-filename": "resolve-url-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b",
- "sha256": "605726c06837d76d2da4946e25ce90c2467672f6f52293199f570dab74e0fe0b",
- "dest-filename": "resolve-1.1.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.12.2.tgz#08b12496d9aa8659c75f534a8f05f0d892fff594",
- "sha512": "70055323654b1d662c18e8ab7de615550ed90de8ed43d7e9e1885872458312415fa9b563693d7588cf24eb14807c614c33e803a598cc9c5b2c3eef307be9aa17",
- "dest-filename": "resolve-1.12.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36",
- "sha256": "186264769f8467d88f71b9de447ce8a9db516c384258e07746884dd6d1509108",
- "dest-filename": "resolve-1.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c",
- "sha256": "69f40a3d7faa8f3583c6496ed63fdc3c13a8d1cc26cc2dcf15508220d8303cae",
- "dest-filename": "resolve-1.6.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7",
- "sha1": "918720ef3b631c5642be068f15ade5a46f4ba1e7",
- "dest-filename": "responselike-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf",
- "sha1": "9f7ee287f82fd326d4fd162923d62129eee0dfaf",
- "dest-filename": "restore-cursor-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e",
- "sha512": "97eb1279fcc7a63e6a8a6845484e5af27b9f65800cdec05254c00fb589260bee041f66a7486684317483d22cd141bbbd9dfc90f72e49ad59a9ec4f2866b523bc",
- "dest-filename": "restore-cursor-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc",
- "sha256": "4a7462b50b3184e14d3518cc0438624ad20aa21bafeb30568aede82f07ef69fe",
- "dest-filename": "ret-0.1.15.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc",
- "sha512": "4d3958a5af8e2febcc30d1b6e314a5406109dc1fd1cc47d494b72dedbe46ff2b5abfec0fae9942a55305bb0cd76e479c26b6fa218a358856f44bdbf7efbe789a",
- "dest-filename": "ret-0.1.15.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76",
- "sha512": "53d9c7f3c6b77dcfde902175974fd43f5228b22b888f24e1ee106f5d530762055c7c6bedf3ded782e8f650e2c3788e411b69bbfeec3268b553e9f6ed0b04f2cf",
- "dest-filename": "reusify-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef",
- "sha256": "9430b5e7c04962bef89ea4f8c9f4b2818fe4f13e67a6bdbef77e3ba74ddf9d98",
- "dest-filename": "right-align-0.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36",
- "sha256": "e6ee2251037935e6e6734f91acee17a5cc405f1011107b8fecd0f7f9685929de",
- "dest-filename": "rimraf-2.6.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab",
- "sha512": "9b0a9e5b95ec036a807a31b8ea061d10d6b15e3c7da2744d09f9fb2f476eb8fe210ae4c88bf40eecf0cad3b2897e9d5dfa2cd63ebcc4243712a816b439942b88",
- "dest-filename": "rimraf-2.6.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec",
- "sha256": "009e4e9ed94b7baafd1941e17ad3529bda0d0dccf77f8da9baf22e01e5ce2f3c",
- "dest-filename": "rimraf-2.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec",
- "sha512": "b968db68a20add3d4e495a6dcd7ecd97a3ef437a801ad284b5546346e6b38df2f7071e5e238d3d5594aa80d0fee143679b32d574f8fd16a14934fa81645bdee3",
- "dest-filename": "rimraf-2.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57",
- "sha256": "41f7dc9878bc77361e74c3b3615b37275b1bd8c06f38e534eefe82c9e25f3dfb",
- "dest-filename": "rollup-plugin-babel-2.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.1.1.tgz#cbb783b0d15b02794d58915350b2f0d902b8ddc8",
- "sha256": "54d98ef810891feb17b60eade8de36011e170acdf6204a2464ee5dab945bd300",
- "dest-filename": "rollup-plugin-node-resolve-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408",
- "sha256": "70e6e2af627f463c647d27375be57808b67b0775661cfc506be6a3eb552b45c4",
- "dest-filename": "rollup-pluginutils-1.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a",
- "sha256": "d2a0381c093af890ac1806498d95a6be75c9eba2997a5ad9dbfac8619222ead5",
- "dest-filename": "rollup-0.41.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a",
- "sha512": "39f5864136fdbe7c118f0b40d90c291b62027251c2de981764ee71b7c1f611f803aae3b4a957526f94fcf0be2a255004ba06d2e7aa40b95e1764ce7c517f2e97",
- "dest-filename": "rsvp-3.6.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0",
- "sha1": "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0",
- "dest-filename": "run-async-2.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679",
- "sha512": "0c4aa74914c3c3f4dcdc55dfe3dcde748eb7f19f689f0528b413225052a6acedac7452886d76a65c6437031778aa0a61c4a078930fea3f5c39913c677d4d41f5",
- "dest-filename": "run-parallel-1.1.9.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a",
- "sha512": "c2e62c0186057564c09c068fa0a18d85fa56c0a65b256f8780027e9889a9f84a65ec11bca0d581093c9133c81b6bd938964f01816768626db5328fd162185b80",
- "dest-filename": "rxjs-6.5.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d",
- "sha512": "19dd94641243917958ec66c9c5fb04f3f9ef2a45045351b7f1cd6c88de903fa6bd3d3f4c98707c1a7a6c71298c252a05f0b388aedf2e77fc0fb688f2b381bafa",
- "dest-filename": "safe-buffer-5.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519",
- "sha512": "7d91305066d597b928b99b358c274c2ddb7de61748bf465e1e0e8beea3de722319859fbf81d7ac5b8c204c0464ac5584a6ca631004c0cd418f1bc3768c98b06e",
- "dest-filename": "safe-buffer-5.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6",
- "sha512": "ae9dd2a34eca71d9a629b1af81a37141226bedb1954959394bd12ad45fa9a5b468ef4f9879a0f1930e4377c34f37e183e9b8e7626d95b8fb825e6a6e62f9825d",
- "dest-filename": "safe-buffer-5.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e",
- "sha1": "40a3669f3b077d1e943d44629e157dd48023bf2e",
- "dest-filename": "safe-regex-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e",
- "sha256": "621289fa8cba8059e2e73a8d916b71b03fc7aef591c0e66373765c5951f96cd2",
- "dest-filename": "safe-regex-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a",
- "sha512": "619a372bcd920fb462ca2d04d4440fa232f3ee4a5ea6749023d2323db1c78355d75debdbe5d248eeda72376003c467106c71bbbdcc911e4d1c6f0a9c42b894b6",
- "dest-filename": "safer-buffer-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad",
- "sha256": "24c2d1ebf7577f2a2bc6c97c8a2b879464f1123180572ab86e0aa15b0943ddd1",
- "dest-filename": "sander-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa",
- "sha1": "b4dc1861c21b427e929507a3e751e2a2cb8ab3fa",
- "dest-filename": "sane-2.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9",
- "sha512": "36a543bfd4e900d523166d0df2e3391b12f7e9480a8bdfdab59c3ec7b6059d0f1c9301462ab978c57e325adadecb75099b99cfd6451b9d880ba29a963524615b",
- "dest-filename": "sax-1.2.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36",
- "sha1": "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36",
- "dest-filename": "semver-diff-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab",
- "sha256": "bd93bdd068b190bfe1deb9f68bc37458e2425b4c3e230284732b5b6dad66a36e",
- "dest-filename": "semver-5.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b",
- "sha512": "61ae768d25f6bbb40a821c5ea051a92f00ad1a5b7b8f4a18f4361be5aa6df673e5278d880feba54d71129edfea010728484472679b25dcb0c83b0d27027ff90c",
- "dest-filename": "semver-5.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7",
- "sha512": "b1ab9a0dffcf65d560acb4cd60746da576b589188a71a79b88a435049769425587da50af7b141d5f9e6c9cf1722bb433a6e76a6c2234a9715f39ab0777234319",
- "dest-filename": "semver-5.7.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d",
- "sha512": "6f7f5305a4d27d5eb206b6a953cf69e5f29e904da6fcdc270e870e56bb90152d7fbde320773b8f72738cdf833a0b0c56f231ff97111ae6b0680de530bb91c74f",
- "dest-filename": "semver-6.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a",
- "sha1": "50b679d5635cdf84667bdc8e59af4e5b81d5f60a",
- "dest-filename": "serialize-error-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4",
- "sha512": "49a68d6a5f629843bbdfb1f6734e4e834ffc2d45c6ec49ec67231af0cce49ae1e810b7d3eadc6e8f470ca918facdf3ca9e6435c9ab11e0f08973cc7e3382523c",
- "dest-filename": "serialize-javascript-5.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7",
- "sha1": "045f9782d011ae9a6803ddd382b24392b3d890f7",
- "dest-filename": "set-blocking-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7",
- "sha256": "d934aee7db9e09da09e87724743315ffe888130aa6e04fbbdecac985f6ae693d",
- "dest-filename": "set-blocking-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1",
- "sha256": "f4667d4d478f9d4284bd74b58ada9ef3d90296274b8a6eb4d368f069cf0bc9e0",
- "dest-filename": "set-value-0.4.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274",
- "sha256": "07d9a8dfa62598f542d6bc81a7e4462028fed6f3d7a5ec4370944cade1134644",
- "dest-filename": "set-value-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b",
- "sha512": "2711dcd7078237af30458d1f842a17a722b9e66fd73c769f3a62b85160fb9b6088d7818c705ca9b78c3fd3e355e5ffd931bcb617a4b6c3003b7e0ca787d8164b",
- "dest-filename": "set-value-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea",
- "sha1": "44aac65b695b03398968c39f363fee5deafdf1ea",
- "dest-filename": "shebang-command-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea",
- "sha256": "e56584aed67fa7855e99b63cd90231e2506e5493a37f52f53e232415f57de1f7",
- "dest-filename": "shebang-command-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3",
- "sha1": "da42f49740c0b42db2ca9728571cb190c98efea3",
- "dest-filename": "shebang-regex-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3",
- "sha256": "676f124e8e6621c51b563d61136f9bf2becb86b0b6c4e6bfb055ace21e85c671",
- "dest-filename": "shebang-regex-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d",
- "sha1": "b5fdc08f1287ea1178628e415e25132b73646c6d",
- "dest-filename": "signal-exit-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d",
- "sha256": "d8900ed050db9f8e5c27529d43c025d0bbbb16737ca199d86bd50fdc8c5bd2d8",
- "dest-filename": "signal-exit-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55",
- "sha1": "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55",
- "dest-filename": "slash-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44",
- "sha512": "6582a1dd6876cf53e91175abd0ca52059d15ea66470107d87afb6d3b5d5ce7509a5a319369a762299fb056dd4f6cc943579aa1305b25a5909e9a1c0e2bb0bcf4",
- "dest-filename": "slash-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634",
- "sha512": "83d43585a79bcb7e8e492b706f89ed08618668ab1a5528d0ebc7c1c6841cbad9797d2d6fb98d7c1f7c12b778c5c85b6b931f8acf45751bce40e0cc80743322d9",
- "dest-filename": "slash-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636",
- "sha512": "42ef950b713060b95d29ad5f0b1baebd42ef48938a12093da62f1d65e0952bb4ea05f50d4c7e2c1649388e88fc69f5527c062026848e7ad8f1f5058e279998a1",
- "dest-filename": "slice-ansi-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787",
- "sha512": "a52cafedb4930bb8a0f437206f0f40b913546f993957aa03b9d8d9a0c052af5deaa4b046eed07ece00a40118eaef121481dcf93f541ef2efab486768b8e388c9",
- "dest-filename": "slice-ansi-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707",
- "sha256": "4333b89d6f3263f223ba6b87eb7890112515576ca8161822b488a5b4b8f76b18",
- "dest-filename": "slide-1.1.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b",
- "sha256": "f2a498821f245af04015fa8c50afc5d4a3c3839d2e7487227e7c4be11611b545",
- "dest-filename": "snapdragon-node-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b",
- "sha512": "3b6ee5e3168c62dfd1490e53477be9582001e4a6ff73321ca9414e33f0b87d870b9db6547353e48d300c8e87f6a4159a493c0e51deaa5077051951a3eda2309f",
- "dest-filename": "snapdragon-node-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2",
- "sha256": "4ed40e99aaa722b95031051295eae4bd6d00d5914e560261d6b73e4563668e30",
- "dest-filename": "snapdragon-util-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2",
- "sha512": "99b2a431d40ab235f80402f86d16138f6d5e74e7fc70ded71dd6142447be667f7d85511870cbca3dcb7522a35eefe0193e2ae7f01083390047419927aa62a565",
- "dest-filename": "snapdragon-util-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d",
- "sha256": "783fd6b53fd9a8289872e766fffd889eddbd1718580140b617fc4905d68ad7aa",
- "dest-filename": "snapdragon-0.8.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d",
- "sha512": "16dc8e9d637fc021d355738cc2f4afdba77e928e6f5a52030face8509ecb5bcbe1f99042f107658ef7913fe72b36bb41c22a04516cbfe1d32d6c18c0e22a0d96",
- "dest-filename": "snapdragon-0.8.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7",
- "sha256": "4bc1d08cd8f0a819ccdfc08666654718249a298d6f42f6a5c69481e6ae6a6723",
- "dest-filename": "sorcery-0.10.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a",
- "sha256": "52885846866b71d4abf84ac5d9bc72086cd055ad56739069b8c6c37e516da724",
- "dest-filename": "source-map-resolve-0.5.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259",
- "sha512": "323aacbcdc32cf5b3493cd46a33ffdbd105ef5265d074f41770fbfcd8c8efb70ae3e4e9fa2e4dac6c707920b44f232af7f4d6455f97cae21f311143f91e7da48",
- "dest-filename": "source-map-resolve-0.5.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a",
- "sha512": "1edcfe467b175a4e7e3f6b25c79261dd0ebabe1423d429659b4cef9da63df3e345c7e0efd8217f7f93bfb7cc7e29a35dadd200b2bb8dce887f2a989a95ba809f",
- "dest-filename": "source-map-resolve-0.5.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f",
- "sha256": "82e7eb70bc5039b1e194e98f65eea2740bba35a4eda384eadba7d5867a60ade0",
- "dest-filename": "source-map-support-0.4.18.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab",
- "sha256": "818bce1863ce97c28e4d07c77fe9fd6e4070b943f1d576e79c874a71497b9a33",
- "dest-filename": "source-map-support-0.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c",
- "sha512": "61f437b501532bfcb394626e5fca53c1ae2d89f423e104b6323ed47a03aef23033e7d32a2223063d7c5085542220c3736b2b94485fe312e5677c517926ac9b99",
- "dest-filename": "source-map-support-0.5.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042",
- "sha512": "79fc8b4490ebebc0fd84104d20f5858e1a45cd4461f8a272910c2f3325b9522673630a05ea5e1830c0c8249132156c560aa7f2c4bcf3ead49f50547e9175ec55",
- "dest-filename": "source-map-support-0.5.16.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3",
- "sha1": "3e935d7ddd73631b97659956d55128e87b5084a3",
- "dest-filename": "source-map-url-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3",
- "sha256": "4424f6c55195dd2997ca21f9fba7c705bf85b7ee09a1278cf31532558c43f012",
- "dest-filename": "source-map-url-0.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b",
- "sha256": "11bee89581e5e24e73450aabcd55550007e20db26c4632c5b909001fc2b5a708",
- "dest-filename": "source-map-0.4.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc",
- "sha1": "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc",
- "dest-filename": "source-map-0.5.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc",
- "sha256": "e1de289bc493154f00a11cb4e363e0bb37619537d44b36b8112bba4924116b67",
- "dest-filename": "source-map-0.5.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263",
- "sha256": "bdbca10d17ff5a5802d5acfc7b2f22f9f9bf587632a95650d3c5f513c7092b86",
- "dest-filename": "source-map-0.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263",
- "sha512": "52381aa6e99695b3219018334fb624739617513e3a17488abbc4865ead1b7303f9773fe1d0f963e9e9c9aa3cf565bab697959aa989eb55bc16396332177178ee",
- "dest-filename": "source-map-0.6.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz#c8fd92d91889e902a07aee392bdd2c5863958ba2",
- "sha256": "d073dbcbe0d76d417ed2c187e45337914c97d02a58e0f7a24ab0c1f9e3e5ef7c",
- "dest-filename": "sourcemap-codec-1.4.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c",
- "sha256": "90b9959ebaa48ee79829db94f18e437803810c6e7897a07745fa3eef7e810159",
- "dest-filename": "spawn-wrap-1.4.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848",
- "sha512": "22007c99dd105bffad5aa71abee16029847fa8846f26444b3c90c56a85ed2cb51a55c0832b4f877854e49901e3ddea6b71885cfa03a5d1a100d70eea66561ecf",
- "dest-filename": "spawn-wrap-1.4.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40",
- "sha256": "bb496bad0f7b03558a81bbc95989cbcdeb25821f1318bba547616afcca06a03f",
- "dest-filename": "spdx-correct-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4",
- "sha512": "96bd8464272d0b604d47b8fb5b32761690f39f1932d6c8dfc6fbd8132cf13726fa9595c7383984a09785bb826ea589647e16b5299a49ca8aa227ba60035aaaf1",
- "dest-filename": "spdx-correct-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977",
- "sha512": "d9740009f1252a2f529556f509869d2835efa1a8cf80154f9ff80e40bad3bc774495a561afb6446ea25a46724b54d79a23870c10081509e04c285e8c5910c244",
- "dest-filename": "spdx-exceptions-2.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c",
- "sha256": "67221580d73a09846df5a722725ea32a76b39ed5c3e73d7486f4ab7a55b7d378",
- "dest-filename": "spdx-expression-parse-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0",
- "sha512": "620e83dd7a510f89243a64e97606d48842452a08491f4ddf882d4e3e597987fd2c3ba9de8768ea443547390e28fcb31e6b4b600a46cc81e6b98a9fdef8c916ca",
- "dest-filename": "spdx-expression-parse-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57",
- "sha256": "d8a073c84d34dc2b8340e33ca32f59f82615dd04bbc1a429c2703b0d0d6d9f23",
- "dest-filename": "spdx-license-ids-1.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654",
- "sha512": "27e156cd9a329c91171a9855212f97121de41528d95ffd62f6014169641c07efed9a97b6a94b12040069731ab19c0c45762505120017d5b8d8190bc8666a33f5",
- "dest-filename": "spdx-license-ids-3.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2",
- "sha256": "ca1a04195a16c5113ba19dfa474499d8a4ce0df08713805a694b10f5d6b1a5af",
- "dest-filename": "split-string-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2",
- "sha512": "3733558490d8a7071e5558a2f3f1eee8329f0f61be36b407952fd5fea82fefadc462e755c0470c40dc5dda587ed15ad40725cdfe826497982b3a1616bd05188b",
- "dest-filename": "split-string-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c",
- "sha1": "04e6926f662895354f3dd015203633b857297e2c",
- "dest-filename": "sprintf-js-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c",
- "sha256": "3afb26bcc328dc90f516515acf2783ad35b08dbfe9e0ada18264c3c4ddaa1a83",
- "dest-filename": "sprintf-js-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8",
- "sha512": "3135fe31e1b953df7871ace48ddffd28d01aa6c1e789b8cc2e77d7a1d9645f0efa24479ad1488dcebaa2773a357a633093bc3942173d8dde019fd4c16f5305c0",
- "dest-filename": "stack-utils-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6",
- "sha1": "60809c39cbff55337226fd5e0b520f341f1fb5c6",
- "dest-filename": "static-extend-0.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6",
- "sha256": "d49ef864ff022866341aa57a8a9bb3a67b61ca1044562fdac1e6cd81633b8fc3",
- "dest-filename": "static-extend-0.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
- "sha1": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
- "dest-filename": "string-width-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
- "sha256": "97e54ded8cca6d24a58e8d0650fcfe80fb4094894c2078136b4ad0f24059e25d",
- "dest-filename": "string-width-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e",
- "sha256": "227cdc0ce920900ba08c9c53bdfbd36ab22d78d9657dbb6108e4f9b9ae59792c",
- "dest-filename": "string-width-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e",
- "sha512": "9cea87e7d75e0aaf52447971ab5030f39267b78c3a2af2caa9656293aa00f599255cb3483a5aa0e05db2ad3d4c55a4e302abd5c1d7de67bc3b682bc90fbba093",
- "dest-filename": "string-width-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961",
- "sha512": "bda7dcbfa2a3559292833d3aa0cfc7e860c1ac0b73f2f76141a9068c522f36b1c0eb2dc7085d422272f2f902eaf1d4c93d0d5bf8a0d4a8315cb647515b8e1ed7",
- "dest-filename": "string-width-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5",
- "sha512": "cd4cf9243fad82ab6e0e3321c08839b85555dddb6a67dc902656557eae08d35fcae4f6a3e541e3ed5cab40e26fcdac125652a939b0296df0f411deb225cfb57a",
- "dest-filename": "string-width-4.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634",
- "sha512": "149e9bec481d2b1c5b0f173bf5c3a5a24e807ddfbe4d3b39b33a3ecc94d4ca8c37c9cad17c9544da9ab7bdc379dd77b1bca66efc324c0df788fea322653ae34f",
- "dest-filename": "string.prototype.trimleft-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58",
- "sha512": "7d7653495e7974d070bf5eaec3e861e639208714a7739a07abee4afe05e08b31f002f31eb5d009947aaaa050b51520d53d858b9002a5d9cc69513e35b15ee74a",
- "dest-filename": "string.prototype.trimright-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8",
- "sha512": "9ff4a19ef0e2e851db6d57ef8aba3e5a88e2173bfeb3c30f30705ccd578f7d4a4324bc282d3d21b759786300426e2f29240bde104767907c8fc933ff9b345fc2",
- "dest-filename": "string_decoder-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "sha1": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "dest-filename": "strip-ansi-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "sha256": "1c9d385a4118959514f84dce8d7bb2dafc802f0272dd00348aa18d17b95b793a",
- "dest-filename": "strip-ansi-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f",
- "sha1": "a8479022eb1ac368a871389b635262c505ee368f",
- "dest-filename": "strip-ansi-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f",
- "sha256": "aab0a8473699e01692bac2bb83d5460e295a3dad0e6653e0dd6af57e8ff6202d",
- "dest-filename": "strip-ansi-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae",
- "sha512": "0ee46cd6029b06ab0c288665adf7f096e83c30791c9e98ece553e62f53c087e980df45340d3a2d7c3674776514b17a4f98f98c309e96efbdcc680dc9fa56e258",
- "dest-filename": "strip-ansi-5.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532",
- "sha512": "02ebca4eb4df40d60d21cb5b4752bf6064d1d7be7a1b270fb20edbf5b755f43baababe20bfa68aa875da87aed9f08992ed6133e5055c3ad95f5b6ad912e82deb",
- "dest-filename": "strip-ansi-6.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-2.0.0.tgz#ff9c223937f8e7154b77e9de9bde094186885c15",
- "sha512": "80b14d1ee71dea0cdbf2332c9794266774209d4266a7baa7e2e5121cdc045ee980a7b622ce8198c35f595157eeab868139052dca7da4f17fc2c33581ef75b695",
- "dest-filename": "strip-bom-buf-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e",
- "sha256": "ad9ed163db6586739e6576b48ea76349b83ad460fee5c8e6a8fb481883fd0653",
- "dest-filename": "strip-bom-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
- "sha1": "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
- "dest-filename": "strip-bom-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
- "sha256": "48094c11a1f7faa867eb6919c09380232ce9b6d61fb3c43618ca6235b6013ee2",
- "dest-filename": "strip-bom-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf",
- "sha1": "bb43ff5598a6eb05d89b59fcd129c983313606bf",
- "dest-filename": "strip-eof-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf",
- "sha256": "f2bead0b21242d44edb6d3d1852fc456fc56ea9489cd8b9a85a458055b219c5d",
- "dest-filename": "strip-eof-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68",
- "sha1": "5ef8db295d01e6ed6cbf7aab96998d7822527b68",
- "dest-filename": "strip-indent-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a",
- "sha1": "3c531942e908c2697c0ec344858c286c7ca0a60a",
- "dest-filename": "strip-json-comments-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a",
- "sha256": "dbe45febaf1bf7265c25733242bc0e7ac38b632db6a8e19f0341af4770425899",
- "dest-filename": "strip-json-comments-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7",
- "sha512": "553c8c0147dd9b4e3b9b02a5faeefd58876b671b45b67fa70711de6fce385c143db8c353b931ddc7685ce51880258ab04e3df073fc5ee472d27494a427e59f67",
- "dest-filename": "strip-json-comments-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006",
- "sha512": "e9f3dcf91e22870a8fe8dfda22fd9fd60307f25395b56407a2a0b8c8aea8483555a1cba602c7c2aa39179ea89832198cc12fe61072e9ed57a196ddea97a9448a",
- "dest-filename": "strip-json-comments-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supertap/-/supertap-1.0.0.tgz#bd9751c7fafd68c68cf8222a29892206a119fa9e",
- "sha512": "1d927781e20c3e05702a4d95b263b9607aa79c9625e9b57903d256daecea578dd69a982588d1186eebee91fa2bed44696aaa71bb0dc27d9dce35d55b6630a020",
- "dest-filename": "supertap-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7",
- "sha1": "535d045ce6b6363fa40117084629995e9df324c7",
- "dest-filename": "supports-color-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7",
- "sha256": "725d4b25d44e0f16eb986ba957c14d9c8540de2f6a4fca961bf1f60aa1659ad3",
- "dest-filename": "supports-color-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6",
- "sha256": "b8538096cce414fe297eb5d4469939a8890f4c21f75a9b74b43c0ff0f34b99ee",
- "dest-filename": "supports-color-3.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e",
- "sha256": "dada8a4f7b3a1920d3135416992b35ceb62d2f5434553d026c7a7773b60854f7",
- "dest-filename": "supports-color-4.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b",
- "sha256": "cb2c7b7c678c73a45ff26cecf5f5370e0f5f8fea00f77cba8706955ad2972ad6",
- "dest-filename": "supports-color-4.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54",
- "sha512": "ce36978251799e75a9b2ae3bd234afe8ff43c0fbe02e4b9aa5899f0e6dc958e9b4be4353545dad23852b376afa8c7d6a33fb9cfd6b71618d6162803674e2a3e7",
- "dest-filename": "supports-color-5.4.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f",
- "sha512": "423563c1d5c8b78d3c308880a825f8a142ac814d84a801b3b363e9926e1a4186e39be644584716e127c5353af8b8c35999ad1ecb87f99602eb901d1a5f440ca3",
- "dest-filename": "supports-color-5.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3",
- "sha512": "a9ed637e6d4c83b36afcd4a1e97136e203d744e115b161f10b52c8c7ffd73650fd8b0ed86501a364d8d837bc466841ba88a740f04b4d156e91d208e7557a7ec1",
- "dest-filename": "supports-color-6.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1",
- "sha512": "a11488a51f29c53d56af616ab9336719eb7bf5bdc15a58ea3aea16fe1e28061c49fc751b5f99d7e894abb9392f5c30853300cfbec6934dbbcc2ca6564b2d11e6",
- "dest-filename": "supports-color-7.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da",
- "sha512": "aa9080bd197db2db8e1ef78ab27ec79dc251befe74d6a21a70acd094effe2f0c5cf7ed2adb02f2bf80dfbedf34fc33e7da9a8e06c25d0e2a205c647df8ebf047",
- "dest-filename": "supports-color-7.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804",
- "sha512": "7bdd349ccf1146d1a1955dfa286114f64eb92b798f6f5595ef439d8dfc651b6100b8cd67a22fc4fc1696fee3212fb6cf12cb0af10579eef3777ac8b18d4bdc5d",
- "dest-filename": "symbol-observable-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e",
- "sha512": "c2611cf26e1f8e7a1be20b79ae2151b53bbfebee2b49ed764e90042cd4aa1cc7c5dc8aa703e087dfb51233afd8477a9166fedee7a900100b5dea72996b17b452",
- "dest-filename": "table-5.4.6.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1",
- "sha512": "836495b39408c6fa3a38ba741ae753a847f4e6669ac0a5315ebbb5d3889a6b2580d3de79d6d1424c8f1fd40b1be253df901afdd64d3b88be1cd755cedff6f4b4",
- "dest-filename": "tar-4.4.10.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55",
- "sha512": "08a9dca9217bb07ea9e2bcc28246ffcff3dca2ce5e7e5d039a8973be5a9141435ca5122bb8e858f7e4f516c225c846df59deccb05a6875138ec07621d81697cf",
- "dest-filename": "teeny-request-3.11.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d",
- "sha256": "ff112390c7c4197050720686bc5a73f1b11ce092c4fbb77cf903a1f2f0140883",
- "dest-filename": "temp-dir-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tempy/-/tempy-0.2.1.tgz#9038e4dbd1c201b74472214179bc2c6f7776e54c",
- "sha256": "ebf67a8ab4bb2f867596d938e74f02fddc3caa4f2deec80ad7b52e92cbcd4c1b",
- "dest-filename": "tempy-0.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69",
- "sha1": "458b83887f288fc56d6fffbfad262e26638efa69",
- "dest-filename": "term-size-1.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26",
- "sha256": "b7c323c6ee00bef26bc5c1da04b5e5fec45d9bd4a82b41b2b22eb32da8911380",
- "dest-filename": "test-exclude-4.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0",
- "sha512": "33ea31b6c78214edc40ed01a187ee289e8f70819335ea14c6f3a9800009dccaba2e1e640fa9ab7b591300a1bce74d7daef1c72f017db9a025222be37702ffeda",
- "dest-filename": "test-exclude-5.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4",
- "sha1": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4",
- "dest-filename": "text-table-0.2.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5",
- "sha1": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5",
- "dest-filename": "through-2.3.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d",
- "sha1": "99c5bf55958966af6d06d83bdf3800dc82faec5d",
- "dest-filename": "time-zone-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f",
- "sha1": "f32eacac5a175bea25d7fab565ab3ed8741ef56f",
- "dest-filename": "timed-out-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9",
- "sha512": "8d10899688ca9d9dda75db533a3748aa846e3c4281bcd5dc198ab33bacd6657f0a7ca1299c66398df820250dc48cabaef03e1b251af4cbe7182459986c89971b",
- "dest-filename": "tmp-0.0.33.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1",
- "sha256": "e438a67b77c253a111700e5f6005afd08055870592b462b348999b53db7809e8",
- "dest-filename": "tmpl-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47",
- "sha1": "b83571fa4d8c25b82e231b06e3a3055de4ca1a47",
- "dest-filename": "to-fast-properties-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47",
- "sha256": "31a6db330b363a97276cea9605fdd5a0c7211af71bcb549a94f4b59bf9028c21",
- "dest-filename": "to-fast-properties-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e",
- "sha1": "dc5e698cbd079265bc73e0377681a4e4e83f616e",
- "dest-filename": "to-fast-properties-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af",
- "sha1": "297588b7b0e7e0ac08e04e672f85c1f4999e17af",
- "dest-filename": "to-object-path-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af",
- "sha256": "c830bc5c3e8538866d41d5e4e952e52509c3af04df33737319a662dad106c406",
- "dest-filename": "to-object-path-0.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771",
- "sha512": "22adb95c1b7acc3e67a4f8652d55c614ddff832476fea38370a34dc9331de2f6e6dfd1d468e8803383ccab478c542fd3931cfe66376c739e60f72cb3f98ab4d1",
- "dest-filename": "to-readable-stream-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38",
- "sha1": "7c80c17b9dfebe599e27367e0d4dd5590141db38",
- "dest-filename": "to-regex-range-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38",
- "sha256": "789100e984786a2bc106baf1f671c1feb666c2c3fcd753cbf3b07366b7ac8867",
- "dest-filename": "to-regex-range-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4",
- "sha512": "eb93fb8b3e97e7212bd5cc1c82f4316db230ed493780ecb974876d678ac3bde2ea86b7493fe2e2fc7c7ab722b43446fed860b29de08c2621aaac00c248d93cb1",
- "dest-filename": "to-regex-range-5.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce",
- "sha256": "86831805bd821f826f2c77fe1add74855b63801c95a52f41f032cbe73112340d",
- "dest-filename": "to-regex-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce",
- "sha512": "156b6578d02d67f2a2daab6a7a3d825d339ac8e1fd6c70d017e438f15a56c835e36d8c40e18cfc883077d735ce05494e1c72a27436ea195ad352f40c3e604607",
- "dest-filename": "to-regex-3.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20",
- "sha1": "b403d0b91be50c331dfc4b82eeceb22c3de16d20",
- "dest-filename": "trim-newlines-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3",
- "sha1": "9f9ba9d9efa8764c387698bcbfeb2c848f11adb3",
- "dest-filename": "trim-off-newlines-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003",
- "sha1": "cb2e1203067e0c8de1f614094b9fe45704ea6003",
- "dest-filename": "trim-right-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003",
- "sha256": "89f3b88291843bfa6dd3aae2f154fe2e1913c4de02d821b210b7270e3cbfd985",
- "dest-filename": "trim-right-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ts-node/-/ts-node-4.1.0.tgz#36d9529c7b90bb993306c408cd07f7743de20712",
- "sha256": "d2d1ef46c708d3583eea51383cb2d3e148344bab2e3e4206d0e2321ed325570f",
- "dest-filename": "ts-node-4.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf",
- "sha512": "055c156cf251b29ccd876c9fb25c93d4f49b979b88934dc46656f8f7744a1cde2a7a3fc3d3a9f570486394e246ebda05b04ece4fc5e3a5351c61fea92932cc87",
- "dest-filename": "ts-node-7.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7",
- "sha256": "146e598c1b22d8690672bedda58f6b882c2d7935bc42a61920ad98fc5e57dc50",
- "dest-filename": "tsconfig-7.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tsd/-/tsd-0.11.0.tgz#ede8b8e85850845b753fff7eaaf68dbd3673700b",
- "sha512": "92528c342d0a47350868b246f17aa4bc7ffdacac185fbe31a6a24137cb295a36140e88c07ac77a01f0c24f976b6b2fb284b7d31a47a6ecede753a8b82b0ccd0f",
- "dest-filename": "tsd-0.11.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a",
- "sha512": "a8e79b179ddfae77bcd5c7f44bd078d41c9e9c9dff22e1fcc892a78005f7e429a2672480d24861928bec84a2be8c609a3275689a56bb81594871cdc4bca3db4d",
- "dest-filename": "tslib-1.10.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8",
- "sha256": "76809dcd09788df81e347bdd77dec0c11f6aeb238af88c54094a3a7fd6c23b26",
- "dest-filename": "tslib-1.9.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae",
- "sha256": "a7ab3fa80726c8b7b0896db69da9f5fc69bddbdbbff7f5dccd6211a8dce9490b",
- "dest-filename": "tslint-5.9.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/tsutils/-/tsutils-2.21.1.tgz#5b23c263233300ed7442b4217855cbc7547c296a",
- "sha256": "ad72e6fd0ad98c168d1efd5157800fc980062b11f8dbb67f1ac290641a813846",
- "dest-filename": "tsutils-2.21.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72",
- "sha1": "5884cab512cf1d355e3fb784f30804b2b520db72",
- "dest-filename": "type-check-0.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.5.tgz#d70e5bc81db6de2a381bcaca0c6e0cbdc7635de2",
- "sha256": "d6172c00157ac2a6f6327883e2a15f1f9cf5a1147b2a77a5af0db335381be3c6",
- "dest-filename": "type-detect-4.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c",
- "sha512": "d1faff9881f57653bec7b4e570ccbe6c80ea28fb30ffbd2d5727875bbf3b828423866a9a65ed74bb02ee8ee6caf6af4b83a162868d4a50a0d8cf467b93b839fe",
- "dest-filename": "type-detect-4.0.8.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1",
- "sha512": "7141899c276be124db78f0a0a8d15ba553427a96be900568849b35b0b871cdd1fe82712839df1585b61aee90f7cd9606894456336c731082377d07118b30e461",
- "dest-filename": "type-fest-0.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d",
- "sha512": "e1d6f3233aaf8ed822339af0d64e6b107b4100d2a676e7611b20446a3374d5f13285a00886ca0a372eb2efe20df7721fa45b7063d8aa8bb903fb1c0a850b0d24",
- "dest-filename": "type-fest-0.8.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080",
- "sha512": "cddbbc5cc3440dea4a291f9760e5c054fb56ba2d25cb436da2152c730f9499a1e20164fc86b575aebfff1fa57ed03bc9dce435f52f7bf4cd2568b7d7f2b9bcd9",
- "dest-filename": "typedarray-to-buffer-3.1.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4",
- "sha256": "03e533c09fa10ba7b278cf3374b32ae4240ba6201a5ee9300da53127e3efa86b",
- "dest-filename": "typescript-2.6.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624",
- "sha256": "9b32bd684e935101f00bea2e290879b2a0600c12d068751b8f9c92daddb42224",
- "dest-filename": "typescript-2.8.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5",
- "sha512": "5428f95224b21c18f07d869c983b9cfcd3a4e10422c5b13e5a7ecc149b92d2746e3d06e87f5df63f0e2ee77766dbae0ef0b3dcd8c56c73b449366979b33bab92",
- "dest-filename": "typescript-3.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd",
- "sha256": "dfb27e7004eafe33ec1b228785ff73a197e68c183749ec5e32f55254a9a7e021",
- "dest-filename": "uglify-js-2.8.29.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.0.tgz#14b854003386b7a7c045910f43afbc96d2aa5307",
- "sha512": "3c2fde7b8e7c3443084ded4eb9f0236a5eb98ba941e7c4751d6311731c2f773d54a295b40d8aa544bdf176edc8713bd35ec074d82447ca489d91344bf80de140",
- "dest-filename": "uglify-js-3.7.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7",
- "sha256": "e78538eb306ac63a5d42145d91e21e40c921487157afacecf7310cd9a9e025c2",
- "dest-filename": "uglify-to-browserify-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82",
- "sha1": "483126e11774df2f71b8b639dcd799c376162b82",
- "dest-filename": "uid2-0.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818",
- "sha512": "8c3acd9d7587778a07893667c7f646ee0b544d5a7e8027134caafc2f41e3970a6144e116dfe1e29be229bc2fb17091057a06a988c67265ed360b2b8e9d199b9d",
- "dest-filename": "unicode-canonical-property-names-ecmascript-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c",
- "sha512": "2f8428875e6f4df9edb27e0fd73aa71ee946d0b75782348ed37e5f12976da7a6315e1313e7543abe0339958746ff95f73234be93f63d5f0e1214263d224474ae",
- "dest-filename": "unicode-match-property-ecmascript-1.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277",
- "sha512": "8434c7bda064dd1985cef4a5d1456b5260b73ee5bdc0a567a68503607d090e4488a2fcf0f89e6f89099e607c55481a6db9b9ebecf6c7d9ed1f9e90d1427425e6",
- "dest-filename": "unicode-match-property-value-ecmascript-1.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57",
- "sha512": "2f9440a827d7a80c11dd1ae217ca4cd25534c384727ff1a0cce3708ba2a72f5b5a2506bbc754c2c5d26720b5f9f562063b0479ec85719fb35e8f47f3d4dcba7f",
- "dest-filename": "unicode-property-aliases-ecmascript-1.0.5.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4",
- "sha256": "1df0e436bac9555c351a5f26cb6b862d2856d7613b1adc4b888e07a588b6d179",
- "dest-filename": "union-value-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847",
- "sha512": "b497d79b131e5989dccc256ced7004bc857b89ea6900b7727a958c90793072246966b686ff1c13facd8937cfa9af5fbc8c245ff34145cefafe32941e7a81785e",
- "dest-filename": "union-value-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a",
- "sha1": "9e1057cca851abb93398f8b33ae187b99caec11a",
- "dest-filename": "unique-string-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a",
- "sha256": "54a07b57dd9eeef39b290b8d40e44e4305c4a51c4edba72ed95ac622c385850a",
- "dest-filename": "unique-string-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385",
- "sha1": "6dce95b2681ca003eebfb304a415f9cbabcc5385",
- "dest-filename": "unique-temp-dir-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7",
- "sha256": "87b37c6a6fe0f7c8fe63fa260fa9eb3b4e57a625beaf732cfe8ac2a00c39ac27",
- "dest-filename": "universalify-0.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559",
- "sha1": "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559",
- "dest-filename": "unset-value-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559",
- "sha256": "53638214a6c65f1d8fcf8b7b718a7c2526b4b9a51cfb0f9c2685a13fdf435286",
- "dest-filename": "unset-value-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97",
- "sha1": "d2f0f737d16b0615e72a6935ed04214572d56f97",
- "dest-filename": "unzip-response-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6",
- "sha512": "83031d8602471ae8fffb01c926cf5ee8f702b33a714756f6dfa8a0ace914a1f1a1a89b86f9a9a520ac00a47d485b559697ba2f671b17e3d94c0562f149d9b90f",
- "dest-filename": "update-notifier-2.5.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250",
- "sha512": "82bae6ac1e996fc0d48b20c869e4530429202126148044cd7bb3609446d5b2b2d65de1129e50923f9d167d14a3fc69b330f97a51c863db84bfa7cd273ff650ad",
- "dest-filename": "update-notifier-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0",
- "sha512": "298f45ae68abaa5f755f64208ebcb459de18f984ddadd661792f13170be46cb59ffc6e4a3490c287aa4a2f939972d116e3ed0169ae6274ad9942e10b4703f39d",
- "dest-filename": "uri-js-4.2.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72",
- "sha1": "da937f7a62e21fec1fd18d49b35c2935067a6c72",
- "dest-filename": "urix-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72",
- "sha256": "75ddd09b350185294372b4334af8ceff2bfb9893943414e571cc249519c215a7",
- "dest-filename": "urix-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73",
- "sha1": "7af8f303645e9bd79a272e7a14ac68bc0609da73",
- "dest-filename": "url-parse-lax-1.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c",
- "sha1": "16b5cafc07dbe3676c1b1999177823d6503acb0c",
- "dest-filename": "url-parse-lax-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f",
- "sha1": "892fe95960805e85519f1cd4389f2cb4cbb7652f",
- "dest-filename": "urlgrey-0.4.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544",
- "sha256": "b433ce23db1876e21f894c6f747189b1abdbb61dca11f08a19fddec06d690db6",
- "dest-filename": "use-3.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f",
- "sha512": "73011255794edeeae5f585a5156fd303d72c842121b6eec8289fe9e6ca09fe01a98fbbdbbc5ac063f7888a843a0f0db72a3661620888a3c1ceb359d0dafaffa1",
- "dest-filename": "use-3.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190",
- "sha1": "2b5be23a32b63a7c9deb8d0f28d485724a3df190",
- "dest-filename": "user-home-1.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf",
- "sha1": "450d4dc9fa70de732762fbd2d4a28981419a0ccf",
- "dest-filename": "util-deprecate-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866",
- "sha512": "a56d0da354461e0ce5a4724ed67b15ac72a9384231906835c41fafd1999d347e4e01e030cc056b0a7236ffa32dc7e532b3a89aca5c5af83de0e23eb720a2a349",
- "dest-filename": "uuid-3.3.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e",
- "sha512": "bac6414f73d6f8b3a3336e706ea2256703de255fb7392cf73359355acf2c9e55b7f5d67260bf653860b91603d51df9348ca9a388357c6749886d540f8b016cee",
- "dest-filename": "v8-compile-cache-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4",
- "sha1": "aab1a1fa30d45f88dd321148875ac02c0b55e5b4",
- "dest-filename": "v8flags-2.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.1.tgz#dce8fc379c17d9f2c9e9ed78d89ce00052b1b76b",
- "sha256": "a70a9d00161ba204a5eb14bb62ae7ca7e67c52cd8215ba6db3bd93b32cb1aad8",
- "dest-filename": "v8flags-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc",
- "sha256": "15915346efdb973ada371389b7add4b7af0929addca4d3f06f5441bda599056e",
- "dest-filename": "validate-npm-package-license-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a",
- "sha512": "0e92a6d948bfc4deff1d0282b69671a11581859f59d24aadca01bc5c280d43c6650e7c6e4265a18f9eba8fc7cde02bb7fc999b86c0e8edf70026ae2cf61dbb13",
- "dest-filename": "validate-npm-package-license-3.0.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb",
- "sha512": "bdeb9f726c6b8b87b75d2ad3d31c1f511ee482e2246b105ea2c0e0d34c835a1938f7077091252bbefb26ee773be5ed4f532bc87998fa9d2f15411633dbf4b85e",
- "dest-filename": "verror-1.10.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb",
- "sha256": "48bfb7ca9dcf695be85ce88c7055c3d2346ff3b038a36976acf66d2a6e079dc2",
- "dest-filename": "walker-1.0.7.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986",
- "sha256": "1cdf7615f948361f17f08b38e817037be4972d02bb2235f17e5d260459c7246a",
- "dest-filename": "watch-0.18.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8",
- "sha1": "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8",
- "dest-filename": "wcwidth-1.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5",
- "sha512": "64c8c2de1a3e297a3405f25bec982d439201baf9d285d94008d90a91db2a066630ddb3c06897cf798528ead2d4693e6d1bf1a487bc64a4184a450f5eee9ca0f5",
- "dest-filename": "well-known-symbols-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
- "sha1": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
- "dest-filename": "which-module-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
- "sha256": "4fbf12fbe1ebf9360acf140231a7ee2156298058b8166f53df1302109f1028ea",
- "dest-filename": "which-module-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a",
- "sha256": "87a8ce7e58c6a00b6440c2539a4e1da82f247990c546a93478a900a79fa30512",
- "dest-filename": "which-1.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a",
- "sha512": "1f125d616ab53132106c9de7c3472ab2c1e84cd536ebb2a5ac3b866755989710d2b54b4a52139a266875d76fd36661f1c547ee26a3d748e9bbb43c9ab3439221",
- "dest-filename": "which-1.3.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1",
- "sha512": "04b2374e5d535b73ef97bd25df2ab763ae22f9ac29c17aac181616924a8cb676d782b303fb28fbae15b492e103c7325a6171a3116e6881aa4a34c10a34c8e26c",
- "dest-filename": "which-2.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457",
- "sha512": "40690e41cf172fa06de4fc27b04c4a04fb8c281c671b15965b77d4e795ede1f787a3331485d50c6810a4dbdd2aa66ff01b9bbf4522b3c1d002e22e7562282284",
- "dest-filename": "wide-align-1.1.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc",
- "sha512": "05ae66f7f15ae17b7d79bd842d7b7bec9c550d5f30eea42b1f4cd2fd359225d2f20304235a83b3a738f997055fb43cfa9ff10ebb7b4d0024bce2fe74f6ac2724",
- "dest-filename": "widest-line-2.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d",
- "sha256": "8399b671dd219a0a3ae828db810ed9d5ba7454731d91700b2afb4311813322e9",
- "dest-filename": "window-size-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c",
- "sha512": "1f3fe6acdc22b4d461fc7500b4cfd54ffe551feca00fa0d5ee660a640b473ab6ecf14ee5bcf4bac5fec424a305d2e5b52890a5d07ef4d60dd91aeb3e9ae139bd",
- "dest-filename": "word-wrap-1.2.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f",
- "sha256": "66a2fa688509738922c3ad62a6159fe3c93268bd3bca2bff24df4bc02cc31582",
- "dest-filename": "wordwrap-0.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107",
- "sha1": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107",
- "dest-filename": "wordwrap-0.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107",
- "sha256": "419fcd999c644377c678ea8315aacf9bda442cd75bdfa50aee3918dd917ae274",
- "dest-filename": "wordwrap-0.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz#e241b43d8d033f1beb52c7851069456039d1d438",
- "sha512": "0d2372bcea452ab36eb1a694c24f9e8fa7018f56e684b7017e3f347a51a4f99228e494a4abeba707574b28439c35f2436608c62027e14344394db3f43ef178f9",
- "dest-filename": "workerpool-6.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85",
- "sha256": "4e9c683a8ddd125984393f2c2cc014037483458a863c00bfcba7429dd8123490",
- "dest-filename": "wrap-ansi-2.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09",
- "sha512": "402d7f88dff6fd13d52798d82bc046b6d8f9cfcdcb9922a6bdbbeb5cf3422d94846f7d8a2950c90e5fcc3add8dd35a94d87fc593311af4f2ada3506a0e3b5ded",
- "dest-filename": "wrap-ansi-5.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
- "sha1": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
- "dest-filename": "wrappy-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
- "sha256": "aff3730d91b7b1e143822956d14608f563163cf11b9d0ae602df1fe1e430fdfb",
- "dest-filename": "wrappy-1.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f",
- "sha256": "b160197ef3743c2316c5d1f89096d686902d17bb83c577ee04a684f59f45bb56",
- "dest-filename": "write-file-atomic-1.3.4.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481",
- "sha512": "19a1131f9c30b17f86727ce13e029c2a327a3360aadff899a755b263f5f5092aab5be8d534cf58ec3f040b6b0ce191bf57cc199529e226708a58f981600b9c45",
- "dest-filename": "write-file-atomic-2.4.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b",
- "sha512": "24f4adac8cb2549ea8092cffebdd5f02316d79f67aabe7cfead9be392e10c3aa3e4c6431369d73898d8f812f97fe6d15f0e5a16623bf9b8c528fe3ebe11ad9bf",
- "dest-filename": "write-file-atomic-3.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3",
- "sha512": "fe583bd07023b6452058f559859726f93e2190bf196eda759c534e9f7951af19e5bf9d12441bfb711ed1a91f8632c7778545f2f61581a380874db15370e6308a",
- "dest-filename": "write-1.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4",
- "sha1": "496b2cc109eca8dbacfe2dc72b603c17c5870ad4",
- "dest-filename": "xdg-basedir-3.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5",
- "sha512": "c8ca8606ab57c9e3757b74c662f80d803559de3f385b873090e5d0b30821a25e803e065669f7fd9676ef37b3076093a25ecbc63d7b634d8244882f49db0bfd12",
- "dest-filename": "xmlbuilder-15.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54",
- "sha512": "2ca614d620172575200179fd5118e2bbe3168725171ecbdfa7b99cb989bd75250a2b4fc28edad4c050310fcdbf98259bb4bb068c521a774c08b28778ceb4c011",
- "dest-filename": "xtend-4.0.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41",
- "sha256": "4d7412e72d642106847b3caa8597a54b24178e3baaf406748d519d8b51462741",
- "dest-filename": "y18n-3.2.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b",
- "sha512": "afd4bf6725eefd7bbdab5b58969b0b22c6b711e2d75e4d15c25c6a4dc1517e0f4484c5bed7b91bb7d1b436b8029a119be6f4f687284964b7c31b1fbbfb9523ff",
- "dest-filename": "y18n-4.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4",
- "sha512": "c0d732e0dbe33182fc82881659800eed915615f1dc6dd6c4e7bb593bc7b871ba63f2d7d4730af0a9297769df07c6961609d5dc25409e28a652eb602fd5a7dfc1",
- "dest-filename": "y18n-4.0.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52",
- "sha1": "1c11f9218f076089a47dd512f93c6699a6a81d52",
- "dest-filename": "yallist-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52",
- "sha256": "c7b31084d3525e17314b46c28e58ceb6cd8f10a9ff926daf48303976f8acb0b2",
- "dest-filename": "yallist-2.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9",
- "sha512": "4be664f0311613aa0aa55faf237a9691a2be8d26c82bcea90b07b6205ff1c08a50f2312ec69c3d3726868e6a7df81a09bf9155da98aa0837280ad4ada698aad8",
- "dest-filename": "yallist-3.0.3.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8",
- "sha512": "542232475c09a0405952a9393c0fa838117aca96f087968d077239d20bb100bfeaba081d7ece13b4d1d0ad26b3140ddf619fad12a7ecd3320696fd1cfeb8236d",
- "dest-filename": "yargs-parser-10.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0",
- "sha512": "a15015b07cfab85ae0dd7421785208f0448edacb007fd96e5ae01de967b1b2ee05dceb485b4a3c22b89b3d762b0f8582db82d6b4fac9946cbcef2e6e74af9dc5",
- "dest-filename": "yargs-parser-13.1.1.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38",
- "sha512": "de56ec3517ff8fe03842e4997c3440ec74527d6af33b4623a9325de648c0ab7ed97a9d421206989ab1fd4371b03e207d707c9dd58d54c208068491a8c62a5bce",
- "dest-filename": "yargs-parser-13.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950",
- "sha256": "4f480401590bfddae52363966a24d885c0bd284585b8bc77f7b72ea8bdadb24a",
- "dest-filename": "yargs-parser-8.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb",
- "sha512": "ee9453200f5073571a6746d9e9161119b1c9b61256b9a91ff969872b4ad578b90daeb1a17e869b04d76e7ba91d20d23aaf889fee872af5a0ff9fbc7028e77338",
- "dest-filename": "yargs-unparser-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5",
- "sha256": "c0c0a18eec2c0a730bebcc20ac3ecd01087a62f040882d11fbea7e79f0ea146a",
- "dest-filename": "yargs-10.1.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83",
- "sha512": "d9e7a1ba7ffc00b5bc4cba0897b31569152b83ec829de9eef01e240654718f7189183294d4e83bb0c5cf366d416323350ce2664d9e1878dfcdc31bfef1726c50",
- "dest-filename": "yargs-13.3.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd",
- "sha512": "017dd9c3988faee37989eeb119120382a913f9986746564c2cc1c0b3cb60ee746bbb2d8d6fe8b9a3d6f082102882d334f2ad5da6bd8b5684bc2924cc62959753",
- "dest-filename": "yargs-13.3.2.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1",
- "sha256": "e9bd679ff3bdfd44206e4922cfad37a32eff796a201e814aa2da13ecb54fc37c",
- "dest-filename": "yargs-3.10.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a",
- "sha256": "ec50aa2490fecb729aa3be179221c11042aa2ae7106cdd1d3c336d38968f6da4",
- "dest-filename": "yn-2.0.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "file",
- "url": "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b",
- "sha512": "ad592cbec9cd09d27fa2119ceb180fc3237c7a1782c6c88b33c9b1b84fedfe6395a897b03ee3b59a22e94c74224604ca08b7b12f831e00555a82db3b1e6359d9",
- "dest-filename": "yocto-queue-0.1.0.tgz",
- "dest": "flatpak-node/yarn-mirror"
- },
- {
- "type": "git",
- "url": "git+ssh://git@github.com/bitfocus/node-dns-js.git",
- "commit": "e5f0c3da63653398005bf36f66ad0b77770dcad6",
- "dest": "flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6"
- },
- {
- "type": "git",
- "url": "git+ssh://git@github.com/bitfocus/node-mdns-js.git",
- "commit": "1af6b83ce91e5538012f977e1dcadbda5dc0d3b5",
- "dest": "flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5"
- },
- {
- "type": "git",
- "url": "git+ssh://git@github.com/castlabs/electron-releases.git",
- "commit": "199a1451fd1ee8c53133e9f0f5dc4dd094475bd8",
- "dest": "flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8"
- },
- {
- "type": "inline",
- "contents": "9",
- "dest-filename": "installVersion",
- "dest": "flatpak-node/cache/node-gyp/17.0.0"
- },
- {
- "type": "inline",
- "contents": "flatpak-node-cache",
- "dest-filename": "INSTALLATION_COMPLETE",
- "dest": "flatpak-node/cache/ms-playwright/chromium-956323"
- },
- {
- "type": "inline",
- "contents": "flatpak-node-cache",
- "dest-filename": "INSTALLATION_COMPLETE",
- "dest": "flatpak-node/cache/ms-playwright/ffmpeg-1007"
- },
- {
- "type": "inline",
- "contents": "flatpak-node-cache",
- "dest-filename": "INSTALLATION_COMPLETE",
- "dest": "flatpak-node/cache/ms-playwright/firefox-1313"
- },
- {
- "type": "inline",
- "contents": "flatpak-node-cache",
- "dest-filename": "INSTALLATION_COMPLETE",
- "dest": "flatpak-node/cache/ms-playwright/webkit-1596"
- },
- {
- "type": "script",
- "commands": [
- "case \"$FLATPAK_ARCH\" in",
- "\"i386\")",
- " export ELECTRON_BUILDER_ARCH_ARGS=\"--ia32\"",
- " ;;",
- "\"x86_64\")",
- " export ELECTRON_BUILDER_ARCH_ARGS=\"--x64\"",
- " ;;",
- "\"arm\")",
- " export ELECTRON_BUILDER_ARCH_ARGS=\"--armv7l\"",
- " ;;",
- "\"aarch64\")",
- " export ELECTRON_BUILDER_ARCH_ARGS=\"--arm64\"",
- " ;;",
- "esac"
- ],
- "dest-filename": "electron-builder-arch-args.sh",
- "dest": "flatpak-node"
- },
- {
- "type": "script",
- "commands": [
- "version=$(node --version | sed \"s/^v//\")",
- "nodedir=$(dirname \"$(dirname \"$(which node)\")\")",
- "mkdir -p \"flatpak-node/cache/node-gyp/$version\"",
- "ln -s \"$nodedir/include\" \"flatpak-node/cache/node-gyp/$version/include\"",
- "echo 9 > \"flatpak-node/cache/node-gyp/$version/installVersion\""
- ],
- "dest-filename": "setup_sdk_node_headers.sh",
- "dest": "flatpak-node"
- },
- {
- "type": "shell",
- "commands": [
- "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD",
- "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD",
- "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD",
- "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD",
- "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD",
- "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD",
- "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD",
- "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD",
- "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD",
- "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD",
- "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD",
- "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD",
- "bash flatpak-node/setup_sdk_node_headers.sh"
- ]
- },
- {
- "type": "shell",
- "commands": [
- "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-arm64.zip\"",
- "ln -s \"../electron-v17.0.0-linux-arm64.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-arm64.zip/electron-v17.0.0-linux-arm64.zip\"",
- "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"",
- "ln -s \"../electron-v17.0.0-linux-arm64.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-arm64.zip\""
- ],
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "aarch64"
- ]
- },
- {
- "type": "shell",
- "commands": [
- "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-armv7l.zip\"",
- "ln -s \"../electron-v17.0.0-linux-armv7l.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-armv7l.zip/electron-v17.0.0-linux-armv7l.zip\"",
- "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"",
- "ln -s \"../electron-v17.0.0-linux-armv7l.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-armv7l.zip\""
- ],
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "arm"
- ]
- },
- {
- "type": "shell",
- "commands": [
- "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-ia32.zip\"",
- "ln -s \"../electron-v17.0.0-linux-ia32.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-ia32.zip/electron-v17.0.0-linux-ia32.zip\"",
- "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"",
- "ln -s \"../electron-v17.0.0-linux-ia32.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-ia32.zip\""
- ],
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "i386"
- ]
- },
- {
- "type": "shell",
- "commands": [
- "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-x64.zip\"",
- "ln -s \"../electron-v17.0.0-linux-x64.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-x64.zip/electron-v17.0.0-linux-x64.zip\"",
- "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"",
- "ln -s \"../electron-v17.0.0-linux-x64.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-x64.zip\""
- ],
- "dest": "flatpak-node/cache/electron",
- "only-arches": [
- "x86_64"
- ]
- }
-]
\ No newline at end of file
diff --git a/flatpak/org.cidercollective.cider.yml b/flatpak/org.cidercollective.cider.yml
index 115af1ec..3a604b64 100644
--- a/flatpak/org.cidercollective.cider.yml
+++ b/flatpak/org.cidercollective.cider.yml
@@ -1,86 +1,67 @@
app-id: org.cidercollective.cider
-branch: main
runtime: org.freedesktop.Platform
runtime-version: '21.08'
sdk: org.freedesktop.Sdk
-# Use the Electron 2 BaseApp, which adds several common libraries we'll need.
base: org.electronjs.Electron2.BaseApp
base-version: '21.08'
-# Add the Node 10 SDK extension.
-sdk-extensions:
- - org.freedesktop.Sdk.Extension.node14
-# Electron doesn't use a traditional locale format so separate-locales is useless.
-separate-locales: false
command: cider
+rename-desktop-file: cider.desktop
+rename-icon: cider
finish-args:
- # These two lines add Xorg access for graphics.
- - '--share=ipc'
- - '--socket=x11'
- # Sound access.
- - '--socket=pulseaudio'
- # Network access.
- - '--share=network'
- # If you need to access the filesystem, also add:
- # - '--filesystem=home'
+ - --device=dri
+ - --filesystem=xdg-music
+ - --own-name=org.mpris.MediaPlayer2.Cider
+ - --share=ipc
+ - --share=network
+ - --socket=pulseaudio
+ # needs electron v11 (chromium v87) or newer with ozone enabled
+ # https://github.com/electron/electron/issues/10915
+ # - --socket=wayland
+ - --socket=x11
+ - --system-talk-name=org.freedesktop.UPower
+ - --talk-name=com.canonical.AppMenu.Registrar
+ - --talk-name=com.canonical.dbusmenu
+ - --talk-name=org.freedesktop.Notifications
+ - --talk-name=org.kde.StatusNotifierWatcher
modules:
- # With electron-webpack and electron-builder we don't install Node to /app/node,
- # because electron-builder will bundle everything for us in one piece.
- # Instead we jump straight to the quick start module.
-
- # However, since this quick start uses yarn, we do have to install that.
- - name: yarn
- buildsystem: simple
- build-commands:
- - 'cp -a * /app'
- # Only used for building, so clean it up afterwards.
- cleanup:
- - '*'
- sources:
- - type: archive
- url: https://github.com/yarnpkg/yarn/releases/download/v1.22.17/yarn-v1.22.17.tar.gz
- sha256: 267982c61119a055ba2b23d9cf90b02d3d16c202c03cb0c3a53b9633eae37249
-
- name: cider
buildsystem: simple
- build-options:
- # Add the node bin directory & yarn directory.
- append-path: '/usr/lib/sdk/node14/bin:/app/yarn/bin'
- env:
- # Set the Electron cache directory.
- # (The directory format is: /run/build/MODULE_NAME/flatpak-node/electron-cache)
- ELECTRON_CACHE: '/run/build/cider/flatpak-node/electron-cache'
- XDG_CACHE_HOME: /run/build/cider/flatpak-node/cache
- # Sets the directory where Node is located so way npm won't download the headers.
- npm_config_nodedir: 'flatpak-node/node-gyp/electron-current'
build-commands:
- # Have Yarn use the offline mirror.
- - 'HOME=$PWD yarn config --offline set yarn-offline-mirror $FLATPAK_BUILDER_BUILDDIR/flatpak-node/yarn-mirror'
- # Download the packages
- - 'cp cider-yarn.lock yarn.lock'
- - 'yarn install --offline'
- # If you were using npm with electron-webpack/electron-builder, then the above two commands
- # would look more like the npm commands in the vanilla-quick-start manifest, just without
- # the --prefix.
-
- # Run electron-builder, passing the architecture arguments to it.
- # Note that the -- is important; without that, the argument will be passed to
- # yarn instead of electron-builder.
- - '. flatpak-node/electron-builder-arch-args.sh; yarn run --offline electron-builder build --linux dir -- $ELECTRON_BUILDER_ARCH_ARGS'
- # Copy the resulting, unpacked directory to /app.
- # (A glob is used because the directory name may contain the current arch.)
- - 'cp -r dist/linux*unpacked /app/cider'
- # If you passed --electron-non-patented-ffmpeg, you could install it like this:
- # - 'install -Dm 755 flatpak-node/libffmpeg.so -t /app/electron-webpack-quick-start'
- # Install the wrapper script to start it.
- - 'install -Dm 755 cider.sh /app/bin/cider'
+ - install -dm755 ${FLATPAK_DEST}/cider
+ - |
+ bsdtar -Oxf cider.deb 'data.tar*' |
+ bsdtar -xf - \
+ -C ${FLATPAK_DEST}/cider \
+ --strip-components=3 \
+ ./opt/Cider
+ - |
+ bsdtar -Oxf cider.deb 'data.tar*' |
+ bsdtar -xf - \
+ -C ${FLATPAK_DEST} \
+ --strip-components=2 \
+ --exclude=./usr/share/doc \
+ ./usr/share
+ - desktop-file-edit --set-key=Exec --set-value=cider ${FLATPAK_DEST}/share/applications/cider.desktop
+ - install -Dm755 stub_sandbox ${FLATPAK_DEST}/cider/chrome-sandbox
+ - install -Dm755 cider -t ${FLATPAK_DEST}/bin/
sources:
- - type: git
- url: https://github.com/ciderapp/cider
- branch: develop
- # Add the flatpak-node-generator generated sources.
- - generated-sources.json
- # Our runner script.
+ - type: file
+ dest-filename: cider.deb
+ url: https://1308-429851205-gh.circle-artifacts.com/0/~/Cider/dist/artifacts/cider_1.3.1308_amd64.deb
+ sha256: 342abde96bac9668e7238860ba435171edd72077ed9f4b385a3546c4d8f96995
+ x-checker-data:
+ type: html
+ url: https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=main&filter=successful
+ pattern: (https://.*circle-artifacts.com/.+/cider_([\d\.]+)_amd64.deb)
- type: script
- dest-filename: cider.sh
+ dest-filename: cider
commands:
- - '/app/cider/cider'
+ # share chromium singleton between multiple session, needed for flatpak<1.11.1
+ - export TMPDIR=$XDG_RUNTIME_DIR/app/$FLATPAK_ID
+ - exec zypak-wrapper /app/cider/cider "$@"
+ - type: script
+ dest-filename: stub_sandbox
+ commands:
+ - |
+ echo Stub sandbox ignoring command: $@
+ exit 1
diff --git a/license.txt b/license.txt
new file mode 100644
index 00000000..0ad25db4
--- /dev/null
+++ b/license.txt
@@ -0,0 +1,661 @@
+ 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/package.json b/package.json
index 657f87ec..3dbf52fc 100644
--- a/package.json
+++ b/package.json
@@ -2,12 +2,12 @@
"name": "cider",
"applicationId": "Cider",
"productName": "Cider",
- "version": "1.1.0",
+ "version": "1.3.0",
"description": "A new look into listening and enjoying music in style and performance.",
"license": "AGPL-3.0",
"main": "./build/index.js",
"author": "Cider Collective (https://cider.sh)",
- "repository": "https://github.com/ciderapp/Cider.git",
+ "repository": "github:ciderapp/Cider",
"bugs": {
"url": "https://github.com/ciderapp/Cider/issues?q=is%3Aopen+is%3Aissue+label%3Abug"
},
@@ -16,62 +16,71 @@
"scripts": {
"build": "tsc",
"watch": "tsc --watch",
- "test": "yarn build && playwright test",
"start": "run-script-os",
"start:win32": "yarn build && set ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
"start:linux": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
"start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
+ "start-renderer": "run-script-os",
+ "start-renderer:win32": "set ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
+ "start-renderer:linux": "ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
+ "start-renderer:darwin": "ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
"pack": "electron-builder --dir",
"dist": "yarn build && electron-builder",
- "dist:mac": "yarn build && electron-builder --mac --universal",
+ "dist:macarm": "yarn build && electron-builder --mac --arm64",
+ "dist:universalNotWorking": "yarn build && electron-builder --mac --universal",
"dist:all": "yarn build && electron-builder -mwl",
+ "winget": "yarn build && electron-builder --win -c winget.json",
"msft": "yarn build && electron-builder -c msft-package.json",
"postinstall": "electron-builder install-app-deps",
- "circle:append-bid": "node resources/appendCommitToVersion"
+ "circle:script": "node resources/circle"
},
"dependencies": {
- "@sentry/electron": "^2.5.4",
- "@sentry/integrations": "^6.17.4",
+ "@sentry/electron": "^3.0.2",
+ "@sentry/integrations": "^6.18.1",
+ "adm-zip": "0.4.10",
+ "castv2-client": "^1.2.0",
+ "chokidar": "^3.5.3",
"discord-rpc": "^4.0.1",
"ejs": "^3.1.6",
"electron-fetch": "^1.7.4",
- "electron-log": "^4.4.5",
+ "electron-log": "^4.4.6",
"electron-notarize": "^1.1.1",
"electron-store": "^8.0.1",
- "electron-updater": "^4.6.1",
+ "electron-updater": "^4.6.5",
"electron-window-state": "^5.0.3",
- "express": "^4.17.2",
+ "express": "^4.17.3",
"get-port": "^5.1.1",
"jsonc": "^2.0.0",
"lastfmapi": "^0.1.1",
- "mdns-js": "git+https://github.com/bitfocus/node-mdns-js.git",
+ "mdns-js": "git+https://github.com/ciderapp/node-mdns-js.git",
"mpris-service": "^2.1.2",
- "music-metadata": "^7.11.4",
+ "music-metadata": "^7.12.1",
"node-gyp": "^8.4.1",
+ "node-ssdp": "^4.0.1",
"qrcode": "^1.5.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"run-script-os": "^1.1.6",
"source-map-support": "^0.5.21",
- "typescript": "^4.5.5",
"v8-compile-cache": "^2.3.0",
- "ws": "^8.4.2",
+ "wallpaper": "5.0.1",
+ "ws": "^8.5.0",
"xml2js": "^0.4.23",
"youtube-search-without-api-key": "^1.0.7"
},
"devDependencies": {
- "@playwright/test": "^1.18.1",
- "@types/discord-rpc": "^4.0.0",
+ "@types/discord-rpc": "4.0.0",
"@types/express": "^4.17.13",
"@types/qrcode-terminal": "^0.12.0",
- "@types/ws": "^8.2.2",
+ "@types/ws": "^8.5.1",
"electron": "git+https://github.com/castlabs/electron-releases.git",
- "electron-builder": "^22.14.5",
+ "electron-builder": "^22.14.13",
+ "electron-builder-notarize-pkg": "^1.2.0",
"electron-webpack": "^2.8.2",
"musickit-typescript": "^1.2.4",
- "playwright": "^1.18.1",
+ "typescript": "^4.6.2",
"vue-devtools": "^5.1.4",
- "webpack": "~5.65.0"
+ "webpack": "~5.69.1"
},
"fileAssociations": [
{
@@ -147,7 +156,31 @@
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"license": "LICENSE",
- "deleteAppDataOnUninstall": true
+ "deleteAppDataOnUninstall": true,
+ "artifactName": "${productName}-Setup-${version}.${ext}"
+ },
+ "pkg": {
+ "installLocation": "/Applications",
+ "background": {
+ "file": "./resources/bg.png",
+ "alignment": "bottomleft",
+ "scaling": "tofit"
+ },
+ "allowAnywhere": true,
+ "allowCurrentUserHome": true,
+ "allowRootDirectory": true,
+ "license": "./resources/license.txt",
+ "isVersionChecked": false,
+ "isRelocatable": false,
+ "overwriteAction": "upgrade"
+ },
+ "dmg": {
+ "background": "./resources/bg.png",
+ "icon": "resources/icons/icon.ico"
+ },
+ "mas": {
+ "entitlements": "./resources/entitlements.mac.plist",
+ "entitlementsInherit": "./resources/entitlements.mac.plist"
},
"win": {
"target": [
@@ -170,7 +203,6 @@
"target": [
"dmg"
]
- },
- "artifactName": "${productName}.${ext}"
+ }
}
}
diff --git a/resources/afterPack.js b/resources/afterPack.js
index 6c677c49..55dcbc91 100644
--- a/resources/afterPack.js
+++ b/resources/afterPack.js
@@ -1,18 +1,31 @@
exports.default = function(context) {
const { execSync } = require('child_process')
+ const fs = require('fs')
if (process.platform !== 'darwin')
return
-
+
+ if (fs.existsSync('dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig'))
+ fs.unlinkSync('dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig')
+ if (fs.existsSync('dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig'))
+ fs.unlinkSync('dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig')
console.log('Castlabs-evs update start')
execSync('python3 -m pip install --upgrade castlabs-evs')
console.log('Castlabs-evs update complete')
-
+ // xcode 13
+ if (fs.existsSync('dist/mac-universal--x64') && fs.existsSync('dist/mac-universal--arm64'))
+ execSync("cp 'dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib' 'dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib'",{stdio: 'inherit'})
console.log('VMP signing start')
-
+ if (fs.existsSync('dist/mac-universal'))
+ execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-universal',{stdio: 'inherit'})
+ if (fs.existsSync('dist/mac'))
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'})
+ if (fs.existsSync('dist/mac-arm64'))
+ execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-arm64 -z',{stdio: 'inherit'})
+ if (fs.existsSync('dist/mac-x64'))
+ execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-x64',{stdio: 'inherit'})
console.log('VMP signing complete')
}
\ No newline at end of file
diff --git a/resources/appendCommitToVersion.js b/resources/appendCommitToVersion.js
deleted file mode 100644
index ef40f330..00000000
--- a/resources/appendCommitToVersion.js
+++ /dev/null
@@ -1,21 +0,0 @@
-if (!process.env['CIRCLECI']) {
- console.log(`[CIRCLECI SCRIPT] CircleCI not found... Aborting script`)
- return
-}
-
-let fs = require('fs')
-
-var data = fs.readFileSync('package.json');
-var package = JSON.parse(data);
-
-pvers = package.version.match(/\d+\./g)
-
-// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables
-package.version = `${pvers[0]}${pvers[1]}${process.env['CIRCLE_BUILD_NUM']}`
-
-
-fs.writeFile('package.json', JSON.stringify(package), err => {
- // error checking
- if(err) throw err;
- console.log("VERSION CHANGED");
-});
diff --git a/resources/bg.png b/resources/bg.png
new file mode 100644
index 00000000..049f0b16
Binary files /dev/null and b/resources/bg.png differ
diff --git a/resources/circle.js b/resources/circle.js
new file mode 100644
index 00000000..dcf1d0ef
--- /dev/null
+++ b/resources/circle.js
@@ -0,0 +1,53 @@
+
+
+if (!process.env['CIRCLECI']) {
+ console.log(`[CIRCLECI SCRIPT] CircleCI not found... Aborting script`)
+ return
+}
+
+let fs = require('fs')
+
+
+var data = fs.readFileSync('package.json');
+var package = JSON.parse(data);
+
+
+
+let channel;
+if (process.env['CIRCLE_BRANCH'] === 'lts') {
+ channel = 'latest'
+} else if (process.env['CIRCLE_BRANCH'] === 'main') {
+ channel = 'beta'
+} else if (process.env['CIRCLE_BRANCH'] === 'develop') {
+ channel = 'alpha'
+} else {
+ channel = process.env['CIRCLE_BRANCH'] // It won't have auto update support
+}
+
+
+
+// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables
+var pvers = package.version.split('.')
+package.version = `${pvers[0]}.${pvers[1]}.${pvers[2]}-${channel}.${process.env['CIRCLE_BUILD_NUM']}`
+// package.build.channel = channel
+package.publish = {
+ "provider": "github",
+ "repo": "cider-releases",
+ "owner": "ciderapp",
+ "vPrefixedTagName": true,
+ "tag": `v${package.version}`,
+ "channel": channel,
+ "releaseType": "release"
+}
+
+let {exec} = require('child_process')
+exec('echo $APP_VERSION', {env: {'APP_VERSION': package.version}}, function (error, stdout, stderr)
+{
+ console.log(stdout, stderr, error);
+});
+fs.writeFile('package.json', JSON.stringify(package), err => {
+ // error checking
+ if(err) throw err;
+ console.log(`VERSION CHANGED TO ${package.version}`);
+});
+
diff --git a/resources/icons/icon.icns b/resources/icons/icon.icns
index 2325c333..4276a463 100644
Binary files a/resources/icons/icon.icns and b/resources/icons/icon.icns differ
diff --git a/resources/license.json b/resources/license.json
new file mode 100644
index 00000000..8274931d
--- /dev/null
+++ b/resources/license.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://github.com/argv-minus-one/dmg-license/raw/master/schema.json",
+ "body": [
+ {
+ "file": "license.txt",
+ "lang": ["en-US"]
+ }
+ ]
+
+
+}
\ No newline at end of file
diff --git a/resources/license.txt b/resources/license.txt
new file mode 100644
index 00000000..0ad25db4
--- /dev/null
+++ b/resources/license.txt
@@ -0,0 +1,661 @@
+ 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/resources/macPackager.js b/resources/macPackager.js
new file mode 100644
index 00000000..24d56d81
--- /dev/null
+++ b/resources/macPackager.js
@@ -0,0 +1,399 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const bluebird_lst_1 = require("bluebird-lst");
+const builder_util_1 = require("builder-util");
+const electron_osx_sign_1 = require("electron-osx-sign");
+const promises_1 = require("fs/promises");
+const lazy_val_1 = require("lazy-val");
+const path = require("path");
+const fs_1 = require("builder-util/out/fs");
+const promise_1 = require("builder-util/out/promise");
+const appInfo_1 = require("./appInfo");
+const macCodeSign_1 = require("./codeSign/macCodeSign");
+const core_1 = require("./core");
+const platformPackager_1 = require("./platformPackager");
+const ArchiveTarget_1 = require("./targets/ArchiveTarget");
+const pkg_1 = require("./targets/pkg");
+const targetFactory_1 = require("./targets/targetFactory");
+const macosVersion_1 = require("./util/macosVersion");
+const pathManager_1 = require("./util/pathManager");
+const fs = require("fs/promises");
+class MacPackager extends platformPackager_1.PlatformPackager {
+ constructor(info) {
+ super(info, core_1.Platform.MAC);
+ this.codeSigningInfo = new lazy_val_1.Lazy(() => {
+ const cscLink = this.getCscLink();
+ if (cscLink == null || process.platform !== "darwin") {
+ return Promise.resolve({ keychainFile: process.env.CSC_KEYCHAIN || null });
+ }
+ return macCodeSign_1.createKeychain({
+ tmpDir: this.info.tempDirManager,
+ cscLink,
+ cscKeyPassword: this.getCscPassword(),
+ cscILink: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerLink, process.env.CSC_INSTALLER_LINK),
+ cscIKeyPassword: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerKeyPassword, process.env.CSC_INSTALLER_KEY_PASSWORD),
+ currentDir: this.projectDir,
+ }).then(result => {
+ const keychainFile = result.keychainFile;
+ if (keychainFile != null) {
+ this.info.disposeOnBuildFinish(() => macCodeSign_1.removeKeychain(keychainFile));
+ }
+ return result;
+ });
+ });
+ this._iconPath = new lazy_val_1.Lazy(() => this.getOrConvertIcon("icns"));
+ }
+ get defaultTarget() {
+ return this.info.framework.macOsDefaultTargets;
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ prepareAppInfo(appInfo) {
+ return new appInfo_1.AppInfo(this.info, this.platformSpecificBuildOptions.bundleVersion, this.platformSpecificBuildOptions);
+ }
+ async getIconPath() {
+ return this._iconPath.value;
+ }
+ createTargets(targets, mapper) {
+ for (const name of targets) {
+ switch (name) {
+ case core_1.DIR_TARGET:
+ break;
+ case "dmg": {
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
+ const { DmgTarget } = require("dmg-builder");
+ mapper(name, outDir => new DmgTarget(this, outDir));
+ break;
+ }
+ case "zip":
+ // https://github.com/electron-userland/electron-builder/issues/2313
+ mapper(name, outDir => new ArchiveTarget_1.ArchiveTarget(name, outDir, this, true));
+ break;
+ case "pkg":
+ mapper(name, outDir => new pkg_1.PkgTarget(this, outDir));
+ break;
+ default:
+ mapper(name, outDir => (name === "mas" || name === "mas-dev" ? new targetFactory_1.NoOpTarget(name) : targetFactory_1.createCommonTarget(name, outDir, this)));
+ break;
+ }
+ }
+ }
+ async doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets) {
+ switch (arch) {
+ default: {
+ return super.doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets);
+ }
+ case builder_util_1.Arch.universal: {
+ const x64Arch = builder_util_1.Arch.x64;
+ const x64AppOutDir = appOutDir + "--" + builder_util_1.Arch[x64Arch];
+ await super.doPack(outDir, x64AppOutDir, platformName, x64Arch, platformSpecificBuildOptions, targets, false, true);
+ const arm64Arch = builder_util_1.Arch.arm64;
+ const arm64AppOutPath = appOutDir + "--" + builder_util_1.Arch[arm64Arch];
+ await super.doPack(outDir, arm64AppOutPath, platformName, arm64Arch, platformSpecificBuildOptions, targets, false, true);
+ const framework = this.info.framework;
+ builder_util_1.log.info({
+ platform: platformName,
+ arch: builder_util_1.Arch[arch],
+ [`${framework.name}`]: framework.version,
+ appOutDir: builder_util_1.log.filePath(appOutDir),
+ }, `packaging`);
+ const appFile = `${this.appInfo.productFilename}.app`;
+ const { makeUniversalApp } = require("@electron/universal");
+ await makeUniversalApp({
+ x64AppPath: path.join(x64AppOutDir, appFile),
+ arm64AppPath: path.join(arm64AppOutPath, appFile),
+ outAppPath: path.join(appOutDir, appFile),
+ force: true,
+ });
+ await fs.rm(x64AppOutDir, { recursive: true, force: true });
+ await fs.rm(arm64AppOutPath, { recursive: true, force: true });
+ const packContext = {
+ appOutDir,
+ outDir,
+ arch,
+ targets,
+ packager: this,
+ electronPlatformName: platformName,
+ }
+ await this.info.afterPack(packContext)
+ if (framework.afterPack != null) {
+ await framework.afterPack(packContext)
+ }
+ await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets);
+ break;
+ }
+ }
+ }
+ async pack(outDir, arch, targets, taskManager) {
+ let nonMasPromise = null;
+ const hasMas = targets.length !== 0 && targets.some(it => it.name === "mas" || it.name === "mas-dev");
+ const prepackaged = this.packagerOptions.prepackaged;
+ if (!hasMas || targets.length > 1) {
+ const appPath = prepackaged == null ? path.join(this.computeAppOutDir(outDir, arch), `${this.appInfo.productFilename}.app`) : prepackaged;
+ nonMasPromise = (prepackaged
+ ? Promise.resolve()
+ : this.doPack(outDir, path.dirname(appPath), this.platform.nodeName, arch, this.platformSpecificBuildOptions, targets)).then(() => this.packageInDistributableFormat(appPath, arch, targets, taskManager));
+ }
+ for (const target of targets) {
+ const targetName = target.name;
+ if (!(targetName === "mas" || targetName === "mas-dev")) {
+ continue;
+ }
+ const masBuildOptions = builder_util_1.deepAssign({}, this.platformSpecificBuildOptions, this.config.mas);
+ if (targetName === "mas-dev") {
+ builder_util_1.deepAssign(masBuildOptions, this.config.masDev, {
+ type: "development",
+ });
+ }
+ const targetOutDir = path.join(outDir, `${targetName}${builder_util_1.getArchSuffix(arch)}`);
+ if (prepackaged == null) {
+ await this.doPack(outDir, targetOutDir, "mas", arch, masBuildOptions, [target]);
+ await this.sign(path.join(targetOutDir, `${this.appInfo.productFilename}.app`), targetOutDir, masBuildOptions, arch);
+ }
+ else {
+ await this.sign(prepackaged, targetOutDir, masBuildOptions, arch);
+ }
+ }
+ if (nonMasPromise != null) {
+ await nonMasPromise;
+ }
+ }
+ async sign(appPath, outDir, masOptions, arch) {
+ if (!macCodeSign_1.isSignAllowed()) {
+ return;
+ }
+ const isMas = masOptions != null;
+ const options = masOptions == null ? this.platformSpecificBuildOptions : masOptions;
+ const qualifier = options.identity;
+ if (!isMas && qualifier === null) {
+ if (this.forceCodeSigning) {
+ throw new builder_util_1.InvalidConfigurationError("identity explicitly is set to null, but forceCodeSigning is set to true");
+ }
+ builder_util_1.log.info({ reason: "identity explicitly is set to null" }, "skipped macOS code signing");
+ return;
+ }
+ const keychainFile = (await this.codeSigningInfo.value).keychainFile;
+ const explicitType = options.type;
+ const type = explicitType || "distribution";
+ const isDevelopment = type === "development";
+ const certificateTypes = getCertificateTypes(isMas, isDevelopment);
+ let identity = null;
+ for (const certificateType of certificateTypes) {
+ identity = await macCodeSign_1.findIdentity(certificateType, qualifier, keychainFile);
+ if (identity != null) {
+ break;
+ }
+ }
+ if (identity == null) {
+ if (!isMas && !isDevelopment && explicitType !== "distribution") {
+ identity = await macCodeSign_1.findIdentity("Mac Developer", qualifier, keychainFile);
+ if (identity != null) {
+ builder_util_1.log.warn("Mac Developer is used to sign app â it is only for development and testing, not for production");
+ }
+ }
+ if (identity == null) {
+ await macCodeSign_1.reportError(isMas, certificateTypes, qualifier, keychainFile, this.forceCodeSigning);
+ return;
+ }
+ }
+ if (!macosVersion_1.isMacOsHighSierra()) {
+ throw new builder_util_1.InvalidConfigurationError("macOS High Sierra 10.13.6 is required to sign");
+ }
+ let filter = options.signIgnore;
+ if (Array.isArray(filter)) {
+ if (filter.length == 0) {
+ filter = null;
+ }
+ }
+ else if (filter != null) {
+ filter = filter.length === 0 ? null : [filter];
+ }
+ const filterRe = filter == null ? null : filter.map(it => new RegExp(it));
+ let binaries = options.binaries || undefined;
+ if (binaries) {
+ // Accept absolute paths for external binaries, else resolve relative paths from the artifact's app Contents path.
+ const userDefinedBinaries = await Promise.all(binaries.map(async (destination) => {
+ if (await fs_1.statOrNull(destination)) {
+ return destination;
+ }
+ return path.resolve(appPath, destination);
+ }));
+ // Insert at front to prioritize signing. We still sort by depth next
+ binaries = userDefinedBinaries.concat(binaries);
+ builder_util_1.log.info("Signing addtional user-defined binaries: " + JSON.stringify(userDefinedBinaries, null, 1));
+ }
+ const signOptions = {
+ "identity-validation": false,
+ // https://github.com/electron-userland/electron-builder/issues/1699
+ // kext are signed by the chipset manufacturers. You need a special certificate (only available on request) from Apple to be able to sign kext.
+ ignore: (file) => {
+ if (filterRe != null) {
+ for (const regExp of filterRe) {
+ if (regExp.test(file)) {
+ return true;
+ }
+ }
+ }
+ return (file.endsWith(".kext") ||
+ file.startsWith("/Contents/PlugIns", appPath.length) ||
+ file.includes("/node_modules/puppeteer/.local-chromium") ||
+ file.includes("/node_modules/playwright-firefox/.local-browsers") ||
+ file.includes("/node_modules/playwright/.local-browsers"));
+ /* Those are browser automating modules, browser (chromium, nightly) cannot be signed
+ https://github.com/electron-userland/electron-builder/issues/2010
+ https://github.com/electron-userland/electron-builder/issues/5383
+ */
+ },
+ identity: identity,
+ type,
+ platform: isMas ? "mas" : "darwin",
+ version: this.config.electronVersion,
+ app: appPath,
+ keychain: keychainFile || undefined,
+ binaries,
+ timestamp: isMas ? masOptions === null || masOptions === void 0 ? void 0 : masOptions.timestamp : options.timestamp,
+ requirements: isMas || this.platformSpecificBuildOptions.requirements == null ? undefined : await this.getResource(this.platformSpecificBuildOptions.requirements),
+ // https://github.com/electron-userland/electron-osx-sign/issues/196
+ // will fail on 10.14.5+ because a signed but unnotarized app is also rejected.
+ "gatekeeper-assess": options.gatekeeperAssess === true,
+ // https://github.com/electron-userland/electron-builder/issues/1480
+ "strict-verify": options.strictVerify,
+ hardenedRuntime: isMas ? masOptions && masOptions.hardenedRuntime === true : options.hardenedRuntime !== false,
+ };
+ await this.adjustSignOptions(signOptions, masOptions);
+ builder_util_1.log.info({
+ file: builder_util_1.log.filePath(appPath),
+ identityName: identity.name,
+ identityHash: identity.hash,
+ provisioningProfile: signOptions["provisioning-profile"] || "none",
+ }, "signing");
+ await this.doSign(signOptions);
+ // https://github.com/electron-userland/electron-builder/issues/1196#issuecomment-312310209
+ if (masOptions != null && !isDevelopment) {
+ const certType = isDevelopment ? "Mac Developer" : "3rd Party Mac Developer Installer";
+ const masInstallerIdentity = await macCodeSign_1.findIdentity(certType, masOptions.identity, keychainFile);
+ if (masInstallerIdentity == null) {
+ throw new builder_util_1.InvalidConfigurationError(`Cannot find valid "${certType}" identity to sign MAS installer, please see https://electron.build/code-signing`);
+ }
+ // mas uploaded to AppStore, so, use "-" instead of space for name
+ const artifactName = this.expandArtifactNamePattern(masOptions, "pkg", arch);
+ const artifactPath = path.join(outDir, artifactName);
+ await this.doFlat(appPath, artifactPath, masInstallerIdentity, keychainFile);
+ await this.dispatchArtifactCreated(artifactPath, null, builder_util_1.Arch.x64, this.computeSafeArtifactName(artifactName, "pkg", arch, true, this.platformSpecificBuildOptions.defaultArch));
+ }
+ }
+ async adjustSignOptions(signOptions, masOptions) {
+ const resourceList = await this.resourceList;
+ const customSignOptions = masOptions || this.platformSpecificBuildOptions;
+ const entitlementsSuffix = masOptions == null ? "mac" : "mas";
+ let entitlements = customSignOptions.entitlements;
+ if (entitlements == null) {
+ const p = `entitlements.${entitlementsSuffix}.plist`;
+ if (resourceList.includes(p)) {
+ entitlements = path.join(this.info.buildResourcesDir, p);
+ }
+ else {
+ entitlements = pathManager_1.getTemplatePath("entitlements.mac.plist");
+ }
+ }
+ signOptions.entitlements = entitlements;
+ let entitlementsInherit = customSignOptions.entitlementsInherit;
+ if (entitlementsInherit == null) {
+ const p = `entitlements.${entitlementsSuffix}.inherit.plist`;
+ if (resourceList.includes(p)) {
+ entitlementsInherit = path.join(this.info.buildResourcesDir, p);
+ }
+ else {
+ entitlementsInherit = pathManager_1.getTemplatePath("entitlements.mac.plist");
+ }
+ }
+ signOptions["entitlements-inherit"] = entitlementsInherit;
+ if (customSignOptions.provisioningProfile != null) {
+ signOptions["provisioning-profile"] = customSignOptions.provisioningProfile;
+ }
+ signOptions["entitlements-loginhelper"] = customSignOptions.entitlementsLoginHelper;
+ }
+ //noinspection JSMethodCanBeStatic
+ async doSign(opts) {
+ return electron_osx_sign_1.signAsync(opts);
+ }
+ //noinspection JSMethodCanBeStatic
+ async doFlat(appPath, outFile, identity, keychain) {
+ // productbuild doesn't created directory for out file
+ await promises_1.mkdir(path.dirname(outFile), { recursive: true });
+ const args = pkg_1.prepareProductBuildArgs(identity, keychain);
+ args.push("--component", appPath, "/Applications");
+ args.push(outFile);
+ return await builder_util_1.exec("productbuild", args);
+ }
+ getElectronSrcDir(dist) {
+ return path.resolve(this.projectDir, dist, this.info.framework.distMacOsAppName);
+ }
+ getElectronDestinationDir(appOutDir) {
+ return path.join(appOutDir, this.info.framework.distMacOsAppName);
+ }
+ // todo fileAssociations
+ async applyCommonInfo(appPlist, contentsPath) {
+ const appInfo = this.appInfo;
+ const appFilename = appInfo.productFilename;
+ // https://github.com/electron-userland/electron-builder/issues/1278
+ appPlist.CFBundleExecutable = appFilename.endsWith(" Helper") ? appFilename.substring(0, appFilename.length - " Helper".length) : appFilename;
+ const icon = await this.getIconPath();
+ if (icon != null) {
+ const oldIcon = appPlist.CFBundleIconFile;
+ const resourcesPath = path.join(contentsPath, "Resources");
+ if (oldIcon != null) {
+ await fs_1.unlinkIfExists(path.join(resourcesPath, oldIcon));
+ }
+ const iconFileName = "icon.icns";
+ appPlist.CFBundleIconFile = iconFileName;
+ await fs_1.copyFile(icon, path.join(resourcesPath, iconFileName));
+ }
+ appPlist.CFBundleName = appInfo.productName;
+ appPlist.CFBundleDisplayName = appInfo.productName;
+ const minimumSystemVersion = this.platformSpecificBuildOptions.minimumSystemVersion;
+ if (minimumSystemVersion != null) {
+ appPlist.LSMinimumSystemVersion = minimumSystemVersion;
+ }
+ appPlist.CFBundleIdentifier = appInfo.macBundleIdentifier;
+ appPlist.CFBundleShortVersionString = this.platformSpecificBuildOptions.bundleShortVersion || appInfo.version;
+ appPlist.CFBundleVersion = appInfo.buildVersion;
+ builder_util_1.use(this.platformSpecificBuildOptions.category || this.config.category, it => (appPlist.LSApplicationCategoryType = it));
+ appPlist.NSHumanReadableCopyright = appInfo.copyright;
+ if (this.platformSpecificBuildOptions.darkModeSupport) {
+ appPlist.NSRequiresAquaSystemAppearance = false;
+ }
+ const extendInfo = this.platformSpecificBuildOptions.extendInfo;
+ if (extendInfo != null) {
+ Object.assign(appPlist, extendInfo);
+ }
+ }
+ async signApp(packContext, isAsar) {
+ const appFileName = `${this.appInfo.productFilename}.app`;
+ await bluebird_lst_1.default.map(promises_1.readdir(packContext.appOutDir), (file) => {
+ if (file === appFileName) {
+ return this.sign(path.join(packContext.appOutDir, file), null, null, null);
+ }
+ return null;
+ });
+ if (!isAsar) {
+ return;
+ }
+ const outResourcesDir = path.join(packContext.appOutDir, "resources", "app.asar.unpacked");
+ await bluebird_lst_1.default.map(promise_1.orIfFileNotExist(promises_1.readdir(outResourcesDir), []), (file) => {
+ if (file.endsWith(".app")) {
+ return this.sign(path.join(outResourcesDir, file), null, null, null);
+ }
+ else {
+ return null;
+ }
+ });
+ }
+}
+exports.default = MacPackager;
+function getCertificateTypes(isMas, isDevelopment) {
+ if (isDevelopment) {
+ return isMas ? ["Mac Developer", "Apple Development"] : ["Developer ID Application"];
+ }
+ return isMas ? ["Apple Distribution"] : ["Developer ID Application"];
+}
+//# sourceMappingURL=macPackager.js.map
\ No newline at end of file
diff --git a/resources/verror-types b/resources/verror-types
new file mode 100644
index 00000000..07cfb21d
--- /dev/null
+++ b/resources/verror-types
@@ -0,0 +1,77 @@
+// Type definitions for verror 1.10
+// Project: https://github.com/davepacheco/node-verror
+// Definitions by: Sven Reglitzki , Maxime Toumi-M
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+/*
+ * VError([cause], fmt[, arg...]): Like JavaScript's built-in Error class, but
+ * supports a "cause" argument (another error) and a printf-style message. The
+ * cause argument can be null or omitted entirely.
+ *
+ * Examples:
+ *
+ * CODE MESSAGE
+ * new VError('something bad happened') "something bad happened"
+ * new VError('missing file: "%s"', file) "missing file: "/etc/passwd"
+ * with file = '/etc/passwd'
+ * new VError(err, 'open failed') "open failed: file not found"
+ * with err.message = 'file not found'
+ */
+declare class VError extends Error {
+ static VError: typeof VError;
+
+ static cause(err: Error): Error | null;
+ static info(err: Error): VError.Info;
+ static fullStack(err: Error): string;
+ static findCauseByName(err: Error, name: string): Error | null;
+ static hasCauseWithName(err: Error, name: string): boolean;
+ static errorFromList(errors: T[]): null | T | VError.MultiError;
+ static errorForEach(err: Error, func: (err: Error) => void): void;
+
+ //@ts-ignore
+ cause(): Error | undefined;
+ constructor(options: VError.Options | Error, message: string, ...params: any[]);
+ constructor(message?: string, ...params: any[]);
+}
+
+declare namespace VError {
+ interface Info {
+ [key: string]: any;
+ }
+
+ interface Options {
+ cause?: Error | null | undefined;
+ name?: string | undefined;
+ strict?: boolean | undefined;
+ constructorOpt?(...args: any[]): void;
+ info?: Info | undefined;
+ }
+
+ /*
+ * SError is like VError, but stricter about types. You cannot pass "null" or
+ * "undefined" as string arguments to the formatter. Since SError is only a
+ * different function, not really a different class, we don't set
+ * SError.prototype.name.
+ */
+ class SError extends VError {}
+
+ /*
+ * Represents a collection of errors for the purpose of consumers that generally
+ * only deal with one error. Callers can extract the individual errors
+ * contained in this object, but may also just treat it as a normal single
+ * error, in which case a summary message will be printed.
+ */
+ class MultiError extends VError {
+ constructor(errors: Error[]);
+ errors(): Error[];
+ }
+
+ /*
+ * Like JavaScript's built-in Error class, but supports a "cause" argument which
+ * is wrapped, not "folded in" as with VError. Accepts a printf-style message.
+ * The cause argument can be null.
+ */
+ class WError extends VError {}
+}
+
+export = VError;
\ No newline at end of file
diff --git a/src/i18n/README.md b/src/i18n/README.md
index 1f5d47d4..8689d0b4 100644
--- a/src/i18n/README.md
+++ b/src/i18n/README.md
@@ -1,4 +1,4 @@
-# Cider i18n
+# Cider i18n Notices & Changelog
Some notes about Cider's i18n support.
@@ -9,6 +9,26 @@ Some notes about Cider's i18n support.
- Most of the strings in the content area are provided and translated by Apple themselves, and do not need to be translated.
- The language Apple Music uses are dependent on the storefront region.
+# Multiple Plural Forms
+
+Multiple plural forms can be supported as below:
+
+The keys and its meanings are here : https://github.com/prantlf/fast-plural-rules/blob/master/docs/languages.md#supported-languages
+
+For example , English is in Plural rule #1 and has 2 keys ```one``` and ```other```
+
+Russian is in Plural rule #7 (3 forms) : ```one```, ```few``` and ```other```
+
+How it is implemented for English:
+
+```
+ "term.track": {
+ "one" : "track",
+ "other" : "tracks"
+ },
+```
+
+
## Localization Notices
@@ -21,7 +41,7 @@ been modified, the ones not mentioned in the list need modifying.
* `term.sharedPlaylists`: "Shared Playlists" - Added for `en_US`.
* `term.people`: "People" - Added for `en_US`.
-Updated 02/02/2022 17:16 UTC
+Update 02/02/2022 17:16 UTC
* `term.newpreset.name`: Added for `en_US`.
* `term.addedpreset`: Added for `en_US`.
@@ -38,7 +58,7 @@ Updated 02/02/2022 17:16 UTC
* `action.newpreset`: Added for `en_US`.
* `action.deletepreset`: Added for `en_US`.
-Updated 04/02/2022 10:00 UTC
+Update 04/02/2022 10:00 UTC
* `term.history`: Added for `en_US`.
* `action.copy`: Added for `en_US`.
@@ -64,4 +84,116 @@ Update 06/02/2022 10:35 UTC
* `settings.header.audio.quality.high.description`: Added for `en_US`.
* `settings.header.audio.quality.auto`: Removed as default for MusicKit is 256.
* `settings.header.audio.quality.standard`: Replaced `settings.header.audio.quality.low` to match MusicKit naming.
-* `settings.header.audio.quality.standard.description`: Added for `en_US`.
\ No newline at end of file
+* `settings.header.audio.quality.standard.description`: Added for `en_US`.
+
+Update 08/02/2022 10:20 UTC
+
+* `settings.option.general.updateCider`: Added for `en_US`.
+* `settings.option.general.updateCider.branch`: Added for `en_US`.
+* `settings.option.general.updateCider.branch.description`: Added for `en_US`.
+* `settings.option.general.updateCider.branch.main`: Added for `en_US`.
+* `settings.option.general.updateCider.branch.develop`: Added for `en_US`.
+* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength`: Added for `en_US`.
+* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description`: Added for `en_US`.
+* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard`: Added for `en_US`.
+* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive`: Added for `en_US`.
+* `settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility`: Added for `en_US`.
+* `settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility`: Added for `en_US`.
+* `term.requestError`: Added for `en_US`.
+* `term.song.link.generate`: Added for `en_US`.
+
+Update 10/02/2022 05:58 UTC
+
+* `term.sortBy.dateAdded`: Added for `en_US`.
+
+Update 12/02/2022 12:00 UTC
+
+* Added support for multiple plural forms. [Details](#multiple-plural-forms)
+* `term.version`: Added for `en_US`.
+* `settings.option.visual.theme.github.download`: Added for `en_US`.
+* `settings.prompt.visual.theme.github.URL`: Added for `en_US`.
+* `settings.notyf.visual.theme.install.success`: Added for `en_US`.
+* `settings.notyf.visual.theme.install.error`: Added for `en_US`.
+* `term.defaultPresets`: Added for `en_US`.
+* `term.userPresets`: Added for `en_US`.
+
+Update 16/02/2022 21:45 UTC
+
+* `term.audioControls`: Added for `en_US`.
+* `settings.option.audio.volumeStep`: Added for `en_US`.
+* `settings.option.audio.maxVolume`: Added for `en_US`.`
+
+Update 17/02/2022 10:00 UTC
+
++ `settings.header.debug`: Added for `en_US`.
++ `settings.option.debug.copy_log`: Replaces `settings.option.experimental.copy_log`.
++ `settings.option.debug.openAppData`: Added for `en_US`
++ `action.open`: Added for `en_US`
+
+Update 19/2/2022 21:00 UTC
+
+* `term.noVideos`: Added for `en_US`
+* `term.plugin`: Added for `en_US`
+* `term.pluginMenu`: Added for `en_US`
+* `term.replay`: Added for `en_US`
+* `term.uniqueAlbums`: Added for `en_US`
+* `term.uniqueArtists`: Added for `en_US`
+* `term.uniqueSongs`: Added for `en_US`
+* `term.topArtists`: Added for `en_US`
+* `term.listenedTo`: Added for `en_US`
+* `term.times`: Added for `en_US`
+* `term.topAlbums`: Added for `en_US`
+* `term.plays`: Added for `en_US`
+* `term.topGenres`: Added for `en_US`
+* `action.install`: Added for `en_US`
+* `settings.option.general.resumebehavior`: Added for `en_US`
+* `settings.option.general.resumebehavior.description`: Added for `en_US`
+* `settings.option.general.resumebehavior.locally`: Added for `en_US`
+* `settings.option.general.resumebehavior.locally.description`: Added for `en_US`
+* `settings.option.general.resumebehavior.history`: Added for `en_US`
+* `settings.option.general.resumebehavior.history.description`: Added for `en_US`
+* `settings.option.audio.audioLab`: Added for `en_US`
+* `settings.option.audio.audioLab.description`: Added for `en_US`
+* `settings.warn.audioLab.withoutAF`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmth`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmth.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard`: Added for `en_US`
+* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile`: Added for `en_US`
+* `settings.header.visual.theme.github.page`: Added for `en_US`
+* `settings.option.visual.theme.github.explore`: Added for `en_US`
+* `settings.option.visual.theme.github.install.confirm`: Added for `en_US`
+* `settings.option.experimental.unknownPlugin`: Added for `en_US`
+* `settings.option.experimental.unknownPlugin.description`: Added for `en_US`
+
+Update 25/02/2022 15:30 UTC
+
+* `action.moveToTop`: Changed to `Move out of Folder` instead of `Move to top`
+
+Update 27/02/2022 18:30 UTC
+
+* `settings.notyf.updateCider.update-not-available`: Added for `en_US`
+* `settings.notyf.updateCider.update-timeout`: Added for `en_US`
+* `settings.notyf.updateCider.update-downloaded`: Added for `en_US`
+* `settings.notyf.updateCider.update-error`: Added for `en_US`
+
+Update 28/02/2022 13:00 UTC
+
+* `term.time.days`: Added for `en_US`
+* `term.time.day`: Added for `en_US`
+
+Update 10/3/2022 14:00 UTC
+* `settings.header.window`: Added for `en_US`
+* `settings.header.window.description`: Added for `en_US`
+* `settings.option.window.openOnStartup`: Added for `en_US`
+* `settings.option.window.openOnStartup.hidden`: Added for `en_US`
+
+Update 20/3/2022 00:01 UTC
+* `term.creditDesignedBy`: Added for `en_US`
\ No newline at end of file
diff --git a/src/i18n/cz_CZ.json b/src/i18n/cz_CZ.json
new file mode 100644
index 00000000..64c0e9b5
--- /dev/null
+++ b/src/i18n/cz_CZ.json
@@ -0,0 +1,309 @@
+{
+ "i18n.languageName": "ÄeÅĄtina (CZ)",
+ "i18n.languageNameEnglish": "Czech (CZ)",
+ "i18n.category": "main",
+ "i18n.authors": "@matuskoOk",
+ "app.name": "Cider",
+ "date.format": "${d} ${m}, ${y}",
+ "dialog.cancel": "ZruÅĄit",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Aktualizace skladeb v knihovnÄ...",
+ "notification.updatingLibraryAlbums": "Aktualizace alb knihovny...",
+ "notification.updatingLibraryArtists": "Aktualizace umÄlců knihovny...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "ZjistÄte vÃce",
+ "term.accountSettings": "Nastavenà ÃēÄtu",
+ "term.logout": "OdhlÃĄsit se",
+ "term.login": "PÅihlÃĄsit se",
+ "term.about": "About",
+ "term.privateSession": "SoukromÃĄ relace",
+ "term.queue": "Fronta",
+ "term.history": "Historie",
+ "term.search": "VyhledÃĄvÃĄnÃ",
+ "term.library": "Knihovna",
+ "term.listenNow": "Poslouchejte hned",
+ "term.browse": "ProchÃĄzet",
+ "term.radio": "RÃĄdio",
+ "term.recentlyAdded": "NedÃĄvno pÅidanÊ",
+ "term.songs": "PÃsnÄ",
+ "term.albums": "Alba",
+ "term.artists": "UmÄlci",
+ "term.podcasts": "Podcasty",
+ "term.playlists": "Playlists",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "NovÃŊ seznam playlistu",
+ "term.newPlaylistFolder": "NovÃĄ sloÅžka playlistov",
+ "term.createNewPlaylist": "VytvoÅit novÃŊ seznam playlistov",
+ "term.createNewPlaylistFolder": "VytvoÅit novÃŊ seznam playlist sloÅžka",
+ "term.deletePlaylist": "Opravdu chcete tento playlist smazat?",
+ "term.play": "Play",
+ "term.pause": "Pause",
+ "term.previous": "PÅedchozÃ",
+ "term.next": "DalÅĄÃ",
+ "term.shuffle": "ZamÃchat",
+ "term.repeat": "Repeat",
+ "term.volume": "HlasitosÅĨ",
+ "term.mute": "Mute",
+ "term.unmute": "Ztlumit",
+ "term.share": "ZdÃlet",
+ "term.share.success": "ZkopÃrovÃĄno do clipboard",
+ "term.settings": "NastavenÃ",
+ "term.seeAll": "VidÄt vÅĄe",
+ "term.sortBy": "SeÅazeno podle",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "UmÄlec",
+ "term.sortBy.name": "NÃĄzev",
+ "term.sortBy.genre": "ÅŊÃĄnr",
+ "term.sortBy.releaseDate": "Datum vydÃĄnÃ",
+ "term.sortBy.duration": "Doba trvÃĄnÃ",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "VzestupnÄ",
+ "term.sortOrder.descending": "KlesajÃcÃ",
+ "term.viewAs": "Zobrazit jako",
+ "term.viewAs.coverArt": "ObÃĄlka Art",
+ "term.viewAs.list": "Seznam",
+ "term.size": "Velikost",
+ "term.size.normal": "NormÃĄlnÃ",
+ "term.size.compact": "KompaktnÃ",
+ "term.enable": "Zapnout",
+ "term.disable": "Vypnout",
+ "term.enabled": "Zapnuto",
+ "term.disabled": "Vypnuto",
+ "term.connect": "PÅipojit",
+ "term.connecting": "PÅipojovÃĄnÃ",
+ "term.disconnect": "Odpojit",
+ "term.authed": "OvÄÅeno",
+ "term.confirm": "Potvrdit?",
+ "term.more": "VÃce",
+ "term.less": "MÊnÄ",
+ "term.showMore": "Zobrazit vÃce",
+ "term.showLess": "UkaÅž mÊnÄ",
+ "term.topSongs": "NejlepÅĄÃ skladby",
+ "term.latestReleases": "NejnovÄjÅĄÃ verze",
+ "term.time.added": "PÅidanÊ",
+ "term.time.released": "VydÃĄno",
+ "term.time.updated": "AktualizovÃĄno",
+ "term.time.hours": "hodin",
+ "term.time.hour": "hodina",
+ "term.time.minutes": "minut",
+ "term.time.minute": "minuta",
+ "term.time.seconds": "sekundy",
+ "term.time.second": "sekunda",
+ "term.fullscreenView": "Zobrazenà na celou obrazovku",
+ "term.defaultView": "VÃŊchozà zobrazenÃ",
+ "term.audioSettings": "Nastavenà zvuku",
+ "term.clearAll": "Vymazat vÅĄe",
+ "term.recentStations": "NedÃĄvnÊ stanice",
+ "term.language": "Jazyk",
+ "term.funLanguages": "ZÃĄbava",
+ "term.noLyrics": "NaÄÃtÃĄnÃ... / Text nenalezen./ InstrumentÃĄlnÃ.",
+ "term.copyright": "AutorskÃĄ prÃĄva",
+ "term.rightsReserved": "VÅĄechna prÃĄva vyhrazena.",
+ "term.sponsor": "Sponzorujte tento projekt",
+ "term.ciderTeam": "Cider TÃŊm",
+ "term.developer": "VÃŊvojÃĄÅ",
+ "term.socialTeam": "SociÃĄlnà tÃŊm",
+ "term.socials": "Socials",
+ "term.contributors": "PÅispÄvatelÊ",
+ "term.equalizer": "EkvalizÊr",
+ "term.reset": "Resetovat",
+ "term.tracks": "tracks",
+ "term.videos": "Videa",
+ "term.menu": "Menu",
+ "term.check": "Zkontrolovat",
+ "term.aboutArtist": "O {{artistName}}",
+ "term.topResult": "NejlepÅĄÃ vÃŊsledek",
+ "term.sharedPlaylists": "SdÃlenÃŊ Playlists",
+ "term.people": "LidÊ",
+ "term.newpreset.name": "NÃĄzev novÊ pÅedvolby EQ",
+ "term.addedpreset": "PÅidÃĄna pÅedvolba",
+ "term.deletepreset.warn": "Opravdu chcete tuto pÅedvolbu smazat?",
+ "term.deletedpreset": "PÅedvolba byla odstranÄna",
+ "term.musicVideos": "Hudebnà videa",
+ "term.stations": "Stanice",
+ "term.curators": "KurÃĄtoÅi",
+ "term.appleCurators": "Apple Curators",
+ "term.radioShows": "RozhlasovÊ poÅady",
+ "term.recordLabels": "NahrÃĄvacÃ ÅĄtÃtky",
+ "term.videoExtras": "Video Extra",
+ "term.top": "Top",
+ "home.title": "Domů",
+ "home.recentlyPlayed": "NedÃĄvno hranÊ",
+ "home.recentlyAdded": "NedÃĄvno pÅidanÊ",
+ "home.artistsFeed": "VÃĄÅĄ kanÃĄl umÄlců",
+ "home.artistsFeed.noArtist": "Nejprve sledujte nÄkterÊ umÄlce a jejich nejnovÄjÅĄÃ verze budou zde",
+ "home.madeForYou": "UdÄlÃĄno pro tebe",
+ "home.friendsListeningTo": "PÅÃĄtelÊ PoslouchajÃ",
+ "home.followedArtists": "SledovanÊ umÄlce",
+ "error.appleMusicSubRequired": "Apple Music vyÅžaduje pÅedplatnÊ.",
+ "error.connectionError": "DoÅĄlo k problÊmu s pÅipojenÃm k Apple Music.",
+ "error.noResults": "ÅŊÃĄdnÊ vÃŊsledky.",
+ "error.noResults.description": "Zkuste novÊ vyhledÃĄvÃĄnÃ.",
+ "podcast.followOnCider": "Sledujte Na Cider",
+ "podcast.followedOnCider": "Sledujete Na Cider",
+ "podcast.subscribeOnItunes": "PÅedplatit na iTunes",
+ "podcast.subscribedOnItunes": "PÅedplaceno na iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Epizody",
+ "podcast.playEpisode": "PÅehrÃĄt epizodu",
+ "podcast.website": "WebovÃĄ strÃĄnka podcastun ",
+ "action.addToLibrary": "PÅidat do knihovny",
+ "action.addToLibrary.success": "PÅidÃĄno do knihovny",
+ "action.addToLibrary.error": "Chyba pÅi pÅidÃĄvÃĄnà do knihovny",
+ "action.removeFromLibrary": "Odebrat z knihovny",
+ "action.removeFromLibrary.success": "OdebrÃĄno z knihovny",
+ "action.addToQueue": "PÅidat do fronty",
+ "action.addToQueue.success": "PÅidÃĄno do fronty",
+ "action.addToQueue.error": "Chyba pÅi pÅidÃĄvÃĄnà do fronty",
+ "action.removeFromQueue": "Odebrat z fronty",
+ "action.removeFromQueue.success": "OdebrÃĄno z fronty",
+ "action.removeFromQueue.error": "Chyba pÅi odstraÅovÃĄnà z fronty",
+ "action.createPlaylist": "VytvoÅ novÃŊ Playlist",
+ "action.addToPlaylist": "PÅidat do Playlist",
+ "action.removeFromPlaylist": "Odstranit z Playlist",
+ "action.addToFavorites": "PÅidat k oblÃbenÃŊm",
+ "action.follow": "Sledovat",
+ "action.follow.success": "SledujeÅĄ",
+ "action.follow.error": "Chyba sledovÃĄnÃ",
+ "action.unfollow": "PÅestat sledovat",
+ "action.unfollow.success": "NesledovÃĄno",
+ "action.unfollow.error": "Chyba pÅi zruÅĄenà sledovÃĄnÃ",
+ "action.playNext": "Play DalÅĄÃ",
+ "action.playLater": "Play PozdÄji",
+ "action.startRadio": "Start RÃĄdio",
+ "action.goToArtist": "PÅejÃt na UmÄlec",
+ "action.goToAlbum": "PÅejdÄte do alba",
+ "action.moveToTop": "PÅesunout nahoru",
+ "action.share": "SdÃlet",
+ "action.rename": "PÅejmenovat",
+ "action.love": "Milovat",
+ "action.unlove": "Nemilovat",
+ "action.dislike": "Dislike",
+ "action.undoDislike": "Undo dislike",
+ "action.showWebRemoteQR": "Web Remote",
+ "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next",
+ "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later",
+ "action.removeTracks": "Odstranit ${self.selectedItems.length} tracks from queue",
+ "action.import": "ImportovaÅĨ",
+ "action.export": "ExportovaÅĨ",
+ "action.showAlbum": "Zobrazit kompletnà album",
+ "action.tray.minimize": "Minimalizovat do liÅĄty",
+ "action.tray.quit": "PÅestat",
+ "action.tray.show": "UkÃĄzat",
+ "action.update": "Aktualizace",
+ "action.copy": "kopÃrovat",
+ "action.newpreset": "NovÃĄ pÅedvolba...",
+ "action.deletepreset": "Smazat pÅedvolbu",
+ "settings.header.general": "VÅĄeobecnÊ",
+ "settings.header.general.description": "Upravte obecnÃĄ nastavenà pro Cider.",
+ "settings.option.general.language": "Jazyk",
+ "settings.option.general.language.main": "Jazyky",
+ "settings.option.general.language.fun": "ZÃĄbavnÊ jazyky",
+ "settings.option.general.language.unsorted": "NeÅazeno",
+ "settings.option.general.updateCider": "Aktualizujte Cider",
+ "settings.option.general.updateCider.branch": "PoboÄka aktualizace cideru",
+ "settings.option.general.updateCider.branch.description": "Vyberte poboÄku, do kterÊ chcete Cider aktualizovat",
+ "settings.option.general.updateCider.branch.main": "StabilnÃ",
+ "settings.option.general.updateCider.branch.develop": "Rozvoj",
+ "settings.header.audio": "Zvuk",
+ "settings.header.audio.description": "Upravte nastavenà zvuku pro Cider.",
+ "settings.option.audio.quality": "Kvalita zvuku",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "aÅž 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "aÅž 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "VysokÊ",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "Standard",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "PlynulÃŊ pÅechod zvuku",
+ "settings.option.audio.enableAdvancedFunctionality": "Povolit pokroÄilÊ funkce",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Povolenà funkce AudioContext umoÅžnà rozÅĄÃÅenÊ zvukovÊ funkce, jako je normalizace zvuku, ekvalizÊry a vizualizÊry, ale na nÄkterÃŊch systÊmech to můŞe způsobit zadrhÃĄvÃĄnà ve zvukovÃŊch stopÃĄch.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "PsychoakustickÃĄ vylepÅĄenÃ, dÃky nimÅž vÅĄe znà bohatÄji a ÅživÄji.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "SÃla CAP",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ZmÄnà sÃlu zpracovÃĄnà zvuku. (Agresivita můŞe vÊst k neÅžÃĄdoucÃm vÃŊsledkům)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "AgresivnÃ",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizace zvuku",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje ÅĄpiÄkovou hlasitost pro jednotlivÊ stopy a vytvÃĄÅà jednotnÄjÅĄÃ zÃĄÅžitek z poslechu.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Prostorovost zvuku",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ProstorovÄ upravte zvuk a udÄlejte zvuk vÃce 3-rozmÄrnÃŊ (poznÃĄmka: Toto nenà Dolby Atmos)",
+ "settings.header.visual": "VizuÃĄlnÃ",
+ "settings.header.visual.description": "Upravte vizuÃĄlnà nastavenà pro Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Styl pozadà okna",
+ "settings.header.visual.windowBackgroundStyle.none": "ÅŊÃĄdnÃŊ",
+ "settings.header.visual.windowBackgroundStyle.artwork": "UmÄleckÊ dÃlo",
+ "settings.header.visual.windowBackgroundStyle.image": "obraz",
+ "settings.option.visual.animatedArtwork": "AnimovanÊ umÄleckÊ dÃlo",
+ "settings.header.visual.animatedArtwork.always": "VÅždy",
+ "settings.header.visual.animatedArtwork.limited": "Omezeno na strÃĄnky a speciÃĄlnà poloÅžky",
+ "settings.header.visual.animatedArtwork.disable": "ZakÃĄzat vÅĄude",
+ "settings.option.visual.animatedArtworkQuality": "Kvalita animovanÊho umÄleckÊho dÃla",
+ "settings.header.visual.animatedArtworkQuality.low": "NÃzkÃŊ",
+ "settings.header.visual.animatedArtworkQuality.medium": "StÅednÃ",
+ "settings.header.visual.animatedArtworkQuality.high": "VysokÃŊ",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Velmi vysokÃŊ",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊmnÃ",
+ "settings.option.visual.animatedWindowBackground": "AnimovanÊ pozadà okna",
+ "settings.option.visual.hardwareAcceleration": "HardwarovÃĄ akcelerace",
+ "settings.option.visual.hardwareAcceleration.description": "VyÅžaduje opÄtovnÊ spuÅĄtÄnÃ",
+ "settings.header.visual.hardwareAcceleration.default": "VÃŊchozÃ",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "TÊma",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "TemnÃŊ",
+ "settings.option.visual.showPersonalInfo": "Zobrazit osobnà Ãēdaje",
+ "settings.header.lyrics": "Text",
+ "settings.header.lyrics.description": "Upravte nastavenà textů pro Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Povolit texty Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Povolit reÅžim karaoke (pouze Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "PreferovanÃŊ jazyk pÅekladu Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "Povolit texty YouTube pro hudebnà videa",
+ "settings.header.connectivity": "Konektivita",
+ "settings.header.connectivity.description": "Upravte nastavenà pÅipojenà pro Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "OznÃĄmenà o pÅehrÃĄvÃĄnÃ",
+ "settings.header.connectivity.discordRPC.cider": "Zobrazit jako 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Zobrazit jako 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Vymazat Discord Rich Presence on Pause",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Povolit Last.fm Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Odebrat z nÃĄzvu pÃsnÄ vystupujÃcà interprety (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "FiltrovanÃĄ stopa ve smyÄce (Last.fm)",
+ "settings.header.experimental": "ExperimentÃĄlnÃ",
+ "settings.header.experimental.description": "Upravte experimentÃĄlnà nastavenà pro Cider.",
+ "settings.option.experimental.compactUI": "Kompaktnà uÅživatelskÊ rozhranÃ",
+ "settings.option.window.close_button_hide": "TlaÄÃtko ZavÅÃt by mÄlo aplikaci skrÃŊt",
+ "settings.option.experimental.copy_log": "ZkopÃrujte protokoly do clipboard",
+ "settings.option.experimental.inline_playlists": "VloŞenÊ seznamy skladeb a alba",
+ "spatial.notTurnedOn": "ProstorovÃĄ funkce zvuku je zakÃĄzÃĄna. Chcete-li jej pouÅžÃvat, nejprve jej povolte.",
+ "spatial.spatialProperties": "ProstorovÊ vlastnosti",
+ "spatial.width": "Å ÃÅka",
+ "spatial.height": "VÃŊÅĄka",
+ "spatial.depth": "Hloubka",
+ "spatial.gain": "ZÃskat",
+ "spatial.roomMaterials": "MateriÃĄly mÃstnosti",
+ "spatial.roomDimensions": "RozmÄry mÃstnosti",
+ "spatial.roomPositions": "Pozice mÃstnostÃ",
+ "spatial.setDimensions": "Nastavit rozmÄry",
+ "spatial.setPositions": "Nastavenà pozici",
+ "spatial.up": "Nahoru",
+ "spatial.front": "PÅednÃ",
+ "spatial.left": "Vlevo",
+ "spatial.right": "Pravo",
+ "spatial.back": "ZadnÃ",
+ "spatial.down": "Dolů",
+ "spatial.listener": "PosluchaÄ",
+ "spatial.audioSource": "Zdroj zvuku",
+ "settings.header.unfinished": "NedokonÄenÃŊ",
+ "remote.web.title": "Cider Remote",
+ "remote.web.description": "Naskenujte QR kÃŗd a spÃĄrujte svůj telefon s touto instancà Cider",
+ "about.thanks": "VelkÊ podÄkovÃĄnà patÅà tÃŊmu Cider Collective Team a vÅĄem naÅĄim pÅispÄvatelům."
+}
\ No newline at end of file
diff --git a/src/i18n/de_DE.jsonc b/src/i18n/de_DE.json
similarity index 61%
rename from src/i18n/de_DE.jsonc
rename to src/i18n/de_DE.json
index b5ef5017..e1c1a708 100644
--- a/src/i18n/de_DE.jsonc
+++ b/src/i18n/de_DE.json
@@ -1,25 +1,15 @@
-{ // Base File
-
- // i18n Info
- "i18n.languageName": "Deutsch", // name of language in native language
- "i18n.languageNameEnglish": "German", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@motz0815", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "Deutsch",
+ "i18n.languageNameEnglish": "German",
+ "i18n.category": "main",
+ "i18n.authors": "@motz0815 @n0chteil",
"app.name": "Cider",
-
"date.format": "${d}.${m}.${y}",
-
- // Dialogs
"dialog.cancel": "Abbrechen",
"dialog.ok": "OK",
-
- // Notification
"notification.updatingLibrarySongs": "Aktualisiere Songs...",
"notification.updatingLibraryAlbums": "Aktualisiere Alben...",
"notification.updatingLibraryArtists": "Aktualisiere KÃŧnstler...",
- // Terms
"term.appleInc": "Apple Inc.",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
@@ -33,6 +23,7 @@
"term.about": "Ãber",
"term.privateSession": "Private Sitzung",
"term.queue": "Warteschlange",
+ "term.history": "Verlauf",
"term.search": "Suche",
"term.library": "Mediathek",
"term.listenNow": "Jetzt HÃļren",
@@ -45,7 +36,12 @@
"term.podcasts": "Podcasts",
"term.playlists": "Playlists",
"term.playlist": "Playlist",
- "term.play": "Play",
+ "term.newPlaylist": "Neue Playlist",
+ "term.newPlaylistFolder": "Neuer Playlist-Ordner",
+ "term.createNewPlaylist": "Neue Playlist erstellen",
+ "term.createNewPlaylistFolder": "Neuen Playlist-Ordner erstellen",
+ "term.deletePlaylist": "Bist du sicher, dass du diese Playlist lÃļschen willst?",
+ "term.play": "Wiedergabe",
"term.pause": "Pause",
"term.previous": "ZurÃŧck",
"term.next": "Weiter",
@@ -55,6 +51,7 @@
"term.mute": "Stummschalten",
"term.unmute": "Stummschaltung aufheben",
"term.share": "Teilen",
+ "term.share.success": "In die Zwischenablage kopiert",
"term.settings": "Einstellungen",
"term.seeAll": "Alle Sehen",
"term.sortBy": "Sortieren nach",
@@ -64,6 +61,7 @@
"term.sortBy.genre": "Genre",
"term.sortBy.releaseDate": "VerÃļffentlichungsdatum",
"term.sortBy.duration": "Länge",
+ "term.sortBy.dateAdded": "HinzugefÃŧgt am",
"term.sortOrder": "A-Z",
"term.sortOrder.ascending": "Aufsteigend",
"term.sortOrder.descending": "Absteigend",
@@ -81,15 +79,15 @@
"term.connecting": "Verbindet",
"term.disconnect": "Trennen",
"term.authed": "Autorisiert",
- "term.confirm": "Bestätigen ?",
+ "term.confirm": "Bestätigen?",
"term.more": "Mehr",
"term.less": "Weniger",
- "term.showMore": "Zeige mehr",
- "term.showLess": "Zeige weniger",
- "term.topSongs" : "Top Songs",
+ "term.showMore": "Mehr anzeigen",
+ "term.showLess": "Weniger anzeigen",
+ "term.topSongs": "Top Songs",
"term.latestReleases": "Letzte VerÃļffentlichungen",
"term.time.added": "HinzugefÃŧgt",
- "term.time.released": "VerÃļffentlicht",
+ "term.time.released": "VerÃļffentlicht",
"term.time.updated": "Aktualisiert",
"term.time.hours": "Stunden",
"term.time.hour": "Stunde",
@@ -99,27 +97,48 @@
"term.time.second": "Sekunde",
"term.fullscreenView": "Vollbildansicht",
"term.defaultView": "Normale Ansicht",
+ "term.audioSettings": "Audio-Einstellungen",
"term.spacializedAudioSetting": "Räumliches Audio",
"term.clearAll": "Alle lÃļschen",
- "term.recentStations": "Letzte Stationen",
+ "term.recentStations": "Letzte Sender",
"term.language": "Sprache",
"term.funLanguages": "SpaÃ",
- "term.noLyrics": "Lädt... / Liedtext nicht gefunden./ Instrumental.",
+ "term.noLyrics": "Lädt... / Lyrik nicht gefunden./ Instrumental.",
"term.copyright": "Copyright",
- "term.rightsReserved": "All Rights Reserved.",
+ "term.rightsReserved": "Alle Rechte vorbehalten.",
"term.sponsor": "UnterstÃŧtze dieses Projekt",
"term.ciderTeam": "Cider Team",
"term.developer": "Entwickler",
"term.socialTeam": "Social Team",
+ "term.socials": "Soziale Medien",
"term.contributors": "Mithelfer",
"term.equalizer": "Equalizer",
"term.reset": "ZurÃŧcksetzen",
- "term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "Videos",
+ "term.tracks": "Lieder",
+ "term.videos": "Videos",
"term.menu": "MenÃŧ",
- "action.showAlbum": "Zeige ganzes Album",
-
- // Home
+ "term.check": "Nach Updates suchen",
+ "term.aboutArtist": "Ãber {{artistName}}",
+ "term.topResult": "Bestes Ergebnis",
+ "term.sharedPlaylists": "Geteilte Playlists",
+ "term.people": "Personen",
+ "term.newpreset.name": "Neuer EQ-Preset Name",
+ "term.addedpreset": "Preset erstellt",
+ "term.deletepreset.warn": "Bist du sicher, dass du dieses Preset lÃļschen willst?",
+ "term.deletedpreset": "Preset gelÃļscht",
+ "term.defaultPresets": "Standard-Presets",
+ "term.userPresets": "Nutzer-Presets",
+ "term.requestError": "Es gab ein Problem bei der Anfrage.",
+ "term.song.link.generate": "song.link URL wird gesucht...",
+ "term.musicVideos": "Musikvideos",
+ "term.stations": "Radiosender",
+ "term.curators": "Kuratoren",
+ "term.appleCurators": "Apple-Kuratoren",
+ "term.radioShows": "Radiosendungen",
+ "term.recordLabels": "Plattenfirma",
+ "term.videoExtras": "Video-Extras",
+ "term.top": "Beste",
+ "term.version": "Version",
"home.title": "Home",
"home.recentlyPlayed": "Zuletzt gespielt",
"home.recentlyAdded": "Zuletzt hinzugefÃŧgt",
@@ -128,13 +147,10 @@
"home.madeForYou": "FÃŧr dich gemacht",
"home.friendsListeningTo": "Freunde hÃļren",
"home.followedArtists": "Gefolgte KÃŧnstler",
- // Errors
"error.appleMusicSubRequired": "Apple Music benÃļtigt ein Abonnement.",
- "error.connectionError": "Es ist ein Fehler aufgetreten, während sich mit Apple Music verbunden wurde.",
+ "error.connectionError": "Es gab ein Problem beim Verbinden mit Apple Music.",
"error.noResults": "Keine Ergebnisse.",
"error.noResults.description": "Versuche einen anderen Suchbegriff.",
-
- //Podcasts
"podcast.followOnCider": "Folge auf Cider",
"podcast.followedOnCider": "Gefolgt auf Cider",
"podcast.subscribeOnItunes": "Folge auf iTunes",
@@ -143,8 +159,6 @@
"podcast.episodes": "Episoden",
"podcast.playEpisode": "Spiele Episode",
"podcast.website": "Podcast Webseite",
-
- // Actions
"action.addToLibrary": "Zur Mediathek hinzufÃŧgen",
"action.addToLibrary.success": "Zur Mediathek hinzugefÃŧgt",
"action.addToLibrary.error": "Fehler beim HinzufÃŧgen zur Mediathek",
@@ -156,6 +170,7 @@
"action.removeFromQueue": "Aus Warteschlange entfernen",
"action.removeFromQueue.success": "Aus Warteschlange entfernt",
"action.removeFromQueue.error": "Fehler beim Entfernen aus der Warteschlange",
+ "action.createPlaylist": "Neue Playlist erstellen",
"action.addToPlaylist": "Zur Playlist hinzufÃŧgen",
"action.removeFromPlaylist": "Aus Playlist entfernen",
"action.addToFavorites": "Zu Favoriten hinzufÃŧgen",
@@ -183,117 +198,123 @@
"action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange",
"action.import": "Importieren",
"action.export": "Exportieren",
-
- // Settings - General
+ "action.showAlbum": "Ganzes Album anzeigen",
+ "action.tray.minimize": "Zu Tray minimieren",
+ "action.tray.quit": "Beenden",
+ "action.tray.show": "{appName} anzeigen",
+ "action.update": "Update",
+ "action.copy": "Kopieren",
+ "action.newpreset": "Neues Preset",
+ "action.deletepreset": "Preset lÃļschen",
"settings.header.general": "Allgemein",
"settings.header.general.description": "Passe die allgemeinen Einstellungen fÃŧr Cider an.",
"settings.option.general.language": "Sprache",
-
- // Language optgroups
"settings.option.general.language.main": "Sprachen",
"settings.option.general.language.fun": "Lustige Sprachen",
"settings.option.general.language.unsorted": "Unsortiert",
-
- // Settings - Audio
+ "settings.option.general.updateCider": "Cider updaten",
+ "settings.option.general.updateCider.branch": "Update-Branch",
+ "settings.option.general.updateCider.branch.description": "Der Branch, von welchem Cider geupdatet werden soll",
+ "settings.option.general.updateCider.branch.main": "Stabil",
+ "settings.option.general.updateCider.branch.develop": "Entwicklung",
"settings.header.audio": "Audio",
"settings.header.audio.description": "Passe die Audio-Einstellungen fÃŧr Cider an.",
- "settings.option.audio.quality": "Audioqualität", // Dropdown
+ "settings.option.audio.quality": "Audioqualität",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "bis zu 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "bis zu 24-bit/48 kHz",
"settings.header.audio.quality.high": "Hoch",
- "settings.header.audio.quality.low": "Niedrig",
- "settings.header.audio.quality.auto": "Auto",
- "settings.option.audio.seamlessTransition": "Nahtloser AudioÃŧbergang", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität", // Toggle
+ "settings.header.audio.quality.standard": "Standard",
+ "settings.option.audio.seamlessTransition": "Nahtloser AudioÃŧbergang",
+ "settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität",
"settings.option.audio.enableAdvancedFunctionality.description": "Das Aktivieren der erweiterten Funktionalität ermÃļglicht spezielle Features wie Audio-Normalisierung, Equalizer und Visualizer, jedoch kÃļnnte dies auf einigen Systemen zu Aussetzern in der Musik fÃŧhren.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio-Normalisierung", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoakustische Verbesserungen die die Musik lebensechter erscheinen lassen.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP ist nicht mit räumlichem Audio kompatibel. Bitte deaktiviere räumliches Audio zuerst.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP-Stärke",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Ãndert die Stärke der Nachbearbeitung. (Aggressiv kÃļnnte zu ungewÃŧnschten Ãnderungen fÃŧhren)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressiv",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio-Normalisierung",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalisiert die Lautstärke aller Lieder, um die HÃļrerfahrung einheitlicher zu machen.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)",
- // Settings - Visual
- "settings.header.visual": "Visuell",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Räumliches Audio ist nicht mit CAP kompatibel. Bitte deaktiviere CAP zuerst.",
+ "settings.header.visual": "Visuell",
"settings.header.visual.description": "Passe die visuellen Einstellungen fÃŧr Cider an.",
- "settings.option.visual.windowBackgroundStyle": "Fensterhintergrund-Stil", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "Fensterhintergrund-Stil",
"settings.header.visual.windowBackgroundStyle.none": "Keiner",
"settings.header.visual.windowBackgroundStyle.artwork": "Coverbild",
"settings.header.visual.windowBackgroundStyle.image": "Bild",
- "settings.option.visual.animatedArtwork": "Animiertes Coverbild", // Dropdown
+ "settings.option.visual.animatedArtwork": "Animiertes Coverbild",
"settings.header.visual.animatedArtwork.always": "Immer",
"settings.header.visual.animatedArtwork.limited": "Beschränkt auf Seiten und Spezialeinträge",
"settings.header.visual.animatedArtwork.disable": "Ãberall deaktivieren",
- "settings.option.visual.animatedArtworkQuality": "Qualität des Animierten Coverbilds", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "Qualität des Animierten Coverbilds",
"settings.header.visual.animatedArtworkQuality.low": "Niedrig",
"settings.header.visual.animatedArtworkQuality.medium": "Mittel",
"settings.header.visual.animatedArtworkQuality.high": "Hoch",
"settings.header.visual.animatedArtworkQuality.veryHigh": "Sehr hoch",
"settings.header.visual.animatedArtworkQuality.extreme": "Extrem",
- "settings.option.visual.animatedWindowBackground": "Animierter Fensterhintergrund", // Toggle
- "settings.option.visual.hardwareAcceleration": "Hardware-Beschleunigung", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "Animierter Fensterhintergrund",
+ "settings.option.visual.hardwareAcceleration": "Hardware-Beschleunigung",
"settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung",
- "settings.header.visual.hardwareAcceleration.default": "Normal",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "PersÃļnliche Daten anzeigen", // Toggle
-
- // Settings - Lyrics
+ "settings.header.visual.hardwareAcceleration.default": "Normal",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Theme",
+ "settings.option.visual.theme.github.download": "Von GitHub URL installieren",
+ "settings.prompt.visual.theme.github.URL": "Gib die URL des Themes ein, welches du installieren mÃļchtest",
+ "settings.notyf.visual.theme.install.success": "Theme erfolgreich installiert",
+ "settings.notyf.visual.theme.install.error": "Theme-Installation fehlgeschlagen",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Dunkel",
+ "settings.option.visual.showPersonalInfo": "PersÃļnliche Daten anzeigen",
"settings.header.lyrics": "Liedtext",
"settings.header.lyrics.description": "Passe die Liedtext-Einstellungen fÃŧr Cider an.",
- "settings.option.lyrics.enableMusixmatch": "Aktiviere Musixmatch-Liedtexte", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Aktiviere Karaoke-Modus (nur mit Musixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Bevorzugte Sprache fÃŧr Musixmatch-Ãbersetzung", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Aktiviere YouTube-Liedtexte fÃŧr Musikvideos", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Aktiviere Musixmatch-Liedtexte",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Aktiviere Karaoke-Modus (nur mit Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Bevorzugte Sprache fÃŧr Musixmatch-Ãbersetzung",
+ "settings.option.lyrics.enableYoutubeLyrics": "Aktiviere YouTube-Liedtexte fÃŧr Musikvideos",
"settings.header.connectivity": "Konnektivität",
"settings.header.connectivity.description": "Passe die Konnektivitäts-Einstellungen fÃŧr Cider an.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "Zeige als 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "Zeige als 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Leere Discord Rich Presence wenn pausiert", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktiviere LastFM Jetzt spielend",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "Entferne KÃŧnstler-Featuring von Liedtitel (LastFM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtere gelooptes Lied (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen",
+ "settings.header.connectivity.discordRPC.cider": "'Cider' anzeigen",
+ "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' anzeigen",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Leere Discord Rich Presence wenn pausiert",
+ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktiviere LastFM Jetzt spielend",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Entferne KÃŧnstler-Featuring von Liedtitel (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtere gelooptes Lied (LastFM)",
"settings.header.experimental": "Experimentell",
"settings.header.experimental.description": "Passe die experimentellen Einstellungen fÃŧr Cider an.",
- "settings.option.experimental.compactUI": "Kompaktes UI", // Toggle
- "settings.option.experimental.closeButtonBehaviour": "Verhalten der SchlieÃtaste",
- "settings.option.experimental.closeButtonBehaviour.quit": "Cider SchlieÃen",
- "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "In Taskleiste minimieren",
- "settings.option.experimental.closeButtonBehaviour.minimizeTray": "In den Tray minimieren",
- // Refer to term.disabled & term.enabled
-
- // Spatialization Menu
- "spatial.spatialProperties" : "Räumliche Einstellungen",
- "spatial.width" : "Breite",
- "spatial.height" : "HÃļhe",
- "spatial.depth" : "Tiefe",
- "spatial.gain" : "Gain",
- "spatial.roomMaterials" : "Raummaterialien",
- "spatial.roomDimensions" : "Raumabmessungen",
- "spatial.roomPositions" : "Raumpositionen",
- "spatial.setDimensions" : "Setze Abmessungen",
- "spatial.setPositions" : "Setze Positionen",
- "spatial.up" : "Oben",
- "spatial.front" : "Vorne",
- "spatial.left" : "Links",
- "spatial.right" : "Rechts",
- "spatial.back" : "Hinten",
- "spatial.down" : "Unten",
- "spatial.listener" : "HÃļrer*in",
- "spatial.audioSource" : "Audioquelle",
-
- // Settings - Unfinished
- "settings.header.unfinished": "Unfertig",
-
- // Web Remote
+ "settings.option.experimental.compactUI": "Kompaktes UI",
+ "settings.option.window.close_button_hide": "SchlieÃtaste soll die App verbergen",
+ "settings.option.experimental.copy_log": "Kopiere Logs in die Zwischenablage",
+ "settings.option.experimental.inline_playlists": "Inline Playlists und Alben",
+ "spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.",
+ "spatial.spatialProperties": "Räumliche Einstellungen",
+ "spatial.width": "Breite",
+ "spatial.height": "HÃļhe",
+ "spatial.depth": "Tiefe",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Raummaterialien",
+ "spatial.roomDimensions": "Raumabmessungen",
+ "spatial.roomPositions": "Raumpositionen",
+ "spatial.setDimensions": "Setze Abmessungen",
+ "spatial.setPositions": "Setze Positionen",
+ "spatial.up": "Oben",
+ "spatial.front": "Vorne",
+ "spatial.left": "Links",
+ "spatial.right": "Rechts",
+ "spatial.back": "Hinten",
+ "spatial.down": "Unten",
+ "spatial.listener": "HÃļrer*in",
+ "spatial.audioSource": "Audioquelle",
+ "settings.header.unfinished": "Unvollendet",
"remote.web.title": "Cider Remote",
"remote.web.description": "Scanne den QR-Code um dein Handy mit dieser Cider-Instanz zu verbinden",
-
- // About
"about.thanks": "Vielen lieben Dank an das Cider Collective Team und an alle Mithelfer."
-}
+}
\ No newline at end of file
diff --git a/src/i18n/el_GR.jsonc b/src/i18n/el_GR.json
similarity index 56%
rename from src/i18n/el_GR.jsonc
rename to src/i18n/el_GR.json
index ca100520..be52a686 100644
--- a/src/i18n/el_GR.jsonc
+++ b/src/i18n/el_GR.json
@@ -1,299 +1,365 @@
-{
-
- // i18n Info
- "i18n.languageName": "ÎÎģÎģΡÎŊΚÎēÎŦ",
- "i18n.languageNameEnglish": "Greek",
- "i18n.category": "main",
- "i18n.authors": "@down-bad",
-
- // App info
- "app.name": "Cider",
-
- "date.format": "${d} ${m}, ${y}",
-
- // Dialogs
- "dialog.cancel": "ÎÎēĪĪĪĪΡ",
- "dialog.ok": "ÎÎ",
-
- // Notification
- "notification.updatingLibrarySongs": "ÎÎŊΡÎŧÎĪĪĪΡ βΚβÎģΚÎŋθΎÎēÎˇĪ ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ...",
- "notification.updatingLibraryAlbums": "ÎÎŊΡÎŧÎĪĪĪΡ βΚβÎģΚÎŋθΎÎēÎˇĪ ÎŦÎģÎŧĪÎŋĪ
Îŧ...",
- "notification.updatingLibraryArtists": "ÎÎŊΡÎŧÎĪĪĪΡ βΚβÎģΚÎŋθΎÎēÎˇĪ ÎēÎąÎģÎģΚĪÎĩĪÎŊĪÎŊ...",
- // Terms
- "term.appleInc": "Apple Inc.",
- "term.appleMusic": "Apple Music",
- "term.applePodcasts": "Apple Podcasts",
- "term.itunes": "iTunes",
- "term.github": "GitHub",
- "term.discord": "Discord",
- "term.learnMore": "ÎÎŦθÎĩĪÎĩ ĪÎĩĪΚĪĪĪĪÎĩĪÎą",
- "term.accountSettings": "ÎĄĪ
θÎŧίĪÎĩÎšĪ ÎģÎŋÎŗÎąĪΚιĪÎŧÎŋĪ",
- "term.logout": "ÎĪÎŋĪĪÎŊδÎĩĪΡ",
- "term.login": "ÎŖĪÎŊδÎĩĪΡ",
- "term.about": "ÎŖĪÎĩĪΚÎēÎŦ ÎŧÎĩ",
- "term.privateSession": "ÎδΚĪĪΚÎēÎŽ ĪÎĩĪίÎŋδÎŋĪ ÎģÎĩΚĪÎŋĪ
ĪÎŗÎ¯ÎąĪ",
- "term.queue": "ÎĪ
ĪÎŦ",
- "term.search": "ÎĪĪÎĩĪΡ",
- "term.library": "ÎΚβÎģΚÎŋθΎÎēΡ",
- "term.listenNow": "ÎÎēĪĪÎąĪΡ",
- "term.browse": "Î ÎĩĪÎšÎŽÎŗÎˇĪΡ",
- "term.radio": "ÎĄÎŦδΚÎŋ",
- "term.recentlyAdded": "Î ĪĪĪĪÎąĪÎĩĪ ĪĪÎŋĪθΎÎēÎĩĪ",
- "term.songs": "ΤĪÎąÎŗÎŋĪδΚι",
- "term.albums": "ÎÎģÎŧĪÎŋĪ
Îŧ",
- "term.artists": "ÎÎąÎģÎģΚĪÎĪÎŊÎĩĪ",
- "term.podcasts": "Podcast",
- "term.playlists": "ÎίĪĪÎĩĪ ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
- "term.playlist": "ÎίĪĪÎą ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
- "term.play": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ",
- "term.pause": "Î ÎąĪĪΡ",
- "term.previous": "Î ĪÎŋÎˇÎŗÎŋĪÎŧÎĩÎŊÎŋ",
- "term.next": "ÎĪĪÎŧÎĩÎŊÎŋ",
- "term.shuffle": "ΤĪ
ĪÎąÎ¯Îą ĪÎĩΚĪÎŦ",
- "term.repeat": "ÎĪÎąÎŊÎŦÎģΡĪΡ",
- "term.volume": "ÎÎŊĪÎąĪΡ",
- "term.mute": "ÎŖÎ¯ÎŗÎąĪΡ",
- "term.unmute": "ÎÎąĪÎŦĪÎŗÎˇĪΡ ĪÎ¯ÎŗÎąĪΡĪ",
- "term.share": "ÎÎŋΚÎŊÎŽ ΧĪÎŽĪΡ",
- "term.settings": "ÎĄĪ
θÎŧίĪÎĩΚĪ",
- "term.seeAll": "Î ĪÎŋβÎŋÎģÎŽ ĪÎģĪÎŊ",
- "term.sortBy": "ΤιΞΚÎŊĪÎŧΡĪΡ ÎēÎąĪÎŦ",
- "term.sortBy.album": "ÎÎģÎŧĪÎŋĪ
Îŧ",
- "term.sortBy.artist": "ÎÎąÎģÎģΚĪÎĪÎŊΡ",
- "term.sortBy.name": "ÎÎŊÎŋÎŧÎą",
- "term.sortBy.genre": "ÎίδÎŋĪ",
- "term.sortBy.releaseDate": "ÎÎŧÎĩĪÎŋÎŧΡÎŊÎ¯Îą ÎēĪ
ÎēÎģÎŋĪÎŋĪÎ¯ÎąĪ",
- "term.sortBy.duration": "ÎΚÎŦĪÎēÎĩΚι",
- "term.sortOrder": "Î-Ί",
- "term.sortOrder.ascending": "ÎĪΞÎŋĪ
ĪÎą",
- "term.sortOrder.descending": "ÎĻθίÎŊÎŋĪ
ĪÎą",
- "term.viewAs": "Î ĪÎŋβÎŋÎģÎŽ ĪĪ",
- "term.viewAs.coverArt": "ÎΞĪĪĪ
ÎģÎģÎŋ",
- "term.viewAs.list": "ÎίĪĪÎą",
- "term.size": "ÎÎÎŗÎĩθÎŋĪ",
- "term.size.normal": "ÎÎąÎŊÎŋÎŊΚÎēĪ",
- "term.size.compact": "ÎŖĪ
ÎŧĪÎąÎŗÎŽ",
- "term.enable": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ",
- "term.disable": "ÎĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ",
- "term.enabled": "ÎÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊÎŋ",
- "term.disabled": "ÎĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊÎŋ",
- "term.connect": "ÎŖĪÎŊδÎĩĪΡ",
- "term.connecting": "ÎίÎŊÎĩĪιΚ ĪĪÎŊδÎĩĪΡ",
- "term.disconnect": "ÎĪÎŋĪĪÎŊδÎĩĪΡ",
- "term.authed": "ÎĪΚÎēĪ
ĪĪÎŧÎÎŊÎŋ",
- "term.confirm": "ÎŖÎ¯ÎŗÎŋĪ
ĪÎą;",
- "term.more": "Î ÎĩĪΚĪĪĪĪÎĩĪÎą",
- "term.less": "ÎÎšÎŗĪĪÎĩĪÎą",
- "term.showMore": "ÎÎŧĪÎŦÎŊΚĪΡ ĪÎĩĪΚĪĪĪĪÎĩĪĪÎŊ",
- "term.showLess": "ÎÎŧĪÎŦÎŊΚĪΡ ÎģÎšÎŗĪĪÎĩĪĪÎŊ",
- "term.topSongs" : "ÎÎŋĪĪ
ĪÎąÎ¯Îą ĪĪÎąÎŗÎŋĪδΚι",
- "term.latestReleases": "ΤÎĩÎģÎĩĪ
ĪÎąÎ¯ÎĩĪ ÎēĪ
ÎēÎģÎŋĪÎŋĪίÎĩĪ",
- "term.time.added": "Î ĪÎŋĪĪÎθΡÎēÎĩ",
- "term.time.released": "ÎĪ
ÎēÎģÎŋĪĪĪΡĪÎĩ",
- "term.time.updated": "ÎÎŊΡÎŧÎĩĪĪθΡÎēÎĩ",
- "term.time.hours": "ĪĪÎĩĪ",
- "term.time.hour": "ĪĪÎą",
- "term.time.minutes": "ÎģÎĩĪĪÎŦ",
- "term.time.minute": "ÎģÎĩĪĪĪ",
- "term.time.seconds": "δÎĩĪ
ĪÎĩĪĪÎģÎĩĪĪÎą",
- "term.time.second": "δÎĩĪ
ĪÎĩĪĪÎģÎĩĪĪÎŋ",
- "term.fullscreenView": "Î ÎģÎŽĪÎˇĪ ÎŋθĪÎŊΡ",
- "term.defaultView": "ÎÎąÎŊÎŋÎŊΚÎēÎŽ ÎŋθĪÎŊΡ",
- "term.spacializedAudioSetting": "ΧĪĪΚÎēÎŽ ĪĪθÎŧΚĪΡ ÎŽĪÎŋĪ
",
- "term.clearAll": "ÎÎēÎēιθÎŦĪΚĪΡ ĪÎģĪÎŊ",
- "term.recentStations": "Î ĪĪĪĪÎąĪÎŋΚ ĪĪιθÎŧÎŋί",
- "term.language": "ÎÎģĪĪĪÎą",
- "term.funLanguages": "ÎΚι ĪÎģÎŦÎēÎą",
- "term.noLyrics": "ÎĻĪĪĪĪĪΡ... / ÎÎĩÎŊ βĪÎθΡÎēÎąÎŊ ĪĪίĪÎŋΚ. / ÎĪĪΡĪĪΚÎēĪ.",
- "term.copyright": "Copyright",
- "term.rightsReserved": "ÎÎģÎą ĪÎą δΚÎēιΚĪÎŧÎąĪÎą δΚιĪΡĪÎŋĪÎŊĪιΚ.",
- "term.sponsor": "ΧÎŋĪÎŽÎŗÎˇĪÎĩ ÎąĪ
ĪĪ ĪÎŋ ÎĪÎŗÎŋ",
- "term.ciderTeam": "ÎÎŧÎŦδι Cider",
- "term.developer": "Î ĪÎŋÎŗĪÎąÎŧÎŧÎąĪΚĪĪÎŽĪ",
- "term.socialTeam": "ÎÎŋΚÎŊĪÎŊΚÎēÎŽ ÎÎŧÎŦδι",
- "term.contributors": "ÎŖĪ
ÎŊÎĩΚĪĪÎĪÎŋÎŊĪÎĩĪ",
- "term.equalizer": "ÎĪÎŋĪĪιθÎŧΚĪĪÎŽĪ",
- "term.reset": "ÎĪÎąÎŊÎąĪÎŋĪÎŦ",
- "term.tracks": "ĪĪÎąÎŗÎŋĪδΚι", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "ÎίÎŊĪÎĩÎŋ",
- "term.menu": "ÎÎĩÎŊÎŋĪ",
- "action.showAlbum": "ÎÎŧĪÎŦÎŊΚĪΡ ÎŋÎģĪÎēÎģΡĪÎŋĪ
ÎŦÎģÎŧĪÎŋĪ
Îŧ",
-
- // Home
- "home.title": "ÎĪĪΚÎēÎŽ",
- "home.recentlyPlayed": "ÎĪιΚΞιÎŊ ĪĪĪĪĪÎąĪÎą",
- "home.recentlyAdded": "Î ĪĪĪĪÎąĪÎĩĪ ĪĪÎŋĪθΎÎēÎĩĪ",
- "home.artistsFeed": "ÎĄÎŋÎŽ ĪĪÎŊ ÎēÎąÎģÎģΚĪÎĩĪÎŊĪÎŊ ĪÎŋĪ
",
- "home.artistsFeed.noArtist": "ÎÎēÎŋÎģÎŋĪθΡĪÎĩ ÎŧÎĩĪΚÎēÎŋĪĪ ÎēÎąÎģÎģΚĪÎĪÎŊÎĩĪ ĪĪĪĪÎą ÎēιΚ ÎŋΚ ĪÎĩÎģÎĩĪ
ĪÎąÎ¯ÎĩĪ ÎēĪ
ÎēÎģÎŋĪÎŋĪίÎĩĪ ĪÎŋĪ
Ī Î¸Îą ÎĩÎŧĪÎąÎŊίÎļÎŋÎŊĪιΚ ÎĩδĪ",
- "home.madeForYou": "ÎΡÎŧΚÎŋĪ
ĪÎŗÎŽÎ¸ÎˇÎēÎĩ ÎŗÎšÎą ÎĩĪÎŦĪ",
- "home.friendsListeningTo": "ÎΚ ĪίÎģÎŋΚ ĪÎŋĪ
ÎąÎēÎŋĪÎŊ",
- "home.followedArtists": "ÎÎąÎģÎģΚĪÎĪÎŊÎĩĪ ĪÎŋĪ
ÎąÎēÎŋÎģÎŋĪ
θÎĩίĪÎĩ",
- // Errors
- "error.appleMusicSubRequired": "ΤÎŋ Apple Music ÎąĪιΚĪÎĩί ÎŧΚι ĪĪ
ÎŊδĪÎŋÎŧÎŽ.",
- "error.connectionError": "ÎÎĩÎŊ ÎĩίÎŊιΚ δĪ
ÎŊÎąĪÎŽ Ρ ĪĪÎŊδÎĩĪΡ ÎŧÎĩ ĪÎŋ Apple Music.",
- "error.noResults": "ÎÎąÎŊÎÎŊÎą ÎąĪÎŋĪÎÎģÎĩĪÎŧÎą.",
- "error.noResults.description": "ÎÎŋÎēΚÎŧÎŦĪĪÎĩ ÎŧΚι ÎŊÎÎą ÎąÎŊÎąÎļÎŽĪΡĪΡ.",
-
- //Podcasts
- "podcast.followOnCider": "ÎÎēÎŋÎģÎŋĪθΡĪΡ ĪĪÎŋ Cider",
- "podcast.followedOnCider": "ÎÎēÎŋÎģÎŋĪ
θÎĩίĪÎĩ ĪĪÎŋ Cider",
- "podcast.subscribeOnItunes": "ÎŖĪ
ÎŊδĪÎŋÎŧÎŽ ĪĪÎŋ iTunes",
- "podcast.subscribedOnItunes": "ÎŖĪ
ÎŊδĪÎŋÎŧΡĪÎŽĪ ĪĪÎŋ iTunes",
- "podcast.itunesStore": "iTunes Store",
- "podcast.episodes": "ÎĪÎĩΚĪĪδΚι",
- "podcast.playEpisode": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ÎĩĪÎĩΚĪÎŋδίÎŋĪ
",
- "podcast.website": "ÎĪĪĪĪÎŋĪÎŋĪ Podcast",
-
- // Actions
- "action.addToLibrary": "Î ĪÎŋĪθΎÎēΡ ĪĪΡ βΚβÎģΚÎŋθΎÎēΡ",
- "action.addToLibrary.success": "Î ĪÎŋĪĪÎθΡÎēÎĩ ĪĪΡ βΚβÎģΚÎŋθΎÎēΡ",
- "action.addToLibrary.error": "ÎŖĪÎŦÎģÎŧÎą Î ĪÎŋĪθΎÎēÎˇĪ ĪĪΡ βΚβÎģΚÎŋθΎÎēΡĪ",
- "action.removeFromLibrary": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎąĪĪ ĪΡ βΚβÎģΚÎŋθΎÎēΡ",
- "action.removeFromLibrary.success": "ÎĪιΚĪÎθΡÎēÎĩ ÎąĪĪ ĪΡ βΚβÎģΚÎŋθΎÎēΡ",
- "action.addToQueue": "Î ĪÎŋĪθΎÎēΡ ĪĪΡÎŊ ÎŋĪ
ĪÎŦ",
- "action.addToQueue.success": "Î ĪÎŋĪĪÎθΡÎēÎĩ ĪĪΡÎŊ ÎŋĪ
ĪÎŦ",
- "action.addToQueue.error": "Î ĪÎŋĪĪÎθΡÎēÎĩ ĪĪΡÎŊ ÎŋĪ
ĪÎŦ",
- "action.removeFromQueue": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
- "action.removeFromQueue.success": "ÎĪιΚĪÎθΡÎēÎĩ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
- "action.removeFromQueue.error": "ÎŖĪÎŦÎģÎŧÎą ÎĪÎąÎ¯ĪÎĩĪÎˇĪ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
- "action.addToPlaylist": "Î ĪÎŋĪθΎÎēΡ ĪÎĩ ÎģίĪĪÎą",
- "action.removeFromPlaylist": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎąĪĪ ÎģίĪĪÎą",
- "action.addToFavorites": "Î ĪÎŋĪθΎÎēΡ ĪĪÎą ÎąÎŗÎąĪΡÎŧÎÎŊÎą",
- "action.follow": "ÎÎēÎŋÎģÎŋĪθΡĪΡ",
- "action.follow.success": "ÎÎēÎŋÎģÎŋĪ
θΎθΡÎēÎĩ",
- "action.follow.error": "ÎŖĪÎŦÎģÎŧÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
- "action.unfollow": "ÎΚιÎēÎŋĪÎŽ ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
- "action.unfollow.success": "ÎÎŗÎšÎŊÎĩ δΚιÎēÎŋĪÎŽ ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
- "action.unfollow.error": "ÎŖĪÎŦÎģÎŧÎą δΚιÎēÎŋĪÎŽĪ ÎąÎēÎŋÎģÎŋĪθΡĪÎˇĪ ",
- "action.playNext": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ĪĪ ÎĩĪĪÎŧÎĩÎŊÎŋĪ
",
- "action.playLater": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ÎąĪÎŗĪĪÎĩĪÎą",
- "action.startRadio": "ÎÎŊÎąĪΞΡ ĪιδΚÎŋĪĪÎŊÎŋĪ
",
- "action.goToArtist": "ÎÎĩĪÎŦβιĪΡ ĪÎĩ ÎēÎąÎģÎģΚĪÎĪÎŊΡ",
- "action.goToAlbum": "ÎÎĩĪÎŦβιĪΡ ĪÎĩ ÎŦÎģÎŧĪÎŋĪ
Îŧ",
- "action.moveToTop": "ÎÎĩĪÎąÎēίÎŊΡĪΡ ĪĪΡ ÎēÎŋĪĪ
ĪÎŽ",
- "action.share": "ÎÎŋΚÎŊÎŽ ĪĪÎŽĪΡ",
- "action.rename": "ÎÎĩĪÎŋÎŊÎŋÎŧÎąĪÎ¯Îą",
- "action.love": "ÎÎŋĪ
ÎąĪÎĪÎĩΚ ĪÎŋÎģĪ",
- "action.unlove": "ÎÎŊÎąÎ¯ĪÎĩĪΡ \"ÎÎŋĪ
ÎąĪÎĪÎĩΚ\"",
- "action.dislike": "ÎÎĩÎŊ ÎŧÎŋĪ
ÎąĪÎĪÎĩΚ",
- "action.undoDislike": "ÎÎŊÎąÎ¯ĪÎĩĪΡ \"ÎÎĩÎŊ ÎŧÎŋĪ
ÎąĪÎĪÎĩΚ\"",
- "action.showWebRemoteQR": "ÎÎŧĪÎŦÎŊΚĪΡ Web Remote QR",
- "action.playTracksNext": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ${app.selectedMediaItems.length} ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ ĪĪ ÎĩĪĪÎŧÎĩÎŊĪÎŊ",
- "action.playTracksLater": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ${app.selectedMediaItems.length} ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ ÎąĪÎŗĪĪÎĩĪÎą",
- "action.removeTracks": "ÎĪÎąÎ¯ĪÎĩĪΡ ${self.selectedItems.length} ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
- "action.import": "ÎΚĪÎąÎŗĪÎŗÎŽ",
- "action.export": "ÎÎžÎąÎŗĪÎŗÎŽ",
-
- // Settings - General
- "settings.header.general": "ÎÎĩÎŊΚÎēÎŦ",
- "settings.header.general.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ÎŗÎĩÎŊΚÎēĪÎŊ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
- "settings.option.general.language": "ÎÎģĪĪĪÎą",
-
- // Language optgroups
- "settings.option.general.language.main": "ÎÎģĪĪĪÎĩĪ",
- "settings.option.general.language.fun": "ÎÎģĪĪĪÎĩĪ ÎŗÎšÎą ĪÎģÎŦÎēÎą",
- "settings.option.general.language.unsorted": "ÎĪιΞΚÎŊĪÎŧΡĪÎĩĪ",
-
- // Settings - Audio
- "settings.header.audio": "ÎĪÎŋĪ",
- "settings.header.audio.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŽĪÎŋĪ
ÎŗÎšÎą ĪÎŋ Cider.",
- "settings.option.audio.quality": "Î ÎŋΚĪĪΡĪÎą ÎĪÎŋĪ
", // Dropdown
- "settings.header.audio.quality.high": "ÎĨĪΡÎģÎŽ",
- "settings.header.audio.quality.low": "ΧιÎŧΡÎģÎŽ",
- "settings.header.audio.quality.auto": "ÎĪ
ĪĪÎŧÎąĪΡ",
- "settings.option.audio.seamlessTransition": "ÎδΚÎŦÎēÎŋĪΡ ÎÎĩĪÎŦβιĪΡ ÎĪÎŋĪ
", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ Î ĪÎŋÎˇÎŗÎŧÎÎŊÎˇĪ ÎÎĩΚĪÎŋĪ
ĪÎŗÎšÎēĪĪΡĪÎąĪ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "ÎÎŊÎĩĪÎŗÎŋĪÎŋΚĪÎŊĪÎąĪ ĪΡ ÎģÎĩΚĪÎŋĪ
ĪÎŗÎšÎēĪĪΡĪÎą AudioContext θι ÎĩĪΚĪĪÎĪÎĩΚ ĪÎĩ ÎĩĪÎĩÎēĪÎąÎŧÎÎŊÎĩĪ Î´Ī
ÎŊÎąĪĪĪΡĪÎĩĪ ÎŽĪÎŋĪ
ĪĪĪĪ ÎÎąÎŊÎŋÎŊΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎÎŊĪÎąĪÎˇĪ ÎĪÎŋĪ
, ÎĪÎŋĪĪιθÎŧΚĪĪÎĪ ÎēιΚ ÎĪĪΚÎēÎŋĪÎŋΚΡĪÎĪ, ĪĪĪĪĪÎŋ ĪÎĩ ÎēÎŦĪÎŋΚι ĪĪ
ĪĪÎŽÎŧÎąĪÎą ÎŧĪÎŋĪÎĩί ÎŊÎą ĪĪÎŋÎēÎąÎģÎĪÎĩΚ ĪĪÎąĪÎģΚĪÎŧÎą ÎŽĪÎŋĪ
.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ÎÎąÎŊÎŋÎŊΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎÎŊĪÎąĪÎˇĪ ÎĪÎŋĪ
", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ÎÎąÎŊÎŋÎŊΚÎēÎŋĪÎŋΚÎĩί ĪΡÎŊ ÎÎŊĪÎąĪΡ ÎŗÎšÎą ÎŧÎĩÎŧÎŋÎŊĪÎŧÎÎŊÎą ÎēÎŋÎŧÎŧÎŦĪΚι ÎŗÎšÎą ÎŧΚι ĪΚÎŋ ÎŋÎŧÎŋΚĪÎŧÎŋĪĪΡ ÎĩÎŧĪÎĩΚĪÎ¯Îą ÎąÎēĪĪÎąĪΡĪ.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎĪÎŋĪ
", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ΠΚÎŋ ĪĪΚĪδΚÎŦĪĪÎąĪÎŋĪ ÎēιΚ ĪĪĪΚÎēÎŋĪÎŋΚΡÎŧÎÎŊÎŋĪ ÎŽĪÎŋĪ (ĪΡÎŧÎĩίĪĪΡ: ÎĪ
ĪĪ Î´ÎĩÎŊ ÎĩίÎŊιΚ Dolby Atmos)",
- // Settings - Visual
- "settings.header.visual": "ÎĪĪΚÎēÎŦ",
- "settings.header.visual.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ÎŋĪĪΚÎēĪÎŊ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
- "settings.option.visual.windowBackgroundStyle": "ÎŖĪĪ
Îģ ÎĻĪÎŊĪÎŋĪ
Î ÎąĪιθĪĪÎŋĪ
", // Toggle
- "settings.header.visual.windowBackgroundStyle.none": "ÎÎąÎŊÎÎŊÎą",
- "settings.header.visual.windowBackgroundStyle.artwork": "ÎΞĪĪĪ
ÎģÎģÎŋ",
- "settings.header.visual.windowBackgroundStyle.image": "ÎΚÎēĪÎŊÎą",
- "settings.option.visual.animatedArtwork": "ÎΚÎŊÎŋĪÎŧÎĩÎŊÎŋ ÎΞĪĪĪ
ÎģÎģÎŋ", // Dropdown
- "settings.header.visual.animatedArtwork.always": "Î ÎŦÎŊĪÎą",
- "settings.header.visual.animatedArtwork.limited": "Î ÎĩĪΚÎŋĪΚĪÎŧĪĪ ĪÎĩ ĪÎĩÎģίδÎĩĪ ÎēιΚ ÎĩΚδΚÎēÎĪ ÎēÎąĪÎąĪĪĪÎŽĪÎĩΚĪ",
- "settings.header.visual.animatedArtwork.disable": "ÎĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊÎŋ ĪÎąÎŊĪÎŋĪ",
- "settings.option.visual.animatedArtworkQuality": "Î ÎŋΚĪĪΡĪÎą ÎΚÎŊÎŋĪÎŧÎĩÎŊÎŋĪ
ÎΞĪĪĪÎģÎģÎŋĪ
", // Dropdown
- "settings.header.visual.animatedArtworkQuality.low": "ΧιÎŧΡÎģÎŽ",
- "settings.header.visual.animatedArtworkQuality.medium": "ÎÎĪĪΚι",
- "settings.header.visual.animatedArtworkQuality.high": "ÎĨĪΡÎģÎŽ",
- "settings.header.visual.animatedArtworkQuality.veryHigh": "Î ÎŋÎģĪ ÎĨĪΡÎģÎŽ",
- "settings.header.visual.animatedArtworkQuality.extreme": "ÎÎēĪÎąÎ¯Îą",
- "settings.option.visual.animatedWindowBackground": "ÎΚÎŊÎŋĪÎŧÎĩÎŊÎŋ ÎĻĪÎŊĪÎŋ Î ÎąĪιθĪĪÎŋĪ
", // Toggle
- "settings.option.visual.hardwareAcceleration": "ÎĪΚĪÎŦĪĪ
ÎŊĪΡ ÎĨÎģΚÎēÎŋĪ", // Dropdown
- "settings.option.visual.hardwareAcceleration.description": "ÎĪιΚĪÎĩί ÎĩĪÎąÎŊÎĩÎēÎēίÎŊΡĪΡ",
- "settings.header.visual.hardwareAcceleration.default": "Î ĪÎŋÎĩĪΚÎģÎŋÎŗÎŽ",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "ÎÎŧĪÎŦÎŊΚĪΡ ĪĪÎŋĪĪĪΚÎēĪÎŊ ĪĪÎŋΚĪÎĩίĪÎŊ", // Toggle
-
- // Settings - Lyrics
- "settings.header.lyrics": "ÎŖĪίĪÎŋΚ",
- "settings.header.lyrics.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪĪ
θÎŧίĪÎĩĪÎŊ ĪĪίĪĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
- "settings.option.lyrics.enableMusixmatch": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ÎŖĪίĪĪÎŊ Musixmatch", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ÎÎĩΚĪÎŋĪ
ĪÎŗÎ¯ÎąĪ ÎÎąĪÎąĪÎēÎĩ (Musixmatch ÎŧĪÎŊÎŋ)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Î ĪÎŋĪΚÎŧĪÎŧÎĩÎŊΡ ÎÎģĪĪĪÎą ÎÎĩĪÎŦĪĪÎąĪÎˇĪ Musixmatch", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ÎŖĪίĪĪÎŊ Youtube ÎŗÎšÎą ÎÎŋĪ
ĪΚÎēÎŦ ÎίÎŊĪÎĩÎŋ", // Toggle
-
- // Settings - Connectivity
- "settings.header.connectivity": "ÎŖĪÎŊδÎĩĪΡ",
- "settings.header.connectivity.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪĪ
θÎŧίĪÎĩĪÎŊ ĪĪÎŊδÎĩĪÎˇĪ ÎŗÎšÎą ĪÎŋ Cider.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "ÎΚδÎŋĪÎŋΚΎĪÎĩÎšĪ ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "ÎÎŧĪÎŦÎŊΚĪΡ ĪĪ 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "ÎÎŧĪÎŦÎŊΚĪΡ ĪĪ 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "ÎÎēÎēιθÎŦĪΚĪΡ ĪÎŋĪ
Discord Rich Presence ĪĪΡÎŊ Î ÎąĪĪΡ", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "ÎιθĪ
ĪĪÎĪΡĪΡ LastFM Scrobble (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ LastFM \"Now Playing\"",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎēÎąÎģÎģΚĪÎĩĪÎŊĪÎŊ feature ÎąĪĪ ĪÎŋÎŊ ĪίĪÎģÎŋ ĪÎŋĪ
ĪĪÎąÎŗÎŋĪ
δΚÎŋĪ (LastFM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "ÎĻΚÎģĪĪÎŦĪΚĪÎŧÎą ÎĩĪÎąÎŊÎĩΚÎģΡÎŧÎŧÎÎŊÎŋĪ
ĪĪÎąÎŗÎŋĪ
δΚÎŋĪ (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
- "settings.header.experimental": "Î ÎĩΚĪÎąÎŧÎąĪΚÎēÎĪ",
- "settings.header.experimental.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪÎĩΚĪÎąÎŧÎąĪΚÎēĪÎŊ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
- "settings.option.experimental.compactUI": "ÎŖĪ
ÎŧĪÎąÎŗÎŽĪ ÎΚÎĩĪÎąĪÎŽ", // Toggle
- "settings.option.experimental.closeButtonBehaviour": "ÎŖĪ
ÎŧĪÎĩĪΚĪÎŋĪÎŦ ÎÎŋĪ
ÎŧĪΚÎŋĪ ÎΞĪδÎŋĪ
",
- "settings.option.experimental.closeButtonBehaviour.quit": "ÎΞÎŋδÎŋĪ ĪÎŋĪ
Cider",
- "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "ÎÎģÎąĪΚĪĪÎŋĪÎŋÎ¯ÎˇĪΡ ĪĪΡ ÎŗĪÎąÎŧÎŧÎŽ ÎĩĪÎŗÎąĪΚĪÎŊ",
- "settings.option.experimental.closeButtonBehaviour.minimizeTray": "ÎÎģÎąĪΚĪĪÎŋĪÎŋÎ¯ÎˇĪΡ ĪĪΡ ÎŗĪÎŊÎ¯Îą ÎŗĪÎąÎŧÎŧÎŽĪ ÎĩĪÎŗÎąĪΚĪÎŊ",
- // Refer to term.disabled & term.enabled
-
- // Spatialization Menu
- "spatial.spatialProperties" : "ΧĪĪΚÎēÎĪ ÎδΚĪĪΡĪÎĩĪ",
- "spatial.width" : "Î ÎģÎŦĪÎŋĪ",
- "spatial.height" : "ÎĪÎŋĪ",
- "spatial.depth" : "ÎÎŦθÎŋĪ",
- "spatial.gain" : "ÎĪÎŋÎģιβΎ",
- "spatial.roomMaterials" : "ÎĨÎģΚÎēÎŦ ÎĪÎŧÎąĪίÎŋĪ
",
- "spatial.roomDimensions" : "ÎΚιĪĪÎŦĪÎĩÎšĪ ÎĪÎŧÎąĪίÎŋĪ
",
- "spatial.roomPositions" : "ÎÎĪÎĩÎšĪ ÎĪÎŧÎąĪίÎŋĪ
",
- "spatial.setDimensions" : "ÎĪΚĪÎŧĪĪ ÎΚιĪĪÎŦĪÎĩĪÎŊ",
- "spatial.setPositions" : "ÎĪΚĪÎŧĪĪ ÎÎĪÎĩĪÎŊ",
- "spatial.up" : "Î ÎŦÎŊĪ",
- "spatial.front" : "Î ĪĪĪÎŋĪΡ",
- "spatial.left" : "ÎĪΚĪĪÎĩĪÎŦ",
- "spatial.right" : "ÎÎĩΞΚÎŦ",
- "spatial.back" : "ΠίĪĪ ÎĪΡ",
- "spatial.down" : "ÎÎŦĪĪ",
- "spatial.listener" : "ÎÎēĪÎŋÎąĪÎŽĪ",
- "spatial.audioSource" : "Î ÎˇÎŗÎŽ ÎĪÎŋĪ
",
-
- // Settings - Unfinished
- "settings.header.unfinished": "ÎÎŧΚĪÎĩÎģÎŽĪ",
-
- // Web Remote
- "remote.web.title": "Cider Remote",
- "remote.web.description": "ÎŖÎąĪĪĪĪÎĩ ĪÎŋÎŊ ÎēĪδΚÎēĪ QR ÎŗÎšÎą ĪĪÎļÎĩĪ
ΞΡ ĪÎŋĪ
Cider ÎŧÎĩ ĪÎŋ ÎēΚÎŊΡĪĪ ĪÎąĪ",
-
- //About
- "about.thanks": "ÎÎĩÎŗÎŦÎģÎą ÎĩĪ
ĪÎąĪΚĪĪĪ ĪĪΡÎŊ ÎÎŧÎŦδι Cider Collective ÎēιΚ ĪÎĩ ĪÎģÎŋĪ
Ī ĪÎŋĪ
Ī ĪĪ
ÎŊÎĩΚĪĪÎĪÎŋÎŊĪÎĪ ÎŧÎąĪ."
+{
+ "i18n.languageName": "ÎÎģÎģΡÎŊΚÎēÎŦ",
+ "i18n.languageNameEnglish": "Greek",
+ "i18n.category": "main",
+ "i18n.authors": "@down-bad",
+ "app.name": "Cider",
+ "date.format": "${d} ${m}, ${y}",
+ "dialog.cancel": "ÎÎēĪĪĪĪΡ",
+ "dialog.ok": "ÎÎ",
+ "notification.updatingLibrarySongs": "ÎÎŊΡÎŧÎĪĪĪΡ βΚβÎģΚÎŋθΎÎēÎˇĪ ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ...",
+ "notification.updatingLibraryAlbums": "ÎÎŊΡÎŧÎĪĪĪΡ βΚβÎģΚÎŋθΎÎēÎˇĪ ÎŦÎģÎŧĪÎŋĪ
Îŧ...",
+ "notification.updatingLibraryArtists": "ÎÎŊΡÎŧÎĪĪĪΡ βΚβÎģΚÎŋθΎÎēÎˇĪ ÎēÎąÎģÎģΚĪÎĩĪÎŊĪÎŊ...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "ÎÎŦθÎĩĪÎĩ ĪÎĩĪΚĪĪĪĪÎĩĪÎą",
+ "term.accountSettings": "ÎĄĪ
θÎŧίĪÎĩÎšĪ ÎģÎŋÎŗÎąĪΚιĪÎŧÎŋĪ",
+ "term.logout": "ÎĪÎŋĪĪÎŊδÎĩĪΡ",
+ "term.login": "ÎŖĪÎŊδÎĩĪΡ",
+ "term.about": "ÎŖĪÎĩĪΚÎēÎŦ ÎŧÎĩ",
+ "term.privateSession": "ÎδΚĪĪΚÎēÎŽ ĪÎĩĪίÎŋδÎŋĪ ÎģÎĩΚĪÎŋĪ
ĪÎŗÎ¯ÎąĪ",
+ "term.queue": "ÎĪ
ĪÎŦ",
+ "term.history": "ÎĪĪÎŋĪΚÎēĪ",
+ "term.search": "ÎĪĪÎĩĪΡ",
+ "term.library": "ÎΚβÎģΚÎŋθΎÎēΡ",
+ "term.listenNow": "ÎÎēĪĪÎąĪΡ",
+ "term.browse": "Î ÎĩĪÎšÎŽÎŗÎˇĪΡ",
+ "term.radio": "ÎĄÎŦδΚÎŋ",
+ "term.recentlyAdded": "Î ĪĪĪĪÎąĪÎĩĪ ĪĪÎŋĪθΎÎēÎĩĪ",
+ "term.songs": "ΤĪÎąÎŗÎŋĪδΚι",
+ "term.albums": "ÎÎģÎŧĪÎŋĪ
Îŧ",
+ "term.artists": "ÎÎąÎģÎģΚĪÎĪÎŊÎĩĪ",
+ "term.podcasts": "Podcast",
+ "term.playlists": "ÎίĪĪÎĩĪ ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
+ "term.playlist": "ÎίĪĪÎą ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
+ "term.newPlaylist": "ÎÎÎą ÎģίĪĪÎą ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
+ "term.newPlaylistFolder": "ÎÎÎŋĪ ĪÎŦÎēÎĩÎģÎŋĪ ÎģίĪĪÎąĪ",
+ "term.createNewPlaylist": "ÎΡÎŧΚÎŋĪ
ĪÎŗÎ¯Îą ÎŊÎÎąĪ ÎģίĪĪÎąĪ ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
+ "term.createNewPlaylistFolder": "ÎΡÎŧΚÎŋĪ
ĪÎŗÎ¯Îą ÎŊÎÎŋĪ
ĪÎąÎēÎÎģÎŋĪ
ÎģίĪĪÎąĪ",
+ "term.deletePlaylist": "ÎÎÎģÎĩĪÎĩ ĪÎ¯ÎŗÎŋĪ
ĪÎą ÎŊÎą Î´ÎšÎąÎŗĪÎŦĪÎĩĪÎĩ ÎąĪ
ĪÎŽ ĪΡ ÎģίĪĪÎą ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ;",
+ "term.play": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ",
+ "term.pause": "Î ÎąĪĪΡ",
+ "term.previous": "Î ĪÎŋÎˇÎŗÎŋĪÎŧÎĩÎŊÎŋ",
+ "term.next": "ÎĪĪÎŧÎĩÎŊÎŋ",
+ "term.shuffle": "ΤĪ
ĪÎąÎ¯Îą ĪÎĩΚĪÎŦ",
+ "term.repeat": "ÎĪÎąÎŊÎŦÎģΡĪΡ",
+ "term.volume": "ÎÎŊĪÎąĪΡ",
+ "term.mute": "ÎŖÎ¯ÎŗÎąĪΡ",
+ "term.unmute": "ÎÎąĪÎŦĪÎŗÎˇĪΡ ĪÎ¯ÎŗÎąĪΡĪ",
+ "term.share": "ÎÎŋΚÎŊÎŽ ΧĪÎŽĪΡ",
+ "term.share.success": "ÎÎŊĪÎšÎŗĪÎŦĪΡÎēÎĩ ĪĪÎŋ ĪĪĪĪÎĩΚĪÎŋ",
+ "term.settings": "ÎĄĪ
θÎŧίĪÎĩΚĪ",
+ "term.seeAll": "Î ĪÎŋβÎŋÎģÎŽ ĪÎģĪÎŊ",
+ "term.sortBy": "ΤιΞΚÎŊĪÎŧΡĪΡ ÎēÎąĪÎŦ",
+ "term.sortBy.album": "ÎÎģÎŧĪÎŋĪ
Îŧ",
+ "term.sortBy.artist": "ÎÎąÎģÎģΚĪÎĪÎŊΡ",
+ "term.sortBy.name": "ÎÎŊÎŋÎŧÎą",
+ "term.sortBy.genre": "ÎίδÎŋĪ",
+ "term.sortBy.releaseDate": "ÎÎŧÎĩĪÎŋÎŧΡÎŊÎ¯Îą ÎēĪ
ÎēÎģÎŋĪÎŋĪÎ¯ÎąĪ",
+ "term.sortBy.duration": "ÎΚÎŦĪÎēÎĩΚι",
+ "term.sortBy.dateAdded": "ÎÎŧÎĩĪÎŋÎŧΡÎŊÎ¯Îą ĪĪÎŋĪθΎÎēΡĪ",
+ "term.sortOrder": "Î-Ί",
+ "term.sortOrder.ascending": "ÎĪΞÎŋĪ
ĪÎą",
+ "term.sortOrder.descending": "ÎĻθίÎŊÎŋĪ
ĪÎą",
+ "term.viewAs": "Î ĪÎŋβÎŋÎģÎŽ ĪĪ",
+ "term.viewAs.coverArt": "ÎΞĪĪĪ
ÎģÎģÎŋ",
+ "term.viewAs.list": "ÎίĪĪÎą",
+ "term.size": "ÎÎÎŗÎĩθÎŋĪ",
+ "term.size.normal": "ÎÎąÎŊÎŋÎŊΚÎēĪ",
+ "term.size.compact": "ÎŖĪ
ÎŧĪÎąÎŗÎŽ",
+ "term.enable": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ",
+ "term.disable": "ÎĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ",
+ "term.enabled": "ÎÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊÎŋ",
+ "term.disabled": "ÎĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊÎŋ",
+ "term.connect": "ÎŖĪÎŊδÎĩĪΡ",
+ "term.connecting": "ÎίÎŊÎĩĪιΚ ĪĪÎŊδÎĩĪΡ",
+ "term.disconnect": "ÎĪÎŋĪĪÎŊδÎĩĪΡ",
+ "term.authed": "ÎĪΚÎēĪ
ĪĪÎŧÎÎŊÎŋ",
+ "term.confirm": "ÎŖÎ¯ÎŗÎŋĪ
ĪÎą;",
+ "term.more": "Î ÎĩĪΚĪĪĪĪÎĩĪÎą",
+ "term.less": "ÎÎšÎŗĪĪÎĩĪÎą",
+ "term.showMore": "ÎÎŧĪÎŦÎŊΚĪΡ ĪÎĩĪΚĪĪĪĪÎĩĪĪÎŊ",
+ "term.showLess": "ÎÎŧĪÎŦÎŊΚĪΡ ÎģÎšÎŗĪĪÎĩĪĪÎŊ",
+ "term.topSongs": "ÎÎŋĪĪ
ĪÎąÎ¯Îą ĪĪÎąÎŗÎŋĪδΚι",
+ "term.latestReleases": "ΤÎĩÎģÎĩĪ
ĪÎąÎ¯ÎĩĪ ÎēĪ
ÎēÎģÎŋĪÎŋĪίÎĩĪ",
+ "term.time.added": "Î ĪÎŋĪĪÎθΡÎēÎĩ",
+ "term.time.released": "ÎĪ
ÎēÎģÎŋĪĪĪΡĪÎĩ",
+ "term.time.updated": "ÎÎŊΡÎŧÎĩĪĪθΡÎēÎĩ",
+ "term.time.hours": "ĪĪÎĩĪ",
+ "term.time.hour": "ĪĪÎą",
+ "term.time.minutes": "ÎģÎĩĪĪÎŦ",
+ "term.time.minute": "ÎģÎĩĪĪĪ",
+ "term.time.seconds": "δÎĩĪ
ĪÎĩĪĪÎģÎĩĪĪÎą",
+ "term.time.second": "δÎĩĪ
ĪÎĩĪĪÎģÎĩĪĪÎŋ",
+ "term.fullscreenView": "Î ÎģÎŽĪÎˇĪ ÎŋθĪÎŊΡ",
+ "term.defaultView": "ÎÎąÎŊÎŋÎŊΚÎēÎŽ ÎŋθĪÎŊΡ",
+ "term.audioSettings": "ÎĄĪ
θÎŧίĪÎĩÎšĪ ÎŽĪÎŋĪ
",
+ "term.audioControls": "ÎÎģÎĩÎŗĪÎŋĪ ÎŽĪÎŋĪ
",
+ "term.clearAll": "ÎÎēÎēιθÎŦĪΚĪΡ ĪÎģĪÎŊ",
+ "term.recentStations": "Î ĪĪĪĪÎąĪÎŋΚ ĪĪιθÎŧÎŋί",
+ "term.language": "ÎÎģĪĪĪÎą",
+ "term.funLanguages": "ÎΚι ĪÎģÎŦÎēÎą",
+ "term.noLyrics": "ÎĻĪĪĪĪĪΡ... / ÎÎĩÎŊ βĪÎθΡÎēÎąÎŊ ĪĪίĪÎŋΚ. / ÎĪĪΡĪĪΚÎēĪ.",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "ÎÎģÎą ĪÎą δΚÎēιΚĪÎŧÎąĪÎą δΚιĪΡĪÎŋĪÎŊĪιΚ.",
+ "term.sponsor": "ΧÎŋĪÎŽÎŗÎˇĪÎĩ ÎąĪ
ĪĪ ĪÎŋ ÎĪÎŗÎŋ",
+ "term.ciderTeam": "ÎÎŧÎŦδι Cider",
+ "term.developer": "Î ĪÎŋÎŗĪÎąÎŧÎŧÎąĪΚĪĪÎŽĪ",
+ "term.socialTeam": "ÎÎŋΚÎŊĪÎŊΚÎēÎŽ ÎÎŧÎŦδι",
+ "term.socials": "ÎÎŋΚÎŊĪÎŊΚÎēÎŦ ÎÎĪÎą",
+ "term.contributors": "ÎŖĪ
ÎŊÎĩΚĪĪÎĪÎŋÎŊĪÎĩĪ",
+ "term.equalizer": "ÎĪÎŋĪĪιθÎŧΚĪĪÎŽĪ",
+ "term.reset": "ÎĪÎąÎŊÎąĪÎŋĪÎŦ",
+ "term.tracks": {
+ "one": "ĪĪÎąÎŗÎŋĪδΚ",
+ "other": "ĪĪÎąÎŗÎŋĪδΚι"
+ },
+ "term.videos": "ÎίÎŊĪÎĩÎŋ",
+ "term.menu": "ÎÎĩÎŊÎŋĪ",
+ "term.check": "ÎÎģÎĩÎŗĪÎŋĪ",
+ "term.aboutArtist": "ÎŖĪÎĩĪΚÎēÎŦ ÎŧÎĩ {{artistName}}",
+ "term.topResult": "ÎÎŋĪĪ
ĪÎąÎ¯Îŋ ÎąĪÎŋĪÎÎģÎĩĪÎŧÎą",
+ "term.sharedPlaylists": "ÎÎŋΚÎŊĪĪĪΡĪĪÎĩĪ ÎģίĪĪÎĩĪ ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
+ "term.people": "ÎĪÎŋÎŧÎą",
+ "term.newpreset.name": "ÎÎÎŋ ĪÎŊÎŋÎŧÎą ĪĪÎŋĪĪθÎŧΚĪÎˇĪ EQ",
+ "term.addedpreset": "Î ĪĪÎŋĪĪθÎŧΚĪΡ ĪĪÎŋĪĪÎθΡÎēÎĩ",
+ "term.deletepreset.warn": "ÎÎÎģÎĩĪÎĩ ĪÎ¯ÎŗÎŋĪ
ĪÎą ÎŊÎą Î´ÎšÎąÎŗĪÎŦĪÎĩĪÎĩ ÎąĪ
ĪÎŽ ĪΡ ĪĪÎŋĪĪθÎŧΚĪΡ;",
+ "term.deletedpreset": "Î ĪĪÎŋĪĪθÎŧΚĪΡ ÎąĪιΚĪÎθΡÎēÎĩ",
+ "term.defaultPresets": "Î ĪÎŋÎēιθÎŋĪΚĪÎŧÎÎŊÎĩĪ ĪĪÎŋĪĪ
θÎŧίĪÎĩΚĪ",
+ "term.userPresets": "Î ĪÎŋĪĪ
θÎŧίĪÎĩÎšĪ ĪĪÎŽĪĪΡ",
+ "term.requestError": "Î ÎąĪÎŋĪ
ĪΚÎŦĪĪΡÎēÎĩ ÎēÎŦĪÎŋΚÎŋ ĪĪĪβÎģΡÎŧÎą ÎŧÎĩ ĪÎŋ ÎąÎ¯ĪΡÎŧÎŦ ĪÎŋĪ
.",
+ "term.song.link.generate": "ÎίÎŊÎĩĪιΚ ÎģÎŽĪΡ ĪĪ
ÎŊδÎĪÎŧÎŋĪ
song.link...",
+ "term.musicVideos": "ÎÎŋĪ
ĪΚÎēÎŦ Î˛Î¯ÎŊĪÎĩÎŋ",
+ "term.stations": "ÎŖĪιθÎŧÎŋί",
+ "term.curators": "ÎĪΚÎŧÎĩÎģΡĪÎĪ",
+ "term.appleCurators": "ÎĪΚÎŧÎĩÎģΡĪÎĪ Apple",
+ "term.radioShows": "ΥιδΚÎŋĪĪÎŊΚÎēÎĪ ÎĩÎēĪÎŋÎŧĪÎĪ",
+ "term.recordLabels": "ÎΚĪÎēÎŋÎŗĪÎąĪΚÎēÎĪ ÎĩĪιΚĪίÎĩĪ",
+ "term.videoExtras": "Î ĪĪĪθÎĩĪÎŋ Ī
ÎģΚÎēĪ Î˛Î¯ÎŊĪÎĩÎŋ",
+ "term.top": "ÎÎŋĪĪ
ĪÎąÎ¯Îą",
+ "term.version": "ÎÎēδÎŋĪΡ",
+ "term.noVideos": "ÎÎĩÎŊ βĪÎθΡÎēÎąÎŊ Î˛Î¯ÎŊĪÎĩÎŋ",
+ "term.plugin": "Î ĪĪĪθÎĩĪÎą",
+ "term.pluginMenu": "ÎÎĩÎŊÎŋĪ ĪĪĪĪθÎĩĪĪÎŊ",
+ "term.replay": "Replay",
+ "term.uniqueAlbums": "ÎÎŋÎŊιδΚÎēÎŦ ÎŦÎģÎŧĪÎŋĪ
Îŧ",
+ "term.uniqueArtists": "ÎÎŋÎŊιδΚÎēÎŋί ÎēÎąÎģÎģΚĪÎĪÎŊÎĩĪ",
+ "term.uniqueSongs": "ÎÎŋÎŊιδΚÎēÎŦ ĪĪÎąÎŗÎŋĪδΚι",
+ "term.topArtists": "ÎÎŋĪĪ
ĪÎąÎ¯ÎŋΚ ÎēÎąÎģÎģΚĪÎĪÎŊÎĩĪ",
+ "term.listenedTo": "ÎÎēÎŋĪ
ĪÎĩĪ:",
+ "term.times": "ĪÎŋĪÎĪ",
+ "term.topAlbums": "ÎÎŋĪĪ
ĪÎąÎ¯Îą ÎŦÎģÎŧĪÎŋĪ
Îŧ",
+ "term.plays": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎĪ",
+ "term.topGenres": "ÎÎŋĪĪ
ĪÎąÎ¯Îą ÎĩÎ¯Î´Îˇ",
+ "term.confirmLogout": "ÎÎÎģÎĩĪÎĩ ĪÎ¯ÎŗÎŋĪ
ĪÎą ÎŊÎą ÎąĪÎŋĪĪ
ÎŊδÎĩθÎĩίĪÎĩ;",
+ "home.title": "ÎĪĪΚÎēÎŽ",
+ "home.recentlyPlayed": "ÎĪιΚΞιÎŊ ĪĪĪĪĪÎąĪÎą",
+ "home.recentlyAdded": "Î ĪĪĪĪÎąĪÎĩĪ ĪĪÎŋĪθΎÎēÎĩĪ",
+ "home.artistsFeed": "ÎĄÎŋÎŽ ĪĪÎŊ ÎēÎąÎģÎģΚĪÎĩĪÎŊĪÎŊ ĪÎŋĪ
",
+ "home.artistsFeed.noArtist": "ÎÎēÎŋÎģÎŋĪθΡĪÎĩ ÎŧÎĩĪΚÎēÎŋĪĪ ÎēÎąÎģÎģΚĪÎĪÎŊÎĩĪ ĪĪĪĪÎą ÎēιΚ ÎŋΚ ĪÎĩÎģÎĩĪ
ĪÎąÎ¯ÎĩĪ ÎēĪ
ÎēÎģÎŋĪÎŋĪίÎĩĪ ĪÎŋĪ
Ī Î¸Îą ÎĩÎŧĪÎąÎŊίÎļÎŋÎŊĪιΚ ÎĩδĪ",
+ "home.madeForYou": "ÎΡÎŧΚÎŋĪ
ĪÎŗÎŽÎ¸ÎˇÎēÎĩ ÎŗÎšÎą ÎĩĪÎŦĪ",
+ "home.friendsListeningTo": "ÎΚ ĪίÎģÎŋΚ ĪÎŋĪ
ÎąÎēÎŋĪÎŊ",
+ "home.followedArtists": "ÎÎąÎģÎģΚĪÎĪÎŊÎĩĪ ĪÎŋĪ
ÎąÎēÎŋÎģÎŋĪ
θÎĩίĪÎĩ",
+ "error.appleMusicSubRequired": "ΤÎŋ Apple Music ÎąĪιΚĪÎĩί ÎŧΚι ĪĪ
ÎŊδĪÎŋÎŧÎŽ.",
+ "error.connectionError": "ÎÎĩÎŊ ÎĩίÎŊιΚ δĪ
ÎŊÎąĪÎŽ Ρ ĪĪÎŊδÎĩĪΡ ÎŧÎĩ ĪÎŋ Apple Music.",
+ "error.noResults": "ÎÎąÎŊÎÎŊÎą ÎąĪÎŋĪÎÎģÎĩĪÎŧÎą.",
+ "error.noResults.description": "ÎÎŋÎēΚÎŧÎŦĪĪÎĩ ÎŧΚι ÎŊÎÎą ÎąÎŊÎąÎļÎŽĪΡĪΡ.",
+ "podcast.followOnCider": "ÎÎēÎŋÎģÎŋĪθΡĪΡ ĪĪÎŋ Cider",
+ "podcast.followedOnCider": "ÎÎēÎŋÎģÎŋĪ
θÎĩίĪÎĩ ĪĪÎŋ Cider",
+ "podcast.subscribeOnItunes": "ÎŖĪ
ÎŊδĪÎŋÎŧÎŽ ĪĪÎŋ iTunes",
+ "podcast.subscribedOnItunes": "ÎŖĪ
ÎŊδĪÎŋÎŧΡĪÎŽĪ ĪĪÎŋ iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "ÎĪÎĩΚĪĪδΚι",
+ "podcast.playEpisode": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ÎĩĪÎĩΚĪÎŋδίÎŋĪ
",
+ "podcast.website": "ÎĪĪĪĪÎŋĪÎŋĪ Podcast",
+ "action.addToLibrary": "Î ĪÎŋĪθΎÎēΡ ĪĪΡ βΚβÎģΚÎŋθΎÎēΡ",
+ "action.addToLibrary.success": "Î ĪÎŋĪĪÎθΡÎēÎĩ ĪĪΡ βΚβÎģΚÎŋθΎÎēΡ",
+ "action.addToLibrary.error": "ÎŖĪÎŦÎģÎŧÎą Î ĪÎŋĪθΎÎēÎˇĪ ĪĪΡ βΚβÎģΚÎŋθΎÎēΡĪ",
+ "action.removeFromLibrary": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎąĪĪ ĪΡ βΚβÎģΚÎŋθΎÎēΡ",
+ "action.removeFromLibrary.success": "ÎĪιΚĪÎθΡÎēÎĩ ÎąĪĪ ĪΡ βΚβÎģΚÎŋθΎÎēΡ",
+ "action.addToQueue": "Î ĪÎŋĪθΎÎēΡ ĪĪΡÎŊ ÎŋĪ
ĪÎŦ",
+ "action.addToQueue.success": "Î ĪÎŋĪĪÎθΡÎēÎĩ ĪĪΡÎŊ ÎŋĪ
ĪÎŦ",
+ "action.addToQueue.error": "Î ĪÎŋĪĪÎθΡÎēÎĩ ĪĪΡÎŊ ÎŋĪ
ĪÎŦ",
+ "action.removeFromQueue": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
+ "action.removeFromQueue.success": "ÎĪιΚĪÎθΡÎēÎĩ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
+ "action.removeFromQueue.error": "ÎŖĪÎŦÎģÎŧÎą ÎĪÎąÎ¯ĪÎĩĪÎˇĪ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
+ "action.createPlaylist": "ÎΡÎŧΚÎŋĪ
ĪÎŗÎ¯Îą ÎŊÎÎąĪ ÎģίĪĪÎąĪ ÎąÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
+ "action.addToPlaylist": "Î ĪÎŋĪθΎÎēΡ ĪÎĩ ÎģίĪĪÎą",
+ "action.removeFromPlaylist": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎąĪĪ ÎģίĪĪÎą",
+ "action.addToFavorites": "Î ĪÎŋĪθΎÎēΡ ĪĪÎą ÎąÎŗÎąĪΡÎŧÎÎŊÎą",
+ "action.follow": "ÎÎēÎŋÎģÎŋĪθΡĪΡ",
+ "action.follow.success": "ÎÎēÎŋÎģÎŋĪ
θΎθΡÎēÎĩ",
+ "action.follow.error": "ÎŖĪÎŦÎģÎŧÎą ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
+ "action.unfollow": "ÎΚιÎēÎŋĪÎŽ ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
+ "action.unfollow.success": "ÎÎŗÎšÎŊÎĩ δΚιÎēÎŋĪÎŽ ÎąÎēÎŋÎģÎŋĪθΡĪΡĪ",
+ "action.unfollow.error": "ÎŖĪÎŦÎģÎŧÎą δΚιÎēÎŋĪÎŽĪ ÎąÎēÎŋÎģÎŋĪθΡĪÎˇĪ ",
+ "action.playNext": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ĪĪ ÎĩĪĪÎŧÎĩÎŊÎŋĪ
",
+ "action.playLater": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ÎąĪÎŗĪĪÎĩĪÎą",
+ "action.startRadio": "ÎÎŊÎąĪΞΡ ĪιδΚÎŋĪĪÎŊÎŋĪ
",
+ "action.goToArtist": "ÎÎĩĪÎŦβιĪΡ ĪÎĩ ÎēÎąÎģÎģΚĪÎĪÎŊΡ",
+ "action.goToAlbum": "ÎÎĩĪÎŦβιĪΡ ĪÎĩ ÎŦÎģÎŧĪÎŋĪ
Îŧ",
+ "action.moveToTop": "ÎÎĩĪÎąÎēίÎŊΡĪΡ ĪĪΡ ÎēÎŋĪĪ
ĪÎŽ",
+ "action.share": "ÎÎŋΚÎŊÎŽ ĪĪÎŽĪΡ",
+ "action.rename": "ÎÎĩĪÎŋÎŊÎŋÎŧÎąĪÎ¯Îą",
+ "action.love": "ÎÎŋĪ
ÎąĪÎĪÎĩΚ ĪÎŋÎģĪ",
+ "action.unlove": "ÎÎŊÎąÎ¯ĪÎĩĪΡ \"ÎÎŋĪ
ÎąĪÎĪÎĩΚ\"",
+ "action.dislike": "ÎÎĩÎŊ ÎŧÎŋĪ
ÎąĪÎĪÎĩΚ",
+ "action.undoDislike": "ÎÎŊÎąÎ¯ĪÎĩĪΡ \"ÎÎĩÎŊ ÎŧÎŋĪ
ÎąĪÎĪÎĩΚ\"",
+ "action.showWebRemoteQR": "ÎÎŧĪÎŦÎŊΚĪΡ Web Remote QR",
+ "action.playTracksNext": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ${app.selectedMediaItems.length} ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ ĪĪ ÎĩĪĪÎŧÎĩÎŊĪÎŊ",
+ "action.playTracksLater": "ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽ ${app.selectedMediaItems.length} ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ ÎąĪÎŗĪĪÎĩĪÎą",
+ "action.removeTracks": "ÎĪÎąÎ¯ĪÎĩĪΡ ${self.selectedItems.length} ĪĪÎąÎŗÎŋĪ
δΚĪÎŊ ÎąĪĪ ĪΡÎŊ ÎŋĪ
ĪÎŦ",
+ "action.import": "ÎΚĪÎąÎŗĪÎŗÎŽ",
+ "action.export": "ÎÎžÎąÎŗĪÎŗÎŽ",
+ "action.showAlbum": "ÎÎŧĪÎŦÎŊΚĪΡ ÎŋÎģĪÎēÎģΡĪÎŋĪ
ÎŦÎģÎŧĪÎŋĪ
Îŧ",
+ "action.tray.minimize": "ÎÎģÎąĪΚĪĪÎŋĪÎŋÎ¯ÎˇĪΡ ĪĪΡ ÎŗĪÎŊÎ¯Îą ÎŗĪÎąÎŧÎŧÎŽĪ ÎĩĪÎŗÎąĪΚĪÎŊ",
+ "action.tray.quit": "ÎΞÎŋδÎŋĪ",
+ "action.tray.show": "ÎÎŧĪÎŦÎŊΚĪΡ",
+ "action.update": "ÎÎŊΡÎŧÎĪĪĪΡ",
+ "action.install": "ÎÎŗÎēÎąĪÎŦĪĪÎąĪΡ",
+ "action.copy": "ÎÎŊĪÎšÎŗĪÎąĪÎŽ",
+ "action.newpreset": "ÎÎÎą ĪĪÎŋĪĪθÎŧΚĪΡ...",
+ "action.deletepreset": "ÎÎšÎąÎŗĪÎąĪÎŽ ĪĪÎŋĪĪθÎŧΚĪΡĪ",
+ "action.open": "ÎÎŊÎŋÎšÎŗÎŧÎą",
+ "settings.header.general": "ÎÎĩÎŊΚÎēÎŦ",
+ "settings.header.general.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ÎŗÎĩÎŊΚÎēĪÎŊ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
+ "settings.option.general.language": "ÎÎģĪĪĪÎą",
+ "settings.option.general.resumebehavior": "ÎŖĪ
ÎŧĪÎĩĪΚĪÎŋĪÎŦ ĪĪ
ÎŊÎĪΚĪΡĪ",
+ "settings.option.general.resumebehavior.description": "Î ĪĪ
ÎŧĪÎĩĪΚĪÎŋĪÎŦ ĪĪ
ÎŊÎĪΚĪÎˇĪ ÎĩĪΡĪÎĩÎŦÎļÎĩΚ ĪÎŋÎŊ ĪĪĪĪÎŋ ÎŧÎĩ ĪÎŋÎŊ ÎŋĪÎŋίÎŋ ĪÎŋ Cider θι ĪĪ
ÎŊÎĩĪίĪÎĩΚ ĪΡ ĪĪ
ÎŊÎĩδĪÎ¯Îą ĪÎąĪ ĪĪÎąÎŊ ÎĩĪΚĪĪĪÎĪÎĩĪÎĩ ĪĪΡÎŊ ÎĩĪÎąĪÎŧÎŋÎŗÎŽ.",
+ "settings.option.general.resumebehavior.locally": "ΤÎŋĪΚÎēĪ",
+ "settings.option.general.resumebehavior.locally.description": "ΤÎŋ Cider θι ĪĪ
ÎŊÎĩĪίĪÎĩΚ ĪΡÎŊ ĪÎĩÎģÎĩĪ
ĪÎąÎ¯Îą ĪĪ
ÎŊÎĩδĪÎ¯Îą ĪÎąĪ ÎąĪ
ĪÎŽĪ ĪÎˇĪ ĪĪ
ĪÎēÎĩĪ
ÎŽĪ.",
+ "settings.option.general.resumebehavior.history": "ÎĪĪÎŋĪΚÎēĪ",
+ "settings.option.general.resumebehavior.history.description": "ΤÎŋ Cider θι βÎŦÎģÎĩΚ ĪĪΡÎŊ ÎŋĪ
ĪÎŦ ĪÎŋ ĪÎĩÎģÎĩĪ
ĪÎąÎ¯Îŋ ĪĪÎąÎŗÎŋĪδΚ ÎąĪĪ ĪÎŋ ĪĪ
ÎŊÎŋÎģΚÎēĪ ÎšĪĪÎŋĪΚÎēĪ Apple Music, ĪÎģĪÎŊ ĪĪÎŊ ĪĪ
ĪÎēÎĩĪ
ĪÎŊ ĪÎąĪ.",
+ "settings.option.general.language.main": "ÎÎģĪĪĪÎĩĪ",
+ "settings.option.general.language.fun": "ÎÎģĪĪĪÎĩĪ ÎŗÎšÎą ĪÎģÎŦÎēÎą",
+ "settings.option.general.language.unsorted": "ÎĪιΞΚÎŊĪÎŧΡĪÎĩĪ",
+ "settings.option.general.updateCider": "ÎÎŊΡÎŧÎĪĪĪΡ Cider",
+ "settings.option.general.updateCider.branch": "ÎÎģÎŦδÎŋĪ ÎĩÎŊΡÎŧÎĪĪĪÎˇĪ Cider",
+ "settings.option.general.updateCider.branch.description": "ÎĪΚÎģÎΞĪÎĩ ĪÎŋÎŊ ÎēÎģÎŦδÎŋ ĪĪÎŋÎŊ ÎŋĪÎŋίÎŋ θι ÎŗÎ¯ÎŊÎĩĪιΚ Ρ ÎĩÎŊΡÎŧÎĪĪĪΡ ĪÎŋĪ
Cider",
+ "settings.option.general.updateCider.branch.main": "ÎŖĪιθÎĩĪĪ",
+ "settings.option.general.updateCider.branch.develop": "ÎÎŊÎąĪĪĪ
ΞΚιÎēĪ",
+ "settings.header.audio": "ÎĪÎŋĪ",
+ "settings.header.audio.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŽĪÎŋĪ
ÎŗÎšÎą ĪÎŋ Cider.",
+ "settings.option.audio.volumeStep": "ÎÎŽÎŧÎąĪÎą ÎÎŊĪÎąĪΡĪ",
+ "settings.option.audio.maxVolume": "ÎÎÎŗÎšĪĪΡ ÎÎŊĪÎąĪΡ",
+ "settings.option.audio.quality": "Î ÎŋΚĪĪΡĪÎą ÎŽĪÎŋĪ
",
+ "settings.header.audio.quality.hireslossless": "Lossless Ī
ĪΡÎģÎŽĪ ÎąÎŊÎŦÎģĪ
ĪΡĪ",
+ "settings.header.audio.quality.hireslossless.description": "ÎĪĪ ÎēιΚ 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "ÎĪĪ ÎēιΚ 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "ÎĨĪΡÎģÎŽ",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "ÎÎąÎŊÎŋÎŊΚÎēÎŽ",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "ÎδΚÎŦÎēÎŋĪΡ ÎŧÎĩĪÎŦβιĪΡ ÎŽĪÎŋĪ
",
+ "settings.option.audio.enableAdvancedFunctionality": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ĪĪÎŋÎˇÎŗÎŧÎÎŊÎˇĪ ÎģÎĩΚĪÎŋĪ
ĪÎŗÎšÎēĪĪΡĪÎąĪ",
+ "settings.option.audio.enableAdvancedFunctionality.description": "ÎÎŊÎĩĪÎŗÎŋĪÎŋΚĪÎŊĪÎąĪ ĪΡ ÎģÎĩΚĪÎŋĪ
ĪÎŗÎšÎēĪĪΡĪÎą AudioContext θι ÎĩĪΚĪĪÎĪÎĩΚ ĪÎĩ ÎĩĪÎĩÎēĪÎąÎŧÎÎŊÎĩĪ Î´Ī
ÎŊÎąĪĪĪΡĪÎĩĪ ÎŽĪÎŋĪ
ĪĪĪĪ ÎÎąÎŊÎŋÎŊΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎÎŊĪÎąĪÎˇĪ ÎĪÎŋĪ
, ÎĪÎŋĪĪιθÎŧΚĪĪÎĪ ÎēιΚ ÎĪĪΚÎēÎŋĪÎŋΚΡĪÎĪ, ĪĪĪĪĪÎŋ ĪÎĩ ÎēÎŦĪÎŋΚι ĪĪ
ĪĪÎŽÎŧÎąĪÎą ÎŧĪÎŋĪÎĩί ÎŊÎą ĪĪÎŋÎēÎąÎģÎĪÎĩΚ ĪĪÎąĪÎģΚĪÎŧÎą ÎŽĪÎŋĪ
.",
+ "settings.option.audio.audioLab": "Cider Audio Lab",
+ "settings.option.audio.audioLab.description": "Î ÎĩĪΚÎĪÎĩΚ ÎŧΚι ĪÎŋΚÎēΚÎģÎ¯Îą ÎąĪĪ ĪĪÎŋĪÎŋĪÎŋΚΎĪÎĩÎšĪ ÎŽĪÎŋĪ
ĪÎŋĪ
ÎÎŗÎšÎŊÎąÎŊ ÎąĪĪ ĪΡÎŊ ÎŋÎŧÎŦδι ĪĪÎŋÎŗĪÎąÎŧÎŧÎąĪΚĪĪĪÎŊ ĪÎŋĪ
Cider",
+ "settings.warn.audioLab.withoutAF": "ΤÎŋ AudioContext (ĪĪÎŋÎˇÎŗÎŧÎÎŊΡ ÎģÎĩΚĪÎŋĪ
ĪÎŗÎšÎēĪĪΡĪÎą) ÎąĪιΚĪÎĩίĪιΚ ÎŗÎšÎą ĪΡÎŊ ÎĩÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ĪÎŋĪ
Cider Audio Laboratory.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "ÎÎŊĪÎąĪΡ Analog Warmth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "ÎÎģÎģÎŦÎļÎĩΚ ĪΡÎŊ ÎÎŊĪÎąĪΡ ĪÎˇĪ ÎĩĪÎĩΞÎĩĪÎŗÎąĪÎ¯ÎąĪ ĪÎŋĪ
Analog Warmth Module.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "ΤÎŋ CAP δÎĩÎŊ ÎĩίÎŊιΚ ĪĪ
ÎŧβιĪĪ ÎŧÎĩ ĪΡ ΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎĪÎŋĪ
. Î ÎąĪÎąÎēÎąÎģÎŋĪÎŧÎĩ ÎąĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΎĪĪÎĩ ĪΡ ΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎĪÎŋĪ
ÎŗÎšÎą ÎŊÎą ĪĪ
ÎŊÎĩĪίĪÎĩĪÎĩ.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "ÎÎŊĪÎąĪΡ CAP",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ÎÎģÎģÎŦÎļÎĩΚ ĪΡÎŊ ÎÎŊĪÎąĪΡ ĪÎˇĪ ÎĩĪÎĩΞÎĩĪÎŗÎąĪÎ¯ÎąĪ ĪÎŋĪ
ÎŽĪÎŋĪ
. (Î ÎĩĪΚθÎĩĪΚÎēÎŽ ÎĩĪÎĩΞÎĩĪÎŗÎąĪÎ¯Îą ÎŧĪÎŋĪÎĩί ÎŊÎą ÎąĪÎŋĪÎĪÎĩΚ ÎąÎŊÎĩĪΚθĪÎŧΡĪÎą ÎąĪÎŋĪÎĩÎģÎĪÎŧÎąĪÎą)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "ÎÎąÎŊÎŋÎŊΚÎēÎŽ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "ÎĪΚθÎĩĪΚÎēÎŽ",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ÎÎąÎŊÎŋÎŊΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎÎŊĪÎąĪÎˇĪ ÎĪÎŋĪ
",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ÎÎąÎŊÎŋÎŊΚÎēÎŋĪÎŋΚÎĩί ĪΡÎŊ ÎÎŊĪÎąĪΡ ÎŗÎšÎą ÎŧÎĩÎŧÎŋÎŊĪÎŧÎÎŊÎą ÎēÎŋÎŧÎŧÎŦĪΚι ÎŗÎšÎą ÎŧΚι ĪΚÎŋ ÎŋÎŧÎŋΚĪÎŧÎŋĪĪΡ ÎĩÎŧĪÎĩΚĪÎ¯Îą ÎąÎēĪĪÎąĪΡĪ.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎĪÎŋĪ
",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ΠΚÎŋ ĪĪΚĪδΚÎŦĪĪÎąĪÎŋĪ ÎēιΚ ĪĪĪΚÎēÎŋĪÎŋΚΡÎŧÎÎŊÎŋĪ ÎŽĪÎŋĪ (ĪΡÎŧÎĩίĪĪΡ: ÎĪ
ĪĪ Î´ÎĩÎŊ ÎĩίÎŊιΚ Dolby Atmos)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "ΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ Cider",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned ÎĪΠΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡĪ, ÎąĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚÎĩί ĪÎšĪ ĪĪÎŋĪÎąĪÎŧĪĪΚÎŧÎĩĪ ĪĪ
θÎŧίĪÎĩÎšĪ ĪÎˇĪ Î§ĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪÎˇĪ ÎĪÎŋĪ
. ΠΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎĪÎŋĪ
ĪĪÎĪÎĩΚ ÎŊÎą ÎĩίÎŊιΚ ÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊΡ.",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Î ĪÎŋĪίÎģ ΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪÎˇĪ Cider",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "ÎÎģÎģÎŦÎļÎĩΚ ĪÎŋ ĪĪÎŋĪίÎģ ĪÎˇĪ Î§ĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡĪ. (ÎĪιΚĪÎĩί ÎĩĪÎąÎŊÎĩÎēÎēίÎŊΡĪΡ)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "ÎÎąÎŊÎŋÎŊΚÎēĪ",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "ÎÎēÎŋĪ
ĪĪΚÎģÎŋĪ",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "ΠΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ δÎĩÎŊ ÎĩίÎŊιΚ ĪĪ
ÎŧβιĪÎŽ ÎŧÎĩ ĪÎŋ CAP. Î ÎąĪÎąÎēÎąÎģÎŋĪÎŧÎĩ ÎąĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΎĪĪÎĩ ĪÎŋ CAP ÎŗÎšÎą ÎŊÎą ĪĪ
ÎŊÎĩĪίĪÎĩĪÎĩ.",
+ "settings.header.visual": "ÎĪĪΚÎēÎŦ",
+ "settings.header.visual.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ÎŋĪĪΚÎēĪÎŊ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
+ "settings.option.visual.windowBackgroundStyle": "ÎŖĪĪ
Îģ ÎĻĪÎŊĪÎŋĪ
Î ÎąĪιθĪĪÎŋĪ
",
+ "settings.header.visual.windowBackgroundStyle.none": "ÎÎąÎŊÎÎŊÎą",
+ "settings.header.visual.windowBackgroundStyle.artwork": "ÎΞĪĪĪ
ÎģÎģÎŋ",
+ "settings.header.visual.windowBackgroundStyle.image": "ÎΚÎēĪÎŊÎą",
+ "settings.option.visual.animatedArtwork": "ÎΚÎŊÎŋĪÎŧÎĩÎŊÎŋ ÎΞĪĪĪ
ÎģÎģÎŋ",
+ "settings.header.visual.animatedArtwork.always": "Î ÎŦÎŊĪÎą",
+ "settings.header.visual.animatedArtwork.limited": "Î ÎĩĪΚÎŋĪΚĪÎŧĪĪ ĪÎĩ ĪÎĩÎģίδÎĩĪ ÎēιΚ ÎĩΚδΚÎēÎĪ ÎēÎąĪÎąĪĪĪÎŽĪÎĩΚĪ",
+ "settings.header.visual.animatedArtwork.disable": "ÎĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊÎŋ ĪÎąÎŊĪÎŋĪ",
+ "settings.option.visual.animatedArtworkQuality": "Î ÎŋΚĪĪΡĪÎą ÎΚÎŊÎŋĪÎŧÎĩÎŊÎŋĪ
ÎΞĪĪĪÎģÎģÎŋĪ
",
+ "settings.header.visual.animatedArtworkQuality.low": "ΧιÎŧΡÎģÎŽ",
+ "settings.header.visual.animatedArtworkQuality.medium": "ÎÎĪĪΚι",
+ "settings.header.visual.animatedArtworkQuality.high": "ÎĨĪΡÎģÎŽ",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Î ÎŋÎģĪ ÎĨĪΡÎģÎŽ",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ÎÎēĪÎąÎ¯Îą",
+ "settings.option.visual.animatedWindowBackground": "ÎΚÎŊÎŋĪÎŧÎĩÎŊÎŋ ÎĻĪÎŊĪÎŋ Î ÎąĪιθĪĪÎŋĪ
",
+ "settings.option.visual.hardwareAcceleration": "ÎĪΚĪÎŦĪĪ
ÎŊĪΡ ÎĨÎģΚÎēÎŋĪ",
+ "settings.option.visual.hardwareAcceleration.description": "ÎĪιΚĪÎĩί ÎĩĪÎąÎŊÎĩÎēÎēίÎŊΡĪΡ",
+ "settings.header.visual.hardwareAcceleration.default": "Î ĪÎŋÎĩĪΚÎģÎŋÎŗÎŽ",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "ÎÎÎŧÎą",
+ "settings.option.visual.theme.github.download": "ÎÎŗÎēÎąĪÎŦĪĪÎąĪΡ ÎąĪĪ ĪĪÎŊδÎĩĪÎŧÎŋ GitHub",
+ "settings.option.visual.theme.github.explore": "ÎΞÎĩĪÎĩĪÎŊΡĪΡ θÎĩÎŧÎŦĪĪÎŊ GitHub",
+ "settings.header.visual.theme.github.page": "ÎÎÎŧÎąĪÎą ÎąĪĪ ĪÎŋ GitHub",
+ "settings.option.visual.theme.github.install.confirm": "ÎÎÎģÎĩĪÎĩ ĪÎ¯ÎŗÎŋĪ
ĪÎą ÎŊÎą ÎĩÎŗÎēÎąĪÎąĪĪÎŽĪÎĩĪÎĩ ĪÎŋ θÎÎŧÎą {{ repo }};",
+ "settings.prompt.visual.theme.github.URL": "ÎΚĪÎŦÎŗÎĩĪÎĩ ĪÎŋÎŊ ĪĪÎŊδÎĩĪÎŧÎŋ ĪÎŋĪ
θÎÎŧÎąĪÎŋĪ ĪÎŋĪ
θÎÎģÎĩĪÎĩ ÎŊÎą ÎĩÎŗÎēÎąĪÎąĪĪÎŽĪÎĩĪÎĩ",
+ "settings.notyf.visual.theme.install.success": "ΤÎŋ θÎÎŧÎą ÎĩÎŗÎēÎąĪÎąĪĪÎŦθΡÎēÎĩ ÎŧÎĩ ÎĩĪΚĪĪ
ĪÎ¯Îą",
+ "settings.notyf.visual.theme.install.error": "ÎĪÎŋĪĪ
ĪÎ¯Îą ÎĩÎŗÎēÎąĪÎŦĪĪÎąĪÎˇĪ ĪÎŋĪ
θÎÎŧÎąĪÎŋĪ",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "ÎŖÎēÎŋĪÎĩΚÎŊĪ",
+ "settings.option.visual.showPersonalInfo": "ÎÎŧĪÎŦÎŊΚĪΡ ĪĪÎŋĪĪĪΚÎēĪÎŊ ĪĪÎŋΚĪÎĩίĪÎŊ",
+ "settings.header.lyrics": "ÎŖĪίĪÎŋΚ",
+ "settings.header.lyrics.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪĪ
θÎŧίĪÎĩĪÎŊ ĪĪίĪĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
+ "settings.option.lyrics.enableMusixmatch": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ÎŖĪίĪĪÎŊ Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ÎÎĩΚĪÎŋĪ
ĪÎŗÎ¯ÎąĪ ÎÎąĪÎąĪÎēÎĩ (Musixmatch ÎŧĪÎŊÎŋ)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Î ĪÎŋĪΚÎŧĪÎŧÎĩÎŊΡ ÎÎģĪĪĪÎą ÎÎĩĪÎŦĪĪÎąĪÎˇĪ Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ ÎŖĪίĪĪÎŊ Youtube ÎŗÎšÎą ÎÎŋĪ
ĪΚÎēÎŦ ÎίÎŊĪÎĩÎŋ",
+ "settings.header.connectivity": "ÎŖĪÎŊδÎĩĪΡ",
+ "settings.header.connectivity.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪĪ
θÎŧίĪÎĩĪÎŊ ĪĪÎŊδÎĩĪÎˇĪ ÎŗÎšÎą ĪÎŋ Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "ÎΚδÎŋĪÎŋΚΎĪÎĩÎšĪ ÎÎŊÎąĪÎąĪÎąÎŗĪÎŗÎŽĪ",
+ "settings.header.connectivity.discordRPC.cider": "ÎÎŧĪÎŦÎŊΚĪΡ ĪĪ 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "ÎÎŧĪÎŦÎŊΚĪΡ ĪĪ 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "ÎÎēÎēιθÎŦĪΚĪΡ ĪÎŋĪ
Discord Rich Presence ĪĪΡÎŊ Î ÎąĪĪΡ",
+ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "ÎιθĪ
ĪĪÎĪΡĪΡ LastFM Scrobble (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "ÎÎŊÎĩĪÎŗÎŋĪÎŋÎ¯ÎˇĪΡ LastFM \"Now Playing\"",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "ÎĪÎąÎ¯ĪÎĩĪΡ ÎēÎąÎģÎģΚĪÎĩĪÎŊĪÎŊ feature ÎąĪĪ ĪÎŋÎŊ ĪίĪÎģÎŋ ĪÎŋĪ
ĪĪÎąÎŗÎŋĪ
δΚÎŋĪ (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "ÎĻΚÎģĪĪÎŦĪΚĪÎŧÎą ÎĩĪÎąÎŊÎĩΚÎģΡÎŧÎŧÎÎŊÎŋĪ
ĪĪÎąÎŗÎŋĪ
δΚÎŋĪ (LastFM)",
+ "settings.header.debug": "ÎĪÎŋĪĪÎąÎģÎŧÎŦĪĪĪΡ",
+ "settings.option.debug.copy_log": "ÎÎŊĪÎšÎŗĪÎąĪÎŽ ÎąĪĪÎĩίĪÎŊ ÎēÎąĪÎąÎŗĪÎąĪÎŽĪ ĪĪÎŋ ĪĪĪĪÎĩΚĪÎŋ",
+ "settings.option.debug.openAppData": "ÎÎŊÎŋÎšÎŗÎŧÎą ĪÎŋĪ
ĪÎąÎēÎÎģÎŋĪ
Cider",
+ "settings.header.experimental": "Î ÎĩΚĪÎąÎŧÎąĪΚÎēÎĪ",
+ "settings.header.experimental.description": "Î ĪÎŋĪÎąĪÎŧÎŋÎŗÎŽ ĪÎĩΚĪÎąÎŧÎąĪΚÎēĪÎŊ ĪĪ
θÎŧίĪÎĩĪÎŊ ÎŗÎšÎą ĪÎŋ Cider.",
+ "settings.option.experimental.compactUI": "ÎŖĪ
ÎŧĪÎąÎŗÎŽĪ ÎΚÎĩĪÎąĪÎŽ",
+ "settings.option.experimental.closeButtonBehaviour": "ÎŖĪ
ÎŧĪÎĩĪΚĪÎŋĪÎŦ ÎÎŋĪ
ÎŧĪΚÎŋĪ ÎΞĪδÎŋĪ
",
+ "settings.option.experimental.closeButtonBehaviour.quit": "ÎΞÎŋδÎŋĪ ĪÎŋĪ
Cider",
+ "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "ÎÎģÎąĪΚĪĪÎŋĪÎŋÎ¯ÎˇĪΡ ĪĪΡ ÎŗĪÎąÎŧÎŧÎŽ ÎĩĪÎŗÎąĪΚĪÎŊ",
+ "settings.option.experimental.closeButtonBehaviour.minimizeTray": "ÎÎģÎąĪΚĪĪÎŋĪÎŋÎ¯ÎˇĪΡ ĪĪΡ ÎŗĪÎŊÎ¯Îą ÎŗĪÎąÎŧÎŧÎŽĪ ÎĩĪÎŗÎąĪΚĪÎŊ",
+ "spatial.notTurnedOn": "ΠΧĪĪΚÎēÎŋĪÎŋÎ¯ÎˇĪΡ ÎĪÎŋĪ
ÎĩίÎŊιΚ ÎąĪÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΡÎŧÎÎŊΡ. ÎΚι ĪĪÎŽĪΡ, ĪÎąĪÎąÎēÎąÎģÎŋĪÎŧÎĩ ÎĩÎŊÎĩĪÎŗÎŋĪÎŋΚΎĪĪÎĩ ĪΡÎŊ ĪĪĪĪÎą.",
+ "spatial.spatialProperties": "ΧĪĪΚÎēÎĪ ÎδΚĪĪΡĪÎĩĪ",
+ "spatial.width": "Î ÎģÎŦĪÎŋĪ",
+ "spatial.height": "ÎĪÎŋĪ",
+ "spatial.depth": "ÎÎŦθÎŋĪ",
+ "spatial.gain": "ÎĪÎŋÎģιβΎ",
+ "spatial.roomMaterials": "ÎĨÎģΚÎēÎŦ ÎĪÎŧÎąĪίÎŋĪ
",
+ "spatial.roomDimensions": "ÎΚιĪĪÎŦĪÎĩÎšĪ ÎĪÎŧÎąĪίÎŋĪ
",
+ "spatial.roomPositions": "ÎÎĪÎĩÎšĪ ÎĪÎŧÎąĪίÎŋĪ
",
+ "spatial.setDimensions": "ÎĪΚĪÎŧĪĪ ÎΚιĪĪÎŦĪÎĩĪÎŊ",
+ "spatial.setPositions": "ÎĪΚĪÎŧĪĪ ÎÎĪÎĩĪÎŊ",
+ "spatial.up": "Î ÎŦÎŊĪ",
+ "spatial.front": "Î ĪĪĪÎŋĪΡ",
+ "spatial.left": "ÎĪΚĪĪÎĩĪÎŦ",
+ "spatial.right": "ÎÎĩΞΚÎŦ",
+ "spatial.back": "ΠίĪĪ ÎĪΡ",
+ "spatial.down": "ÎÎŦĪĪ",
+ "spatial.listener": "ÎÎēĪÎŋÎąĪÎŽĪ",
+ "spatial.audioSource": "Î ÎˇÎŗÎŽ ÎĪÎŋĪ
",
+ "settings.header.unfinished": "ÎÎŧΚĪÎĩÎģÎŽĪ",
+ "remote.web.title": "Cider Remote",
+ "remote.web.description": "ÎŖÎąĪĪĪĪÎĩ ĪÎŋÎŊ ÎēĪδΚÎēĪ QR ÎŗÎšÎą ĪĪÎļÎĩĪ
ΞΡ ĪÎŋĪ
Cider ÎŧÎĩ ĪÎŋ ÎēΚÎŊΡĪĪ ĪÎąĪ",
+ "about.thanks": "ÎÎĩÎŗÎŦÎģÎą ÎĩĪ
ĪÎąĪΚĪĪĪ ĪĪΡÎŊ ÎÎŧÎŦδι Cider Collective ÎēιΚ ĪÎĩ ĪÎģÎŋĪ
Ī ĪÎŋĪ
Ī ĪĪ
ÎŊÎĩΚĪĪÎĪÎŋÎŊĪÎĪ ÎŧÎąĪ."
}
\ No newline at end of file
diff --git a/src/i18n/en_GB.jsonc b/src/i18n/en_GB.json
similarity index 54%
rename from src/i18n/en_GB.jsonc
rename to src/i18n/en_GB.json
index bf6030b1..6555b245 100644
--- a/src/i18n/en_GB.jsonc
+++ b/src/i18n/en_GB.json
@@ -1,16 +1,20 @@
{
- // i18n Info
- "i18n.languageName": "English (UK)", // name of language in native language
- "i18n.languageNameEnglish": "English (UK)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "Core, inalone", // Authors, if you contribute to this file feel free to add your name seperated with a space
+ "i18n.languageName": "English (UK)",
+ "i18n.languageNameEnglish": "English (UK)",
+ "i18n.category": "main",
+ "i18n.authors": "Core, inalone, nosh118",
"date.format": "${d} ${m}, ${y}",
- // translations
"term.equalizer": "Equaliser",
- "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalisation , Equalisers and Visualisers, however on some systems this may cause stuttering in audio tracks.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalisation", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalisation, Equalisers and Visualisers - however on some systems this may cause stuttering in audio tracks.",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalisation",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalises peak volume for individual tracks to create a more uniform listening experience.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialise audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
- "spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first."
+ "spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first.",
+ "action.tray.minimize": "Minimise to Tray",
+ "term.tracks": "songs",
+ "term.track": {
+ "one" : "song",
+ "other" : "songs"
+ }
}
diff --git a/src/i18n/en_HODOR.jsonc b/src/i18n/en_HODOR.json
similarity index 80%
rename from src/i18n/en_HODOR.jsonc
rename to src/i18n/en_HODOR.json
index e925e968..5736ce86 100644
--- a/src/i18n/en_HODOR.jsonc
+++ b/src/i18n/en_HODOR.json
@@ -1,25 +1,15 @@
-{ // HODOR
-
- // i18n Info
- "i18n.languageName": "HODOR", // name of language in native language
- "i18n.languageNameEnglish": "HODOR", // name of language in English
- "i18n.category": "fun", // main = real language, fun = fun community languages
- "i18n.authors": "HODOR", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "HODOR",
+ "i18n.languageNameEnglish": "HODOR",
+ "i18n.category": "fun",
+ "i18n.authors": "HODOR",
"app.name": "HODER",
-
"date.format": "${m} ${d}, ${y}",
-
- // Dialogs
"dialog.cancel": "NO HODOR",
"dialog.ok": "YES HODOR",
-
- // Notification
"notification.updatingLibrarySongs": "UPDATING HODOR HODORS...",
"notification.updatingLibraryAlbums": "UPDATING HODOR HODORBUMS...",
"notification.updatingLibraryArtists": "UPDATING HODOR HODORTISTS...",
- // Terms
"term.appleInc": "HODOR Inc.",
"term.appleMusic": "HODOR MUSIC",
"term.applePodcasts": "HODOR PODCASTS",
@@ -91,10 +81,10 @@
"term.less": "hodor",
"term.showMore": "MORE HODOR",
"term.showLess": "LESS HODOR",
- "term.topSongs" : "TOP HODORS",
+ "term.topSongs": "TOP HODORS",
"term.latestReleases": "LATEST HODORS",
"term.time.added": "HODOR ADDED",
- "term.time.released": "HODOR RELEASED",
+ "term.time.released": "HODOR RELEASED",
"term.time.updated": "HODOR UPDATED",
"term.fullscreenView": "FULL HODOR",
"term.defaultView": "NO HODOR",
@@ -121,10 +111,8 @@
"term.time.seconds": "HODOR",
"term.time.second": "HODOR",
"term.funLanguages": "HODOR SPEAKS",
- "term.videos": "HODOR WATCHING",
+ "term.videos": "HODOR WATCHING",
"term.menu": "HODOR MENU",
-
- // Home
"home.title": "HODOR",
"home.recentlyPlayed": "RECENTLY HODOR",
"home.recentlyAdded": "NEW HODOR",
@@ -133,13 +121,10 @@
"home.madeForYou": "HODOR FOR YOU",
"home.friendsListeningTo": "FRIENDS HODOR HODOR",
"home.followedArtists": "FOLLOWED HODOR",
- // Errors
"error.appleMusicSubRequired": "HODOR MUSIC REQUIRES A HODOR.",
"error.connectionError": "CANNOT HODOR TO HODOR.",
"error.noResults": "NO HODOR.",
"error.noResults.description": "TRY NEW HODOR.",
-
- //Podcasts
"podcast.followOnCider": "FOLLOW ON HODOR",
"podcast.followedOnCider": "FOLLOWING ON HODOR",
"podcast.subscribeOnItunes": "SUBSCRIBE ON iHODOR",
@@ -148,8 +133,6 @@
"podcast.episodes": "HODORS",
"podcast.playEpisode": "PLAY HODOR",
"podcast.website": "HODORCAST PAGE",
-
- // Actions
"action.addToLibrary": "ADD HODOR",
"action.addToLibrary.success": "YES HODOR",
"action.addToLibrary.error": "NO HODOR",
@@ -190,123 +173,96 @@
"action.import": "HODOR IN",
"action.export": "HODOR OUT",
"action.showAlbum": "SHOW HODOR HODOR",
- // Waiting on Core for moving plugin to app.ts
"action.tray.minimize": "HODOR TO TRAY",
"action.tray.quit": "HODOR",
"action.tray.show": "SEE",
-
- // Settings - General (Reserved)
"settings.header.general": "HODORAL",
"settings.header.general.description": "HODOR HODORAL HODOR FOR HODOR.",
"settings.option.general.language": "HODOR SPEAKS",
-
- // Language optgroups
"settings.option.general.language.main": "REAL HODORS",
"settings.option.general.language.fun": "HODOR HODORS",
"settings.option.general.language.unsorted": "NO HODORS",
-
- // Settings - Audio
"settings.header.audio": "HODOR HEARS",
"settings.header.audio.description": "ADJUST HODOR EARS FOR HODOR HODOR.",
- "settings.option.audio.quality": "HODOR QUALITY", // Dropdown
+ "settings.option.audio.quality": "HODOR QUALITY",
"settings.header.audio.quality.high": "HODOR!!.",
"settings.header.audio.quality.low": "hodor.",
"settings.header.audio.quality.auto": "HODORMATIC",
- "settings.option.audio.seamlessTransition": "SEAMLESS HODOR", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "ADVANCED HODOR", // Toggle
+ "settings.option.audio.seamlessTransition": "SEAMLESS HODOR",
+ "settings.option.audio.enableAdvancedFunctionality": "ADVANCED HODOR",
"settings.option.audio.enableAdvancedFunctionality.description": "ENABLING HODOR FUNCTIONALITY WILL HODOR FOR EXTENDED HODOR FEATURES LIKE HODOR NORMALIZATION , HODORIZERS AND HODORS, BUT ON SOME HODOR SYSTEMS THIS HODOR CAUSE HODOR IN HODOR.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "HODOR NORMALIZATION", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "HODOR NORMALIZATION",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NORMALIZES HODOR VOLUME FOR INDIVIDUAL HODORS TO HODOR A MORE HODOR LISTENING HODOR.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SPATIALIZE HODOR AND MAKE HODOR MORE 3-HODOR (HODOR: THIS IS NOT HODOR ATMOS)",
- // Settings - Visual
- "settings.header.visual": "HODOR SEES",
+ "settings.header.visual": "HODOR SEES",
"settings.header.visual.description": "ADJUST HODOR EYES FOR HODOR.",
- "settings.option.visual.windowBackgroundStyle": "BACK HODOR STYLE", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "BACK HODOR STYLE",
"settings.header.visual.windowBackgroundStyle.none": "NO HODOR",
"settings.header.visual.windowBackgroundStyle.artwork": "HODORWORK",
"settings.header.visual.windowBackgroundStyle.image": "HODOR",
- "settings.option.visual.animatedArtwork": "MOVING HODORWORK", // Dropdown
+ "settings.option.visual.animatedArtwork": "MOVING HODORWORK",
"settings.header.visual.animatedArtwork.always": "YES HODOR",
"settings.header.visual.animatedArtwork.limited": "SOME HODOR",
"settings.header.visual.animatedArtwork.disable": "NO HODOR",
- "settings.option.visual.animatedArtworkQuality": "MOVING HODOR QUALITY", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "MOVING HODOR QUALITY",
"settings.header.visual.animatedArtworkQuality.low": "hodor..",
"settings.header.visual.animatedArtworkQuality.medium": "HODOR.",
"settings.header.visual.animatedArtworkQuality.high": "HODOR!",
"settings.header.visual.animatedArtworkQuality.veryHigh": "HODOR HODOR!",
"settings.header.visual.animatedArtworkQuality.extreme": "HODOOOOOOOR!!",
- "settings.option.visual.animatedWindowBackground": "ANIMATED HODOR BACK", // Toggle
- "settings.option.visual.hardwareAcceleration": "HODOR ACCELERATION", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "ANIMATED HODOR BACK",
+ "settings.option.visual.hardwareAcceleration": "HODOR ACCELERATION",
"settings.option.visual.hardwareAcceleration.description": "NEED RE HODOR",
- "settings.header.visual.hardwareAcceleration.default": "HODOR.",
- "settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?", // Toggle
-
- // Settings - Lyrics
+ "settings.header.visual.hardwareAcceleration.default": "HODOR.",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!",
+ "settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?",
"settings.header.lyrics": "HODOR READS",
"settings.header.lyrics.description": "ADJUST THE HODOR TEXT FOR HODOR.",
- "settings.option.lyrics.enableMusixmatch": "MUSIXMATCH HODOR", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "HO-DOR SING MODE (MUSIXMATCH HODOR)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "TRANSLATE HODOR TEXT", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "HODOR YOUTUBE HODOR TEXT FOR HODOR VIDEOS", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "MUSIXMATCH HODOR",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "HO-DOR SING MODE (MUSIXMATCH HODOR)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "TRANSLATE HODOR TEXT",
+ "settings.option.lyrics.enableYoutubeLyrics": "HODOR YOUTUBE HODOR TEXT FOR HODOR VIDEOS",
"settings.header.connectivity": "HODORTIVITY",
"settings.header.connectivity.description": "ADJUST THE HODORTIVITY FOR HODOR.",
- "settings.option.connectivity.discordRPC": "DISCORD HODOR", // Dropdown
- "settings.option.connectivity.playbackNotifications": "NOTIFICATION FOR HODOR", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "DISCORD HODOR",
+ "settings.option.connectivity.playbackNotifications": "NOTIFICATION FOR HODOR",
"settings.header.connectivity.discordRPC.cider": "SEE HODOR AS 'CIDER'",
"settings.header.connectivity.discordRPC.appleMusic": "SEE HODOR AS 'HODOR MUSIC'",
- "settings.option.connectivity.discordRPC.clearOnPause": "HODOR DISCORD ON PAUSE", // Toggle
- "settings.option.connectivity.lastfmScrobble": "HODOR.FM SCROBBLING", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "HODOR.FM HODOR DELAY (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "YES HODOR.FM NOW HODORING",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "DELETE HODORING HODORTIST FROM HODOR TITLE (HODOR.FM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "FILTER MULTI HODOEDR HODOR (HODOR.FM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
+ "settings.option.connectivity.discordRPC.clearOnPause": "HODOR DISCORD ON PAUSE",
+ "settings.option.connectivity.lastfmScrobble": "HODOR.FM SCROBBLING",
+ "settings.option.connectivity.lastfmScrobble.delay": "HODOR.FM HODOR DELAY (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "YES HODOR.FM NOW HODORING",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "DELETE HODORING HODORTIST FROM HODOR TITLE (HODOR.FM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "FILTER MULTI HODOEDR HODOR (HODOR.FM)",
"settings.header.experimental": "EXPERIMENTAL HODOR",
"settings.header.experimental.description": "ADJUST THE EXPERIMENTAL HODOR FOR HODOR.",
- "settings.option.experimental.compactUI": "smol hodor", // Toggle
+ "settings.option.experimental.compactUI": "smol hodor",
"settings.option.experimental.closeButtonBehaviour": "CLOSE HODOR BUTTON",
"settings.option.experimental.closeButtonBehaviour.quit": "END HODOR",
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "MINIMIZE HODOR TO HODORBAR",
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "MINIMIZE HODOR TO HODORAY",
- // Refer to term.disabled & term.enabled
-
- // Spatialization Menu
"spatial.notTurnedOn": "HODOR SPATIALIZATION IS HODOR. TO HODOR, PLEASE HODOR IT HODOR.",
- "spatial.spatialProperties" : "SPATIAL HODOR",
- "spatial.width" : "HODOR WIDTH",
- "spatial.height" : "HODOR HEIGHT",
- "spatial.depth" : "HODOR DEPTH",
- "spatial.gain" : "HODOR POWER",
- "spatial.roomMaterials" : "ROOM HODORS",
- "spatial.roomDimensions" : "ROOM HODOR SIZE",
- "spatial.roomPositions" : "ROOM HODOR POSITION",
- "spatial.setDimensions" : "HODOR SIZE",
- "spatial.setPositions" : "SET HODOR POSITION",
- "spatial.up" : "UP HODOR",
- "spatial.front" : "FRONT HODOR",
- "spatial.left" : "LEFT HODOR",
- "spatial.right" : "RIGHT HODOR",
- "spatial.back" : "BACK HODOR",
- "spatial.down" : "DOWN HODOR",
- "spatial.listener" : "HODOR EARS",
- "spatial.audioSource" : "HODOR PLAYS",
-
- // Settings - Unfinished
+ "spatial.spatialProperties": "SPATIAL HODOR",
+ "spatial.width": "HODOR WIDTH",
+ "spatial.height": "HODOR HEIGHT",
+ "spatial.depth": "HODOR DEPTH",
+ "spatial.gain": "HODOR POWER",
+ "spatial.roomMaterials": "ROOM HODORS",
+ "spatial.roomDimensions": "ROOM HODOR SIZE",
+ "spatial.roomPositions": "ROOM HODOR POSITION",
+ "spatial.setDimensions": "HODOR SIZE",
+ "spatial.setPositions": "SET HODOR POSITION",
+ "spatial.up": "UP HODOR",
+ "spatial.front": "FRONT HODOR",
+ "spatial.left": "LEFT HODOR",
+ "spatial.right": "RIGHT HODOR",
+ "spatial.back": "BACK HODOR",
+ "spatial.down": "DOWN HODOR",
+ "spatial.listener": "HODOR EARS",
+ "spatial.audioSource": "HODOR PLAYS",
"settings.header.unfinished": "NOT HODOR YET",
-
- // Web Remote
"remote.web.title": "HODOR REMOTE",
"remote.web.description": "HODOR THE HODOR TO HODOR YOUR HODOR UP WITH THIS HODOR INSTANCE",
-
- //About
"about.thanks": "HODOR THANKS TO THE HODOR TEAM AND ALL OF OUR HODORS."
-
}
\ No newline at end of file
diff --git a/src/i18n/en_OWO.json b/src/i18n/en_OWO.json
new file mode 100644
index 00000000..442023e5
--- /dev/null
+++ b/src/i18n/en_OWO.json
@@ -0,0 +1,413 @@
+{
+ "i18n.languageName": "Engwish (OwO)",
+ "i18n.languageNameEnglish": "Engwish (OwO)",
+ "i18n.category": "fun",
+ "i18n.authors": "@deerwithacurl @gamingliamstudios",
+ "app.name": "Cidew",
+ "date.format": "${m} ${d}, ${y}",
+ "dialog.cancel": "Cancew",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Updating wibwawy songs...",
+ "notification.updatingLibraryAlbums": "Updating wibwawy awbums...",
+ "notification.updatingLibraryArtists": "Updating wibwawy awtists...",
+ "term.appleInc": "Appwe Inc.",
+ "term.appleMusic": "Appwe Music",
+ "term.applePodcasts": "Appwe Podcasts",
+ "term.itunes": "iTunyes",
+ "term.github": "GitHub",
+ "term.discord": "Discowd",
+ "term.learnMore": "Weawn mowe",
+ "term.accountSettings": "Account Settings",
+ "term.logout": "Wogout",
+ "term.login": "Wog In",
+ "term.about": "About",
+ "term.privateSession": "Pwivate Session",
+ "term.queue": "Queue",
+ "term.lyrics": "Wywics",
+ "term.miniplayer": "MinyiPwayew",
+ "term.history": "Histowy",
+ "term.search": "Seawch",
+ "term.library": "Wibwawy",
+ "term.listenNow": "Wisten Nyow",
+ "term.browse": "Bwowse",
+ "term.radio": "Wadio",
+ "term.recentlyAdded": "Wecentwy Added",
+ "term.songs": "Songs",
+ "term.albums": "Awbums",
+ "term.artists": "Awtists",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Pwaywists",
+ "term.playlist": "Pwaywist",
+ "term.newPlaylist": "Nyew Pwaywist",
+ "term.newPlaylistFolder": "Nyew Pwaywist Fowdew",
+ "term.createNewPlaylist": "Cweate Nyew Pwaywist",
+ "term.createNewPlaylistFolder": "Cweate Nyew Pwaywist Fowdew",
+ "term.deletePlaylist": "Awe you suwe you want to dewete this pwaywist?",
+ "term.play": "Pway",
+ "term.pause": "Pause",
+ "term.previous": "Pwevious",
+ "term.next": "Nyext",
+ "term.shuffle": "Shuffwe",
+ "term.repeat": "Wepeat",
+ "term.volume": "Vowume",
+ "term.mute": "Mute",
+ "term.unmute": "Unmute",
+ "term.share": "Shawe",
+ "term.share.success": "Copied to cwipboawd",
+ "term.settings": "Settings",
+ "term.seeAll": "See Aww",
+ "term.sortBy": "Sowt By",
+ "term.sortBy.album": "Awbum",
+ "term.sortBy.artist": "Awtist",
+ "term.sortBy.name": "Nyame",
+ "term.sortBy.genre": "Genwe",
+ "term.sortBy.releaseDate": "Wewease Date",
+ "term.sortBy.duration": "Duwation",
+ "term.sortBy.dateAdded": "Date Added",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascending",
+ "term.sortOrder.descending": "Descending",
+ "term.viewAs": "View As",
+ "term.viewAs.coverArt": "Cuvw Awt",
+ "term.viewAs.list": "Wist",
+ "term.size": "Size",
+ "term.size.normal": "Nyowmaw",
+ "term.size.compact": "Compact",
+ "term.enable": "Enyabwe",
+ "term.disable": "Disabwe",
+ "term.enabled": "Enyabwed",
+ "term.disabled": "Disabwed",
+ "term.connect": "Connyect",
+ "term.connecting": "Connyecting",
+ "term.disconnect": "Disconnyect",
+ "term.authed": "Authed",
+ "term.confirm": "Confiwm?",
+ "term.more": "Mowe",
+ "term.less": "Wess",
+ "term.showMore": "Show mowe",
+ "term.showLess": "Show wess",
+ "term.topSongs": "Top Songs",
+ "term.latestReleases": "Watest Weweases",
+ "term.time.added": "Added",
+ "term.time.released": "Weweased",
+ "term.time.updated": "Updated",
+ "term.time.days": "days",
+ "term.time.day": {
+ "one": "day",
+ "other": "days"
+ },
+ "term.time.hours": "houws",
+ "term.time.hour": {
+ "one": "houw",
+ "other": "houws"
+ },
+ "term.time.minutes": "minyutes",
+ "term.time.minute": {
+ "one": "minyute",
+ "other": "minyutes"
+ },
+ "term.time.seconds": "seconds",
+ "term.time.second": {
+ "one": "second",
+ "other": "seconds"
+ },
+ "term.fullscreenView": "Fuwwscween View",
+ "term.defaultView": "Defauwt View",
+ "term.audioSettings": "Audio Settings",
+ "term.audioControls": "Vowume Contwows",
+ "term.clearAll": "Cweaw Aww",
+ "term.recentStations": "Wecent Stations",
+ "term.language": "Wanguage",
+ "term.funLanguages": "Fun",
+ "term.noLyrics": "Woading... / Wywics nyot found./ Instwumentaw.",
+ "term.copyright": "Copywight",
+ "term.rightsReserved": "Aww Wights Wesewved.",
+ "term.sponsor": "Sponsow this pwoject",
+ "term.ciderTeam": "Cidew Team",
+ "term.developer": "Devewopew",
+ "term.socialTeam": "Sociaw Team",
+ "term.socials": "Sociaws",
+ "term.contributors": "Contwibutows",
+ "term.equalizer": "Equawizew",
+ "term.reset": "Weset",
+ "term.tracks": "twacks",
+ "term.track": {
+ "one": "twack",
+ "other": "twacks"
+ },
+ "term.videos": "Videos",
+ "term.menu": "Menyu",
+ "term.check": "Check",
+ "term.aboutArtist": "About {{artistName}}",
+ "term.topResult": "Top Wesuwt",
+ "term.sharedPlaylists": "Shawed Pwaywists",
+ "term.people": "Peopwe",
+ "term.newpreset.name": "Nyew EQ Pweset Nyame",
+ "term.addedpreset": "Added Pweset",
+ "term.deletepreset.warn": "Awe you suwe you want to dewete this pweset?",
+ "term.deletedpreset": "Wemuvd pweset",
+ "term.defaultPresets": "Defauwt Pwesets",
+ "term.userPresets": "Usew Pwesets",
+ "term.requestError": "Thewe was a pwobwem with the wequest.",
+ "term.song.link.generate": "Getting song.wink shawe UWW...",
+ "term.musicVideos": "Music Videos",
+ "term.stations": "Stations",
+ "term.curators": "Cuwatows",
+ "term.appleCurators": "Appwe Cuwatows",
+ "term.radioShows": "Wadio Shows",
+ "term.recordLabels": "Wecowd Wabews",
+ "term.videoExtras": "Video Extwas",
+ "term.top": "Top",
+ "term.version": "Vewsion",
+ "term.noVideos": "Nyo videos found.",
+ "term.plugin": "Pwug-in",
+ "term.pluginMenu": "Pwug-in Menyu",
+ "term.pluginMenu.none": "Nyo intewactive pwugins",
+ "term.replay": "Wepway",
+ "term.uniqueAlbums": "Unyique Awbums",
+ "term.uniqueArtists": "Unyique Awtists",
+ "term.uniqueSongs": "Unyique Songs",
+ "term.topArtists": "Top Awtists",
+ "term.listenedTo": "Wistenyed to:",
+ "term.times": "times",
+ "term.topAlbums": "Top Awbums",
+ "term.plays": "Pways",
+ "term.topGenres": "Top Genwes",
+ "term.confirmLogout": "Awe you suwe you want to wogout?",
+ "home.title": "Home",
+ "home.recentlyPlayed": "Wecentwy Pwayed",
+ "home.recentlyAdded": "Wecentwy Added",
+ "home.artistsFeed": "Youw Awtists Feed",
+ "home.artistsFeed.noArtist": "Fowwow some awtists to see theiw watest weweases",
+ "home.madeForYou": "Made Fow You",
+ "home.friendsListeningTo": "Fwiends Wistenying To",
+ "home.followedArtists": "Fowwowed Awtists",
+ "error.appleMusicSubRequired": "Appwe Music wequiwes a subscwiption.",
+ "error.connectionError": "Thewe was a pwobwem connyecting to Appwe Music.",
+ "error.noResults": "Nyo Wesuwts.",
+ "error.noResults.description": "Twy a nyew seawch.",
+ "podcast.followOnCider": "Fowwow On Cidew",
+ "podcast.followedOnCider": "Fowwowing On Cidew",
+ "podcast.subscribeOnItunes": "Subscwibe On iTunyes",
+ "podcast.subscribedOnItunes": "Subscwibed On iTunyes",
+ "podcast.itunesStore": "iTunyes Stowe",
+ "podcast.episodes": "Episodes",
+ "podcast.playEpisode": "Pway Episode",
+ "podcast.website": "Podcast Website",
+ "action.addToLibrary": "Add to Wibwawy",
+ "action.addToLibrary.success": "Added to Wibwawy",
+ "action.addToLibrary.error": "Ewwow Adding to Wibwawy",
+ "action.removeFromLibrary": "Wemuv fwom Wibwawy",
+ "action.removeFromLibrary.success": "Wemuvd fwom Wibwawy",
+ "action.addToQueue": "Add to Queue",
+ "action.addToQueue.success": "Added to Queue",
+ "action.addToQueue.error": "Ewwow Adding to Queue",
+ "action.removeFromQueue": "Wemuv fwom Queue",
+ "action.removeFromQueue.success": "Wemuvd fwom Queue",
+ "action.removeFromQueue.error": "Ewwow Wemoving fwom Queue",
+ "action.createPlaylist": "Cweate a Nyew Pwaywist",
+ "action.addToPlaylist": "Add to Pwaywist",
+ "action.removeFromPlaylist": "Wemuv fwom Pwaywist",
+ "action.addToFavorites": "Add to Favowites",
+ "action.follow": "Fowwow",
+ "action.follow.success": "Fowwowed",
+ "action.follow.error": "Ewwow Fowwowing",
+ "action.unfollow": "Unfowwow",
+ "action.unfollow.success": "Unfowwowed",
+ "action.unfollow.error": "Ewwow Unfowwowing",
+ "action.playNext": "Pway Nyext",
+ "action.playLater": "Pway Watew",
+ "action.startRadio": "Stawt Wadio",
+ "action.goToArtist": "Go to Awtist",
+ "action.goToAlbum": "Go to Awbum",
+ "action.showInPlaylist": "Show in Pwaywist",
+ "action.showInAppleMusic": "Show in Appwe Music",
+ "action.moveToTop": "Muv out of Fowdew",
+ "action.share": "Shawe",
+ "action.rename": "Wenyame",
+ "action.love": "Wuv",
+ "action.unlove": "Unwuv",
+ "action.dislike": "Diswike",
+ "action.undoDislike": "Undo diswike",
+ "action.showWebRemoteQR": "Web Wemote",
+ "action.playTracksNext": "Pway ${app.selectedMediaItems.length} twacks nyext",
+ "action.playTracksLater": "Pway ${app.selectedMediaItems.length} twacks watew",
+ "action.removeTracks": "Wemuv ${self.selectedItems.length} twacks fwom queue",
+ "action.import": "Impowt",
+ "action.export": "Expowt",
+ "action.showAlbum": "Show Compwete Awbum",
+ "action.tray.minimize": "Minyimize to Tway",
+ "action.tray.quit": "Quit",
+ "action.tray.show": "Show",
+ "action.update": "Update",
+ "action.install": "Instaww",
+ "action.copy": "Copy",
+ "action.newpreset": "Nyew Pweset...",
+ "action.deletepreset": "Dewete Pweset",
+ "action.open": "Open",
+ "action.relaunch.confirm": "Do you want to wewaunch Cidew?",
+ "settings.header.general": "Genyewaw",
+ "settings.header.general.description": "Adjust the genyewaw settings fow Cidew.",
+ "settings.option.general.language": "Wanguage",
+ "settings.option.general.resumebehavior": "Wesume behaviow",
+ "settings.option.general.resumebehavior.description": "Wesume behaviow affects how Cidew wiww wesume youw session when you wetuwn to the app.",
+ "settings.option.general.resumebehavior.locally": "Wocawwy",
+ "settings.option.general.resumebehavior.locally.description": "Cidew wiww wesume youw wast session on this machinye.",
+ "settings.option.general.resumebehavior.history": "Histowy",
+ "settings.option.general.resumebehavior.history.description": "Cidew wiww queue the wast song fwom youw uvwaww Appwe Music histowy, acwoss devices.",
+ "settings.option.general.language.main": "Wanguages",
+ "settings.option.general.language.fun": "Fun Wanguages",
+ "settings.option.general.language.unsorted": "Unsowted",
+ "settings.option.general.updateCider": "Update Cidew",
+ "settings.option.general.updateCider.branch": "Cidew Update Bwanch",
+ "settings.option.general.updateCider.branch.description": "Sewect the bwanch to update Cidew to",
+ "settings.option.general.updateCider.branch.main": "Stabwe",
+ "settings.option.general.updateCider.branch.develop": "Devewopment",
+ "settings.notyf.updateCider.update-not-available": "Nyo update avaiwabwe",
+ "settings.notyf.updateCider.update-downloaded": "Update has been downwoaded, westawt to appwy",
+ "settings.notyf.updateCider.update-error": "Ewwow updating Cidew",
+ "settings.notyf.updateCider.update-timeout": "Update timed out",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "Adjust the audio settings fow Cidew.",
+ "settings.option.audio.volumeStep": "Vowume Step",
+ "settings.option.audio.maxVolume": "Max Vowume",
+ "settings.option.audio.quality": "Audio Quawity",
+ "settings.header.audio.quality.hireslossless": "Hi-Wes Wosswess",
+ "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Wosswess",
+ "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "High",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "Standawd",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "Seamwess Audio Twansition",
+ "settings.option.audio.enableAdvancedFunctionality": "Enyabwe Advanced Functionyawity",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Enyabwing AudioContext functionyawity wiww awwow fow extended audio featuwes wike Audio Nyowmawization, Equawizews and Visuawizews - howevew on some systems this may cause stuttewing in audio twacks.",
+ "settings.option.audio.audioLab": "Cidew Audio Wab",
+ "settings.option.audio.audioLab.description": "An assowtment of in-house devewoped audio effects fow Cidew.",
+ "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionyawity) is wequiwed to enyabwe Cidew Audio Wabowatowy.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Anyawog Wawmth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simuwates the anyawog wawmth modewwed aftew the Kowg Nyutube 6P1",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Anyawog Wawmth intensity",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Anyawog Wawmth Moduwe pwocessing.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Wawm",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenyawinye Pwocessow\u2122\ufe0f",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes evewything sound both wichew and mowe wivewy.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is nyot compatibwe with Spatiawization. Pwease disabwe Spatiawization to continyue.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Stwength",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the stwength of the pwocessing donye to the audio. (Aggwessive may yiewd undesiwabwe wesuwts)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standawd",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Nyowmawization",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nyowmawizes peak vowume fow individuaw twacks to cweate a mowe unyifowm wistenying expewience.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatiawization",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audio and make audio mowe 3-dimensionyaw (nyote: This is nyot Dowby Atmos)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cidew Tunyed Spatiawization",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pwe-tunyed Spatiawizing Effect, disabwes the customizabwe settings of Audio Spatiawization. Spatiawization must be enyabwed as a pwewequisite.",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cidew Spatiawization Pwofiwe",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tunying Pwofiwe of the Spatiawization. (Wequiwes App Westawt)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standawd",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophiwe",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatiawization is nyot compatibwe with CAP. Pwease disabwe CAP to continyue.",
+ "settings.header.visual": "Visuaw",
+ "settings.header.visual.description": "Adjust the visuaw settings fow Cidew.",
+ "settings.option.visual.windowBackgroundStyle": "Window Backgwound Stywe",
+ "settings.header.visual.windowBackgroundStyle.none": "Nyonye",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Awtwowk",
+ "settings.header.visual.windowBackgroundStyle.image": "Image",
+ "settings.option.visual.animatedArtwork": "Anyimated Awtwowk",
+ "settings.header.visual.animatedArtwork.always": "Awways",
+ "settings.header.visual.animatedArtwork.limited": "Wimited to pages and speciaw entwies",
+ "settings.header.visual.animatedArtwork.disable": "Disabwe evewywhewe",
+ "settings.option.visual.animatedArtworkQuality": "Anyimated Awtwowk Quawity",
+ "settings.header.visual.animatedArtworkQuality.low": "Wow",
+ "settings.header.visual.animatedArtworkQuality.medium": "Medium",
+ "settings.header.visual.animatedArtworkQuality.high": "High",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Vewy High",
+ "settings.header.visual.animatedArtworkQuality.extreme": "Extweme",
+ "settings.option.visual.animatedWindowBackground": "Anyimated Window Backgwound",
+ "settings.option.visual.hardwareAcceleration": "Hawdwawe Accewewation",
+ "settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch",
+ "settings.header.visual.hardwareAcceleration.default": "Defauwt",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Theme",
+ "settings.option.visual.theme.github.download": "Instaww fwom GitHub UWW",
+ "settings.option.visual.theme.github.explore": "Expwowe GitHub Themes",
+ "settings.header.visual.theme.github.page": "Themes fwom GitHub",
+ "settings.option.visual.theme.github.install.confirm": "Awe you suwe you want to instaww {{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "Entew the UWW of the theme you want to instaww",
+ "settings.notyf.visual.theme.install.success": "Theme instawwed successfuwwy",
+ "settings.notyf.visual.theme.install.error": "Theme instawwation faiwed",
+ "settings.header.visual.plugin": "Pwugin",
+ "settings.option.visual.plugin.github.download": "Instaww fwom GitHub UWW",
+ "settings.option.visual.plugin.github.explore": "Expwowe GitHub Pwugins",
+ "settings.header.visual.plugin.github.page": "Pwugins fwom GitHub",
+ "settings.option.visual.plugin.github.install.confirm": "Awe you suwe you want to instaww {{ repo }}?",
+ "settings.prompt.visual.plugin.github.URL": "Entew the UWW of the pwugin you want to instaww",
+ "settings.prompt.visual.plugin.github.success": "Pwugin instawwed successfuwwy, Pwess OK to wewaunch Cidew",
+ "settings.notyf.visual.plugin.install.success": "Pwugin instawwed successfuwwy",
+ "settings.notyf.visual.plugin.install.error": "Pwugin instawwation faiwed",
+ "settings.option.visual.theme.default": "Cidew",
+ "settings.option.visual.theme.dark": "Dawk",
+ "settings.option.visual.showPersonalInfo": "Show Pewsonyaw Info",
+ "settings.header.window": "Window",
+ "settings.header.window.description": "Adjust the window settings fow Cidew.",
+ "settings.option.window.openOnStartup": "Open Cidew on Stawtup",
+ "settings.option.window.openOnStartup.hidden": "Open Hidden",
+ "settings.header.lyrics": "Wywics",
+ "settings.header.lyrics.description": "Adjust the wywics settings fow Cidew.",
+ "settings.option.lyrics.enableMusixmatch": "Enyabwe Musixmatch Wywics",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Enyabwe Kawaoke Mode (Musixmatch onwy)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage",
+ "settings.option.lyrics.enableYoutubeLyrics": "Enyabwe Youtube Wywics fow Music Videos",
+ "settings.header.connectivity": "Connyectivity",
+ "settings.header.connectivity.description": "Adjust the connyectivity settings fow Cidew.",
+ "settings.option.connectivity.discordRPC": "Discowd Wich Pwesence",
+ "settings.option.connectivity.playbackNotifications": "Pwayback Nyotifications",
+ "settings.header.connectivity.discordRPC.cider": "Dispway as 'Cidew'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Dispway as 'Appwe Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Cweaw Discowd Wich Pwesence on Pause",
+ "settings.option.connectivity.lastfmScrobble": "Wast.fm Scwobbwing",
+ "settings.option.connectivity.lastfmScrobble.delay": "Wast.fm Scwobbwe Deway (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enyabwe Wast.fm Nyow Pwaying",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Wemuv featuwing awtists fwom song titwe (Wast.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Fiwtew wooped twack (Wast.fm)",
+ "settings.header.debug": "Debug",
+ "settings.option.debug.copy_log": "Copy wogs to cwipboawd",
+ "settings.option.debug.openAppData": "Open Cidew Fowdew",
+ "settings.header.experimental": "Expewimentaw",
+ "settings.header.experimental.description": "Adjust the expewimentaw settings fow Cidew.",
+ "settings.option.experimental.unknownPlugin": "Unknyown Souwces",
+ "settings.option.experimental.unknownPlugin.description": "Awwow instawwation of pwugins fwom wepos othew than the Cidew Pwugin Wepositowy",
+ "settings.option.experimental.compactUI": "Compact UI",
+ "settings.option.window.close_button_hide": "Cwose Button Shouwd Hide the Appwication",
+ "settings.option.experimental.inline_playlists": "Inwinye Pwaywists and Awbums",
+ "settings.option.advanced.playlistTrackMapping": "Pwaywist Twack Mapping",
+ "settings.option.advanced.playlistTrackMapping.description": "Enyabwes deep scannying of pwaywists to detewminye which twacks awe in which pwaywists. Pwaywist cache buiwd times can incwease signyificantwy.",
+ "settings.option.visual.transparent": "Twanspawent fwame",
+ "settings.option.visual.transparent.description": "Twanspawent fwame (nyeeds Theme Suppowt , wequiwes wewaunch)",
+ "spatial.notTurnedOn": "Audio Spatiawization is disabwed. To use, pwease enyabwe it fiwst.",
+ "spatial.spatialProperties": "Spatiaw Pwopewties",
+ "spatial.width": "Width",
+ "spatial.height": "Height",
+ "spatial.depth": "Depth",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Woom Matewiaws",
+ "spatial.roomDimensions": "Woom Dimensions",
+ "spatial.roomPositions": "Woom Positions",
+ "spatial.setDimensions": "Set Dimensions",
+ "spatial.setPositions": "Set Positions",
+ "spatial.up": "Up",
+ "spatial.front": "Fwont",
+ "spatial.left": "Weft",
+ "spatial.right": "Wight",
+ "spatial.back": "Back",
+ "spatial.down": "Down",
+ "spatial.listener": "Wistenyew",
+ "spatial.audioSource": "Audio Souwce",
+ "settings.header.unfinished": "Unfinyished",
+ "remote.web.title": "Cidew Wemote",
+ "remote.web.description": "Scan the QW code to paiw youw phonye up with this Cidew instance",
+ "about.thanks": "Majow thanks to the Cidew Cowwective Team and aww of ouw contwibutows."
+}
\ No newline at end of file
diff --git a/src/i18n/en_OWO.jsonc b/src/i18n/en_OWO.jsonc
deleted file mode 100644
index 7e15e260..00000000
--- a/src/i18n/en_OWO.jsonc
+++ /dev/null
@@ -1,347 +0,0 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "Engwish (OwO)", // name of language in native language
- "i18n.languageNameEnglish": "Engwish (OwO)", // name of language in English
- "i18n.category": "fun", // main = real language, fun = fun community languages
- "i18n.authors": "@deerwithacurl @gamingliamstudios", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
- "app.name": "Cidew",
-
- "date.format": "${m} ${d}, ${y}",
-
- // Dialogs
- "dialog.cancel": "Nu",
- "dialog.ok": "Oki",
-
- // Notification
- "notification.updatingLibrarySongs": "Updating wibwawy songs...",
- "notification.updatingLibraryAlbums": "Updating wibwawy awbums...",
- "notification.updatingLibraryArtists": "Updating wibwawy awtists...",
-
- // Terms
- "term.appleInc": "Appwe Inc.",
- "term.appleMusic": "Appwe Mewsic",
- "term.applePodcasts": "Appwe Pawdcasts",
- "term.itunes": "iTuwunes",
- "term.github": "GitHuwub",
- "term.discord": "Discowd",
- "term.learnMore": "Weawn moar",
- "term.accountSettings": "Accownt Settings",
- "term.logout": "Wogout",
- "term.login": "Wogin",
- "term.about": "Abowt",
- "term.privateSession": "Pwivate Session OwO",
- "term.queue": "Quwue",
- "term.search": "Seawch",
- "term.library": "Wibwawy",
- "term.listenNow": "Wisten Nao",
- "term.browse": "Bwowse",
- "term.radio": "Wadio",
- "term.recentlyAdded": "Wecentwy Added",
- "term.songs": "Sawngs",
- "term.albums": "Awbums",
- "term.artists": "Awtists",
- "term.podcasts": "Pawdcasts",
- "term.playlists": "Pwaywists",
- "term.playlist": "Pwaywist",
- "term.newPlaylist": "Nyew Pwaywist",
- "term.newPlaylistFolder": "New Pwaywist Fowdew",
- "term.createNewPlaylist": "Cweate New Pwaywist",
- "term.createNewPlaylistFolder": "Cweate New Pwaywist Fowdew",
- "term.deletePlaylist": "Awe chu suwe chu wan to dewete dis pwaywist?",
- "term.play": "Pway",
- "term.pause": "Pawse",
- "term.previous": "Pwevious",
- "term.next": "Next",
- "term.shuffle": "Shuffwe",
- "term.repeat": "Wepeat",
- "term.volume": "Vowume",
- "term.mute": "Muwute",
- "term.unmute": "Unmuwute",
- "term.share": "Shawe",
- "term.share.success": "Copied to cwipboawd",
- "term.settings": "Settings",
- "term.seeAll": "See Aww",
- "term.sortBy": "Sowt By",
- "term.sortBy.album": "Awbum",
- "term.sortBy.artist": "Awtist",
- "term.sortBy.name": "Name",
- "term.sortBy.genre": "Genwe",
- "term.sortBy.releaseDate": "Wewease Date",
- "term.sortBy.duration": "Duwation",
- "term.sortOrder": "A-Z",
- "term.sortOrder.ascending": "Ascending",
- "term.sortOrder.descending": "Descending",
- "term.viewAs": "View As",
- "term.viewAs.coverArt": "Covew Awt",
- "term.viewAs.list": "Wist",
- "term.size": "Size",
- "term.size.normal": "Nowmaw",
- "term.size.compact": "Wittwe",
- "term.enable": "Enabwe",
- "term.disable": "Disabwe",
- "term.enabled": "Enabwed",
- "term.disabled": "Disabwed",
- "term.connect": "Connect",
- "term.connecting": "Connecting",
- "term.disconnect": "Disconnect",
- "term.authed": "Authed",
- "term.confirm": "Confiwm?",
- "term.more": "Moar",
- "term.less": "Wess",
- "term.showMore": "Show moar",
- "term.showLess": "Show wess",
- "term.topSongs": "Top Songs",
- "term.latestReleases": "Watest Weweases",
- "term.time.added": "Added",
- "term.time.released": "Weweased",
- "term.time.updated": "Updated",
- "term.time.hours": "houws",
- "term.time.hour": "houw",
- "term.time.minutes": "minuwtes",
- "term.time.minute": "minuwte",
- "term.time.seconds": "seconds",
- "term.time.second": "second",
- "term.fullscreenView": "Fuwwwscween View",
- "term.defaultView": "Defauwt View",
- "term.audioSettings": "Audiowo Settings",
- "term.clearAll": "Cweaw Aww",
- "term.recentStations": "Wecent Stations",
- "term.language": "Wanguage",
- "term.funLanguages": "Fun",
- "term.noLyrics": "Woading... / Wywics not found./ Instwumentaw.",
- "term.copyright": "Copywight",
- "term.rightsReserved": "All Wights Wesewved.",
- "term.sponsor": "Sponsow dis pwoject",
- "term.ciderTeam": "Cidew Team",
- "term.developer": "Devewopew",
- "term.socialTeam": "Sociaw Team",
- "term.socials": "Sociaws",
- "term.contributors": "Contwibutows",
- "term.equalizer": "Equawizew",
- "term.reset": "Weset",
- "term.tracks": "twacks", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "Videowos",
- "term.menu": "Menuwu",
- "term.check": "Check",
- "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "Top Wesuwt", // Search Results
- "term.sharedPlaylists": "Shawed Pwaywists", // Search Results
- "term.people": "Peopwe", // Search Results
- "term.newpreset.name": "New EQ Pweset Name", // Equalizer Preset
- "term.addedpreset": "Added Pweset",
- "term.deletepreset.warn": "Awe chu suwe chu want to dewete dis pweset?",
- "term.deletedpreset": "Wemoved pweset",
- "term.musicVideos": "Music Videowos", // Search page friendlyTypes
- "term.stations": "Stations",
- "term.curators": "Cuwatows",
- "term.appleCurators": "Appwe Cuwatows",
- "term.radioShows": "Wadio Shows",
- "term.recordLabels": "Wecowd Wabews",
- "term.videoExtras": "Videowo Extwas",
- "term.top": "Top",
-
- // Home
- "home.title": "Home",
- "home.recentlyPlayed": "Wecentwy Pwayed",
- "home.recentlyAdded": "Wecentwy Added",
- "home.artistsFeed": "Youw Awtists Feed",
- "home.artistsFeed.noArtist": "Fowwow some awtists fiwst and theiw watest weleases wiww be here",
- "home.madeForYou": "Made Fow Chu",
- "home.friendsListeningTo": "Fwiends Wistening To",
- "home.followedArtists": "Fowwowed Awtists",
-
- // Errors
- "error.appleMusicSubRequired": "Appwe Music wequiwes a subscwiption.",
- "error.connectionError": "Thewe was a pwobwem connecting to Appwe Mewsic.",
- "error.noResults": "No Wesuwts.",
- "error.noResults.description": "Twy a new seawch.",
-
- // Podcasts
- "podcast.followOnCider": "Fowwow On Cidew",
- "podcast.followedOnCider": "Fowwowing On Cidew",
- "podcast.subscribeOnItunes": "Subscwibe On iTuwunes",
- "podcast.subscribedOnItunes": "Subscwibed On iTuwunes",
- "podcast.itunesStore": "iTuwunes Stowe",
- "podcast.episodes": "Episowodes",
- "podcast.playEpisode": "Pway Episowode",
- "podcast.website": "Pawdcast Website",
-
- // Actions
- "action.addToLibrary": "Add to Wibwawy",
- "action.addToLibrary.success": "Added to Wibwawy",
- "action.addToLibrary.error": "Ewwow Adding to Wibwawy",
- "action.removeFromLibrary": "Wemove fwom Wibwawy",
- "action.removeFromLibrary.success": "Wemoved fwom Wibwawy",
- "action.addToQueue": "Add to Quwue",
- "action.addToQueue.success": "Added to Quwue",
- "action.addToQueue.error": "Ewwow Adding to Quwue",
- "action.removeFromQueue": "Wemove fwom Quwue",
- "action.removeFromQueue.success": "Wemoved fwom Quwue",
- "action.removeFromQueue.error": "Ewwow Wemoving fwom Quwue",
- "action.createPlaylist": "Cweate a New Pwaywist",
- "action.addToPlaylist": "Add to Pwaywist",
- "action.removeFromPlaylist": "Wemove fwom Pwaywist",
- "action.addToFavorites": "Add to Favowites",
- "action.follow": "Fowwow",
- "action.follow.success": "Fowwowed",
- "action.follow.error": "Ewwow Fowwowing",
- "action.unfollow": "Unfowwow",
- "action.unfollow.success": "Unfowwowed",
- "action.unfollow.error": "Ewwow Unfowwowing",
- "action.playNext": "Pway Next",
- "action.playLater": "Pway Watew",
- "action.startRadio": "Stawt Wadio",
- "action.goToArtist": "Go to Awtist",
- "action.goToAlbum": "Go to Awbum",
- "action.moveToTop": "Move to top",
- "action.share": "Shawe",
- "action.rename": "Wename",
- "action.love": "Wuv",
- "action.unlove": "Unwuv",
- "action.dislike": "Diswike",
- "action.undoDislike": "Undo diswike",
- "action.showWebRemoteQR": "Web Wiimote",
- "action.playTracksNext": "Pway ${app.selectedMediaItems.length} twacks next",
- "action.playTracksLater": "Pway ${app.selectedMediaItems.length} twacks latew",
- "action.removeTracks": "Wemove ${self.selectedItems.length} twacks fwom quwue",
- "action.import": "Impowt",
- "action.export": "Expowt",
- "action.showAlbum": "Show Compwete Awbum",
- "action.tray.minimize": "Minimize to Tway",
- "action.tray.quit": "Quit",
- "action.tray.show": "Show",
- "action.update": "Update",
- "action.newpreset": "New Pweset...", // Equalizer Preset
- "action.deletepreset": "Dewete Pweset",
-
- // Settings - General
- "settings.header.general": "Genewaw",
- "settings.header.general.description": "Adjust the genewaw settings fow Cidew.",
- "settings.option.general.language": "Wanguage",
-
- // Language optgroups
- "settings.option.general.language.main": "Wanguages",
- "settings.option.general.language.fun": "Fun Wanguages",
- "settings.option.general.language.unsorted": "Unsowted",
-
- // Update Cider
- "settings.option.general.updateCider": "Update Cidew", // Button
- "settings.option.general.updateCider.branch": "Cidew Update Bwanch", // Dropdown
- "settings.option.general.updateCider.branch.description": "Sewect the bwanch to uwpdate Cidew to",
- "settings.option.general.updateCider.branch.main": "Stabwe",
- "settings.option.general.updateCider.branch.develop": "Devewopment",
-
- // Settings - Audio
- "settings.header.audio": "Audiowo",
- "settings.header.audio.description": "Adjust the audiowo settings fow Cidew.",
- "settings.option.audio.quality": "Audiowo Quawity", // Dropdown
- "settings.header.audio.quality.hireslossless": "Hi-res losswess",
- "settings.header.audio.quality.hireslossless.description": "(uwp to 24-bit/192 khz)",
- "settings.header.audio.quality.lossless": "Losswess",
- "settings.header.audio.quality.lossless.description": "(uwp to 24-bit/48 khz)",
- "settings.header.audio.quality.high": "High",
- "settings.header.audio.quality.low": "Low", // keeping as low because confusion with the word wow
- "settings.header.audio.quality.auto": "Autowo",
- "settings.option.audio.seamlessTransition": "Seamwess Audiowo Twansition", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Enabwe Advanced Functionawity", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "Enabwing AudiowoContext functionawity wiww awwow fow extended audiowo featuwes wike Audiowo Nowmawization, Equalizews and Visuawizews, howevew on some systems dis may cause stuttewing in audiowo twacks.",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenawine Pwocessowâĸī¸", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacouwstic enhancements that makes evewything souwnd both wichew and mowe wivewy. | Designed by Maikiwi",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Stwength", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the stwength of the pwocessing done to the auwdio. (Aggwessive may yiewd uwndesiwabwe wesuwwts)",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standawd",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audiowo Nowmawization", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nowmawizes peak vowume fow individuaw twacks to cweate a moar unifowm wistening expewience.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audiowo Spatiawization", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audiowo and make audiowo moar 3-dimensionaw (note: Dis is not Dowby Atmos)",
-
- // Settings - Visual
- "settings.header.visual": "Visuaw",
- "settings.header.visual.description": "Adjust the visuaw settings fow Cidew.",
- "settings.option.visual.windowBackgroundStyle": "Window Backgwound Stywe", // Toggle
- "settings.header.visual.windowBackgroundStyle.none": "None",
- "settings.header.visual.windowBackgroundStyle.artwork": "Awtwowk",
- "settings.header.visual.windowBackgroundStyle.image": "Image",
- "settings.option.visual.animatedArtwork": "Animated Awtwowk", // Dropdown
- "settings.header.visual.animatedArtwork.always": "Awways",
- "settings.header.visual.animatedArtwork.limited": "Wimited to pages and speciaw entwies",
- "settings.header.visual.animatedArtwork.disable": "Disabwe evewywhewe",
- "settings.option.visual.animatedArtworkQuality": "Animated Awtwowk Quawity", // Dropdown
- "settings.header.visual.animatedArtworkQuality.low": "Low",
- "settings.header.visual.animatedArtworkQuality.medium": "Medium",
- "settings.header.visual.animatedArtworkQuality.high": "High",
- "settings.header.visual.animatedArtworkQuality.veryHigh": "Vewy High",
- "settings.header.visual.animatedArtworkQuality.extreme": "Extweme",
- "settings.option.visual.animatedWindowBackground": "Animated Window Backgwound", // Toggle
- "settings.option.visual.hardwareAcceleration": "Hawdwawe Accewewation", // Dropdown
- "settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch",
- "settings.header.visual.hardwareAcceleration.default": "Defauwt",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Show Pewsonaw Info", // Toggle
-
- // Settings - Lyrics
- "settings.header.lyrics": "Wywics",
- "settings.header.lyrics.description": "Adjust the wywics settings fow Cidew.",
- "settings.option.lyrics.enableMusixmatch": "Enabwe Musixmatch Wywics", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Enabwe Kawaoke Mode (Musixmatch onwy)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Enabwe YouTube Wywics fow Mewsic Videowos", // Toggle
-
- // Settings - Connectivity
- "settings.header.connectivity": "Connectivity",
- "settings.header.connectivity.description": "Adjust the connectivity settings fow Cidew.",
- "settings.option.connectivity.discordRPC": "Discowd Wich Pwesence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Pwayback Notifications", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "Disway as 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "Dispway as 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Cweaw Discowd Wich Pwesence on Paws", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Wast.fm Scwobbwing", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "Wast.fm Scwobble Deway (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enabwe Wast.fm Nao Pwaying",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "Wemove featuwing awtists fwom song titwe (Wast.fm)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "Fiwtew wooped twack (Wast.fm)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
- "settings.header.experimental": "Expewimentaw",
- "settings.header.experimental.description": "Adjust the expewimentaw settings fow Cidew.",
- "settings.option.experimental.compactUI": "Wittwe UI", // Toggle
- "settings.option.experimental.close_button_hide": "Cwose Button Shouwd Hide the Appwication",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
- "spatial.notTurnedOn": "Audiowo Spatiawization is disabwed. To use, pwease enabwe it fiwst.",
- "spatial.spatialProperties": "Spatiaw Pwopewties",
- "spatial.width": "Width",
- "spatial.height": "Height",
- "spatial.depth": "Depth",
- "spatial.gain": "Gain",
- "spatial.roomMaterials": "Woom Matewiaws",
- "spatial.roomDimensions": "Woom Dimensions",
- "spatial.roomPositions": "Woom Positions",
- "spatial.setDimensions": "Set Dimensions",
- "spatial.setPositions": "Set Positions",
- "spatial.up": "Up",
- "spatial.front": "Fwont",
- "spatial.left": "Weft",
- "spatial.right": "Wight",
- "spatial.back": "Back",
- "spatial.down": "Down",
- "spatial.listener": "Wistenew",
- "spatial.audioSource": "Audiowo Souwce",
-
- // Settings - Unfinished
- "settings.header.unfinished": "Unfinished",
-
- // Web Remote
- "remote.web.title": "Cidew Wiimote",
- "remote.web.description": "Scan da QR code to paiw chur phone up with dis Cidew instance",
-
- // About
- "about.thanks": "Majow tanks to da Cidew Cowwective Team and aww of ouw contwibutows."
-}
\ No newline at end of file
diff --git a/src/i18n/en_PISS.jsonc b/src/i18n/en_PISS.json
similarity index 76%
rename from src/i18n/en_PISS.jsonc
rename to src/i18n/en_PISS.json
index 619ca375..25ce7538 100644
--- a/src/i18n/en_PISS.jsonc
+++ b/src/i18n/en_PISS.json
@@ -1,25 +1,15 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "piss", // name of language in native language
- "i18n.languageNameEnglish": "English (piss)", // name of language in English
- "i18n.category": "fun", // main = real language, fun = fun community languages
- "i18n.authors": "@SoNothingMC @saboooor", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "piss",
+ "i18n.languageNameEnglish": "English (piss)",
+ "i18n.category": "fun",
+ "i18n.authors": "@SoNothingMC @saboooor",
"app.name": "piss",
-
- "date.format": "${y}-${m}-${d}", // ISO 8601 for the win!
-
- // Dialogs
+ "date.format": "${y}-${m}-${d}",
"dialog.cancel": "no piss",
"dialog.ok": "yes piss",
-
- // Notification
"notification.updatingLibrarySongs": "pisssing all over your songs",
"notification.updatingLibraryAlbums": "pissing all over your albums",
"notification.updatingLibraryArtists": "pissing all over your idols",
-
- // Terms
"term.appleInc": "piss Inc.",
"term.appleMusic": "piss music",
"term.applePodcasts": "piss podcasts",
@@ -40,7 +30,7 @@
"term.browse": "find piss",
"term.radio": "piss everywhere",
"term.recentlyAdded": "recently obtained piss",
- "term.songs": "piss list", // not to be confused with pisslist (playlist)
+ "term.songs": "piss list",
"term.albums": "piss collection",
"term.artists": "pissers",
"term.podcasts": "pisscasts",
@@ -69,14 +59,15 @@
"term.sortBy.artist": "pissers",
"term.sortBy.name": "piss name",
"term.sortBy.genre": "way to piss",
- "term.sortBy.releaseDate": "pissed date",
+ "term.sortBy.releaseDate": "repissed date",
"term.sortBy.duration": "piss duration",
+ "term.sortBy.dateAdded": "obtained date",
"term.sortOrder": "piss-PISS",
"term.sortOrder.ascending": "pissing upwards",
"term.sortOrder.descending": "pissing downwards",
"term.viewAs": "piss as",
"term.viewAs.coverArt": "piss art",
- "term.viewAs.list": "piss list", // not to be confused with pisslist (playlist)
+ "term.viewAs.list": "piss list",
"term.size": "piss size",
"term.size.normal": "normal piss",
"term.size.compact": "compact piss",
@@ -94,10 +85,10 @@
"term.showMore": "more piss",
"term.showLess": "less piss",
"term.topSongs": "top piss",
- "term.latestReleases": "latest piss collection",
- "term.time.added": "pissed",
- "term.time.released": "pissed",
- "term.time.updated": "pissed",
+ "term.latestReleases": "latest piss",
+ "term.time.added": "obtained",
+ "term.time.released": "repissed",
+ "term.time.updated": "pissdated",
"term.time.hours": "hours",
"term.time.hour": "hour",
"term.time.minutes": "minutes",
@@ -122,28 +113,34 @@
"term.contributors": "more pisseneers",
"term.equalizer": "advanced piss configuration",
"term.reset": "repiss",
- "term.tracks": "pisses", // Assume x amount of tracks. e.g. 50 tracks
+ "term.track": {
+ "one": "piss",
+ "other": "pisses"
+ },
"term.videos": "piss videos",
"term.menu": "piss menu",
"term.check": "piss!",
- "term.aboutArtist": "about pisser {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "top piss", // Search Results
- "term.sharedPlaylists": "shared pisslists", // Search Results
- "term.people": "pissers", // Search Results
- "term.newpreset.name": "new advanced piss prepiss name", // Equalizer Preset
- "term.addedpreset": "pissed prepiss",
- "term.deletepreset.warn": "are you sure you want to unpiss this prepiss?",
- "term.deletedpreset": "unpissed prepiss",
- "term.musicVideos": "piss music videos", // Search page friendlyTypes
- "term.stations": "pisses",
+ "term.aboutArtist": "about pisser {{artistName}}",
+ "term.topResult": "top piss",
+ "term.sharedPlaylists": "shared pisslists",
+ "term.people": "pissers",
+ "term.newpreset.name": "new advanced piss prepiss name",
+ "term.addedpreset": "obtained prepiss",
+ "term.deletepreset.warn": "are you sure you want to obliterate this prepiss?",
+ "term.deletedpreset": "obliterated prepiss",
+ "term.defaultPresets": "default prepisses",
+ "term.userPresets": "your prepisses",
+ "term.requestError": "the request got pissed on",
+ "term.song.link.generate": "pissing on piss.linkâĻ",
+ "term.musicVideos": "piss videos",
+ "term.stations": "piss stations",
"term.curators": "pissators",
"term.appleCurators": "piss pissators",
"term.radioShows": "shows that piss everywhere",
"term.recordLabels": "piss labels",
"term.videoExtras": "extra piss videos",
"term.top": "topiss",
-
- // Home
+ "term.version": "pission",
"home.title": "piss central",
"home.recentlyPlayed": "recently pissed on",
"home.recentlyAdded": "recently obtained piss",
@@ -152,14 +149,10 @@
"home.madeForYou": "pissed for you",
"home.friendsListeningTo": "friends pissing to",
"home.followedArtists": "followed pissers",
-
- // Errors
"error.appleMusicSubRequired": "piss music requires, like y'know, an actual piss music subscription to actually use.",
"error.connectionError": "oh, piss.",
"error.noResults": "no piss found",
"error.noResults.description": "try pissing somewhere else (or press Enter/Return to search)",
-
- // Podcasts
"podcast.followOnCider": "piss on Cider",
"podcast.followedOnCider": "pissed on Cider",
"podcast.subscribeOnItunes": "piss on iPiss",
@@ -168,13 +161,11 @@
"podcast.episodes": "pisses",
"podcast.playEpisode": "play piss",
"podcast.website": "pisscast site",
-
- // Actions
"action.addToLibrary": "obtain piss",
"action.addToLibrary.success": "piss obtained",
"action.addToLibrary.error": "error obtaining piss",
- "action.removeFromLibrary": "dump piss",
- "action.removeFromLibrary.success": "piss dumped",
+ "action.removeFromLibrary": "unobtain piss",
+ "action.removeFromLibrary.success": "piss unobtained",
"action.addToQueue": "add to toilet",
"action.addToQueue.success": "added to toilet",
"action.addToQueue.error": "error adding to toilet",
@@ -215,108 +206,98 @@
"action.tray.show": "piss back",
"action.update": "piss!",
"action.copy": "copiss",
- "action.newpreset": "new prepiss...", // Equalizer Preset
- "action.deletepreset": "unpiss prepiss",
-
- // Settings - General
+ "action.newpreset": "new prepissâĻ",
+ "action.deletepreset": "obliterate prepiss",
"settings.header.general": "general",
"settings.header.general.description": "the dumping place for settings when there are no other places to put them into",
"settings.option.general.language": "piss around the world",
-
- // Language optgroups
"settings.option.general.language.main": "actaul human languages",
"settings.option.general.language.fun": "piss languages",
"settings.option.general.language.unsorted": "???? who put this here",
-
- // Update Cider
- "settings.option.general.updateCider": "piss on cider", // Button
-
- // Settings - Audio
+ "settings.option.general.updateCider": "piss on cider",
+ "settings.option.general.updateCider.branch": "where to piss on cider",
+ "settings.option.general.updateCider.branch.description": "there are two toilets, where do you want to piss?",
+ "settings.option.general.updateCider.branch.main": "smooth pissing experience",
+ "settings.option.general.updateCider.branch.develop": "cutting-edge piss development",
"settings.header.audio": "piss sounds",
"settings.header.audio.description": "change how your piss sounds",
- "settings.option.audio.quality": "piss quality", // Dropdown
+ "settings.option.audio.quality": "piss quality",
"settings.header.audio.quality.hireslossless": "ungodly piss",
- "settings.header.audio.quality.hireslossless.description": "(up to 24-pisses/192 piss hertz)",
+ "settings.header.audio.quality.hireslossless.description": "up to 24-piss/192 pissHz",
"settings.header.audio.quality.lossless": "colorful piss",
- "settings.header.audio.quality.lossless.description": "(up to 24-pisses/48 piss hertz)",
- "settings.header.audio.quality.enhanced": "enhanced piss",
+ "settings.header.audio.quality.lossless.description": "up to 24-piss/48 pissHz",
+ "settings.header.audio.quality.enhanced": "business class piss",
"settings.header.audio.quality.high": "nice piss",
- "settings.header.audio.quality.low": "piss with blood",
- "settings.header.audio.quality.auto": "automatic piss",
- "settings.option.audio.seamlessTransition": "seamless piss-to-piss transition", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "cool piss tricks", // Toggle
+ "settings.header.audio.quality.high.description": "256 kpiss",
+ "settings.header.audio.quality.standard": "piss with blood",
+ "settings.header.audio.quality.standard.description": "64 kpiss",
+ "settings.option.audio.seamlessTransition": "seamless piss-to-piss transition",
+ "settings.option.audio.enableAdvancedFunctionality": "cool piss tricks",
"settings.option.audio.enableAdvancedFunctionality.description": "enabling the AudioContext thingy allows you to do cool stuffs, however on some systems your song may stutter",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "clear pissâĸī¸", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "makes your bladder go overboard and makes your piss crisp and clear.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Audio Pissifierâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "makes your bladder go overboard and makes your piss crisp and clear",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "pissifier dont go well with 3d piss. turn it off and try again.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "pissifier strength",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "tune your bladder (blood may appear with turbo strength)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "normal piss",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "turbo piss",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "protect your eardrums from overly loud/slient pisses",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "this aint the dolby atmos you are looking for but its still pretty crazy so check it out",
-
- // Settings - Visual
"settings.header.visual": "piss appearance",
"settings.header.visual.description": "change how your piss looks",
- "settings.option.visual.windowBackgroundStyle": "background piss", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "background piss",
"settings.header.visual.windowBackgroundStyle.none": "no piss",
"settings.header.visual.windowBackgroundStyle.artwork": "piss art",
"settings.header.visual.windowBackgroundStyle.image": "piss image",
- "settings.option.visual.animatedArtwork": "moving piss art", // Dropdown
+ "settings.option.visual.animatedArtwork": "moving piss art",
"settings.header.visual.animatedArtwork.always": "yes piss",
"settings.header.visual.animatedArtwork.limited": "only piss pages and special pisses",
"settings.header.visual.animatedArtwork.disable": "no piss",
- "settings.option.visual.animatedArtworkQuality": "moving piss art quality", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "moving piss art quality",
"settings.header.visual.animatedArtworkQuality.low": "piss with blood",
"settings.header.visual.animatedArtworkQuality.medium": "okay piss",
"settings.header.visual.animatedArtworkQuality.high": "nice piss",
"settings.header.visual.animatedArtworkQuality.veryHigh": "good piss",
"settings.header.visual.animatedArtworkQuality.extreme": "literally 4k piss",
- "settings.option.visual.animatedWindowBackground": "moving background piss", // Toggle
- "settings.option.visual.hardwareAcceleration": "make Cider piss faster", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "moving background piss",
+ "settings.option.visual.hardwareAcceleration": "make Cider piss faster",
"settings.option.visual.hardwareAcceleration.description": "you need to relaunch Cider",
"settings.header.visual.hardwareAcceleration.default": "default piss",
"settings.header.visual.hardwareAcceleration.webGPU": "WebPISS",
"settings.header.visual.theme": "colored piss",
-
- // Settings - Visual - Theme name
- "settings.option.visual.theme.default": "regular piss",
+ "settings.option.visual.theme.github.download": "piss from PissHub URL",
+ "settings.prompt.visual.theme.github.URL": "piss on the URL for your colorful piss",
+ "settings.notyf.visual.theme.install.success": "colored piss obtained",
+ "settings.notyf.visual.theme.install.error": "colored piss got pissed onâĻ",
+ "settings.option.visual.theme.default": "same old piss",
"settings.option.visual.theme.dark": "black piss",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "show yourself to the pissiverse", // Toggle
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "show yourself to the pissiverse",
"settings.header.lyrics": "piss lyrics",
"settings.header.lyrics.description": "change how your piss speaks to you",
- "settings.option.lyrics.enableMusixmatch": "Musixpiss piss lyrics", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "pissraoke mode (Musixpiss only)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "language for Musixpiss translations", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "PissTube subtitles for piss videos", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Musixpiss piss lyrics",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "pissraoke mode (Musixpiss only)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "language for Musixpiss translations",
+ "settings.option.lyrics.enableYoutubeLyrics": "PissTube subtitles for piss videos",
"settings.header.connectivity": "pisser-to-pisser connections",
"settings.header.connectivity.description": "change how Cider piss on other people, including you",
- "settings.option.connectivity.discordRPC": "Pisscord rich pissence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "toilet notifications", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Pisscord rich pissence",
+ "settings.option.connectivity.playbackNotifications": "toilet notifications",
"settings.header.connectivity.discordRPC.cider": "piss as 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "piss as 'piss music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "flush Pisscord rich pissence when holding your piss", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Piss.fm scrobbling", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "flush Pisscord rich pissence when holding your piss",
+ "settings.option.connectivity.lastfmScrobble": "Piss.fm scrobbling",
"settings.option.connectivity.lastfmScrobble.delay": "Piss.fm scrobble delay (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "push now playing data to Piss.fm",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "remove featured pissers from piss names (Piss.fm)",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "dump featured pissers from piss names (Piss.fm)",
"settings.option.connectivity.lastfmScrobble.filterLoop": "filter same piss (Piss.fm)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
"settings.header.experimental": "piss lab",
"settings.header.experimental.description": "mitochondria is the powerhouse of the cell",
- "settings.option.experimental.compactUI": "compact piss", // Toggle
- "settings.option.experimental.close_button_hide": "play hide-and-seek when clicking close button",
+ "settings.option.experimental.compactUI": "compact piss",
+ "settings.option.window.close_button_hide": "play hide-and-seek when clicking close button",
"settings.option.experimental.copy_log": "copy sewage to pissboard",
"settings.option.experimental.inline_playlists": "inpiss pisslists and piss collections",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
"spatial.notTurnedOn": "3D piss is not on. turn it on lol",
"spatial.spatialProperties": "3D properties",
"spatial.width": "longness",
@@ -336,14 +317,8 @@
"spatial.down": "the piss on the floor",
"spatial.listener": "you",
"spatial.audioSource": "piss source",
-
- // Settings - Unfinished
"settings.header.unfinished": "DLC piss",
-
- // Web Remote
"remote.web.title": "piss remote",
- "remote.web.description": "piss on your phone camera to connect to Cider.",
-
- // About
+ "remote.web.description": "piss on your phone camera to pair with Cider.",
"about.thanks": "thanks to the Cider Collective team and all the pisseneers putting this together"
}
\ No newline at end of file
diff --git a/src/i18n/en_QUK.json b/src/i18n/en_QUK.json
new file mode 100644
index 00000000..4a61b170
--- /dev/null
+++ b/src/i18n/en_QUK.json
@@ -0,0 +1,319 @@
+{
+ "i18n.languageName": "Language of the Quacks",
+ "i18n.languageNameEnglish": "Language of the Quacks",
+ "i18n.category": "fun",
+ "i18n.authors": "@quacksire",
+ "app.name": "Cider",
+ "date.format": "${m} ${d}, ${y}",
+ "dialog.cancel": "Cancel",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Quacking library songs...",
+ "notification.updatingLibraryAlbums": "Quacking library albums...",
+ "notification.updatingLibraryArtists": "Quacking library artists...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "Quack more",
+ "term.accountSettings": "Account Settings",
+ "term.logout": "Quackout",
+ "term.login": "Quack In",
+ "term.about": "About",
+ "term.privateSession": "Private Session",
+ "term.queue": "Queue",
+ "term.history": "History",
+ "term.search": "Search",
+ "term.library": "Library",
+ "term.listenNow": "Listen Now",
+ "term.browse": "Quack",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "Recently Quacked",
+ "term.songs": "Songs",
+ "term.albums": "Albums",
+ "term.artists": "Artists",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Playlists",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "New Playlist",
+ "term.newPlaylistFolder": "New Playlist Folder",
+ "term.createNewPlaylist": "Quack New Playlist",
+ "term.createNewPlaylistFolder": "Quack New Playlist Folder",
+ "term.deletePlaylist": "Are you sure you want to quack this playlist?",
+ "term.play": "Play",
+ "term.pause": "Pause",
+ "term.previous": "Previous",
+ "term.next": "Next",
+ "term.shuffle": "Shuffle",
+ "term.repeat": "Repeat",
+ "term.volume": "Volume",
+ "term.mute": "Quack",
+ "term.unmute": "Unquack",
+ "term.share": "Quack",
+ "term.share.success": "Quacked to clipboard",
+ "term.settings": "Settings",
+ "term.seeAll": "Quack All",
+ "term.sortBy": "Quack By",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artist",
+ "term.sortBy.name": "Name",
+ "term.sortBy.genre": "Genre",
+ "term.sortBy.releaseDate": "Release Date",
+ "term.sortBy.duration": "Duration",
+ "term.sortBy.dateAdded": "Date Quacked",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascending",
+ "term.sortOrder.descending": "Descending",
+ "term.viewAs": "Quack As",
+ "term.viewAs.coverArt": "Cover Art",
+ "term.viewAs.list": "List",
+ "term.size": "Size",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Compact",
+ "term.enable": "Enable",
+ "term.disable": "Disable",
+ "term.enabled": "Enabled",
+ "term.disabled": "Disabled",
+ "term.connect": "Connect",
+ "term.connecting": "Quacking",
+ "term.disconnect": "Disconnect",
+ "term.authed": "Authed",
+ "term.confirm": "You a duck?",
+ "term.more": "More",
+ "term.less": "Less",
+ "term.showMore": "Quack more",
+ "term.showLess": "Quack less",
+ "term.topSongs": "Top Songs",
+ "term.latestReleases": "Latest Releases",
+ "term.time.added": "Quacked",
+ "term.time.released": "Quacked",
+ "term.time.updated": "Quacked",
+ "term.time.hours": "hours",
+ "term.time.hour": "hour",
+ "term.time.minutes": "minutes",
+ "term.time.minute": "minute",
+ "term.time.seconds": "seconds",
+ "term.time.second": "second",
+ "term.fullscreenView": "Fullscreen View",
+ "term.defaultView": "Default View",
+ "term.audioSettings": "Audio Settings",
+ "term.clearAll": "Clear All",
+ "term.recentStations": "Recent Stations",
+ "term.language": "Language",
+ "term.funLanguages": "Fun",
+ "term.noLyrics": "Quacking... / Lyrics not found./ Instrumental.",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "All Rights Reserved.",
+ "term.sponsor": "Sponsor this project",
+ "term.ciderTeam": "Cider Team",
+ "term.developer": "Developer",
+ "term.socialTeam": "Social Team",
+ "term.socials": "Socials",
+ "term.contributors": "Contributors",
+ "term.equalizer": "Equalizer",
+ "term.reset": "Reset",
+ "term.track": {
+ "one": "duck",
+ "other": "ducks"
+ },
+ "term.tracks": "tracks",
+ "term.videos": "Videos",
+ "term.menu": "Menu",
+ "term.check": "Quack",
+ "term.aboutArtist": "About {{artistName}}",
+ "term.topResult": "Top Result",
+ "term.sharedPlaylists": "Shared Playlists",
+ "term.people": "People",
+ "term.newpreset.name": "New EQ Preset Name",
+ "term.addedpreset": "Quacked Preset",
+ "term.deletepreset.warn": "Are you sure you want to delete this preset?",
+ "term.deletedpreset": "Quacked preset",
+ "term.requestError": "There was a problem with the request.",
+ "term.song.link.generate": "Quacking song.link share URL...",
+ "term.musicVideos": "Music Videos",
+ "term.stations": "Stations",
+ "term.curators": "Curators",
+ "term.appleCurators": "Apple Curators",
+ "term.radioShows": "Radio Shows",
+ "term.recordLabels": "Record Labels",
+ "term.videoExtras": "Video Extras",
+ "term.top": "Top",
+ "term.version": "Version",
+ "home.title": "Home",
+ "home.recentlyPlayed": "Recently Quacked",
+ "home.recentlyAdded": "Recently Quacked",
+ "home.artistsFeed": "Your Artists Feed",
+ "home.artistsFeed.noArtist": "Follow some artists first and their latest releases will be here",
+ "home.madeForYou": "Made For You",
+ "home.friendsListeningTo": "Friends Quacking To",
+ "home.followedArtists": "Quacked Artists",
+ "error.appleMusicSubRequired": "Apple Music requires a subscription.",
+ "error.connectionError": "There was a problem quacking to Apple Music.",
+ "error.noResults": "No Results.",
+ "error.noResults.description": "Try a new duck.",
+ "podcast.followOnCider": "Quack On Cider",
+ "podcast.followedOnCider": "Quacking On Cider",
+ "podcast.subscribeOnItunes": "Quack On iTunes",
+ "podcast.subscribedOnItunes": "Quacked On iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Episodes",
+ "podcast.playEpisode": "Quack Episode",
+ "podcast.website": "Podcast Website",
+ "action.addToLibrary": "Quack to Library",
+ "action.addToLibrary.success": "Quacked to Library",
+ "action.addToLibrary.error": "Error Adding to Library",
+ "action.removeFromLibrary": "Quack from Library",
+ "action.removeFromLibrary.success": "Quacked from Library",
+ "action.addToQueue": "Quack to Queue",
+ "action.addToQueue.success": "Quacked to Queue",
+ "action.addToQueue.error": "Error Quacking to Queue",
+ "action.removeFromQueue": "Quack from Queue",
+ "action.removeFromQueue.success": "Quacked from Queue",
+ "action.removeFromQueue.error": "Error Removing from Queue",
+ "action.createPlaylist": "Create a New Playlist",
+ "action.addToPlaylist": "Quack to Playlist",
+ "action.removeFromPlaylist": "Quack from Playlist",
+ "action.addToFavorites": "Quack to Favorites",
+ "action.follow": "Quack",
+ "action.follow.success": "Quacked",
+ "action.follow.error": "Error Quacking",
+ "action.unfollow": "Unquack",
+ "action.unfollow.success": "Unquacked",
+ "action.unfollow.error": "Error Unquacking",
+ "action.playNext": "Quack Next",
+ "action.playLater": "Quack Later",
+ "action.startRadio": "Quack Radio",
+ "action.goToArtist": "Quack to Artist",
+ "action.goToAlbum": "Quack to Album",
+ "action.moveToTop": "Quack to top",
+ "action.share": "Quack",
+ "action.rename": "Quack",
+ "action.love": "Quack",
+ "action.unlove": "Unquack",
+ "action.dislike": "Disquack",
+ "action.undoDislike": "Unquack disquack",
+ "action.showWebRemoteQR": "Web Remote",
+ "action.playTracksNext": "Quack ${app.selectedMediaItems.length} tracks next",
+ "action.playTracksLater": "Quack ${app.selectedMediaItems.length} tracks later",
+ "action.removeTracks": "Quack ${self.selectedItems.length} tracks from queue",
+ "action.import": "Import",
+ "action.export": "Export",
+ "action.showAlbum": "Quack Complete Album",
+ "action.tray.minimize": "Quackmize to Tray",
+ "action.tray.quit": "Die",
+ "action.tray.show": "Alive Me",
+ "action.update": "gib new quackys",
+ "action.copy": "Quack",
+ "action.newpreset": "New Quackset...",
+ "action.deletepreset": "Delete Quackset",
+ "settings.header.general": "General",
+ "settings.header.general.description": "Adjust the general settings for Cider.",
+ "settings.option.general.language": "Language",
+ "settings.option.general.language.main": "Languages",
+ "settings.option.general.language.fun": "Fun Languages",
+ "settings.option.general.language.unsorted": "Unsorted",
+ "settings.option.general.updateCider": "Update Cider",
+ "settings.option.general.updateCider.branch": "Cider Update Branch",
+ "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to",
+ "settings.option.general.updateCider.branch.main": "Stable",
+ "settings.option.general.updateCider.branch.develop": "Development",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "Adjust the audio settings for Cider.",
+ "settings.option.audio.quality": "Audio Quality",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "High",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "Standard",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "Seamless Audio Transition",
+ "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.",
+ "settings.header.visual": "Visual",
+ "settings.header.visual.description": "Adjust the visual settings for Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Window Background Style",
+ "settings.header.visual.windowBackgroundStyle.none": "None",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
+ "settings.header.visual.windowBackgroundStyle.image": "Image",
+ "settings.option.visual.animatedArtwork": "Animated Artwork",
+ "settings.header.visual.animatedArtwork.always": "Always",
+ "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries",
+ "settings.header.visual.animatedArtwork.disable": "Disable everywhere",
+ "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality",
+ "settings.header.visual.animatedArtworkQuality.low": "Low",
+ "settings.header.visual.animatedArtworkQuality.medium": "Medium",
+ "settings.header.visual.animatedArtworkQuality.high": "High",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High",
+ "settings.header.visual.animatedArtworkQuality.extreme": "Extreme",
+ "settings.option.visual.animatedWindowBackground": "Animated Window Background",
+ "settings.option.visual.hardwareAcceleration": "Hardware Acceleration",
+ "settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
+ "settings.header.visual.hardwareAcceleration.default": "Default",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Theme",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Dark",
+ "settings.option.visual.showPersonalInfo": "Show Personal Info",
+ "settings.header.lyrics": "Lyrics",
+ "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language",
+ "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos",
+ "settings.header.connectivity": "Connectivity",
+ "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Playback Notifications",
+ "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
+ "settings.header.experimental": "Experimental",
+ "settings.header.experimental.description": "Adjust the experimental settings for Cider.",
+ "settings.option.experimental.compactUI": "Compact UI",
+ "settings.option.window.close_button_hide": "Close Button Should Hide the Application",
+ "settings.option.experimental.copy_log": "Copy logs to clipboard",
+ "settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
+ "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
+ "spatial.spatialProperties": "Spatial Properties",
+ "spatial.width": "Width",
+ "spatial.height": "Height",
+ "spatial.depth": "Depth",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Room Materials",
+ "spatial.roomDimensions": "Room Dimensions",
+ "spatial.roomPositions": "Room Positions",
+ "spatial.setDimensions": "Set Dimensions",
+ "spatial.setPositions": "Set Positions",
+ "spatial.up": "Up",
+ "spatial.front": "Front",
+ "spatial.left": "Left",
+ "spatial.right": "Right",
+ "spatial.back": "Back",
+ "spatial.down": "Down",
+ "spatial.listener": "Listener",
+ "spatial.audioSource": "Audio Source",
+ "settings.header.unfinished": "Unfinished",
+ "remote.web.title": "Cider Remote",
+ "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
+ "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors. Translation file made by @quacksire"
+}
\ No newline at end of file
diff --git a/src/i18n/en_SGA.jsonc b/src/i18n/en_SGA.json
similarity index 80%
rename from src/i18n/en_SGA.jsonc
rename to src/i18n/en_SGA.json
index a04520b5..3e98e2d3 100644
--- a/src/i18n/en_SGA.jsonc
+++ b/src/i18n/en_SGA.json
@@ -1,25 +1,15 @@
{
- // i18n Info
- "i18n.languageName": "â¤á|:ááŽáŖâᎠá|:i!âáááˇáŖ", // name of language in native language
- "i18n.languageNameEnglish": "Galactic Alphabet", // name of language in English
- "i18n.category": "fun", // main = real language, fun = fun community languages
- "i18n.authors": "@kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+ "i18n.languageName": "â¤á|:ááŽáŖâᎠá|:i!âáááˇáŖ",
+ "i18n.languageNameEnglish": "Galactic Alphabet",
+ "i18n.category": "fun",
+ "i18n.authors": "@kyw504100",
"app.name": "áŽââ¸áˇâˇ",
-
"date.format": "${m} ${d}, ${y}",
-
- // Dialogs
"dialog.cancel": "áŽáãĒáŽáˇ|:",
"dialog.ok": "á¡Į¡",
-
- // Notification
"notification.updatingLibrarySongs": "âi!â¸ááŖâãĒ⤠|:âáâˇáâˇāĨĨ ĪáãĒâ¤Ī...",
"notification.updatingLibraryAlbums": "âi!â¸ááŖâãĒ⤠|:âáâˇáâˇāĨĨ á|:áâá˛Ī...",
"notification.updatingLibraryArtists": "âi!â¸ááŖâãĒ⤠|:âáâˇáâˇāĨĨ áâˇáŖâĪáŖĪ...",
-
- // Terms
"term.appleInc": "ái!i!|:ᡠâãĒáŽ.",
"term.appleMusic": "ái!i!|:ᡠá˛âĪâáŽ",
"term.applePodcasts": "ái!i!|:ᡠi!áâ¸áŽáĪáŖĪ",
@@ -29,11 +19,10 @@
"term.learnMore": "|:áˇáâˇãĒ á˛áâˇáˇ",
"term.accountSettings": "ááŽáŽáâãĒáŖ ĪáˇáŖáŖâãĒâ¤Ī",
"term.logout": "|:áâ¤áâáŖ",
- "term.login": "|:á⤠âãĒ",
+ "term.login": "|:áâ¤âãĒ",
"term.about": "áááâáŖ",
"term.privateSession": "I!âˇââááŖáˇ ĪáˇĪĪâáãĒ",
"term.queue": "áâáˇâáˇ",
- "term.history": "ââĪáŖáâˇāĨĨ",
"term.search": "ĪáˇáâˇáŽâ",
"term.library": "|:âáâˇáâˇāĨĨ",
"term.listenNow": "|:âĪáŖáˇãĒ",
@@ -46,11 +35,6 @@
"term.podcasts": "I!áâ¸áŽáĪáŖĪ",
"term.playlists": "i!|:áāĨĨ|:âĪáŖĪ",
"term.playlist": "i!|:áāĨĨ|:âĪáŖ",
- "term.newPlaylist": "ãĒáˇâ´ i!|:áāĨĨ|:âĪáŖ",
- "term.newPlaylistFolder": "ãĒáˇâ´ i!|:áāĨĨ|:âĪáŖ âá|:â¸áˇâˇ",
- "term.createNewPlaylist": "áŽâˇáˇááŖáˇ ãĒáˇâ´ i!|:áāĨĨ|:âĪáŖ",
- "term.createNewPlaylistFolder": "áŽâˇáˇááŖáˇ ãĒáˇâ´ i!|:áāĨĨ|:âĪáŖ âá|:â¸áˇâˇ",
- "term.deletePlaylist": "áâˇáˇ āĨĨáâ Īââˇáˇ āĨĨáâ â´áãĒáŖ áŖá â¸áˇ|:áˇáŖáˇ áŖââĪ i!|:áāĨĨ|:âĪáŖ?",
"term.play": "i!|:áāĨĨ",
"term.pause": "I!áâĪáˇ",
"term.previous": "I!âˇáˇââáâĪ",
@@ -61,7 +45,6 @@
"term.mute": "á˛âáŖáˇ",
"term.unmute": "âãĒá˛âáŖáˇ",
"term.share": "Īâáâˇáˇ",
- "term.share.success": "áŽái!âáˇâ¸ áŖá áŽ|:âi!áááâˇâ¸",
"term.settings": "ĪáˇáŖáŖâãĒâ¤Ī",
"term.seeAll": "Īáˇáˇ á|:|:",
"term.sortBy": "ĪáâˇáŖ áāĨĨ",
@@ -71,6 +54,7 @@
"term.sortBy.genre": "â¤áˇãĒâˇáˇ",
"term.sortBy.releaseDate": "âˇáˇ|:áˇáĪᡠâ¸ááŖáˇ",
"term.sortBy.duration": "â¸ââˇááŖâáãĒ",
+ "term.sortBy.dateAdded": "â¸ááŖáˇ áâ¸â¸áˇâ¸",
"term.sortOrder": "á-âŠ",
"term.sortOrder.ascending": "áĪáŽáˇãĒâ¸âãĒâ¤",
"term.sortOrder.descending": "â¸áˇĪáŽáˇãĒâ¸âãĒâ¤",
@@ -122,19 +106,23 @@
"term.contributors": "áŽáãĒáŖâˇâáâáŖáâˇĪ",
"term.equalizer": "áˇáâá|:ââŠáˇâˇ",
"term.reset": "âˇáˇĪáˇáŖ",
- "term.tracks": "áŖâˇááŽÂˇĮ¡Ī", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "áŖâˇááŽÂˇĮ¡Ī",
"term.videos": "âââ¸áˇá",
"term.menu": "á˛áˇâãĒ",
"term.check": "áŽâáˇáŽÂˇĮ¡",
- "term.aboutArtist": "áááâáŖ {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "áŖái! âˇáˇĪâ|:áŖ", // Search Results
- "term.sharedPlaylists": "Īâáâˇáˇâ¸ i!|:áāĨĨ|:âĪáŖĪ", // Search Results
- "term.people": "i!áˇái!|:áˇ", // Search Results
- "term.newpreset.name": "ãĒáˇâ´ áˇá i!âˇáˇĪáˇáŖ ãĒáá˛áˇ", // Equalizer Preset
+ "term.aboutArtist": "áááâáŖ {{artistName}}",
+ "term.topResult": "áŖái! âˇáˇĪâ|:áŖ",
+ "term.sharedPlaylists": "Īâáâˇáˇâ¸ i!|:áāĨĨ|:âĪáŖĪ",
+ "term.people": "i!áˇái!|:áˇ",
+ "term.newpreset.name": "ãĒáˇâ´ áˇá i!âˇáˇĪáˇáŖ ãĒáá˛áˇ",
"term.addedpreset": "áâ¸â¸áˇâ¸ i!âˇáˇĪáˇáŖ",
"term.deletepreset.warn": "áâˇáˇ āĨĨáâ Īââˇáˇ āĨĨáâ â´áãĒáŖ áŖá â¸áˇ|:áˇáŖáˇ áŖââĪ i!âˇáˇĪáˇáŖ?",
"term.deletedpreset": "âˇáˇá˛áâáˇâ¸ i!âˇáˇĪáˇáŖ",
- "term.musicVideos": "á˛âĪâᎠâââ¸áˇáĪ", // Search page friendlyTypes
+ "term.defaultPresets": "â¸áˇâáâ|:áŖ i!âˇáˇĪáˇáŖĪ",
+ "term.userPresets": "âĪáˇâˇ i!âˇáˇĪáˇáŖĪ",
+ "term.requestError": "áŖâáˇâˇáˇ â´áĪ á i!âˇáá|:áˇá˛ â´âáŖâ áŖâᡠâˇáˇáâáˇĪáŖ.",
+ "term.song.link.generate": "â¤áˇáŖáŖâãĒ⤠ĪáãĒâ¤.|:âãĒ¡Į¡ Īâáâˇáˇ ââˇ|:...",
+ "term.musicVideos": "á˛âĪâᎠâââ¸áˇáĪ",
"term.stations": "ĪáŖááŖâáãĒĪ",
"term.curators": "áŽââˇááŖáâˇĪ",
"term.appleCurators": "ái!i!|:ᡠáŽââˇááŖáâˇĪ",
@@ -142,8 +130,7 @@
"term.recordLabels": "âˇáˇáŽáâˇâ¸ |:áááˇ|:Ī",
"term.videoExtras": "âââ¸áˇá áˇ/áŖâˇáĪ",
"term.top": "áŖái!",
-
- // Home
+ "term.version": "âáˇâˇĪâáãĒ",
"home.title": "âáá˛áˇ",
"home.recentlyPlayed": "âˇáˇáŽáˇãĒáŖ|:āĨĨ i!|:áāĨĨáˇâ¸",
"home.recentlyAdded": "âˇáˇáŽáˇãĒáŖ|:āĨĨ áâ¸â¸áˇâ¸",
@@ -152,14 +139,10 @@
"home.madeForYou": "á˛áâ¸áˇ âá⡠āĨĨáâ",
"home.friendsListeningTo": "ââˇâáˇãĒâ¸Ī |:âĪáŖáˇãĒâãĒ⤠áŖá",
"home.followedArtists": "âá|:|:áâ´áˇâ¸ áâˇáŖâĪáŖĪ",
-
- // Errors
"error.appleMusicSubRequired": "ái!i!|:ᡠá˛âĪâᎠâˇáˇáâââˇáˇĪ á ĪâáĪáŽâˇâi!áŖâáãĒ.",
"error.connectionError": "áŖâáˇâˇáˇ â´áĪ á i!âˇáá|:áˇá˛ áŽáãĒãĒáˇáŽáŖâãĒ⤠áŖá ái!i!|:ᡠá˛âĪâáŽ.",
"error.noResults": "ãĒá âˇáˇĪâ|:áŖĪ.",
"error.noResults.description": "áŖâˇāĨĨ á ãĒáˇâ´ ĪáˇáâˇáŽâ.",
-
- // Podcasts
"podcast.followOnCider": "âá|:|:áâ´ áãĒ áŽââ¸áˇâˇ",
"podcast.followedOnCider": "âá|:|:áâ´âãĒ⤠áãĒ áŽââ¸áˇâˇ",
"podcast.subscribeOnItunes": "ĪâáĪáŽâˇâáᡠáãĒ âáŖâãĒáˇĪ",
@@ -168,8 +151,6 @@
"podcast.episodes": "áˇi!âĪáâ¸áˇĪ",
"podcast.playEpisode": "i!|:áāĨĨ áˇi!âĪáâ¸áˇ",
"podcast.website": "I!áâ¸áŽáĪáŖ â´áˇáĪâáŖáˇ",
-
- // Actions
"action.addToLibrary": "áâ¸â¸ áŖá |:âáâˇáâˇāĨĨ",
"action.addToLibrary.success": "áâ¸â¸áˇâ¸ áŖá |:âáâˇáâˇāĨĨ",
"action.addToLibrary.error": "áˇâˇâˇá⡠áâ¸â¸âãĒ⤠áŖá |:âáâˇáâˇāĨĨ",
@@ -215,107 +196,98 @@
"action.tray.show": "Īâáâ´",
"action.update": "âi!â¸ááŖáˇ",
"action.copy": "áŽái!āĨĨ",
- "action.newpreset": "ãĒáˇâ´ i!âˇáˇĪáˇáŖ...", // Equalizer Preset
+ "action.newpreset": "ãĒáˇâ´ i!âˇáˇĪáˇáŖ...",
"action.deletepreset": "â¸áˇ|:áˇáŖáˇ i!âˇáˇĪáˇáŖ",
-
- // Settings - General
"settings.header.general": "â¤áˇãĒáˇâˇá|:",
"settings.header.general.description": "áâ¸âŽâĪáŖ áŖâᡠâ¤áˇãĒáˇâˇá|: ĪáˇáŖáŖâãĒâ¤Ī âá⡠áŽââ¸áˇâˇ.",
"settings.option.general.language": "|:áãĒâ¤âáâ¤áˇ",
-
- // Language optgroups
"settings.option.general.language.main": "|:áãĒâ¤âáâ¤áˇĪ",
"settings.option.general.language.fun": "ââãĒ |:áãĒâ¤âáâ¤áˇĪ",
"settings.option.general.language.unsorted": "âãĒĪáâˇáŖáˇâ¸",
-
- // Update Cider
"settings.option.general.updateCider": "âi!â¸ááŖáˇ áŽââ¸áˇâˇ",
-
- // Settings - Audio
+ "settings.option.general.updateCider.branch": "áŽââ¸áˇâˇ âi!â¸ááŖáˇ áâˇáãĒáŽâ",
+ "settings.option.general.updateCider.branch.description": "Īáˇ|:áˇáŽáŖ áŖâᡠáâˇáãĒáŽâ áŖá âi!â¸ááŖáˇ áŽââ¸áˇâˇ áŖá",
+ "settings.option.general.updateCider.branch.main": "ĪáŖáá|:áˇ",
+ "settings.option.general.updateCider.branch.develop": "â¸áˇâáˇ|:ái!á˛áˇãĒáŖ",
"settings.header.audio": "áââ¸âá",
"settings.header.audio.description": "áâ¸âŽâĪáŖ áŖâᡠáââ¸âá ĪáˇáŖáŖâãĒâ¤Ī âá⡠áŽââ¸áˇâˇ.",
- "settings.option.audio.quality": "áââ¸âá áâá|:âáŖāĨĨ", // Dropdown
+ "settings.option.audio.quality": "áââ¸âá áâá|:âáŖāĨĨ",
"settings.header.audio.quality.hireslossless": "ââ-âˇáˇĪ |:áĪĪ|:áˇĪĪ",
"settings.header.audio.quality.hireslossless.description": "(âi! áŖá 24-áâáŖ/192 ¡Į¡ââŠ)",
"settings.header.audio.quality.lossless": "|:áĪĪ|:áˇĪĪ",
"settings.header.audio.quality.lossless.description": "(âi! áŖá 24-áâáŖ/48 ¡Į¡ââŠ)",
"settings.header.audio.quality.high": "âââ¤â",
- "settings.header.audio.quality.low": "|:áâ´",
- "settings.header.audio.quality.auto": "áâáŖá",
- "settings.option.audio.seamlessTransition": "Īáˇáá˛|:áˇĪĪ áââ¸âá áŖâˇáãĒĪâáŖâáãĒ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "áˇãĒáá|:ᡠáâ¸âáãĒáŽáˇâ¸ ââãĒáŽáŖâáãĒá|:âáŖāĨĨ", // Toggle
+ "settings.header.audio.quality.high.description": "256 ¡Į¡ái!Ī",
+ "settings.header.audio.quality.standard": "ĪáŖáãĒâ¸áâˇâ¸",
+ "settings.header.audio.quality.standard.description": "64 ¡Į¡ái!Ī",
+ "settings.option.audio.seamlessTransition": "Īáˇáá˛|:áˇĪĪ áââ¸âá áŖâˇáãĒĪâáŖâáãĒ",
+ "settings.option.audio.enableAdvancedFunctionality": "áˇãĒáá|:ᡠáâ¸âáãĒáŽáˇâ¸ ââãĒáŽáŖâáãĒá|:âáŖāĨĨ",
"settings.option.audio.enableAdvancedFunctionality.description": "áˇãĒáá|:âãĒ⤠áââ¸âááŽáãĒáŖáˇ/áŖ ââãĒáŽáŖâáãĒá|:âáŖāĨĨ â´â|:|: á|:|:áâ´ âá⡠áˇ/áŖáˇãĒâ¸áˇâ¸ áââ¸âá âáˇááŖââˇáˇĪ |:â¡Į¡ᡠáââ¸âá ãĒáâˇá˛á|:ââŠááŖâáãĒ , áˇáâá|:ââŠáˇâˇĪ áãĒ⸠ââĪâá|:ââŠáˇâˇĪ, âáâ´áˇâáˇâˇ áãĒ Īáá˛áˇ ĪāĨĨĪáŖáˇá˛Ī áŖââĪ á˛áāĨĨ áŽáâĪᡠĪáŖâáŖáŖáˇâˇâãĒ⤠âãĒ áââ¸âá áŖâˇááŽÂˇĮ¡Ī.",
- "settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "â¸áˇáŽâˇāĨĨi!áŖ |:áĪĪ|:áˇĪĪ i!|:áāĨĨáááŽÂˇĮ¡ â´áâˇÂˇĮ¡â|:áâ´", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "áˇãĒáá|:áˇĪ áŖâᡠááâ|:âáŖāĨĨ âá⡠áŽââ¸áˇâˇ áŖá â¸áˇáŽâˇāĨĨi!áŖ |:áĪĪ|:áˇĪĪ áââ¸âá ââ|:áˇĪ. á á˛âãĒá⡠i!áˇâˇâáâˇá˛áãĒáŽáˇ ââáŖ â´â|:|: ááŽáŽââˇ.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "áââ¸âá ãĒáâˇá˛á|:ââŠááŖâáãĒ", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "áŽââ¸áˇâˇ áâ¸âˇáˇãĒá|:âãĒᡠi!âˇááŽáˇĪĪáâˇâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "i!ĪāĨĨáŽâáááŽáâĪáŖâᎠáˇãĒâáãĒáŽáˇá˛áˇãĒáŖĪ áŖâááŖ á˛á¡Į¡áˇĪ áˇâáˇâˇāĨĨáŖââãĒ⤠ĪáâãĒ⸠áááŖâ âˇâáŽâáˇâˇ áãĒ⸠á˛áâˇáˇ |:ââáˇ|:āĨĨ | â¸áˇĪââ¤ãĒáˇâ¸ áāĨĨ á˛áâ¡Į¡ââ´â.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "áŽái! âĪ ãĒááŖ áŽáá˛i!ááŖâá|:ᡠâ´âáŖâ Īi!ááŖâá|:ââŠááŖâáãĒ. i!|:áˇáĪᡠâ¸âĪáá|:ᡠĪi!ááŖâá|:ââŠááŖâáãĒ áŖá áŽáãĒáŖâãĒâáˇ.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "áŽái! ĪáŖâˇáˇãĒâ¤áŖâ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "áŽâáãĒâ¤áˇĪ áŖâᡠĪáŖâˇáˇãĒâ¤áŖâ áâ áŖâᡠi!âˇááŽáˇĪĪâãĒ⤠â¸áãĒᡠáŖá áŖâᡠáââ¸âá. (áâ¤â¤âˇáˇĪĪââᡠá˛áāĨĨ āĨĨâáˇ|:⸠âãĒâ¸áˇĪââˇáá|:ᡠâˇáˇĪâ|:áŖĪ)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "ĪáŖáãĒâ¸áâˇâ¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "áâ¤â¤âˇáˇĪĪââáˇ",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "áââ¸âá ãĒáâˇá˛á|:ââŠááŖâáãĒ",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ãĒáâˇá˛á|:ââŠáˇĪ i!áˇá¡Į¡ âá|:âá˛áˇ âá⡠âãĒâ¸ââââ¸âá|: áŖâˇááŽÂˇĮÂˇĪ áŖá áŽâˇáˇááŖáˇ á á˛áâˇáˇ âãĒââáâˇá˛ |:âĪáŖáˇãĒâãĒ⤠áˇ/i!áˇâˇâáˇãĒáŽáˇ.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "áââ¸âá Īi!ááŖâá|:ââŠááŖâáãĒ", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "áââ¸âá Īi!ááŖâá|:ââŠááŖâáãĒ",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Īi!ááŖâá|:ââŠáˇ áââ¸âá áãĒ⸠á˛á¡Į¡ᡠáââ¸âá á˛áâˇáˇ 3-â¸âá˛áˇãĒĪâáãĒá|: (ãĒááŖáˇ: áŖââĪ âĪ ãĒááŖ â¸á|:áāĨĨ ááŖá˛áĪ)",
-
- // Settings - Visual
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Īi!ááŖâá|:ââŠááŖâáãĒ âĪ ãĒááŖ áŽáá˛i!ááŖâá|:ᡠâ´âáŖâ áŽái!. i!|:áˇáĪᡠâ¸âĪáá|:ᡠáŽái! áŖá áŽáãĒáŖâãĒâáˇ.",
"settings.header.visual": "ââĪâá|:",
"settings.header.visual.description": "áâ¸âŽâĪáŖ áŖâᡠââĪâá| ĪáˇáŖáŖâãĒâ¤Ī âá⡠áŽââ¸áˇâˇ.",
- "settings.option.visual.windowBackgroundStyle": "â´âãĒâ¸áâ´ áááŽÂˇĮ¡â¤âˇáâãĒ⸠ĪáŖāĨĨ|:áˇ", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "â´âãĒâ¸áâ´ áááŽÂˇĮ¡â¤âˇáâãĒ⸠ĪáŖāĨĨ|:áˇ",
"settings.header.visual.windowBackgroundStyle.none": "ãĒáãĒáˇ",
"settings.header.visual.windowBackgroundStyle.artwork": "áâˇáŖâ´áâˇÂˇĮ¡",
"settings.header.visual.windowBackgroundStyle.image": "âá˛áâ¤áˇ",
- "settings.option.visual.animatedArtwork": "áãĒâá˛ááŖáˇâ¸ áâˇáŖâ´áâˇÂˇĮ¡", // Dropdown
+ "settings.option.visual.animatedArtwork": "áãĒâá˛ááŖáˇâ¸ áâˇáŖâ´áâˇÂˇĮ¡",
"settings.header.visual.animatedArtwork.always": "á|:â´áāĨĨĪ",
"settings.header.visual.animatedArtwork.limited": "|:âá˛âáŖáˇâ¸ áŖá i!áâ¤áˇĪ áãĒ⸠Īi!áˇáŽâá|: áˇãĒáŖâˇâáˇĪ",
"settings.header.visual.animatedArtwork.disable": "â¸âĪáá|:ᡠáˇâáˇâˇāĨĨâ´âáˇâˇáˇ",
- "settings.option.visual.animatedArtworkQuality": "áãĒâá˛ááŖáˇâ¸ áâˇáŖâ´áâˇÂˇĮ¡ áâá|:âáŖāĨĨ", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "áãĒâá˛ááŖáˇâ¸ áâˇáŖâ´áâˇÂˇĮ¡ áâá|:âáŖāĨĨ",
"settings.header.visual.animatedArtworkQuality.low": "|:áâ´",
"settings.header.visual.animatedArtworkQuality.medium": "á˛áˇâ¸ââá˛",
"settings.header.visual.animatedArtworkQuality.high": "âââ¤â",
"settings.header.visual.animatedArtworkQuality.veryHigh": "âáˇâˇāĨĨ âââ¤â",
"settings.header.visual.animatedArtworkQuality.extreme": "áˇ/áŖâˇáˇá˛áˇ",
- "settings.option.visual.animatedWindowBackground": "áãĒâá˛ááŖáˇâ¸ â´âãĒâ¸áâ´ áááŽÂˇĮ¡â¤âˇáâãĒâ¸", // Toggle
- "settings.option.visual.hardwareAcceleration": "âáâˇâ¸â´áâˇáˇ ááŽáŽáˇ|:áˇâˇááŖâáãĒ", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "áãĒâá˛ááŖáˇâ¸ â´âãĒâ¸áâ´ áááŽÂˇĮ¡â¤âˇáâãĒâ¸",
+ "settings.option.visual.hardwareAcceleration": "âáâˇâ¸â´áâˇáˇ ááŽáŽáˇ|:áˇâˇááŖâáãĒ",
"settings.option.visual.hardwareAcceleration.description": "âˇáˇáâââˇáˇĪ âˇáˇ|:áâãĒáŽâ",
"settings.header.visual.hardwareAcceleration.default": "â¸áˇâáâ|:áŖ",
"settings.header.visual.hardwareAcceleration.webGPU": "â´áˇáâ¤i!â",
"settings.header.visual.theme": "áŖâáˇá˛áˇ",
-
- // Settings - Visual - Theme name
+ "settings.option.visual.theme.github.download": "âãĒĪáŖá|:|: ââˇáᲠâ¤âáŖââá ââˇ|:",
+ "settings.prompt.visual.theme.github.URL": "áˇãĒáŖáˇâˇ áŖâᡠââˇ|: áâ áŖâᡠáŖâáˇá˛áˇ āĨĨáâ â´áãĒáŖ áŖá âãĒĪáŖá|:|:",
+ "settings.notyf.visual.theme.install.success": "áŖâáˇá˛áˇ âãĒĪáŖá|:|:áˇâ¸ ĪâáŽáŽáˇĪĪââ|:|:āĨĨ",
+ "settings.notyf.visual.theme.install.error": "áŖâáˇá˛áˇ âãĒĪáŖá|:|:ááŖâáãĒ âáâ|:áˇâ¸",
"settings.option.visual.theme.default": "áŽââ¸áˇâˇ",
"settings.option.visual.theme.dark": "â¸áâˇÂˇĮ¡",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Īâáâ´ i!áˇâˇĪáãĒá|: âãĒâá", // Toggle
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "Īâáâ´ i!áˇâˇĪáãĒá|: âãĒâá",
"settings.header.lyrics": "|:āĨĨâˇâáŽĪ",
"settings.header.lyrics.description": "áâ¸âŽâĪáŖ áŖâᡠ|:āĨĨâˇâáŽĪ ĪáˇáŖáŖâãĒâ¤Ī âá⡠áŽââ¸áˇâˇ.",
- "settings.option.lyrics.enableMusixmatch": "áˇãĒáá|:ᡠá˛âĪâĖ/á˛ááŖáŽâ |:āĨĨâˇâáŽĪ", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "áˇãĒáá|:ᡠ¡Į¡áâˇáá¡Į¡ᡠá˛áâ¸áˇ (á˛âĪâĖ/á˛ááŖáŽâ áãĒ|:āĨĨ)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "á˛âĪâĖ/á˛ááŖáŽâ áŖâˇáãĒĪ|:ááŖâáãĒ i!âˇáˇâáˇâˇâˇáˇâ¸ |:áãĒâ¤âáâ¤áˇ", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "áˇãĒáá|:ᡠāĨĨáâáŖâáᡠ|:āĨĨâˇâáŽĪ âá⡠á˛âĪâᎠâââ¸áˇáĪ", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "áˇãĒáá|:ᡠá˛âĪâĖ/á˛ááŖáŽâ |:āĨĨâˇâáŽĪ",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "áˇãĒáá|:ᡠ¡Į¡áâˇáá¡Į¡ᡠá˛áâ¸áˇ (á˛âĪâĖ/á˛ááŖáŽâ áãĒ|:āĨĨ)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "á˛âĪâĖ/á˛ááŖáŽâ áŖâˇáãĒĪ|:ááŖâáãĒ i!âˇáˇâáˇâˇâˇáˇâ¸ |:áãĒâ¤âáâ¤áˇ",
+ "settings.option.lyrics.enableYoutubeLyrics": "áˇãĒáá|:ᡠāĨĨáâáŖâáᡠ|:āĨĨâˇâáŽĪ âá⡠á˛âĪâᎠâââ¸áˇáĪ",
"settings.header.connectivity": "áŽáãĒãĒáˇáŽáŖâââáŖāĨĨ",
"settings.header.connectivity.description": "áâ¸âŽâĪáŖ áŖâᡠáŽáãĒãĒáˇáŽáŖâââáŖāĨĨ ĪáˇáŖáŖâãĒâ¤Ī âá⡠áŽââ¸áˇâˇ.",
- "settings.option.connectivity.discordRPC": "â¸âĪáŽáâˇâ¸ âˇâáŽâ i!âˇáˇĪáˇãĒáŽáˇ", // Dropdown
- "settings.option.connectivity.playbackNotifications": "i!|:áāĨĨáááŽÂˇĮ¡ ãĒááŖâââáŽááŖâáãĒĪ", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "â¸âĪáŽáâˇâ¸ âˇâáŽâ i!âˇáˇĪáˇãĒáŽáˇ",
+ "settings.option.connectivity.playbackNotifications": "i!|:áāĨĨáááŽÂˇĮ¡ ãĒááŖâââáŽááŖâáãĒĪ",
"settings.header.connectivity.discordRPC.cider": "â¸âĪi!|:áāĨĨ áĪ 'áŽââ¸áˇâˇ'",
"settings.header.connectivity.discordRPC.appleMusic": "â¸âĪi!|:áāĨĨ áĪ 'ái!i!|:ᡠá˛âĪâáŽ'",
- "settings.option.connectivity.discordRPC.clearOnPause": "áŽ|:áˇá⡠â¸âĪáŽáâˇâ¸ âˇâáŽâ i!âˇáˇĪáˇãĒáŽáˇ áãĒ i!áâĪáˇ", // Toggle
- "settings.option.connectivity.lastfmScrobble": "|:áĪáŖ.âᲠĪáŽâˇááá|:âãĒâ¤", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "áŽ|:áˇá⡠â¸âĪáŽáâˇâ¸ âˇâáŽâ i!âˇáˇĪáˇãĒáŽáˇ áãĒ i!áâĪáˇ",
+ "settings.option.connectivity.lastfmScrobble": "|:áĪáŖ.âᲠĪáŽâˇááá|:âãĒâ¤",
"settings.option.connectivity.lastfmScrobble.delay": "|:áĪáŖ.âᲠĪáŽâˇááá|:ᡠâ¸áˇ|:áāĨĨ (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "áˇãĒáá|:ᡠ|:áĪáŖ.âᲠãĒáâ´ i!|:áāĨĨâãĒâ¤",
"settings.option.connectivity.lastfmScrobble.removeFeatured": "âˇáˇá˛áâᡠâáˇááŖââˇâãĒ⤠áâˇáŖâĪáŖĪ ââˇáᲠĪáãĒ⤠áŖâáŖ|:ᡠ(|:áĪáŖ.âá˛)",
"settings.option.connectivity.lastfmScrobble.filterLoop": "ââ|:áŖáˇâˇ |:áái!áˇâ¸ áŖâˇááŽÂˇĮ¡ (|:áĪáŖ.âá˛)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
"settings.header.experimental": "áˇ/i!áˇâˇâá˛áˇãĒáŖá|:",
"settings.header.experimental.description": "áâ¸âŽâĪáŖ áŖâᡠáˇ/i!áˇâˇâá˛áˇãĒáŖá|: ĪáˇáŖáŖâãĒâ¤Ī âá⡠áŽââ¸áˇâˇ.",
- "settings.option.experimental.compactUI": "áŽáá˛i!ááŽáŖ ââ", // Toggle
- "settings.option.experimental.close_button_hide": "áŽ|:áĪᡠáâáŖáŖáãĒ Īâáâ|:⸠âââ¸áˇ áŖâᡠái!i!|:âáŽááŖâáãĒ",
+ "settings.option.experimental.compactUI": "áŽáá˛i!ááŽáŖ ââ",
+ "settings.option.window.close_button_hide": "áŽ|:áĪᡠáâáŖáŖáãĒ Īâáâ|:⸠âââ¸áˇ áŖâᡠái!i!|:âáŽááŖâáãĒ",
"settings.option.experimental.copy_log": "áŽái!āĨĨ |:áâ¤Ī áŖá áŽ|:âi!áááâˇâ¸",
"settings.option.experimental.inline_playlists": "âãĒ|:âãĒᡠi!|:áāĨĨ|:âĪáŖĪ áãĒ⸠á|:áâá˛Ī",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
"spatial.notTurnedOn": "áââ¸âá Īi!ááŖâá|:ââŠááŖâáãĒ âĪ â¸âĪáá|:áˇâ¸. áŖá âĪáˇ, i!|:áˇáĪᡠáˇãĒáá|:ᡠâáŖ âââˇĪáŖ.",
"spatial.spatialProperties": "Īi!ááŖâá|: i!âˇái!áˇâˇáŖâáˇĪ",
"spatial.width": "â´ââ¸áŖâ",
@@ -335,14 +307,8 @@
"spatial.down": "â¸áâ´ãĒ",
"spatial.listener": "|:âĪáŖáˇãĒáˇâˇ",
"spatial.audioSource": "áââ¸âá ĪáââˇáŽáˇ",
-
- // Settings - Unfinished
"settings.header.unfinished": "âãĒââãĒâĪâáˇâ¸",
-
- // Web Remote
"remote.web.title": "áŽââ¸áˇâˇ âˇáˇá˛ááŖáˇ",
"remote.web.description": "ĪáŽáãĒ áŖâᡠá⡠áŽáâ¸áˇ áŖá i!áâ⡠āĨĨáâ⡠i!âáãĒᡠâi! â´âáŖâ áŖââĪ áŽââ¸áˇâˇ âãĒĪáŖáãĒáŽáˇ",
-
- // About
"about.thanks": "á˛áâŽá⡠áŖâáãĒ¡ĮÂˇĪ áŖá áŖâᡠáŽââ¸áˇâˇ áŽá|:|:áˇáŽáŖââᡠáŖáˇáᲠáãĒ⸠á|:|: áâ áâ⡠áŽáãĒáŖâˇâáâáŖáâˇĪ."
}
\ No newline at end of file
diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json
new file mode 100644
index 00000000..27c766a8
--- /dev/null
+++ b/src/i18n/en_US.json
@@ -0,0 +1,415 @@
+{
+ "i18n.languageName": "English (US)",
+ "i18n.languageNameEnglish": "English (US)",
+ "i18n.category": "main",
+ "i18n.authors": "@maikirakiwi @kyw504100 @nosh118",
+ "app.name": "Cider",
+ "date.format": "${m} ${d}, ${y}",
+ "dialog.cancel": "Cancel",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Updating library songs...",
+ "notification.updatingLibraryAlbums": "Updating library albums...",
+ "notification.updatingLibraryArtists": "Updating library artists...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "Learn more",
+ "term.accountSettings": "Account Settings",
+ "term.logout": "Logout",
+ "term.login": "Log In",
+ "term.about": "About",
+ "term.privateSession": "Private Session",
+ "term.queue": "Queue",
+ "term.lyrics": "Lyrics",
+ "term.miniplayer": "MiniPlayer",
+ "term.history": "History",
+ "term.search": "Search",
+ "term.library": "Library",
+ "term.listenNow": "Listen Now",
+ "term.browse": "Browse",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "Recently Added",
+ "term.songs": "Songs",
+ "term.albums": "Albums",
+ "term.artists": "Artists",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Playlists",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "New Playlist",
+ "term.newPlaylistFolder": "New Playlist Folder",
+ "term.createNewPlaylist": "Create New Playlist",
+ "term.createNewPlaylistFolder": "Create New Playlist Folder",
+ "term.deletePlaylist": "Are you sure you want to delete this playlist?",
+ "term.play": "Play",
+ "term.pause": "Pause",
+ "term.previous": "Previous",
+ "term.next": "Next",
+ "term.shuffle": "Shuffle",
+ "term.repeat": "Repeat",
+ "term.volume": "Volume",
+ "term.mute": "Mute",
+ "term.unmute": "Unmute",
+ "term.share": "Share",
+ "term.share.success": "Copied to clipboard",
+ "term.settings": "Settings",
+ "term.seeAll": "See All",
+ "term.sortBy": "Sort By",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artist",
+ "term.sortBy.name": "Name",
+ "term.sortBy.genre": "Genre",
+ "term.sortBy.releaseDate": "Release Date",
+ "term.sortBy.duration": "Duration",
+ "term.sortBy.dateAdded": "Date Added",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascending",
+ "term.sortOrder.descending": "Descending",
+ "term.viewAs": "View As",
+ "term.viewAs.coverArt": "Cover Art",
+ "term.viewAs.list": "List",
+ "term.size": "Size",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Compact",
+ "term.enable": "Enable",
+ "term.disable": "Disable",
+ "term.enabled": "Enabled",
+ "term.disabled": "Disabled",
+ "term.connect": "Connect",
+ "term.connecting": "Connecting",
+ "term.disconnect": "Disconnect",
+ "term.authed": "Authed",
+ "term.confirm": "Confirm?",
+ "term.more": "More",
+ "term.less": "Less",
+ "term.showMore": "Show more",
+ "term.showLess": "Show less",
+ "term.topSongs": "Top Songs",
+ "term.latestReleases": "Latest Releases",
+ "term.time.added": "Added",
+ "term.time.released": "Released",
+ "term.time.updated": "Updated",
+ "term.time.days": "days",
+ "term.time.day": {
+ "one": "day",
+ "other": "days"
+ },
+ "term.time.hours": "hours",
+ "term.time.hour": {
+ "one": "hour",
+ "other": "hours"
+ },
+ "term.time.minutes": "minutes",
+ "term.time.minute": {
+ "one": "minute",
+ "other": "minutes"
+ },
+ "term.time.seconds": "seconds",
+ "term.time.second": {
+ "one": "second",
+ "other": "seconds"
+ },
+ "term.fullscreenView": "Fullscreen View",
+ "term.defaultView": "Default View",
+ "term.audioSettings": "Audio Settings",
+ "term.audioControls": "Volume Controls",
+ "term.clearAll": "Clear All",
+ "term.recentStations": "Recent Stations",
+ "term.language": "Language",
+ "term.funLanguages": "Fun",
+ "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "All Rights Reserved.",
+ "term.sponsor": "Sponsor this project",
+ "term.ciderTeam": "Cider Team",
+ "term.developer": "Developer",
+ "term.socialTeam": "Social Team",
+ "term.socials": "Socials",
+ "term.contributors": "Contributors",
+ "term.equalizer": "Equalizer",
+ "term.reset": "Reset",
+ "term.tracks": "tracks",
+ "term.track": {
+ "one" : "track",
+ "other" : "tracks"
+ },
+ "term.videos": "Videos",
+ "term.menu": "Menu",
+ "term.check": "Check",
+ "term.aboutArtist": "About {{artistName}}",
+ "term.topResult": "Top Result",
+ "term.sharedPlaylists": "Shared Playlists",
+ "term.people": "People",
+ "term.newpreset.name": "New EQ Preset Name",
+ "term.addedpreset": "Added Preset",
+ "term.deletepreset.warn": "Are you sure you want to delete this preset?",
+ "term.deletedpreset": "Removed preset",
+ "term.defaultPresets": "Default Presets",
+ "term.userPresets": "User Presets",
+ "term.requestError": "There was a problem with the request.",
+ "term.song.link.generate": "Getting song.link share URL...",
+ "term.musicVideos": "Music Videos",
+ "term.stations": "Stations",
+ "term.curators": "Curators",
+ "term.appleCurators": "Apple Curators",
+ "term.radioShows": "Radio Shows",
+ "term.recordLabels": "Record Labels",
+ "term.videoExtras": "Video Extras",
+ "term.top": "Top",
+ "term.version": "Version",
+ "term.noVideos": "No videos found.",
+ "term.plugin": "Plug-in",
+ "term.pluginMenu": "Plug-in Menu",
+ "term.pluginMenu.none": "No interactive plugins",
+ "term.replay": "Replay",
+ "term.uniqueAlbums": "Unique Albums",
+ "term.uniqueArtists": "Unique Artists",
+ "term.uniqueSongs": "Unique Songs",
+ "term.topArtists": "Top Artists",
+ "term.listenedTo": "Listened to:",
+ "term.times": "times",
+ "term.topAlbums": "Top Albums",
+ "term.plays": "Plays",
+ "term.topGenres": "Top Genres",
+ "term.confirmLogout": "Are you sure you want to logout?",
+ "term.creditDesignedBy": "Designed by ${authorUsername}",
+ "home.title": "Home",
+ "home.recentlyPlayed": "Recently Played",
+ "home.recentlyAdded": "Recently Added",
+ "home.artistsFeed": "Your Artists Feed",
+ "home.artistsFeed.noArtist": "Follow some artists to see their latest releases",
+ "home.madeForYou": "Made For You",
+ "home.friendsListeningTo": "Friends Listening To",
+ "home.followedArtists": "Followed Artists",
+ "error.appleMusicSubRequired": "Apple Music requires a subscription.",
+ "error.connectionError": "There was a problem connecting to Apple Music.",
+ "error.noResults": "No Results.",
+ "error.noResults.description": "Try a new search.",
+ "podcast.followOnCider": "Follow On Cider",
+ "podcast.followedOnCider": "Following On Cider",
+ "podcast.subscribeOnItunes": "Subscribe On iTunes",
+ "podcast.subscribedOnItunes": "Subscribed On iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Episodes",
+ "podcast.playEpisode": "Play Episode",
+ "podcast.website": "Podcast Website",
+ "action.addToLibrary": "Add to Library",
+ "action.addToLibrary.success": "Added to Library",
+ "action.addToLibrary.error": "Error Adding to Library",
+ "action.removeFromLibrary": "Remove from Library",
+ "action.removeFromLibrary.success": "Removed from Library",
+ "action.addToQueue": "Add to Queue",
+ "action.addToQueue.success": "Added to Queue",
+ "action.addToQueue.error": "Error Adding to Queue",
+ "action.removeFromQueue": "Remove from Queue",
+ "action.removeFromQueue.success": "Removed from Queue",
+ "action.removeFromQueue.error": "Error Removing from Queue",
+ "action.createPlaylist": "Create a New Playlist",
+ "action.addToPlaylist": "Add to Playlist",
+ "action.removeFromPlaylist": "Remove from Playlist",
+ "action.addToFavorites": "Add to Favorites",
+ "action.follow": "Follow",
+ "action.follow.success": "Followed",
+ "action.follow.error": "Error Following",
+ "action.unfollow": "Unfollow",
+ "action.unfollow.success": "Unfollowed",
+ "action.unfollow.error": "Error Unfollowing",
+ "action.playNext": "Play Next",
+ "action.playLater": "Play Later",
+ "action.startRadio": "Start Radio",
+ "action.goToArtist": "Go to Artist",
+ "action.goToAlbum": "Go to Album",
+ "action.showInPlaylist": "Show in Playlist",
+ "action.showInAppleMusic": "Show in Apple Music",
+ "action.moveToTop": "Move out of Folder",
+ "action.share": "Share",
+ "action.rename": "Rename",
+ "action.love": "Love",
+ "action.unlove": "Unlove",
+ "action.dislike": "Dislike",
+ "action.undoDislike": "Undo dislike",
+ "action.showWebRemoteQR": "Web Remote",
+ "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next",
+ "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later",
+ "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
+ "action.import": "Import",
+ "action.export": "Export",
+ "action.showAlbum": "Show Complete Album",
+ "action.tray.minimize": "Minimize to Tray",
+ "action.tray.quit": "Quit",
+ "action.tray.show": "Show",
+ "action.update": "Update",
+ "action.install": "Install",
+ "action.copy": "Copy",
+ "action.newpreset": "New Preset...",
+ "action.deletepreset": "Delete Preset",
+ "action.open": "Open",
+ "action.relaunch.confirm": "Do you want to relaunch Cider?",
+ "settings.header.general": "General",
+ "settings.header.general.description": "Adjust the general settings for Cider.",
+ "settings.option.general.language": "Language",
+ "settings.option.general.resumebehavior": "Resume behavior",
+ "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.",
+ "settings.option.general.resumebehavior.locally": "Locally",
+ "settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.",
+ "settings.option.general.resumebehavior.history": "History",
+ "settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.",
+ "settings.option.general.language.main": "Languages",
+ "settings.option.general.language.fun": "Fun Languages",
+ "settings.option.general.language.unsorted": "Unsorted",
+ "settings.option.general.updateCider": "Update Cider",
+ "settings.option.general.updateCider.branch": "Cider Update Branch",
+ "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to",
+ "settings.option.general.updateCider.branch.main": "Stable",
+ "settings.option.general.updateCider.branch.develop": "Development",
+ "settings.notyf.updateCider.update-not-available": "No update available",
+ "settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply",
+ "settings.notyf.updateCider.update-error": "Error updating Cider",
+ "settings.notyf.updateCider.update-timeout": "Update timed out",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "Adjust the audio settings for Cider.",
+ "settings.option.audio.volumeStep": "Volume Step",
+ "settings.option.audio.maxVolume": "Max Volume",
+ "settings.option.audio.quality": "Audio Quality",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "High",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "Standard",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "Seamless Audio Transition",
+ "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization, Equalizers and Visualizers - however on some systems this may cause stuttering in audio tracks.",
+ "settings.option.audio.audioLab": "Cider Audio Lab",
+ "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
+ "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.",
+ "settings.header.visual": "Visual",
+ "settings.header.visual.description": "Adjust the visual settings for Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Window Background Style",
+ "settings.header.visual.windowBackgroundStyle.none": "None",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
+ "settings.header.visual.windowBackgroundStyle.image": "Image",
+ "settings.option.visual.animatedArtwork": "Animated Artwork",
+ "settings.header.visual.animatedArtwork.always": "Always",
+ "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries",
+ "settings.header.visual.animatedArtwork.disable": "Disable everywhere",
+ "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality",
+ "settings.header.visual.animatedArtworkQuality.low": "Low",
+ "settings.header.visual.animatedArtworkQuality.medium": "Medium",
+ "settings.header.visual.animatedArtworkQuality.high": "High",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High",
+ "settings.header.visual.animatedArtworkQuality.extreme": "Extreme",
+ "settings.option.visual.animatedWindowBackground": "Animated Window Background",
+ "settings.option.visual.hardwareAcceleration": "Hardware Acceleration",
+ "settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
+ "settings.header.visual.hardwareAcceleration.default": "Default",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Theme",
+ "settings.option.visual.theme.github.download": "Install from GitHub URL",
+ "settings.option.visual.theme.github.explore": "Explore GitHub Themes",
+ "settings.header.visual.theme.github.page": "Themes from GitHub",
+ "settings.option.visual.theme.github.install.confirm": "Are you sure you want to install {{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "Enter the URL of the theme you want to install",
+ "settings.notyf.visual.theme.install.success": "Theme installed successfully",
+ "settings.notyf.visual.theme.install.error": "Theme installation failed",
+ "settings.header.visual.plugin": "Plugin",
+ "settings.option.visual.plugin.github.download": "Install from GitHub URL",
+ "settings.option.visual.plugin.github.explore": "Explore GitHub Plugins",
+ "settings.header.visual.plugin.github.page": "Plugins from GitHub",
+ "settings.option.visual.plugin.github.install.confirm": "Are you sure you want to install {{ repo }}?",
+ "settings.prompt.visual.plugin.github.URL": "Enter the URL of the plugin you want to install",
+ "settings.prompt.visual.plugin.github.success": "Plugin installed successfully, Press OK to relaunch Cider",
+ "settings.notyf.visual.plugin.install.success": "Plugin installed successfully",
+ "settings.notyf.visual.plugin.install.error": "Plugin installation failed",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Dark",
+ "settings.option.visual.showPersonalInfo": "Show Personal Info",
+ "settings.header.window": "Window",
+ "settings.header.window.description": "Adjust the window settings for Cider.",
+ "settings.option.window.openOnStartup": "Open Cider on Startup",
+ "settings.option.window.openOnStartup.hidden": "Open Hidden",
+ "settings.header.lyrics": "Lyrics",
+ "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language",
+ "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos",
+ "settings.header.connectivity": "Connectivity",
+ "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Playback Notifications",
+ "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
+ "settings.header.debug": "Debug",
+ "settings.option.debug.copy_log": "Copy logs to clipboard",
+ "settings.option.debug.openAppData": "Open Cider Folder",
+ "settings.header.experimental": "Experimental",
+ "settings.header.experimental.description": "Adjust the experimental settings for Cider.",
+ "settings.option.experimental.unknownPlugin": "Unknown Sources",
+ "settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository",
+ "settings.option.experimental.compactUI": "Compact UI",
+ "settings.option.window.close_button_hide": "Close Button Should Hide the Application",
+ "settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
+ "settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping",
+ "settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.",
+ "settings.option.visual.transparent": "Transparent frame",
+ "settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)",
+ "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
+ "spatial.spatialProperties": "Spatial Properties",
+ "spatial.width": "Width",
+ "spatial.height": "Height",
+ "spatial.depth": "Depth",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Room Materials",
+ "spatial.roomDimensions": "Room Dimensions",
+ "spatial.roomPositions": "Room Positions",
+ "spatial.setDimensions": "Set Dimensions",
+ "spatial.setPositions": "Set Positions",
+ "spatial.up": "Up",
+ "spatial.front": "Front",
+ "spatial.left": "Left",
+ "spatial.right": "Right",
+ "spatial.back": "Back",
+ "spatial.down": "Down",
+ "spatial.listener": "Listener",
+ "spatial.audioSource": "Audio Source",
+ "settings.header.unfinished": "Unfinished",
+ "remote.web.title": "Cider Remote",
+ "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
+ "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors."
+}
diff --git a/src/i18n/es_ES.jsonc b/src/i18n/es_ES.json
similarity index 86%
rename from src/i18n/es_ES.jsonc
rename to src/i18n/es_ES.json
index 9a0bf149..f4017664 100644
--- a/src/i18n/es_ES.jsonc
+++ b/src/i18n/es_ES.json
@@ -1,25 +1,15 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "EspaÃąol (ES)", // name of language in native language
- "i18n.languageNameEnglish": "Spanish (Spain)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@j.fl220", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "EspaÃąol (ES)",
+ "i18n.languageNameEnglish": "Spanish (Spain)",
+ "i18n.category": "main",
+ "i18n.authors": "@j.fl220",
"app.name": "Cider",
-
"date.format": "${d} ${m}, ${y}",
-
- // Dialogs
"dialog.cancel": "Cancelar",
"dialog.ok": "Aceptar",
-
- // Notification
"notification.updatingLibrarySongs": "Actualizando canciones de la biblioteca...",
"notification.updatingLibraryAlbums": "Actualizando ÃĄlbumes de la biblioteca...",
"notification.updatingLibraryArtists": "Actualizando biblioteca de artistas...",
-
- // Terms
"term.appleInc": "Apple Inc.",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
@@ -120,13 +110,11 @@
"term.contributors": "Contribuidores",
"term.equalizer": "Equalizador",
"term.reset": "Resetear",
- "term.tracks": "canciones", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "canciones",
"term.videos": "VÃdeos",
"term.menu": "MenÃē",
"term.check": "Comprobar",
- "term.aboutArtist": "MÃĄs sobre {{artistName}}", // e.g. 'About Doja Cat'
-
- // Home
+ "term.aboutArtist": "MÃĄs sobre {{artistName}}",
"home.title": "Inicio",
"home.recentlyPlayed": "Reproducciones recientes",
"home.recentlyAdded": "AÃąadido recientemente",
@@ -135,14 +123,10 @@
"home.madeForYou": "Hecho para ti",
"home.friendsListeningTo": "Tus amigos estÃĄn escuchando",
"home.followedArtists": "Artistas que sigues",
-
- // Errors
"error.appleMusicSubRequired": "Apple Music necesita una suscripciÃŗn.",
"error.connectionError": "Ha habido un problema al conectar con Apple Music.",
"error.noResults": "Sin resultados",
"error.noResults.description": "Intenta otra bÃēsqueda.",
-
- // Podcasts
"podcast.followOnCider": "Seguir en Cider",
"podcast.followedOnCider": "Siguiendo en Cider",
"podcast.subscribeOnItunes": "Suscribirse en iTunes",
@@ -151,8 +135,6 @@
"podcast.episodes": "Episodios",
"podcast.playEpisode": "Iniciar Episodio",
"podcast.website": "Pagina del podcast",
-
- // Actions
"action.addToLibrary": "AÃąadir a la biblioteca",
"action.addToLibrary.success": "AÃąadido a la biblioteca",
"action.addToLibrary.error": "Error al aÃąadir a la biblioteca",
@@ -197,92 +179,70 @@
"action.tray.quit": "Salir",
"action.tray.show": "Abrir",
"action.update": "Actualizar",
-
- // Settings - General
"settings.header.general": "General",
"settings.header.general.description": "Ajustes generales de Cider.",
"settings.option.general.language": "Idioma",
-
- // Language optgroups
"settings.option.general.language.main": "Idiomas",
"settings.option.general.language.fun": "Idiomas divertidos",
"settings.option.general.language.unsorted": "Sin clasificar",
-
- // Update Cider
- "settings.option.general.updateCider": "Actualizar Cider", // Button
-
- // Settings - Audio
+ "settings.option.general.updateCider": "Actualizar Cider",
"settings.header.audio": "Audio",
"settings.header.audio.description": "Ajustes del audio de Cider.",
- "settings.option.audio.quality": "Calidad de audio", // Dropdown
+ "settings.option.audio.quality": "Calidad de audio",
"settings.header.audio.quality.high": "Alto",
"settings.header.audio.quality.low": "Bajo",
"settings.header.audio.quality.auto": "Auto",
- "settings.option.audio.seamlessTransition": "TransiciÃŗn de audio perfecta", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Activar funciones avanzadas", // Toggle
+ "settings.option.audio.seamlessTransition": "TransiciÃŗn de audio perfecta",
+ "settings.option.audio.enableAdvancedFunctionality": "Activar funciones avanzadas",
"settings.option.audio.enableAdvancedFunctionality.description": "Habilitar la funcionalidad de AudioContext permitirÃĄ funciones de audio extendidas como NormalizaciÃŗn de audio, Ecualizadores y Visualizadores; sin embargo, en algunos sistemas esto puede causar interrupciones en las canciones.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizar volumen", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizar volumen",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza los picos altos de canciones para hacer la experiencia de escucha mejor.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "EspacializaciÃŗn del audio", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "EspacializaciÃŗn del audio",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacializa mÃĄs el audio y conviÊrtelo mÃĄs 3-dimensional (nota: Esto no es Dolby Atmos)",
-
- // Settings - Visual
"settings.header.visual": "Visual",
"settings.header.visual.description": "Ajustes visuales para Cider.",
- "settings.option.visual.windowBackgroundStyle": "Estilo del fondo de la ventana", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "Estilo del fondo de la ventana",
"settings.header.visual.windowBackgroundStyle.none": "Nada",
"settings.header.visual.windowBackgroundStyle.artwork": "CarÃĄtula",
"settings.header.visual.windowBackgroundStyle.image": "Imagen",
- "settings.option.visual.animatedArtwork": "CarÃĄtula animada", // Dropdown
+ "settings.option.visual.animatedArtwork": "CarÃĄtula animada",
"settings.header.visual.animatedArtwork.always": "Habilitar siempre",
"settings.header.visual.animatedArtwork.limited": "Limitado a algunas pÃĄginas",
"settings.header.visual.animatedArtwork.disable": "Deshabilitar en todas partes",
- "settings.option.visual.animatedArtworkQuality": "Calidad de la carÃĄtula animada", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "Calidad de la carÃĄtula animada",
"settings.header.visual.animatedArtworkQuality.low": "Bajo",
"settings.header.visual.animatedArtworkQuality.medium": "Medio",
"settings.header.visual.animatedArtworkQuality.high": "Alto",
"settings.header.visual.animatedArtworkQuality.veryHigh": "Muy alto",
"settings.header.visual.animatedArtworkQuality.extreme": "Extrema",
- "settings.option.visual.animatedWindowBackground": "Fondo de la ventana animado", // Toggle
- "settings.option.visual.hardwareAcceleration": "AceleraciÃŗn del hardware", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "Fondo de la ventana animado",
+ "settings.option.visual.hardwareAcceleration": "AceleraciÃŗn del hardware",
"settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio",
"settings.header.visual.hardwareAcceleration.default": "Por defecto",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Mostrar informaciÃŗn personal", // Toggle
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "Mostrar informaciÃŗn personal",
"settings.header.lyrics": "Letras",
"settings.header.lyrics.description": "Ajuste las letras para Cider",
- "settings.option.lyrics.enableMusixmatch": "Habilitar las letras de Musixmatch", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Habilita el modo Karaoke (solo con Musixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma de traducciÃŗn por defecto en Musixmatch", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Habilitar las letras de Youtube para los videos con mÃēsica", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Habilitar las letras de Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Habilita el modo Karaoke (solo con Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma de traducciÃŗn por defecto en Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "Habilitar las letras de Youtube para los videos con mÃēsica",
"settings.header.connectivity": "Conectividad",
"settings.header.connectivity.description": "Ajusta la conectividad para Cider.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Notificaciones de reproducciÃŗn", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Notificaciones de reproducciÃŗn",
"settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Quitar Discord Rich Presence en pausa", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Scrobbling Last.fm", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "Quitar Discord Rich Presence en pausa",
+ "settings.option.connectivity.lastfmScrobble": "Scrobbling Last.fm",
"settings.option.connectivity.lastfmScrobble.delay": "Delay del Scrobbling en Last.fm (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Habilitar 'Escuchando ahora' en Last.fm",
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Eliminar artistas destacados del tÃtulo de la canciÃŗn (Last.fm)",
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar pista en bucle (Last.fm)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
"settings.header.experimental": "En pruebas",
"settings.header.experimental.description": "Ajustes en pruebas para Cider.",
- "settings.option.experimental.compactUI": "Interfaz de usuario compacto", // Toggle
- "settings.option.experimental.close_button_hide": "El botÃŗn de cerrar minimizarÃĄ la aplicaciÃŗn en la bandeja",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
+ "settings.option.experimental.compactUI": "Interfaz de usuario compacto",
+ "settings.option.window.close_button_hide": "El botÃŗn de cerrar minimizarÃĄ la aplicaciÃŗn en la bandeja",
"spatial.notTurnedOn": "La espacializaciÃŗn del audio esta desactivada. Para usarlo primero actÃvelo.",
"spatial.spatialProperties": "Propiedades espaciales",
"spatial.width": "Ancho",
@@ -302,15 +262,9 @@
"spatial.down": "Abajo",
"spatial.listener": "Oyente",
"spatial.audioSource": "Salida del audio",
-
- // Settings - Unfinished
"settings.header.unfinished": "Sin acabar",
"settings.header.unfinished.description": "Ajustes siendo testeados, no estÃĄn acabados.",
-
- // Web Remote
"remote.web.title": "Cider Remoto",
"remote.web.description": "Escanee el cÃŗdigo QR para emparejar su telÊfono con su cliente de Cider",
-
- // About
"about.thanks": "MuchÃsimas gracias al equipo de Cider Collective y tambiÊn a todos nuestros contribuidores."
}
\ No newline at end of file
diff --git a/src/i18n/fr_CA.jsonc b/src/i18n/fr_CA.json
similarity index 78%
rename from src/i18n/fr_CA.jsonc
rename to src/i18n/fr_CA.json
index 132cf845..64e22373 100644
--- a/src/i18n/fr_CA.jsonc
+++ b/src/i18n/fr_CA.json
@@ -1,299 +1,257 @@
-{ // Base File
-
- // i18n Info
- "i18n.languageName": "Français (CA)", // name of language in native language
- "i18n.languageNameEnglish": "French (CA)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "brock#7527", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
- "app.name": "Cider",
-
- "date.format": "${m} ${d}, ${y}",
-
- // Dialogs
- "dialog.cancel": "Annuler",
- "dialog.ok": "D'accord",
-
- // Notification
- "notification.updatingLibrarySongs": "RafraÃŽchir des chansons...",
- "notification.updatingLibraryAlbums": "RafraÃŽchir des albums...",
- "notification.updatingLibraryArtists": "RafraÃŽchir des artistes...",
- // Terms
- "term.appleInc": "Apple Inc.",
- "term.appleMusic": "Apple Music",
- "term.applePodcasts": "Apple Podcasts",
- "term.itunes": "iTunes",
- "term.github": "GitHub",
- "term.discord": "Discord",
- "term.learnMore": "Savoir plus",
- "term.accountSettings": "RÊglages du compte",
- "term.logout": "Se dÊconnecter",
- "term.login": "Se connecter",
- "term.about": "Ã propos",
- "term.privateSession": "Session en privÊe",
- "term.queue": "Suivants",
- "term.search": "Rechercher",
- "term.library": "Bibliothèque",
- "term.listenNow": "à Êcouter",
- "term.browse": "Parcourir",
- "term.radio": "Radio",
- "term.recentlyAdded": "AjoutÊ rÊcemment",
- "term.songs": "Chansons",
- "term.albums": "Albums",
- "term.artists": "Artistes",
- "term.podcasts": "Podcasts",
- "term.playlists": "Listes de lecture",
- "term.playlist": "Liste de lecture",
- "term.play": "Ãcouter",
- "term.pause": "Pause",
- "term.previous": "Retour",
- "term.next": "Suivant",
- "term.shuffle": "Lecture alÊatoire",
- "term.repeat": "RÊpÊter",
- "term.volume": "Volume",
- "term.mute": "Assourde",
- "term.unmute": "RÊactiver",
- "term.share": "Partager",
- "term.settings": "RÊglages",
- "term.seeAll": "Voix tous",
- "term.sortBy": "Sorter par",
- "term.sortBy.album": "Album",
- "term.sortBy.artist": "Artiste",
- "term.sortBy.name": "Nom",
- "term.sortBy.genre": "Genre",
- "term.sortBy.releaseDate": "Date de sortie",
- "term.sortBy.duration": "Duration",
- "term.sortOrder": "A-Z",
- "term.sortOrder.ascending": "Ascender",
- "term.sortOrder.descending": "Descender",
- "term.viewAs": "Voix comme",
- "term.viewAs.coverArt": "Art de couverture",
- "term.viewAs.list": "Liste",
- "term.size": "Grandeur",
- "term.size.normal": "Normal",
- "term.size.compact": "Compacte",
- "term.enable": "Activer",
- "term.disable": "DÊsactiver",
- "term.enabled": "ActivÊe",
- "term.disabled": "DÊsactivÊe",
- "term.connect": "Connecter",
- "term.connecting": "De liaison",
- "term.disconnect": "DÊconnecter",
- "term.authed": "Authed",
- "term.confirm": "Confirmer ?",
- "term.more": "De plus",
- "term.less": "De moins",
- "term.showMore": "Voir plus",
- "term.showLess": "Voir moins",
- "term.topSongs" : "Meilleures chansons",
- "term.latestReleases": "Nouvelles sorties",
- "term.time.added": "AjoutÊ",
- "term.time.released": "PubliÊ",
- "term.time.updated": "Mis à jour",
- "term.time.hours": "heures",
- "term.time.hour": "heur",
- "term.time.minutes": "minutes",
- "term.time.minute": "minute",
- "term.time.seconds": "secondes",
- "term.time.second": "seconde",
- "term.fullscreenView": "Vue plein Êcran",
- "term.defaultView": "Vue par dÊfaut",
- "term.spacializedAudioSetting": "RÊglage audio spacialisÊ",
- "term.clearAll": "Tout effacer",
- "term.recentStations": "Stations rÊcentes",
- "term.language": "Langue",
- "term.funLanguages": "Amusement",
- "term.noLyrics": "Loading... / Paroles pas trouvÊ./ Instrumental.",
- "term.copyright": "Droits d'auteur",
- "term.rightsReserved": "Tous les droits sont rÊservÊs.",
- "term.sponsor": "Parrainez ce projet",
- "term.ciderTeam": "Team Cider",
- "term.developer": "DÊveloppeur",
- "term.socialTeam": "Ãquipe sociale",
- "term.contributors": "Contributeurs",
- "term.equalizer": "Ãgaliseur",
- "term.reset": "RÊinitialiser",
- "term.tracks": "chansons", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "VidÊos",
- "term.menu": "Menu",
- "action.showAlbum": "Afficher l'album complet",
-
- // Home
- "home.title": "Maison",
- "home.recentlyPlayed": "JouÊ rÊcemment",
- "home.recentlyAdded": "AjoutÊ rÊcemment",
- "home.artistsFeed": "Votre flux d'artistes",
- "home.artistsFeed.noArtist": "Suivez certains artistes en premier et leurs dernières sorties seront ici",
- "home.madeForYou": "CreÊr pour toi",
- "home.friendsListeningTo": "Amis Êcoutant",
- "home.followedArtists": "Artistes suivis",
- // Errors
- "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.",
- "error.connectionError": "Un problème est survenu lors de la connexion à Apple Music.",
- "error.noResults": "Pas de resultats.",
- "error.noResults.description": "Essayez une nouvelle recherche.",
-
- //Podcasts
- "podcast.followOnCider": "Suivez sur Cider",
- "podcast.followedOnCider": "Suivi sur Cider",
- "podcast.subscribeOnItunes": "S'abonner sur iTunes",
- "podcast.subscribedOnItunes": "AbonnÊ sur iTunes",
- "podcast.itunesStore": "iTunes Store",
- "podcast.episodes": "Ãpisodes",
- "podcast.playEpisode": "Lire l'Êpisode",
- "podcast.website": "Site web du Podcast",
-
- // Actions
- "action.addToLibrary": "Ajouter à biblio",
- "action.addToLibrary.success": "AjoutÊ à biblio",
- "action.addToLibrary.error": "Erreur lors de l'ajout à biblio",
- "action.removeFromLibrary": "Enlever du biblio",
- "action.removeFromLibrary.success": "EnlevÊ du biblio",
- "action.addToQueue": "Ajouter à suivants",
- "action.addToQueue.success": "AjoutÊ à suivants",
- "action.addToQueue.error": "Erreur lors de l'ajout à suivants",
- "action.removeFromQueue": "Enlever du suivants",
- "action.removeFromQueue.success": "EnlevÊ du suivants",
- "action.removeFromQueue.error": "Erreur lors d'enleve du suivants",
- "action.addToPlaylist": "Ajoute à liste de lecture",
- "action.removeFromPlaylist": "Enleve de liste de lecture",
- "action.addToFavorites": "Ajoute à Favorites",
- "action.follow": "Suivre",
- "action.follow.success": "Suivi",
- "action.follow.error": "Erreur a suivre",
- "action.unfollow": "Arreter a suivi",
- "action.unfollow.success": "Arreter a suivre",
- "action.unfollow.error": "Erreur de arreter à suivre",
- "action.playNext": "Jouer en prochaine",
- "action.playLater": "Jouer plus tard",
- "action.startRadio": "Commencer la radio",
- "action.goToArtist": "Aller à l'artiste",
- "action.goToAlbum": "Aller à l'album",
- "action.moveToTop": "DÊplacer vers le haut",
- "action.share": "Partager",
- "action.rename": "Renommer",
- "action.love": "J'adore",
- "action.unlove": "Je n'adore plus",
- "action.dislike": "Moins de suggestions similaires",
- "action.undoDislike": "Annuler le choix Moins de suggestions de ce type",
- "action.showWebRemoteQR": "Demontrer la Web Remote QR",
- "action.playTracksNext": "Joue ${app.selectedMediaItems.length} chansons en prochain",
- "action.playTracksLater": "Joue ${app.selectedMediaItems.length} chansons plus tard",
- "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
- "action.import": "Importer",
- "action.export": "Exporter",
-
- // Settings - General
- "settings.header.general": "RÊglages gÊnÊraux",
- "settings.header.general.description": "RÊglez les rÊglages gÊnÊraux de Cider.",
- "settings.option.general.language": "Langue",
-
- // Language optgroups
- "settings.option.general.language.main": "Langue",
- "settings.option.general.language.fun": "Langues amusantes",
- "settings.option.general.language.unsorted": "Non triÊ",
-
- // Settings - Audio
- "settings.header.audio": "Audio",
- "settings.header.audio.description": "RÊglez les rÊglages audio de Cider.",
- "settings.option.audio.quality": "QualitÊ audio", // Dropdown
- "settings.header.audio.quality.high": "Haut",
- "settings.header.audio.quality.low": "Bas",
- "settings.header.audio.quality.auto": "Auto",
- "settings.option.audio.seamlessTransition": "Transition audio fluide", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Activer la fonctionnalitÊ avancÊe", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permettra des fonctionnalitÊs audio Êtendues telles que la normalisation audio, les Êgaliseurs et les visualiseurs, mais sur certains systèmes, cela peut provoquer des saccades dans les chansons audio.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation audio", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)",
- // Settings - Visual
- "settings.header.visual": "Visuel",
- "settings.header.visual.description": "Ajustez les rÊglages visuels de Cider.",
- "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la window", // Toggle
- "settings.header.visual.windowBackgroundStyle.none": "Rien",
- "settings.header.visual.windowBackgroundStyle.artwork": "Ouvrages d'art",
- "settings.header.visual.windowBackgroundStyle.image": "Image",
- "settings.option.visual.animatedArtwork": "Oeuvre animÊe", // Dropdown
- "settings.header.visual.animatedArtwork.always": "Toujours",
- "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales",
- "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout",
- "settings.option.visual.animatedArtworkQuality": "QualitÊ des illustrations animÊes", // Dropdown
- "settings.header.visual.animatedArtworkQuality.low": "Bas",
- "settings.header.visual.animatedArtworkQuality.medium": "Moyen",
- "settings.header.visual.animatedArtworkQuality.high": "Haut",
- "settings.header.visual.animatedArtworkQuality.veryHigh": "Très haut",
- "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme",
- "settings.option.visual.animatedWindowBackground": "Fond de window animÊ", // Toggle
- "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle", // Dropdown
- "settings.option.visual.hardwareAcceleration.description": "NÊcessite une relance",
- "settings.header.visual.hardwareAcceleration.default": "DÊfaut",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Afficher les informations personnelles", // Toggle
-
- // Settings - Lyrics
- "settings.header.lyrics": "Paroles",
- "settings.header.lyrics.description": "Ajustez les rÊglages des paroles de Cider.",
- "settings.option.lyrics.enableMusixmatch": "Activer les paroles de Musixmatch", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch uniquement)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Traduction Musixmatch langue prÊfÊrÊe", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles Youtube pour les clips vidÊo", // Toggle
-
- // Settings - Connectivity
- "settings.header.connectivity": "ConnectivitÊ",
- "settings.header.connectivity.description": "Ajustez les rÊglages de connectivitÊ pour Cider.",
- "settings.option.connectivity.discordRPC": "Discord Riche PrÊsence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Effacer la Discord Riche PrÊsence en pause", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de scrobble LastFM (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer LastFM en jouer maitenant",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer la chanson en boucle (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
- "settings.header.experimental": "ExpÊrimental",
- "settings.header.experimental.description": "Ajustez les rÊglages expÊrimentaux pour Cider.",
- "settings.option.experimental.compactUI": "UI Compact", // Toggle
- "settings.option.experimental.closeButtonBehaviour": "Comportement du bouton de fermeture",
- "settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider",
- "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "RÊduire à la barre des tÃĸches",
- "settings.option.experimental.closeButtonBehaviour.minimizeTray": "RÊduire dans le bac",
- // Refer to term.disabled & term.enabled
-
- // Spatialization Menu
- "spatial.spatialProperties" : "PropriÊtÊs spatiales",
- "spatial.width" : "Largeur",
- "spatial.height" : "Hauteur",
- "spatial.depth" : "Profondeur",
- "spatial.gain" : "Gagner",
- "spatial.roomMaterials" : "MatÊriaux de la chambre",
- "spatial.roomDimensions" : "Dimensions de la chambre",
- "spatial.roomPositions" : "Positions de la chambre",
- "spatial.setDimensions" : "DÊfinir les cotes",
- "spatial.setPositions" : "DÊfinir les positions",
- "spatial.up" : "Haut",
- "spatial.front" : "Avant",
- "spatial.left" : "Gauche",
- "spatial.right" : "Droite",
- "spatial.back" : "Arrière",
- "spatial.down" : "Bas",
- "spatial.listener" : "Auditeur",
- "spatial.audioSource" : "Source audio",
-
- // Settings - Unfinished
- "settings.header.unfinished": "InachevÊe",
-
- // Web Remote
- "remote.web.title": "Cider Remote",
- "remote.web.description": "Scannez le code QR pour coupler votre tÊlÊphone avec cette instance Cider",
-
- // About
- "about.thanks": "Un grand merci à l'Êquipe de Cider Collective et à tous nos contributeurs."
+{
+ "i18n.languageName": "Français (CA)",
+ "i18n.languageNameEnglish": "French (CA)",
+ "i18n.category": "main",
+ "i18n.authors": "brock#7527",
+ "app.name": "Cider",
+ "date.format": "${m} ${d}, ${y}",
+ "dialog.cancel": "Annuler",
+ "dialog.ok": "D'accord",
+ "notification.updatingLibrarySongs": "RafraÃŽchir des chansons...",
+ "notification.updatingLibraryAlbums": "RafraÃŽchir des albums...",
+ "notification.updatingLibraryArtists": "RafraÃŽchir des artistes...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "Savoir plus",
+ "term.accountSettings": "RÊglages du compte",
+ "term.logout": "Se dÊconnecter",
+ "term.login": "Se connecter",
+ "term.about": "Ã propos",
+ "term.privateSession": "Session en privÊe",
+ "term.queue": "Suivants",
+ "term.search": "Rechercher",
+ "term.library": "Bibliothèque",
+ "term.listenNow": "à Êcouter",
+ "term.browse": "Parcourir",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "AjoutÊ rÊcemment",
+ "term.songs": "Chansons",
+ "term.albums": "Albums",
+ "term.artists": "Artistes",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Listes de lecture",
+ "term.playlist": "Liste de lecture",
+ "term.play": "Ãcouter",
+ "term.pause": "Pause",
+ "term.previous": "Retour",
+ "term.next": "Suivant",
+ "term.shuffle": "Lecture alÊatoire",
+ "term.repeat": "RÊpÊter",
+ "term.volume": "Volume",
+ "term.mute": "Assourde",
+ "term.unmute": "RÊactiver",
+ "term.share": "Partager",
+ "term.settings": "RÊglages",
+ "term.seeAll": "Voix tous",
+ "term.sortBy": "Sorter par",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artiste",
+ "term.sortBy.name": "Nom",
+ "term.sortBy.genre": "Genre",
+ "term.sortBy.releaseDate": "Date de sortie",
+ "term.sortBy.duration": "Duration",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascender",
+ "term.sortOrder.descending": "Descender",
+ "term.viewAs": "Voix comme",
+ "term.viewAs.coverArt": "Art de couverture",
+ "term.viewAs.list": "Liste",
+ "term.size": "Grandeur",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Compacte",
+ "term.enable": "Activer",
+ "term.disable": "DÊsactiver",
+ "term.enabled": "ActivÊe",
+ "term.disabled": "DÊsactivÊe",
+ "term.connect": "Connecter",
+ "term.connecting": "De liaison",
+ "term.disconnect": "DÊconnecter",
+ "term.authed": "Authed",
+ "term.confirm": "Confirmer ?",
+ "term.more": "De plus",
+ "term.less": "De moins",
+ "term.showMore": "Voir plus",
+ "term.showLess": "Voir moins",
+ "term.topSongs": "Meilleures chansons",
+ "term.latestReleases": "Nouvelles sorties",
+ "term.time.added": "AjoutÊ",
+ "term.time.released": "PubliÊ",
+ "term.time.updated": "Mis à jour",
+ "term.time.hours": "heures",
+ "term.time.hour": "heur",
+ "term.time.minutes": "minutes",
+ "term.time.minute": "minute",
+ "term.time.seconds": "secondes",
+ "term.time.second": "seconde",
+ "term.fullscreenView": "Vue plein Êcran",
+ "term.defaultView": "Vue par dÊfaut",
+ "term.spacializedAudioSetting": "RÊglage audio spacialisÊ",
+ "term.clearAll": "Tout effacer",
+ "term.recentStations": "Stations rÊcentes",
+ "term.language": "Langue",
+ "term.funLanguages": "Amusement",
+ "term.noLyrics": "Loading... / Paroles pas trouvÊ./ Instrumental.",
+ "term.copyright": "Droits d'auteur",
+ "term.rightsReserved": "Tous les droits sont rÊservÊs.",
+ "term.sponsor": "Parrainez ce projet",
+ "term.ciderTeam": "Team Cider",
+ "term.developer": "DÊveloppeur",
+ "term.socialTeam": "Ãquipe sociale",
+ "term.contributors": "Contributeurs",
+ "term.equalizer": "Ãgaliseur",
+ "term.reset": "RÊinitialiser",
+ "term.tracks": "chansons",
+ "term.videos": "VidÊos",
+ "term.menu": "Menu",
+ "action.showAlbum": "Afficher l'album complet",
+ "home.title": "Maison",
+ "home.recentlyPlayed": "JouÊ rÊcemment",
+ "home.recentlyAdded": "AjoutÊ rÊcemment",
+ "home.artistsFeed": "Votre flux d'artistes",
+ "home.artistsFeed.noArtist": "Suivez certains artistes en premier et leurs dernières sorties seront ici",
+ "home.madeForYou": "CreÊr pour toi",
+ "home.friendsListeningTo": "Amis Êcoutant",
+ "home.followedArtists": "Artistes suivis",
+ "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.",
+ "error.connectionError": "Un problème est survenu lors de la connexion à Apple Music.",
+ "error.noResults": "Pas de resultats.",
+ "error.noResults.description": "Essayez une nouvelle recherche.",
+ "podcast.followOnCider": "Suivez sur Cider",
+ "podcast.followedOnCider": "Suivi sur Cider",
+ "podcast.subscribeOnItunes": "S'abonner sur iTunes",
+ "podcast.subscribedOnItunes": "AbonnÊ sur iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Ãpisodes",
+ "podcast.playEpisode": "Lire l'Êpisode",
+ "podcast.website": "Site web du Podcast",
+ "action.addToLibrary": "Ajouter à biblio",
+ "action.addToLibrary.success": "AjoutÊ à biblio",
+ "action.addToLibrary.error": "Erreur lors de l'ajout à biblio",
+ "action.removeFromLibrary": "Enlever du biblio",
+ "action.removeFromLibrary.success": "EnlevÊ du biblio",
+ "action.addToQueue": "Ajouter à suivants",
+ "action.addToQueue.success": "AjoutÊ à suivants",
+ "action.addToQueue.error": "Erreur lors de l'ajout à suivants",
+ "action.removeFromQueue": "Enlever du suivants",
+ "action.removeFromQueue.success": "EnlevÊ du suivants",
+ "action.removeFromQueue.error": "Erreur lors d'enleve du suivants",
+ "action.addToPlaylist": "Ajoute à liste de lecture",
+ "action.removeFromPlaylist": "Enleve de liste de lecture",
+ "action.addToFavorites": "Ajoute à Favorites",
+ "action.follow": "Suivre",
+ "action.follow.success": "Suivi",
+ "action.follow.error": "Erreur a suivre",
+ "action.unfollow": "Arreter a suivi",
+ "action.unfollow.success": "Arreter a suivre",
+ "action.unfollow.error": "Erreur de arreter à suivre",
+ "action.playNext": "Jouer en prochaine",
+ "action.playLater": "Jouer plus tard",
+ "action.startRadio": "Commencer la radio",
+ "action.goToArtist": "Aller à l'artiste",
+ "action.goToAlbum": "Aller à l'album",
+ "action.moveToTop": "DÊplacer vers le haut",
+ "action.share": "Partager",
+ "action.rename": "Renommer",
+ "action.love": "J'adore",
+ "action.unlove": "Je n'adore plus",
+ "action.dislike": "Moins de suggestions similaires",
+ "action.undoDislike": "Annuler le choix Moins de suggestions de ce type",
+ "action.showWebRemoteQR": "Demontrer la Web Remote QR",
+ "action.playTracksNext": "Joue ${app.selectedMediaItems.length} chansons en prochain",
+ "action.playTracksLater": "Joue ${app.selectedMediaItems.length} chansons plus tard",
+ "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
+ "action.import": "Importer",
+ "action.export": "Exporter",
+ "settings.header.general": "RÊglages gÊnÊraux",
+ "settings.header.general.description": "RÊglez les rÊglages gÊnÊraux de Cider.",
+ "settings.option.general.language": "Langue",
+ "settings.option.general.language.main": "Langue",
+ "settings.option.general.language.fun": "Langues amusantes",
+ "settings.option.general.language.unsorted": "Non triÊ",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "RÊglez les rÊglages audio de Cider.",
+ "settings.option.audio.quality": "QualitÊ audio",
+ "settings.header.audio.quality.high": "Haut",
+ "settings.header.audio.quality.low": "Bas",
+ "settings.header.audio.quality.auto": "Auto",
+ "settings.option.audio.seamlessTransition": "Transition audio fluide",
+ "settings.option.audio.enableAdvancedFunctionality": "Activer la fonctionnalitÊ avancÊe",
+ "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permettra des fonctionnalitÊs audio Êtendues telles que la normalisation audio, les Êgaliseurs et les visualiseurs, mais sur certains systèmes, cela peut provoquer des saccades dans les chansons audio.",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation audio",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)",
+ "settings.header.visual": "Visuel",
+ "settings.header.visual.description": "Ajustez les rÊglages visuels de Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la window",
+ "settings.header.visual.windowBackgroundStyle.none": "Rien",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Ouvrages d'art",
+ "settings.header.visual.windowBackgroundStyle.image": "Image",
+ "settings.option.visual.animatedArtwork": "Oeuvre animÊe",
+ "settings.header.visual.animatedArtwork.always": "Toujours",
+ "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales",
+ "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout",
+ "settings.option.visual.animatedArtworkQuality": "QualitÊ des illustrations animÊes",
+ "settings.header.visual.animatedArtworkQuality.low": "Bas",
+ "settings.header.visual.animatedArtworkQuality.medium": "Moyen",
+ "settings.header.visual.animatedArtworkQuality.high": "Haut",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Très haut",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme",
+ "settings.option.visual.animatedWindowBackground": "Fond de window animÊ",
+ "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle",
+ "settings.option.visual.hardwareAcceleration.description": "NÊcessite une relance",
+ "settings.header.visual.hardwareAcceleration.default": "DÊfaut",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.option.visual.showPersonalInfo": "Afficher les informations personnelles",
+ "settings.header.lyrics": "Paroles",
+ "settings.header.lyrics.description": "Ajustez les rÊglages des paroles de Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Activer les paroles de Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch uniquement)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Traduction Musixmatch langue prÊfÊrÊe",
+ "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles Youtube pour les clips vidÊo",
+ "settings.header.connectivity": "ConnectivitÊ",
+ "settings.header.connectivity.description": "Ajustez les rÊglages de connectivitÊ pour Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Riche PrÊsence",
+ "settings.option.connectivity.playbackNotifications": "Notifications de lecture",
+ "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Effacer la Discord Riche PrÊsence en pause",
+ "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM",
+ "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de scrobble LastFM (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer LastFM en jouer maitenant",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer la chanson en boucle (LastFM)",
+ "settings.header.experimental": "ExpÊrimental",
+ "settings.header.experimental.description": "Ajustez les rÊglages expÊrimentaux pour Cider.",
+ "settings.option.experimental.compactUI": "UI Compact",
+ "settings.option.experimental.closeButtonBehaviour": "Comportement du bouton de fermeture",
+ "settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider",
+ "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "RÊduire à la barre des tÃĸches",
+ "settings.option.experimental.closeButtonBehaviour.minimizeTray": "RÊduire dans le bac",
+ "spatial.spatialProperties": "PropriÊtÊs spatiales",
+ "spatial.width": "Largeur",
+ "spatial.height": "Hauteur",
+ "spatial.depth": "Profondeur",
+ "spatial.gain": "Gagner",
+ "spatial.roomMaterials": "MatÊriaux de la chambre",
+ "spatial.roomDimensions": "Dimensions de la chambre",
+ "spatial.roomPositions": "Positions de la chambre",
+ "spatial.setDimensions": "DÊfinir les cotes",
+ "spatial.setPositions": "DÊfinir les positions",
+ "spatial.up": "Haut",
+ "spatial.front": "Avant",
+ "spatial.left": "Gauche",
+ "spatial.right": "Droite",
+ "spatial.back": "Arrière",
+ "spatial.down": "Bas",
+ "spatial.listener": "Auditeur",
+ "spatial.audioSource": "Source audio",
+ "settings.header.unfinished": "InachevÊe",
+ "remote.web.title": "Cider Remote",
+ "remote.web.description": "Scannez le code QR pour coupler votre tÊlÊphone avec cette instance Cider",
+ "about.thanks": "Un grand merci à l'Êquipe de Cider Collective et à tous nos contributeurs."
}
\ No newline at end of file
diff --git a/src/i18n/fr_FR.json b/src/i18n/fr_FR.json
new file mode 100644
index 00000000..c54c3cce
--- /dev/null
+++ b/src/i18n/fr_FR.json
@@ -0,0 +1,301 @@
+{
+ "i18n.languageName": "Français",
+ "i18n.languageNameEnglish": "French",
+ "i18n.category": "main",
+ "i18n.authors": "@ErwanGit",
+ "app.name": "Cider",
+ "date.format": "${d} ${m} ${y}",
+ "dialog.cancel": "Annuler",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...",
+ "notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...",
+ "notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "En savoir plus",
+ "term.accountSettings": "Paramètres du compte",
+ "term.logout": "DÊconnexion",
+ "term.login": "Connexion",
+ "term.about": "Ã propos",
+ "term.privateSession": "Session privÊe",
+ "term.queue": "File d'attente",
+ "term.history": "Historique",
+ "term.search": "Recherche",
+ "term.library": "Bibliothèque",
+ "term.listenNow": "Ãcoutez maintenant",
+ "term.browse": "Explorer",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "AjoutÊ rÊcemment",
+ "term.songs": "Musiques",
+ "term.albums": "Albums",
+ "term.artists": "Artistes",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Playlists",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "Nouvelle Playlist",
+ "term.newPlaylistFolder": "Nouveau dossier de playlist",
+ "term.createNewPlaylist": "CrÊer une nouvelle playlist",
+ "term.createNewPlaylistFolder": "Create New Playlist Folder",
+ "term.deletePlaylist": "Ãtes-vous sÃģr de vouloir supprimer cette playlist ?",
+ "term.play": "Lecture",
+ "term.pause": "Pause",
+ "term.previous": "PrÊcÊdent",
+ "term.next": "Suivant",
+ "term.shuffle": "AlÊatoire",
+ "term.repeat": "RÊpÊter",
+ "term.volume": "Volume",
+ "term.mute": "Rendre muet",
+ "term.unmute": "Ne plus rendre muet",
+ "term.share": "Partager",
+ "term.settings": "Paramètres",
+ "term.share.success": "CopiÊ dans le presse-papier",
+ "term.seeAll": "Voir tout",
+ "term.sortBy": "Trier par",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artiste",
+ "term.sortBy.name": "Nom",
+ "term.sortBy.genre": "Genre",
+ "term.sortBy.releaseDate": "Date de sortie",
+ "term.sortBy.duration": "DurÊe",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascendant",
+ "term.sortOrder.descending": "Descendant",
+ "term.viewAs": "Voir comme",
+ "term.viewAs.coverArt": "Pochette d'album",
+ "term.viewAs.list": "Liste",
+ "term.size": "Taille",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Compacte",
+ "term.enable": "Activer",
+ "term.disable": "DÊsactiver",
+ "term.enabled": "ActivÊ",
+ "term.disabled": "DÊsactivÊ",
+ "term.connect": "Connecter",
+ "term.connecting": "Connexion",
+ "term.disconnect": "DÊconnexion",
+ "term.authed": "AuthentifiÊ",
+ "term.confirm": "Confirmer ?",
+ "term.more": "Plus",
+ "term.less": "Moins",
+ "term.showMore": "Afficher plus",
+ "term.showLess": "Afficher moins",
+ "term.topSongs": "Meilleurs titres",
+ "term.latestReleases": "Dernières sorties",
+ "term.time.added": "AjoutÊ",
+ "term.time.released": "PubliÊ",
+ "term.time.updated": "Mis à jour",
+ "term.time.hours": "heures",
+ "term.time.hour": "heure",
+ "term.time.minutes": "minutes",
+ "term.time.minute": "minute",
+ "term.time.seconds": "secondes",
+ "term.time.second": "seconde",
+ "term.fullscreenView": "Vue plein Êcran",
+ "term.defaultView": "Vue par dÊfaut",
+ "term.spacializedAudioSetting": "Paramètres audio spatialisÊs",
+ "term.clearAll": "Tout effacer",
+ "term.recentStations": "Stations rÊcentes",
+ "term.language": "Langue",
+ "term.funLanguages": "Amusant",
+ "term.noLyrics": "Chargement... / Paroles non trouvÊ./ Instrumental.",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "Tous droits rÊservÊs.",
+ "term.sponsor": "Soutenez ce projet",
+ "term.ciderTeam": "Ãquipe Cider",
+ "term.developer": "DÊveloppeur",
+ "term.socialTeam": "Ãquipe de communication",
+ "term.socials": "RÊseaux sociaux",
+ "term.contributors": "Contributeurs",
+ "term.equalizer": "Ãgaliseur",
+ "term.reset": "RÊinitialiser",
+ "term.tracks": "musiques",
+ "term.videos": "VidÊos",
+ "term.menu": "Menu",
+ "term.check": "VÊrifier",
+ "term.aboutArtist": "Ã propos de {{artistName}}",
+ "term.topResult": "Meilleurs rÊsultats",
+ "term.sharedPlaylists": "Playlists partagÊes",
+ "term.people": "Personnes",
+ "term.newpreset.name": "Nouveau nom du prÊrÊglage de l'Êgaliseur",
+ "term.addedpreset": "Ajout d'un prÊrÊglage",
+ "term.deletepreset.warn": "Ãtes-vous sÃģr de vouloir supprimer ce prÊrÊglage ?",
+ "term.deletedpreset": "Suppression d'un prÊrÊglage",
+ "term.musicVideos": "VidÊos musicales",
+ "term.stations": "Stations",
+ "term.curators": "Curateurs",
+ "term.appleCurators": "Curateurs Apple",
+ "term.radioShows": "Ãmissions de radio",
+ "term.recordLabels": "Labels de disques",
+ "term.videoExtras": "VidÊos bonus",
+ "term.top": "Top",
+ "home.title": "Accueil",
+ "home.recentlyPlayed": "JouÊ rÊcemment",
+ "home.recentlyAdded": "RÊcemment ajoutÊ",
+ "home.artistsFeed": "Votre file d'artistes",
+ "home.artistsFeed.noArtist": "Suivez d'abord certains artistes et leurs dernières sorties seront ici",
+ "home.madeForYou": "Fait pour vous",
+ "home.friendsListeningTo": "Vos amis Êcoutent",
+ "home.followedArtists": "Artistes suivis",
+ "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.",
+ "error.connectionError": "Il y a eu un problème de connexion à Apple Music.",
+ "error.noResults": "Aucun rÊsultat.",
+ "error.noResults.description": "Essayez une nouvelle recherche.",
+ "podcast.followOnCider": "Suivre sur Cider",
+ "podcast.followedOnCider": "Suivi sur Cider",
+ "podcast.subscribeOnItunes": "Suivre sur iTunes",
+ "podcast.subscribedOnItunes": "Suivi sur iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Ãpisodes",
+ "podcast.playEpisode": "Lire l'Êpisode",
+ "podcast.website": "Site du podcast",
+ "action.addToLibrary": "Ajouter à la bibliothèque",
+ "action.addToLibrary.success": "AjoutÊ à la bibliothèque",
+ "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque",
+ "action.removeFromLibrary": "Retirer de la bibliothèque",
+ "action.removeFromLibrary.success": "RetirÊ de la bibliothèque",
+ "action.addToQueue": "Ajouter à la file d'attente",
+ "action.addToQueue.success": "AjoutÊ à la file d'attente",
+ "action.addToQueue.error": "Erreur lors de l'ajout à la file d'attente",
+ "action.removeFromQueue": "Retirer de la file d'attente",
+ "action.removeFromQueue.success": "RetirÊ de la file d'attente",
+ "action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente",
+ "action.createPlaylist": "CrÊer une nouvelle playlist",
+ "action.addToPlaylist": "Ajouter à une playlist",
+ "action.removeFromPlaylist": "Retirer de la playlist",
+ "action.addToFavorites": "Ajouter aux favoris",
+ "action.follow": "Suivre",
+ "action.follow.success": "Suivi",
+ "action.follow.error": "Erreur lors de l'abonnement",
+ "action.unfollow": "Se dÊsabonner",
+ "action.unfollow.success": "DÊsabonnÊ",
+ "action.unfollow.error": "Erreur lors du dÊsabonnement",
+ "action.playNext": "Jouer après",
+ "action.playLater": "Jouer plus tard",
+ "action.startRadio": "Lancer la radio",
+ "action.goToArtist": "Aller à l'artiste",
+ "action.goToAlbum": "Aller à l'album",
+ "action.moveToTop": "Haut de page",
+ "action.share": "Partager",
+ "action.rename": "Renommer",
+ "action.love": "Aimer",
+ "action.unlove": "Ne plus aimer",
+ "action.dislike": "Je n'aime pas",
+ "action.undoDislike": "Je n'aime plus",
+ "action.showWebRemoteQR": "Afficher le QR Code de la tÊlÊcommande à distance",
+ "action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après",
+ "action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard",
+ "action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente",
+ "action.import": "Importer",
+ "action.export": "Exporter",
+ "action.showAlbum": "Afficher l'album complet",
+ "action.tray.minimize": "RÊduire dans la barre d'outils",
+ "action.tray.quit": "Quitter",
+ "action.tray.show": "Afficher",
+ "action.update": "Mettre à jour",
+ "action.copy": "Copier",
+ "action.newpreset": "Nouveau prÊrÊglage...",
+ "action.deletepreset": "Supprimer le prÊrÊglage",
+ "settings.header.general": "GÊnÊral",
+ "settings.header.general.description": "Ajuster les paramètres gÊnÊraux de Cider.",
+ "settings.option.general.language": "Langue",
+ "settings.option.general.language.main": "Langues",
+ "settings.option.general.language.fun": "Langues amusantes",
+ "settings.option.general.language.unsorted": "Non triÊ",
+ "settings.option.general.updateCider": "Mettre à jour Cider",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "Ajuster les paramètres audio de Cider.",
+ "settings.option.audio.quality": "QualitÊ Audio",
+ "settings.header.audio.quality.hireslossless": "Lossless haute qualitÊ (Hi-Res)",
+ "settings.header.audio.quality.hireslossless.description": "(jusqu'Ã 24 bits/192 kHz)",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "(jusqu'Ã 24 bits/48 kHz)",
+ "settings.header.audio.quality.enhanced": "AmÊliorÊ",
+ "settings.header.audio.quality.high": "ÃlevÊe",
+ "settings.header.audio.quality.low": "Faible",
+ "settings.header.audio.quality.auto": "Automatique",
+ "settings.option.audio.seamlessTransition": "Fondu audio transparent",
+ "settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancÊes",
+ "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permet d'utiliser des fonctions audio Êtendues telles que la normalisation du son, les Êgaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bÊgaiements dans les pistes audio.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualitÊ.",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)",
+ "settings.header.visual": "Visuel",
+ "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenÃĒtre",
+ "settings.header.visual.windowBackgroundStyle.none": "Aucun",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album",
+ "settings.header.visual.windowBackgroundStyle.image": "Image",
+ "settings.option.visual.animatedArtwork": "Pochette d'album animÊe",
+ "settings.header.visual.animatedArtwork.always": "Toujours",
+ "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales",
+ "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout",
+ "settings.option.visual.animatedArtworkQuality": "QualitÊ de la pochette d'album animÊe",
+ "settings.header.visual.animatedArtworkQuality.low": "Faible",
+ "settings.header.visual.animatedArtworkQuality.medium": "Moyen",
+ "settings.header.visual.animatedArtworkQuality.high": "ÃlevÊe",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Très ÊlevÊe",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme",
+ "settings.option.visual.animatedWindowBackground": "Arrière-plan de fenÃĒtre animÊ",
+ "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle",
+ "settings.option.visual.hardwareAcceleration.description": "NÊcessite un relancement",
+ "settings.header.visual.hardwareAcceleration.default": "DÊfaut",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Thème",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Sombre",
+ "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles",
+ "settings.header.lyrics": "Paroles",
+ "settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch seulement)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Langue prÊfÊrÊe pour les traductions Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidÊos de musique",
+ "settings.header.connectivity": "ConnectivitÊ",
+ "settings.header.connectivity.description": "Ajuster les paramètres de connectivitÊ de Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Notifications de lecture",
+ "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "DÊsactiver le Discord Rich Presence quand la musique est en pause",
+ "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM",
+ "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de Scrobble LastFM (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer la lecture en cours sur LastFM",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer les titres en boucle (LastFM)",
+ "settings.header.experimental": "ExpÊrimental",
+ "settings.header.experimental.description": "Ajuster les paramètres expÊrimentaux de Cider.",
+ "settings.option.experimental.compactUI": "Interface utilisateur compacte",
+ "settings.option.window.close_button_hide": "Le bouton de fermeture doit masquer l'application",
+ "settings.option.experimental.copy_log": "Copier les logs dans le presse-papier",
+ "settings.option.experimental.inline_playlists": "Playlists et albums en ligne",
+ "spatial.notTurnedOn": "La spatialisation audio est dÊsactivÊe. Pour l'utiliser, vous devez d'abord l'activer.",
+ "spatial.spatialProperties": "PropriÊtÊs spatiales",
+ "spatial.width": "Largeur",
+ "spatial.height": "Hauteur",
+ "spatial.depth": "Profondeur",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "MatÊriaux de la pièce",
+ "spatial.roomDimensions": "Dimensions de la pièce",
+ "spatial.roomPositions": "Positions de la pièce",
+ "spatial.setDimensions": "DÊfinir les dimensions",
+ "spatial.setPositions": "DÊfinir les positions",
+ "spatial.up": "Haut",
+ "spatial.front": "Avant",
+ "spatial.left": "Gauche",
+ "spatial.right": "Droite",
+ "spatial.back": "Retour",
+ "spatial.down": "Bas",
+ "spatial.listener": "Auditeur",
+ "spatial.audioSource": "Source Audio",
+ "settings.header.unfinished": "InachevÊe",
+ "remote.web.title": "Cider à distance",
+ "remote.web.description": "Scanner le QR code pour associer votre tÊlÊphone avec cette instance Cider",
+ "about.thanks": "Un grand merci à l'Êquipe de la Cider Collective et à tous nos contributeurs."
+}
\ No newline at end of file
diff --git a/src/i18n/fr_FR.jsonc b/src/i18n/fr_FR.jsonc
deleted file mode 100644
index cf05144b..00000000
--- a/src/i18n/fr_FR.jsonc
+++ /dev/null
@@ -1,349 +0,0 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "Français", // name of language in native language
- "i18n.languageNameEnglish": "French", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@ErwanGit", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
- "app.name": "Cider",
-
- "date.format": "${d} ${m} ${y}",
-
- // Dialogs
- "dialog.cancel": "Annuler",
- "dialog.ok": "OK",
-
- // Notification
- "notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...",
- "notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...",
- "notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...",
-
- // Terms
- "term.appleInc": "Apple Inc.",
- "term.appleMusic": "Apple Music",
- "term.applePodcasts": "Apple Podcasts",
- "term.itunes": "iTunes",
- "term.github": "GitHub",
- "term.discord": "Discord",
- "term.learnMore": "En savoir plus",
- "term.accountSettings": "Paramètres du compte",
- "term.logout": "DÊconnexion",
- "term.login": "Connexion",
- "term.about": "Ã propos",
- "term.privateSession": "Session privÊe",
- "term.queue": "File d'attente",
- "term.history": "Historique",
- "term.search": "Recherche",
- "term.library": "Bibliothèque",
- "term.listenNow": "Ãcoutez maintenant",
- "term.browse": "Explorer",
- "term.radio": "Radio",
- "term.recentlyAdded": "AjoutÊ rÊcemment",
- "term.songs": "Musiques",
- "term.albums": "Albums",
- "term.artists": "Artistes",
- "term.podcasts": "Podcasts",
- "term.playlists": "Playlists",
- "term.playlist": "Playlist",
- "term.newPlaylist": "Nouvelle Playlist",
- "term.newPlaylistFolder": "Nouveau dossier de playlist",
- "term.createNewPlaylist": "CrÊer une nouvelle playlist",
- "term.createNewPlaylistFolder": "Create New Playlist Folder",
- "term.deletePlaylist": "Ãtes-vous sÃģr de vouloir supprimer cette playlist ?",
- "term.play": "Lecture",
- "term.pause": "Pause",
- "term.previous": "PrÊcÊdent",
- "term.next": "Suivant",
- "term.shuffle": "AlÊatoire",
- "term.repeat": "RÊpÊter",
- "term.volume": "Volume",
- "term.mute": "Rendre muet",
- "term.unmute": "Ne plus rendre muet",
- "term.share": "Partager",
- "term.settings": "Paramètres",
- "term.share.success": "CopiÊ dans le presse-papier",
- "term.seeAll": "Voir tout",
- "term.sortBy": "Trier par",
- "term.sortBy.album": "Album",
- "term.sortBy.artist": "Artiste",
- "term.sortBy.name": "Nom",
- "term.sortBy.genre": "Genre",
- "term.sortBy.releaseDate": "Date de sortie",
- "term.sortBy.duration": "DurÊe",
- "term.sortOrder": "A-Z",
- "term.sortOrder.ascending": "Ascendant",
- "term.sortOrder.descending": "Descendant",
- "term.viewAs": "Voir comme",
- "term.viewAs.coverArt": "Pochette d'album",
- "term.viewAs.list": "Liste",
- "term.size": "Taille",
- "term.size.normal": "Normal",
- "term.size.compact": "Compacte",
- "term.enable": "Activer",
- "term.disable": "DÊsactiver",
- "term.enabled": "ActivÊ",
- "term.disabled": "DÊsactivÊ",
- "term.connect": "Connecter",
- "term.connecting": "Connexion",
- "term.disconnect": "DÊconnexion",
- "term.authed": "AuthentifiÊ",
- "term.confirm": "Confirmer ?",
- "term.more": "Plus",
- "term.less": "Moins",
- "term.showMore": "Afficher plus",
- "term.showLess": "Afficher moins",
- "term.topSongs": "Meilleurs titres",
- "term.latestReleases": "Dernières sorties",
- "term.time.added": "AjoutÊ",
- "term.time.released": "PubliÊ",
- "term.time.updated": "Mis à jour",
- "term.time.hours": "heures",
- "term.time.hour": "heure",
- "term.time.minutes": "minutes",
- "term.time.minute": "minute",
- "term.time.seconds": "secondes",
- "term.time.second": "seconde",
- "term.fullscreenView": "Vue plein Êcran",
- "term.defaultView": "Vue par dÊfaut",
- "term.spacializedAudioSetting": "Paramètres audio spatialisÊs",
- "term.clearAll": "Tout effacer",
- "term.recentStations": "Stations rÊcentes",
- "term.language": "Langue",
- "term.funLanguages": "Amusant",
- "term.noLyrics": "Chargement... / Paroles non trouvÊ./ Instrumental.",
- "term.copyright": "Copyright",
- "term.rightsReserved": "Tous droits rÊservÊs.",
- "term.sponsor": "Soutenez ce projet",
- "term.ciderTeam": "Ãquipe Cider",
- "term.developer": "DÊveloppeur",
- "term.socialTeam": "Ãquipe de communication",
- "term.socials": "RÊseaux sociaux",
- "term.contributors": "Contributeurs",
- "term.equalizer": "Ãgaliseur",
- "term.reset": "RÊinitialiser",
- "term.tracks": "musiques", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "VidÊos",
- "term.menu": "Menu",
- "term.check": "VÊrifier",
- "term.aboutArtist": "Ã propos de {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "Meilleurs rÊsultats", // Search Results
- "term.sharedPlaylists": "Playlists partagÊes", // Search Results
- "term.people": "Personnes", // Search Results
- "term.newpreset.name": "Nouveau nom du prÊrÊglage de l'Êgaliseur", // Equalizer Preset
- "term.addedpreset": "Ajout d'un prÊrÊglage",
- "term.deletepreset.warn": "Ãtes-vous sÃģr de vouloir supprimer ce prÊrÊglage ?",
- "term.deletedpreset": "Suppression d'un prÊrÊglage",
- "term.musicVideos": "VidÊos musicales", // Search page friendlyTypes
- "term.stations": "Stations",
- "term.curators": "Curateurs",
- "term.appleCurators": "Curateurs Apple",
- "term.radioShows": "Ãmissions de radio",
- "term.recordLabels": "Labels de disques",
- "term.videoExtras": "VidÊos bonus",
- "term.top": "Top",
-
- // Home
- "home.title": "Accueil",
- "home.recentlyPlayed": "JouÊ rÊcemment",
- "home.recentlyAdded": "RÊcemment ajoutÊ",
- "home.artistsFeed": "Votre file d'artistes",
- "home.artistsFeed.noArtist": "Suivez d'abord certains artistes et leurs dernières sorties seront ici",
- "home.madeForYou": "Fait pour vous",
- "home.friendsListeningTo": "Vos amis Êcoutent",
- "home.followedArtists": "Artistes suivis",
-
- // Errors
- "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.",
- "error.connectionError": "Il y a eu un problème de connexion à Apple Music.",
- "error.noResults": "Aucun rÊsultat.",
- "error.noResults.description": "Essayez une nouvelle recherche.",
-
- // Podcasts
- "podcast.followOnCider": "Suivre sur Cider",
- "podcast.followedOnCider": "Suivi sur Cider",
- "podcast.subscribeOnItunes": "Suivre sur iTunes",
- "podcast.subscribedOnItunes": "Suivi sur iTunes",
- "podcast.itunesStore": "iTunes Store",
- "podcast.episodes": "Ãpisodes",
- "podcast.playEpisode": "Lire l'Êpisode",
- "podcast.website": "Site du podcast",
-
- // Actions
- "action.addToLibrary": "Ajouter à la bibliothèque",
- "action.addToLibrary.success": "AjoutÊ à la bibliothèque",
- "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque",
- "action.removeFromLibrary": "Retirer de la bibliothèque",
- "action.removeFromLibrary.success": "RetirÊ de la bibliothèque",
- "action.addToQueue": "Ajouter à la file d'attente",
- "action.addToQueue.success": "AjoutÊ à la file d'attente",
- "action.addToQueue.error": "Erreur lors de l'ajout à la file d'attente",
- "action.removeFromQueue": "Retirer de la file d'attente",
- "action.removeFromQueue.success": "RetirÊ de la file d'attente",
- "action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente",
- "action.createPlaylist": "CrÊer une nouvelle playlist",
- "action.addToPlaylist": "Ajouter à une playlist",
- "action.removeFromPlaylist": "Retirer de la playlist",
- "action.addToFavorites": "Ajouter aux favoris",
- "action.follow": "Suivre",
- "action.follow.success": "Suivi",
- "action.follow.error": "Erreur lors de l'abonnement",
- "action.unfollow": "Se dÊsabonner",
- "action.unfollow.success": "DÊsabonnÊ",
- "action.unfollow.error": "Erreur lors du dÊsabonnement",
- "action.playNext": "Jouer après",
- "action.playLater": "Jouer plus tard",
- "action.startRadio": "Lancer la radio",
- "action.goToArtist": "Aller à l'artiste",
- "action.goToAlbum": "Aller à l'album",
- "action.moveToTop": "Haut de page",
- "action.share": "Partager",
- "action.rename": "Renommer",
- "action.love": "Aimer",
- "action.unlove": "Ne plus aimer",
- "action.dislike": "Je n'aime pas",
- "action.undoDislike": "Je n'aime plus",
- "action.showWebRemoteQR": "Afficher le QR Code de la tÊlÊcommande à distance",
- "action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après",
- "action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard",
- "action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente",
- "action.import": "Importer",
- "action.export": "Exporter",
- "action.showAlbum": "Afficher l'album complet",
- "action.tray.minimize": "RÊduire dans la barre d'outils",
- "action.tray.quit": "Quitter",
- "action.tray.show": "Afficher",
- "action.update": "Mettre à jour",
- "action.copy": "Copier",
- "action.newpreset": "Nouveau prÊrÊglage...", // Equalizer Preset
- "action.deletepreset": "Supprimer le prÊrÊglage",
-
- // Settings - General
- "settings.header.general": "GÊnÊral",
- "settings.header.general.description": "Ajuster les paramètres gÊnÊraux de Cider.",
- "settings.option.general.language": "Langue",
-
- // Language optgroups
- "settings.option.general.language.main": "Langues",
- "settings.option.general.language.fun": "Langues amusantes",
- "settings.option.general.language.unsorted": "Non triÊ",
-
- // Update Cider
- "settings.option.general.updateCider": "Mettre à jour Cider", // Button
-
- // Settings - Audio
- "settings.header.audio": "Audio",
- "settings.header.audio.description": "Ajuster les paramètres audio de Cider.",
- "settings.option.audio.quality": "QualitÊ Audio", // Dropdown
- "settings.header.audio.quality.hireslossless": "Lossless haute qualitÊ (Hi-Res)",
- "settings.header.audio.quality.hireslossless.description": "(jusqu'Ã 24 bits/192 kHz)",
- "settings.header.audio.quality.lossless": "Lossless",
- "settings.header.audio.quality.lossless.description": "(jusqu'Ã 24 bits/48 kHz)",
- "settings.header.audio.quality.enhanced": "AmÊliorÊ",
- "settings.header.audio.quality.high": "ÃlevÊe",
- "settings.header.audio.quality.low": "Faible",
- "settings.header.audio.quality.auto": "Automatique",
- "settings.option.audio.seamlessTransition": "Fondu audio transparent", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancÊes", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permet d'utiliser des fonctions audio Êtendues telles que la normalisation du son, les Êgaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bÊgaiements dans les pistes audio.",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualitÊ.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)",
-
- // Settings - Visual
- "settings.header.visual": "Visuel",
- "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.",
- "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenÃĒtre", // Toggle
- "settings.header.visual.windowBackgroundStyle.none": "Aucun",
- "settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album",
- "settings.header.visual.windowBackgroundStyle.image": "Image",
- "settings.option.visual.animatedArtwork": "Pochette d'album animÊe", // Dropdown
- "settings.header.visual.animatedArtwork.always": "Toujours",
- "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales",
- "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout",
- "settings.option.visual.animatedArtworkQuality": "QualitÊ de la pochette d'album animÊe", // Dropdown
- "settings.header.visual.animatedArtworkQuality.low": "Faible",
- "settings.header.visual.animatedArtworkQuality.medium": "Moyen",
- "settings.header.visual.animatedArtworkQuality.high": "ÃlevÊe",
- "settings.header.visual.animatedArtworkQuality.veryHigh": "Très ÊlevÊe",
- "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme",
- "settings.option.visual.animatedWindowBackground": "Arrière-plan de fenÃĒtre animÊ", // Toggle
- "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle", // Dropdown
- "settings.option.visual.hardwareAcceleration.description": "NÊcessite un relancement",
- "settings.header.visual.hardwareAcceleration.default": "DÊfaut",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- "settings.header.visual.theme": "Thème",
-
- // Settings - Visual - Theme name
- "settings.option.visual.theme.default": "Cider",
- "settings.option.visual.theme.dark": "Sombre",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", // Toggle
-
- // Settings - Lyrics
- "settings.header.lyrics": "Paroles",
- "settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.",
- "settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch seulement)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Langue prÊfÊrÊe pour les traductions Musixmatch", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidÊos de musique", // Toggle
-
- // Settings - Connectivity
- "settings.header.connectivity": "ConnectivitÊ",
- "settings.header.connectivity.description": "Ajuster les paramètres de connectivitÊ de Cider.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "DÊsactiver le Discord Rich Presence quand la musique est en pause", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de Scrobble LastFM (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer la lecture en cours sur LastFM",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer les titres en boucle (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
- "settings.header.experimental": "ExpÊrimental",
- "settings.header.experimental.description": "Ajuster les paramètres expÊrimentaux de Cider.",
- "settings.option.experimental.compactUI": "Interface utilisateur compacte", // Toggle
- "settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application",
- "settings.option.experimental.copy_log": "Copier les logs dans le presse-papier",
- "settings.option.experimental.inline_playlists": "Playlists et albums en ligne",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
- "spatial.notTurnedOn": "La spatialisation audio est dÊsactivÊe. Pour l'utiliser, vous devez d'abord l'activer.",
- "spatial.spatialProperties": "PropriÊtÊs spatiales",
- "spatial.width": "Largeur",
- "spatial.height": "Hauteur",
- "spatial.depth": "Profondeur",
- "spatial.gain": "Gain",
- "spatial.roomMaterials": "MatÊriaux de la pièce",
- "spatial.roomDimensions": "Dimensions de la pièce",
- "spatial.roomPositions": "Positions de la pièce",
- "spatial.setDimensions": "DÊfinir les dimensions",
- "spatial.setPositions": "DÊfinir les positions",
- "spatial.up": "Haut",
- "spatial.front": "Avant",
- "spatial.left": "Gauche",
- "spatial.right": "Droite",
- "spatial.back": "Retour",
- "spatial.down": "Bas",
- "spatial.listener": "Auditeur",
- "spatial.audioSource": "Source Audio",
-
- // Settings - Unfinished
- "settings.header.unfinished": "InachevÊe",
-
- // Web Remote
- "remote.web.title": "Cider à distance",
- "remote.web.description": "Scanner le QR code pour associer votre tÊlÊphone avec cette instance Cider",
-
- // About
- "about.thanks": "Un grand merci à l'Êquipe de la Cider Collective et à tous nos contributeurs."
-}
\ No newline at end of file
diff --git a/src/i18n/en_US.jsonc b/src/i18n/hi_IN.json
similarity index 68%
rename from src/i18n/en_US.jsonc
rename to src/i18n/hi_IN.json
index 2bce04b9..a0d77dde 100644
--- a/src/i18n/en_US.jsonc
+++ b/src/i18n/hi_IN.json
@@ -1,98 +1,88 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "English (US)", // name of language in native language
- "i18n.languageNameEnglish": "English (US)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "ā¤šā¤ŋ⤍āĨā¤ĻāĨ",
+ "i18n.languageNameEnglish": "Hindi",
+ "i18n.category": "main",
+ "i18n.authors": "@maikirakiwi @vringster",
"app.name": "Cider",
-
"date.format": "${m} ${d}, ${y}",
-
- // Dialogs
- "dialog.cancel": "Cancel",
- "dialog.ok": "OK",
-
- // Notification
- "notification.updatingLibrarySongs": "Updating library songs...",
- "notification.updatingLibraryAlbums": "Updating library albums...",
- "notification.updatingLibraryArtists": "Updating library artists...",
-
- // Terms
+ "dialog.cancel": "⤰āĨā¤āĨā¤",
+ "dialog.ok": "⤠āĨā¤ ā¤šāĨ",
+ "notification.updatingLibrarySongs": "ā¤
ā¤Ēā¤ĄāĨā¤ā¤ŋā¤ā¤ ā¤˛ā¤žā¤ā¤ŦāĨ⤰āĨ⤰āĨ ā¤āĨ ā¤ā¤žā¤¨āĨ...",
+ "notification.updatingLibraryAlbums": "ā¤
ā¤Ēā¤ĄāĨā¤ā¤ŋā¤ā¤ ā¤˛ā¤žā¤ā¤ŦāĨ⤰āĨ⤰āĨ ā¤āĨ ā¤ā¤˛āĨā¤Ŧā¤Ž...",
+ "notification.updatingLibraryArtists": "ā¤
ā¤Ēā¤ĄāĨā¤ā¤ŋā¤ā¤ ā¤˛ā¤žā¤ā¤ŦāĨ⤰āĨ⤰āĨ ā¤āĨ ā¤ā¤˛ā¤žā¤ā¤žā¤°...",
"term.appleInc": "Apple Inc.",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
"term.itunes": "iTunes",
"term.github": "GitHub",
"term.discord": "Discord",
- "term.learnMore": "Learn more",
- "term.accountSettings": "Account Settings",
- "term.logout": "Logout",
- "term.login": "Log In",
- "term.about": "About",
- "term.privateSession": "Private Session",
- "term.queue": "Queue",
- "term.history": "History",
- "term.search": "Search",
- "term.library": "Library",
- "term.listenNow": "Listen Now",
- "term.browse": "Browse",
- "term.radio": "Radio",
- "term.recentlyAdded": "Recently Added",
- "term.songs": "Songs",
- "term.albums": "Albums",
- "term.artists": "Artists",
- "term.podcasts": "Podcasts",
- "term.playlists": "Playlists",
- "term.playlist": "Playlist",
- "term.newPlaylist": "New Playlist",
- "term.newPlaylistFolder": "New Playlist Folder",
- "term.createNewPlaylist": "Create New Playlist",
- "term.createNewPlaylistFolder": "Create New Playlist Folder",
- "term.deletePlaylist": "Are you sure you want to delete this playlist?",
- "term.play": "Play",
- "term.pause": "Pause",
- "term.previous": "Previous",
- "term.next": "Next",
- "term.shuffle": "Shuffle",
- "term.repeat": "Repeat",
- "term.volume": "Volume",
- "term.mute": "Mute",
- "term.unmute": "Unmute",
- "term.share": "Share",
- "term.share.success": "Copied to clipboard",
- "term.settings": "Settings",
- "term.seeAll": "See All",
- "term.sortBy": "Sort By",
- "term.sortBy.album": "Album",
- "term.sortBy.artist": "Artist",
- "term.sortBy.name": "Name",
- "term.sortBy.genre": "Genre",
- "term.sortBy.releaseDate": "Release Date",
- "term.sortBy.duration": "Duration",
- "term.sortOrder": "A-Z",
- "term.sortOrder.ascending": "Ascending",
- "term.sortOrder.descending": "Descending",
- "term.viewAs": "View As",
- "term.viewAs.coverArt": "Cover Art",
- "term.viewAs.list": "List",
- "term.size": "Size",
- "term.size.normal": "Normal",
- "term.size.compact": "Compact",
- "term.enable": "Enable",
- "term.disable": "Disable",
- "term.enabled": "Enabled",
- "term.disabled": "Disabled",
- "term.connect": "Connect",
- "term.connecting": "Connecting",
- "term.disconnect": "Disconnect",
- "term.authed": "Authed",
- "term.confirm": "Confirm?",
- "term.more": "More",
- "term.less": "Less",
- "term.showMore": "Show more",
- "term.showLess": "Show less",
+ "term.learnMore": "ā¤ā¤° ā¤ā¤žā¤¨ā¤ŋā¤",
+ "term.accountSettings": "ā¤ā¤žā¤¤ā¤ž ⤏āĨā¤ā¤ŋā¤ā¤āĨ⤏",
+ "term.logout": "⤞āĨ⤠ā¤ā¤ā¤",
+ "term.login": "⤞āĨ⤠ā¤ā¤¨",
+ "term.about": "ā¤āĨ ā¤Ŧā¤žā¤°āĨ ā¤ŽāĨā¤",
+ "term.privateSession": "ā¤āĨā¤ĒāĨ⤤ ⤏āĨā¤ļ⤍",
+ "term.queue": "ā¤ā¤¤ā¤žā¤°",
+ "term.history": "ā¤šā¤ŋ⤏āĨā¤ā¤°āĨ",
+ "term.search": "ā¤āĨ⤠ā¤ā¤°āĨā¤",
+ "term.library": "ā¤˛ā¤žā¤ā¤ŦāĨ⤰āĨ⤰āĨ",
+ "term.listenNow": "ā¤
ā¤āĨ ⤏āĨ⤍ā¤ŋ⤝āĨā¤",
+ "term.browse": "ā¤ŦāĨā¤°ā¤žā¤ā¤ā¤ŧ",
+ "term.radio": "⤰āĨā¤Ąā¤ŋ⤝āĨ",
+ "term.recentlyAdded": "ā¤šā¤žā¤˛ ā¤šāĨ ā¤ŽāĨ⤠ā¤āĨāĨāĨā¤ ā¤šāĨā¤",
+ "term.songs": "ā¤ā¤žā¤¨āĨ",
+ "term.albums": "ā¤ā¤˛āĨā¤Ŧā¤Ž",
+ "term.artists": "ā¤ā¤˛ā¤žā¤ā¤žā¤°",
+ "term.podcasts": "ā¤ĒāĨā¤Ąā¤ā¤žā¤¸āĨā¤ā¤¸",
+ "term.playlists": "ā¤ĒāĨ⤞āĨ⤞ā¤ŋ⤏āĨā¤āĨ⤏",
+ "term.playlist": "ā¤ĒāĨ⤞āĨ⤞ā¤ŋ⤏āĨā¤",
+ "term.newPlaylist": "⤍⤠ā¤ĒāĨ⤞āĨ⤞ā¤ŋ⤏āĨā¤āĨ⤏",
+ "term.newPlaylistFolder": "⤍⤠ā¤ĒāĨ⤞āĨ⤞ā¤ŋ⤏āĨā¤āĨ⤏ ā¤Ģā¤ŧāĨ⤞āĨā¤Ąā¤°",
+ "term.createNewPlaylist": "⤍⤠ā¤ĒāĨ⤞āĨ⤞ā¤ŋ⤏āĨā¤āĨ⤏ ā¤Ŧā¤¨ā¤žā¤ā¤",
+ "term.createNewPlaylistFolder": "⤍⤠ā¤ĒāĨ⤞āĨ⤞ā¤ŋ⤏āĨā¤āĨ⤏ ā¤Ģā¤ŧāĨ⤞āĨā¤Ąā¤° ā¤Ŧā¤¨ā¤žā¤ā¤",
+ "term.deletePlaylist": "ā¤āĨā¤¯ā¤ž ā¤ā¤Ē ā¤ĩā¤žā¤ā¤ ā¤ā¤¸ ā¤ĒāĨ⤞āĨ⤞ā¤ŋ⤏āĨ⤠ā¤āĨ ā¤šā¤ā¤žā¤¨ā¤ž ā¤ā¤žā¤šā¤¤āĨ ā¤šāĨā¤",
+ "term.play": "ā¤ĒāĨ⤞āĨ",
+ "term.pause": "ā¤ ā¤šā¤°ā¤žā¤ĩ",
+ "term.previous": "ā¤Ēā¤ŋā¤ā¤˛āĨ",
+ "term.next": "ā¤
ā¤ā¤˛āĨ",
+ "term.shuffle": "ā¤ļā¤Ģ⤞",
+ "term.repeat": "⤰ā¤ŋā¤ĒāĨā¤",
+ "term.volume": "ā¤ĩāĨ⤞āĨ⤝āĨā¤Ž",
+ "term.mute": "ā¤ŽāĨ⤝āĨā¤",
+ "term.unmute": "ā¤
ā¤¨ā¤ŽāĨ⤝āĨā¤",
+ "term.share": "ā¤ļāĨ⤝⤰",
+ "term.share.success": "ā¤āĨ⤞ā¤ŋā¤Ēā¤ŦāĨ⤰āĨā¤Ą ā¤ŽāĨ⤠ā¤āĨā¤ĒāĨā¤Ą",
+ "term.settings": "⤏āĨā¤ā¤ŋā¤ā¤āĨ⤏",
+ "term.seeAll": "⤏ā¤āĨ ā¤ĻāĨā¤āĨā¤",
+ "term.sortBy": "⤏āĨ⤰āĨ⤠ā¤Ŧā¤žā¤¯āĨ",
+ "term.sortBy.album": "ā¤ā¤˛āĨā¤Ŧā¤Ž",
+ "term.sortBy.artist": "ā¤ā¤˛ā¤žā¤ā¤žā¤°",
+ "term.sortBy.name": "ā¤¨ā¤žā¤Ž",
+ "term.sortBy.genre": "ā¤ļāĨ⤞āĨ",
+ "term.sortBy.releaseDate": "⤰ā¤ŋ⤞āĨā¤ā¤ŧ ā¤āĨ ā¤¤ā¤žā¤°āĨā¤",
+ "term.sortBy.duration": "⤞ā¤ā¤Ŧā¤žā¤",
+ "term.sortOrder": "ā¤-āĨāĨ",
+ "term.sortOrder.ascending": "ā¤
⤏āĨā¤ā¤Ąā¤ŋā¤ā¤",
+ "term.sortOrder.descending": "ā¤Ąā¤ŋ⤏āĨā¤ā¤Ąā¤ŋā¤ā¤",
+ "term.viewAs": "ā¤ĩā¤ŋ⤝āĨ ā¤ā¤¸",
+ "term.viewAs.coverArt": "ā¤ā¤ĩ⤰ ā¤ā¤°āĨā¤",
+ "term.viewAs.list": "⤏āĨā¤āĨ",
+ "term.size": "ā¤¸ā¤žā¤āĨ",
+ "term.size.normal": "ā¤¸ā¤žā¤§ā¤žā¤°ā¤Ŗ",
+ "term.size.compact": "ā¤Ēā¤ŋā¤ā¤ā¤ž ā¤šāĨā¤",
+ "term.enable": "ā¤āĨ⤞āĨā¤",
+ "term.disable": "ā¤Ŧā¤ā¤Ļ",
+ "term.enabled": "ā¤āĨā¤˛ā¤ž ā¤šāĨā¤",
+ "term.disabled": "ā¤Ŧā¤ā¤Ļ ā¤šāĨā¤ ā¤šāĨā¤",
+ "term.connect": "ā¤ā¤¨āĨā¤āĨā¤",
+ "term.connecting": "ā¤ā¤¨āĨā¤āĨā¤ā¤ŋā¤ā¤",
+ "term.disconnect": "ā¤Ąā¤ŋ⤏ā¤ā¤¨āĨā¤āĨā¤",
+ "term.authed": "ā¤ĒāĨā¤°ā¤Žā¤žā¤Ŗā¤ŋ⤤",
+ "term.confirm": "ā¤Ēā¤āĨā¤ā¤ž?",
+ "term.more": "āĨāĨā¤¯ā¤žā¤Ļā¤ž",
+ "term.less": "ā¤ā¤Ž",
+ "term.showMore": "ā¤Ļā¤ŋā¤ā¤žā¤ā¤ āĨāĨā¤¯ā¤žā¤Ļā¤ž",
+ "term.showLess": "ā¤Ļā¤ŋā¤ā¤žā¤ā¤ ā¤ā¤Ž",
"term.topSongs": "Top Songs",
"term.latestReleases": "Latest Releases",
"term.time.added": "Added",
@@ -122,19 +112,19 @@
"term.contributors": "Contributors",
"term.equalizer": "Equalizer",
"term.reset": "Reset",
- "term.tracks": "tracks", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "tracks",
"term.videos": "Videos",
"term.menu": "Menu",
"term.check": "Check",
- "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "Top Result", // Search Results
- "term.sharedPlaylists": "Shared Playlists", // Search Results
- "term.people": "People", // Search Results
- "term.newpreset.name": "New EQ Preset Name", // Equalizer Preset
+ "term.aboutArtist": "About {{artistName}}",
+ "term.topResult": "Top Result",
+ "term.sharedPlaylists": "Shared Playlists",
+ "term.people": "People",
+ "term.newpreset.name": "⤍⤠EQ Preset Name",
"term.addedpreset": "Added Preset",
"term.deletepreset.warn": "Are you sure you want to delete this preset?",
"term.deletedpreset": "Removed preset",
- "term.musicVideos": "Music Videos", // Search page friendlyTypes
+ "term.musicVideos": "Music Videos",
"term.stations": "Stations",
"term.curators": "Curators",
"term.appleCurators": "Apple Curators",
@@ -142,8 +132,6 @@
"term.recordLabels": "Record Labels",
"term.videoExtras": "Video Extras",
"term.top": "Top",
-
- // Home
"home.title": "Home",
"home.recentlyPlayed": "Recently Played",
"home.recentlyAdded": "Recently Added",
@@ -152,14 +140,10 @@
"home.madeForYou": "Made For You",
"home.friendsListeningTo": "Friends Listening To",
"home.followedArtists": "Followed Artists",
-
- // Errors
"error.appleMusicSubRequired": "Apple Music requires a subscription.",
"error.connectionError": "There was a problem connecting to Apple Music.",
"error.noResults": "No Results.",
- "error.noResults.description": "Try a new search.",
-
- // Podcasts
+ "error.noResults.description": "Try a ⤍⤠search.",
"podcast.followOnCider": "Follow On Cider",
"podcast.followedOnCider": "Following On Cider",
"podcast.subscribeOnItunes": "Subscribe On iTunes",
@@ -168,8 +152,6 @@
"podcast.episodes": "Episodes",
"podcast.playEpisode": "Play Episode",
"podcast.website": "Podcast Website",
-
- // Actions
"action.addToLibrary": "Add to Library",
"action.addToLibrary.success": "Added to Library",
"action.addToLibrary.error": "Error Adding to Library",
@@ -181,7 +163,7 @@
"action.removeFromQueue": "Remove from Queue",
"action.removeFromQueue.success": "Removed from Queue",
"action.removeFromQueue.error": "Error Removing from Queue",
- "action.createPlaylist": "Create a New Playlist",
+ "action.createPlaylist": "ā¤Ŧā¤¨ā¤žā¤ā¤ a ⤍⤠Playlist",
"action.addToPlaylist": "Add to Playlist",
"action.removeFromPlaylist": "Remove from Playlist",
"action.addToFavorites": "Add to Favorites",
@@ -209,36 +191,28 @@
"action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
"action.import": "Import",
"action.export": "Export",
- "action.showAlbum": "Show Complete Album",
+ "action.showAlbum": "ā¤Ļā¤ŋā¤ā¤žā¤ā¤ Complete Album",
"action.tray.minimize": "Minimize to Tray",
"action.tray.quit": "Quit",
- "action.tray.show": "Show",
+ "action.tray.show": "ā¤Ļā¤ŋā¤ā¤žā¤ā¤",
"action.update": "Update",
"action.copy": "Copy",
- "action.newpreset": "New Preset...", // Equalizer Preset
+ "action.newpreset": "⤍⤠Preset...",
"action.deletepreset": "Delete Preset",
-
- // Settings - General
"settings.header.general": "General",
"settings.header.general.description": "Adjust the general settings for Cider.",
"settings.option.general.language": "Language",
-
- // Language optgroups
"settings.option.general.language.main": "Languages",
"settings.option.general.language.fun": "Fun Languages",
"settings.option.general.language.unsorted": "Unsorted",
-
- // Update Cider
- "settings.option.general.updateCider": "Update Cider", // Button. Refer to term.check for the check button
- "settings.option.general.updateCider.branch": "Cider Update Branch", // Dropdown
+ "settings.option.general.updateCider": "Update Cider",
+ "settings.option.general.updateCider.branch": "Cider Update Branch",
"settings.option.general.updateCider.branch.description": "Select the branch to update Cider to",
"settings.option.general.updateCider.branch.main": "Stable",
"settings.option.general.updateCider.branch.develop": "Development",
-
- // Settings - Audio
"settings.header.audio": "Audio",
"settings.header.audio.description": "Adjust the audio settings for Cider.",
- "settings.option.audio.quality": "Audio Quality", // Dropdown
+ "settings.option.audio.quality": "Audio Quality",
"settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
"settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz",
"settings.header.audio.quality.lossless": "Lossless",
@@ -247,84 +221,68 @@
"settings.header.audio.quality.high.description": "256 kbps",
"settings.header.audio.quality.standard": "Standard",
"settings.header.audio.quality.standard.description": "64 kbps",
- "settings.option.audio.seamlessTransition": "Seamless Audio Transition", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", // Toggle
+ "settings.option.audio.seamlessTransition": "Seamless Audio Transition",
+ "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
"settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively | Designed by Maikiwi.",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
-
- // Settings - Visual
"settings.header.visual": "Visual",
"settings.header.visual.description": "Adjust the visual settings for Cider.",
- "settings.option.visual.windowBackgroundStyle": "Window Background Style", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "Window Background Style",
"settings.header.visual.windowBackgroundStyle.none": "None",
"settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
"settings.header.visual.windowBackgroundStyle.image": "Image",
- "settings.option.visual.animatedArtwork": "Animated Artwork", // Dropdown
+ "settings.option.visual.animatedArtwork": "Animated Artwork",
"settings.header.visual.animatedArtwork.always": "Always",
"settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries",
"settings.header.visual.animatedArtwork.disable": "Disable everywhere",
- "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality",
"settings.header.visual.animatedArtworkQuality.low": "Low",
"settings.header.visual.animatedArtworkQuality.medium": "Medium",
"settings.header.visual.animatedArtworkQuality.high": "High",
"settings.header.visual.animatedArtworkQuality.veryHigh": "Very High",
"settings.header.visual.animatedArtworkQuality.extreme": "Extreme",
- "settings.option.visual.animatedWindowBackground": "Animated Window Background", // Toggle
- "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "Animated Window Background",
+ "settings.option.visual.hardwareAcceleration": "Hardware Acceleration",
"settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
"settings.header.visual.hardwareAcceleration.default": "Default",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
"settings.header.visual.theme": "Theme",
-
- // Settings - Visual - Theme name
"settings.option.visual.theme.default": "Cider",
"settings.option.visual.theme.dark": "Dark",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Show Personal Info", // Toggle
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "ā¤Ļā¤ŋā¤ā¤žā¤ā¤ Personal Info",
"settings.header.lyrics": "Lyrics",
"settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
- "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language",
+ "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos",
"settings.header.connectivity": "Connectivity",
"settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Playback Notifications", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Playback Notifications",
"settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
"settings.header.experimental": "Experimental",
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
- "settings.option.experimental.compactUI": "Compact UI", // Toggle
- "settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
+ "settings.option.experimental.compactUI": "Compact UI",
+ "settings.option.window.close_button_hide": "Close Button Should Hide the Application",
"settings.option.experimental.copy_log": "Copy logs to clipboard",
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
"spatial.spatialProperties": "Spatial Properties",
"spatial.width": "Width",
@@ -344,14 +302,8 @@
"spatial.down": "Down",
"spatial.listener": "Listener",
"spatial.audioSource": "Audio Source",
-
- // Settings - Unfinished
"settings.header.unfinished": "Unfinished",
-
- // Web Remote
"remote.web.title": "Cider Remote",
"remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
-
- // About
"about.thanks": "Major thanks to the Cider Collective Team and all of our contributors."
}
\ No newline at end of file
diff --git a/src/i18n/hu_HU.jsonc b/src/i18n/hu_HU.json
similarity index 68%
rename from src/i18n/hu_HU.jsonc
rename to src/i18n/hu_HU.json
index 7f2e65ff..7a791f07 100644
--- a/src/i18n/hu_HU.jsonc
+++ b/src/i18n/hu_HU.json
@@ -1,352 +1,368 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "Magyar", // name of language in native language
- "i18n.languageNameEnglish": "Hungarian", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@Greenoliv @Amaru @BenjaminStonawski", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
- "app.name": "Cider",
-
- "date.format": "${m} ${d}, ${y}",
-
- // Dialogs
- "dialog.cancel": "MÊgsem",
- "dialog.ok": "OK",
-
- // Notification
- "notification.updatingLibrarySongs": "ZenekÃļnyvtÃĄr frissÃtÊse...",
- "notification.updatingLibraryAlbums": "Albumok frissÃtÊse...",
- "notification.updatingLibraryArtists": "ElÅadÃŗk frissÃtÊse...",
-
- // Terms
- "term.appleInc": "Apple Inc.",
- "term.appleMusic": "Apple Music",
- "term.applePodcasts": "Apple Podcastok",
- "term.itunes": "iTunes",
- "term.github": "GitHub",
- "term.discord": "Discord",
- "term.learnMore": "Tudj meg tÃļbbet",
- "term.accountSettings": "FiÃŗkbeÃĄllÃtÃĄsok",
- "term.logout": "KijelentkezÊs",
- "term.login": "BejelentkezÊs",
- "term.about": "NÊvjegy",
- "term.privateSession": "PrivÃĄt hallgatÃĄs",
- "term.queue": "VÃĄrÃŗlista",
- "term.search": "KeresÊs",
- "term.library": "KÃļnyvtÃĄr",
- "term.listenNow": "HallgatÃĄs most",
- "term.browse": "BÃļngÊszÊs",
- "term.radio": "RÃĄdiÃŗ",
- "term.recentlyAdded": "NemrÊg hozzÃĄadott",
- "term.songs": "Dalok",
- "term.albums": "Albumok",
- "term.artists": "ElÅadÃŗk",
- "term.podcasts": "Podcastok",
- "term.playlists": "LejÃĄtszÃĄsi listÃĄk",
- "term.playlist": "LejÃĄtszÃĄsi lista",
- "term.newPlaylist": "Ãj lejÃĄtszÃĄsi lista",
- "term.newPlaylistFolder": "Ãj mappa",
- "term.createNewPlaylist": "Ãj lejÃĄtszÃĄsi lista lÊtrehozÃĄsa",
- "term.createNewPlaylistFolder": "Ãj mappa lÊtrehozÃĄsa",
- "term.deletePlaylist": "Biztosan szeretnÊ tÃļrÃļlni a lejÃĄtszÃĄsi listÃĄt?",
- "term.play": "LejÃĄtszÃĄs",
- "term.pause": "MegÃĄllÃtÃĄs",
- "term.previous": "ElÅzÅ",
- "term.next": "KÃļvetkezÅ",
- "term.shuffle": "KeverÊs",
- "term.repeat": "IsmÊtlÊs",
- "term.volume": "HangerÅ",
- "term.mute": "NÊmÃtÃĄs",
- "term.unmute": "NÊmÃtÃĄs feloldÃĄsa",
- "term.share": "MegosztÃĄs",
- "term.share.success": "MÃĄsolva a vÃĄgÃŗlapra",
- "term.settings": "BeÃĄllÃtÃĄsok",
- "term.seeAll": "Ãsszes",
- "term.sortBy": "RendezÊs",
- "term.sortBy.album": "Album",
- "term.sortBy.artist": "ElÅadÃŗ",
- "term.sortBy.name": "NÊv",
- "term.sortBy.genre": "MÅąfaj",
- "term.sortBy.releaseDate": "KiadÃĄs dÃĄtuma",
- "term.sortBy.duration": "IdÅtartam",
- "term.sortOrder": "A-Z",
- "term.sortOrder.ascending": "NÃļvekvÅ",
- "term.sortOrder.descending": "CsÃļkkenÅ",
- "term.viewAs": "MegjelenÃtÊs",
- "term.viewAs.coverArt": "BorÃtÃŗ",
- "term.viewAs.list": "Lista",
- "term.size": "MÊret",
- "term.size.normal": "NormÃĄl",
- "term.size.compact": "Kompakt",
- "term.enable": "Be",
- "term.disable": "Ki",
- "term.enabled": "Be",
- "term.disabled": "Ki",
- "term.connect": "CsatlakoztatÃĄs",
- "term.connecting": "CsatlakozÃĄs",
- "term.disconnect": "LecsatlakozatÃĄs",
- "term.authed": "HitelesÃtve",
- "term.confirm": "JÃŗvÃĄhagyja?",
- "term.more": "TÃļbb",
- "term.less": "Kevesebb",
- "term.showMore": "Mutass tÃļbbet",
- "term.showLess": "Mutass kevesebbet",
- "term.topSongs": "A legjobb dalok",
- "term.latestReleases": "Ãj megjelenÊsek",
- "term.time.added": "HozzÃĄadva",
- "term.time.released": "Kiadva",
- "term.time.updated": "FrissÃtve",
- "term.time.hours": "Ãŗra",
- "term.time.hour": "Ãŗra",
- "term.time.minutes": "perc",
- "term.time.minute": "perc",
- "term.time.seconds": "mÃĄsodperc",
- "term.time.second": "mÃĄsodperc",
- "term.fullscreenView": "Teljes kÊpernyÅs mÃŗd",
- "term.defaultView": "AlapÊrtelmezett nÊzet",
- "term.spacializedAudioSetting": "TÊrbeli hang",
- "term.clearAll": "Ãsszes tÃļrlÊse",
- "term.recentStations": "NemrÊg jÃĄtszott",
- "term.language": "Nyelv",
- "term.funLanguages": "FantÃĄzianyelvek",
- "term.noLyrics": "BetÃļltÊs... / DalszÃļveg nem talÃĄlhatÃŗ. / InstrumentÃĄlis.",
- "term.copyright": "SzerzÅi jog",
- "term.rightsReserved": "Minden jog fenntartva.",
- "term.sponsor": "TÃĄmogasd a projektet",
- "term.ciderTeam": "A Cider csapata",
- "term.developer": "FejlesztÅ",
- "term.socialTeam": "KÃļzÃļssÊgi csapat",
- "term.socials": "SzociÃĄlis",
- "term.contributors": "HozzÃĄjÃĄrulÃŗk",
- "term.equalizer": "HangszÃnszabÃĄlyozÃŗ",
- "term.reset": "VisszaÃĄllÃtÃĄs",
- "term.tracks": "zeneszÃĄm", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "VideÃŗk",
- "term.menu": "MenÃŧ",
- "term.check": "EllenÅrzÊs",
- "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "Legjobb talÃĄlatok", // Search Results
- "term.sharedPlaylists": "Megosztott lejÃĄtszÃĄsi listÃĄk", // Search Results
- "term.people": "Profilok", // Search Results
- "term.newpreset.name": "New EQ Preset Name", // Equalizer Preset
- "term.addedpreset": "Preset hozzÃĄadva",
- "term.deletepreset.warn": "Are you sure you want to delete this preset?",
- "term.deletedpreset": "Preset tÃļrÃļlve",
- "term.musicVideos": "VideÃŗklipek", // Search page friendlyTypes
- "term.stations": "ÃllomÃĄsok",
- "term.curators": "Curators",
- "term.appleCurators": "Apple Curators",
- "term.radioShows": "Radio Shows",
- "term.recordLabels": "Record Labels",
- "term.videoExtras": "VideÃŗextrÃĄk",
- "term.top": "Top",
-
- // Home
- "home.title": "KezdÅlap",
- "home.recentlyPlayed": "NemrÊg jÃĄtszott",
- "home.recentlyAdded": "NemrÊg hozzÃĄadott",
- "home.artistsFeed": "Az elÅadÃŗid feedje",
- "home.artistsFeed.noArtist": "KÃļvess nÊhÃĄny elÅadÃŗt, hogy a legÃējabb zenÊik itt megjelenjenek",
- "home.madeForYou": "SzemÊlyre szabva",
- "home.friendsListeningTo": "A barÃĄtaid Êpp ezt hallgatjÃĄk",
- "home.followedArtists": "KÃļvetett elÅadÃŗk",
-
- // Errors
- "error.appleMusicSubRequired": "Apple Music elÅfizetÊs szÃŧksÊges.",
- "error.connectionError": "Hiba tÃļrtÊnt az Apple Musichoz valÃŗ csatlakozÃĄs kÃļzben.",
- "error.noResults": "Nincs talÃĄlat",
- "error.noResults.description": "PrÃŗbÃĄlkozzon Ãēj keresÊssel",
-
- // Podcasts
- "podcast.followOnCider": "KÃļvetÊs a Cideren",
- "podcast.followedOnCider": "KÃļvetve a Cideren",
- "podcast.subscribeOnItunes": "FeliratkozÃĄs az iTunesban",
- "podcast.subscribedOnItunes": "Feliratkozva az iTunesban",
- "podcast.itunesStore": "iTunes Store",
- "podcast.episodes": "EpizÃŗdok",
- "podcast.playEpisode": "EpizÃŗd lejÃĄtszÃĄsa",
- "podcast.website": "Podcast weboldala",
-
- // Actions
- "action.addToLibrary": "HozzÃĄadÃĄs a KÃļnyvtÃĄrhoz",
- "action.addToLibrary.success": "HozzÃĄadva a KÃļnyvtÃĄrhoz",
- "action.addToLibrary.error": "Hiba a hozzÃĄadÃĄskor.",
- "action.removeFromLibrary": "TÃļrlÊs a KÃļnytÃĄrbÃŗl",
- "action.removeFromLibrary.success": "TÃļrÃļlve a KÃļnyvtÃĄrbÃŗl",
- "action.addToQueue": "HozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz",
- "action.addToQueue.success": "HozzÃĄadva a vÃĄrÃŗlistÃĄhoz",
- "action.addToQueue.error": "Sikertelen hozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz",
- "action.removeFromQueue": "TÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl",
- "action.removeFromQueue.success": "TÃļrÃļlve a vÃĄrÃŗlistÃĄrÃŗl",
- "action.removeFromQueue.error": "Sikertelen tÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl",
- "action.createPlaylist": "Ãj lejÃĄtszÃĄsi lista lÊtrehozÃĄsa",
- "action.addToPlaylist": "LejÃĄtszÃĄsi listÃĄhoz adÃĄs",
- "action.removeFromPlaylist": "TÃļrlÊs a lejÃĄtszÃĄsi listÃĄrÃŗl",
- "action.addToFavorites": "HozzÃĄadÃĄs a kedvencekhez",
- "action.follow": "KÃļvetÊs",
- "action.follow.success": "KÃļvetve",
- "action.follow.error": "Sikertelen kÃļvetÊs",
- "action.unfollow": "KÃļvetÊs visszavonÃĄsa",
- "action.unfollow.success": "KÃļvetÊs visszavonva",
- "action.unfollow.error": "Sikertelen visszavonÃĄs",
- "action.playNext": "LejÃĄtszÃĄs kÃļvetkezÅkÊnt",
- "action.playLater": "LejÃĄtszÃĄs utolsÃŗkÊnt",
- "action.startRadio": "ÃllomÃĄs lÊtrehozÃĄsa",
- "action.goToArtist": "ElÅadÃŗ megjelenÃtÊse",
- "action.goToAlbum": "Album megjelenÃtÊse",
- "action.moveToTop": "MozgatÃĄs legfelÃŧlre",
- "action.share": "MegosztÃĄs",
- "action.rename": "ÃtnevezÊs",
- "action.love": "Szeretem",
- "action.unlove": "MÊgsem szeretem",
- "action.dislike": "Kevesebb ilyen javasolÃĄsa",
- "action.undoDislike": "A Kevesebb ilyen javasolÃĄsa visszavonÃĄsa",
- "action.showWebRemoteQR": "TÃĄvirÃĄnyÃtÃŗ QR kÃŗd",
- "action.playTracksNext": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÃļvetkezÅnek",
- "action.playTracksLater": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÊsÅbb",
- "action.removeTracks": "${self.selectedItems.length} zenÊk eltÃĄvolÃtÃĄsa a vÃĄrÃŗlistÃĄrÃŗl",
- "action.import": "ImportÃĄlÃĄs",
- "action.export": "ExportÃĄlÃĄs",
- "action.showAlbum": "Teljes album megjelenÃtÊse",
- "action.tray.minimize": "KicsinyÃtÊs a tÃĄlcÃĄra",
- "action.tray.quit": "KilÊpÊs",
- "action.tray.show": "MegjelenÃtÊs",
- "action.update": "FrissÃtÊs",
- "action.copy": "MÃĄsolÃĄs",
- "action.newpreset": "Ãj Preset...", // Equalizer Preset
- "action.deletepreset": "Preset tÃļrlÊse",
-
- // Settings - General
- "settings.header.general": "ÃltalÃĄnos",
- "settings.header.general.description": "A Cider ÃĄltalÃĄnos beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
- "settings.option.general.language": "Nyelv",
-
- // Language optgroups
- "settings.option.general.language.main": "Nyelvek",
- "settings.option.general.language.fun": "FantÃĄzianyelvek",
- "settings.option.general.language.unsorted": "AzonosÃtatlan",
-
- // Update Cider
- "settings.option.general.updateCider": "A Cider frissÃtÊse", // Button
-
- // Settings - Audio
- "settings.header.audio": "Hang",
- "settings.header.audio.description": "A Cider hangbeÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
- "settings.option.audio.quality": "HangminÅsÊg", // Dropdown
- "settings.header.audio.quality.hireslossless": "Nagy felbontÃĄsÃē vesztesÊgmentes",
- "settings.header.audio.quality.hireslossless.description": "max. 24-bit/192 kHz sebessÊgen",
- "settings.header.audio.quality.lossless": "VesztesÊgmentes",
- "settings.header.audio.quality.lossless.description": "max. up to 24-bit/48 kHz sebessÊgen",
- "settings.header.audio.quality.high": "High",
- "settings.header.audio.quality.high.description": "256 kbps",
- "settings.header.audio.quality.standard": "Standard",
- "settings.header.audio.quality.standard.description": "64 kbps",
- "settings.option.audio.seamlessTransition": "SzÃŧnetmentes lejÃĄtszÃĄs", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "HaladÃŗ funkcionalitÃĄs engedÊlyezÊse", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "Az AudioContext funkciÃŗ engedÊlyezÊse lehetÅvÊ teszi a fejlettebb hangfunkciÃŗkat, pÊldÃĄul a NormalizÃĄsÃĄst, az Equalizereket Ês a Visualizer funkciÃŗkat, azonban egyes szÃĄmÃtÃŗgÊpeken ez akadozÃĄst okozhat a hangsÃĄvokban.",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Pszichoakusztikus MÃŗdosÃtÃĄsok amik minden hangot felerÅsÃtenek Ês ÃŧtÅsebbÊ tesznek | KÊszÃtette Maikiwi",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP ErÅssÊg", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "MegvÃĄltoztatja a hangra vÊgzett feldolgozÃĄs erÅssÊgÊt. (Az AgresszÃv mÃŗd nemkÃvÃĄnatos eredmÊnyeket hozhat!)",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "SzokÃĄsos",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "AgresszÃv",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizÃĄlÃĄs", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NormalizÃĄlja az egyes zeneszÃĄmok hangosabb rÊszeit, hogy egysÊgesebb hallgatÃĄsi ÊlmÊnyt hozzon lÊtre.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "TÊrbeli hang", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "TÊrbeli hang Ês a hang hÃĄromdimenziÃŗsabbÃĄ tÊtele (Ez nem ÃļsszekeverendÅ a Dolby Atmos-szal!)",
-
- // Settings - Visual
- "settings.header.visual": "VizuÃĄlis",
- "settings.header.visual.description": "A Cider vizuÃĄlis beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
- "settings.option.visual.windowBackgroundStyle": "Ablak hÃĄttÊr stÃlusa", // Toggle
- "settings.header.visual.windowBackgroundStyle.none": "Sehol",
- "settings.header.visual.windowBackgroundStyle.artwork": "BorÃtÃŗ",
- "settings.header.visual.windowBackgroundStyle.image": "KÊp",
- "settings.option.visual.animatedArtwork": "AnimÃĄlt borÃtÃŗ", // Dropdown
- "settings.header.visual.animatedArtwork.always": "Mindig",
- "settings.header.visual.animatedArtwork.limited": "Oldalakra Ês speciÃĄlis bejegyzÊsekre korlÃĄtozva.",
- "settings.header.visual.animatedArtwork.disable": "KikapcsolÃĄs mindenhol",
- "settings.option.visual.animatedArtworkQuality": "AnimÃĄlt borÃtÃŗ minÅsÊge", // Dropdown
- "settings.header.visual.animatedArtworkQuality.low": "Alacsony",
- "settings.header.visual.animatedArtworkQuality.medium": "KÃļzepes",
- "settings.header.visual.animatedArtworkQuality.high": "Magas",
- "settings.header.visual.animatedArtworkQuality.veryHigh": "Nagyon magas",
- "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊm",
- "settings.option.visual.animatedWindowBackground": "AnimÃĄlt ablakhÃĄttÊr", // Toggle
- "settings.option.visual.hardwareAcceleration": "Hardveres gyorsÃtÃĄs", // Dropdown
- "settings.option.visual.hardwareAcceleration.description": "ÃjraindÃtÃĄs szÃŧksÊges",
- "settings.header.visual.hardwareAcceleration.default": "Alap",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- "settings.header.visual.theme": "TÊma",
-
- // Settings - Visual - Theme name
- "settings.option.visual.theme.default": "Cider",
- "settings.option.visual.theme.dark": "SÃļtÊt",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "SzemÊlyes adatok mutatÃĄsa", // Toggle
-
- // Settings - Lyrics
- "settings.header.lyrics": "DalszÃļveg",
- "settings.header.lyrics.description": "A Cider dalszÃļveg beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
- "settings.option.lyrics.enableMusixmatch": "MusixMatch dalszÃļvegek engedÊlyezÊse", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke mÃŗd bekapcsolÃĄsa (Csak MusixMatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "MusixMatch fordÃtÃĄs nyelve", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "YouTube dalszÃļvegek engedÊlyezÊse a zenei videÃŗknÃĄl", // Toggle
-
- // Settings - Connectivity
- "settings.header.connectivity": "CsatlakozÃĄsok",
- "settings.header.connectivity.description": "A Cider csatlakozÃĄs beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "LejÃĄtszÃĄs ÊrtesÃtÊsek", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "MegjelenÃtÊs 'Cider'-kÊnt",
- "settings.header.connectivity.discordRPC.appleMusic": "MegjelenÃtÊs 'Apple Music'-kÊnt",
- "settings.option.connectivity.discordRPC.clearOnPause": "Discord Rich Presence tÃļrlÊse megÃĄllÃtÃĄsnÃĄl", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble KÊsleltetÊs (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedÊlyezÊse",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszÃĄm szÅąrÊse (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
- "settings.header.experimental": "KÃsÊrleti",
- "settings.header.experimental.description": "A Cider kÃsÊrleti beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
- "settings.option.experimental.compactUI": "Kompakt UI", // Toggle
- "settings.option.experimental.close_button_hide": "A bezÃĄrÃĄs gomb rejtse el az alkalmazÃĄst",
- "settings.option.experimental.copy_log": "NaplÃŗ mÃĄsolÃĄsa a vÃĄgÃŗlapra",
- "settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
- "spatial.notTurnedOn": "A tÊrbeli hangzÃĄs ki van kapcsolva, hasznÃĄlatÃĄhoz kapcsolja be.",
- "spatial.spatialProperties": "TÊrbeli hang",
- "spatial.width": "SzÊlessÊg",
- "spatial.height": "MagassÃĄg",
- "spatial.depth": "HosszÃēsÃĄg",
- "spatial.gain": "Gain",
- "spatial.roomMaterials": "Szoba felÊpÃtÊse",
- "spatial.roomDimensions": "Szoba mÊretei",
- "spatial.roomPositions": "Szoba pozÃciÃŗi",
- "spatial.setDimensions": "MÊretek beÃĄllÃtÃĄsa",
- "spatial.setPositions": "PozÃciÃŗk beÃĄllÃtÃĄsa",
- "spatial.up": "Fent",
- "spatial.front": "ElÅl",
- "spatial.left": "Balra",
- "spatial.right": "Jobbra",
- "spatial.back": "HÃĄtul",
- "spatial.down": "Lent",
- "spatial.listener": "HallgatÃŗ",
- "spatial.audioSource": "HangforrÃĄs",
-
- // Settings - Unfinished
- "settings.header.unfinished": "Befejezetlen",
-
- // Web Remote
- "remote.web.title": "Cider Remote",
- "remote.web.description": "Olvasd be ezt a QR-kÃŗdot a telefonoddal, hogy tudd vezÊrelni a lejÃĄtszÃŗt.",
-
- // About
- "about.thanks": "KÃļszÃļnet a Cider Collective csapatÃĄnak Ês minden hozzÃĄjÃĄrulÃŗnak."
-}
\ No newline at end of file
+{
+ "i18n.languageName": "Magyar",
+ "i18n.languageNameEnglish": "Hungarian",
+ "i18n.category": "main",
+ "i18n.authors": "@Greenoliv @Amaru @BenjaminStonawski",
+ "app.name": "Cider",
+ "date.format": "${m} ${d}, ${y}",
+ "dialog.cancel": "MÊgsem",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "ZenekÃļnyvtÃĄr frissÃtÊse...",
+ "notification.updatingLibraryAlbums": "Albumok frissÃtÊse...",
+ "notification.updatingLibraryArtists": "ElÅadÃŗk frissÃtÊse...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcastok",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "Tudj meg tÃļbbet",
+ "term.accountSettings": "FiÃŗkbeÃĄllÃtÃĄsok",
+ "term.logout": "KijelentkezÊs",
+ "term.login": "BejelentkezÊs",
+ "term.about": "NÊvjegy",
+ "term.privateSession": "PrivÃĄt hallgatÃĄs",
+ "term.queue": "VÃĄrÃŗlista",
+ "term.history": "ElÅzmÊnyek",
+ "term.search": "KeresÊs",
+ "term.library": "KÃļnyvtÃĄr",
+ "term.listenNow": "HallgatÃĄs most",
+ "term.browse": "BÃļngÊszÊs",
+ "term.radio": "RÃĄdiÃŗ",
+ "term.recentlyAdded": "NemrÊg hozzÃĄadott",
+ "term.songs": "Dalok",
+ "term.albums": "Albumok",
+ "term.artists": "ElÅadÃŗk",
+ "term.podcasts": "Podcastok",
+ "term.playlists": "LejÃĄtszÃĄsi listÃĄk",
+ "term.playlist": "LejÃĄtszÃĄsi lista",
+ "term.newPlaylist": "Ãj lejÃĄtszÃĄsi lista",
+ "term.newPlaylistFolder": "Ãj mappa",
+ "term.createNewPlaylist": "Ãj lejÃĄtszÃĄsi lista lÊtrehozÃĄsa",
+ "term.createNewPlaylistFolder": "Ãj mappa lÊtrehozÃĄsa",
+ "term.deletePlaylist": "Biztosan szeretnÊ tÃļrÃļlni a lejÃĄtszÃĄsi listÃĄt?",
+ "term.play": "LejÃĄtszÃĄs",
+ "term.pause": "MegÃĄllÃtÃĄs",
+ "term.previous": "ElÅzÅ",
+ "term.next": "KÃļvetkezÅ",
+ "term.shuffle": "KeverÊs",
+ "term.repeat": "IsmÊtlÊs",
+ "term.volume": "HangerÅ",
+ "term.mute": "NÊmÃtÃĄs",
+ "term.unmute": "NÊmÃtÃĄs feloldÃĄsa",
+ "term.share": "MegosztÃĄs",
+ "term.share.success": "MÃĄsolva a vÃĄgÃŗlapra",
+ "term.settings": "BeÃĄllÃtÃĄsok",
+ "term.seeAll": "Ãsszes",
+ "term.sortBy": "RendezÊs",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "ElÅadÃŗ",
+ "term.sortBy.name": "NÊv",
+ "term.sortBy.genre": "MÅąfaj",
+ "term.sortBy.releaseDate": "KiadÃĄs dÃĄtuma",
+ "term.sortBy.duration": "IdÅtartam",
+ "term.sortBy.dateAdded": "HozzÃĄadÃĄs dÃĄtuma",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "NÃļvekvÅ",
+ "term.sortOrder.descending": "CsÃļkkenÅ",
+ "term.viewAs": "MegjelenÃtÊs",
+ "term.viewAs.coverArt": "BorÃtÃŗ",
+ "term.viewAs.list": "Lista",
+ "term.size": "MÊret",
+ "term.size.normal": "NormÃĄl",
+ "term.size.compact": "Kompakt",
+ "term.enable": "Be",
+ "term.disable": "Ki",
+ "term.enabled": "Be",
+ "term.disabled": "Ki",
+ "term.connect": "CsatlakoztatÃĄs",
+ "term.connecting": "CsatlakozÃĄs",
+ "term.disconnect": "LecsatlakozatÃĄs",
+ "term.authed": "HitelesÃtve",
+ "term.confirm": "JÃŗvÃĄhagyja?",
+ "term.more": "TÃļbb",
+ "term.less": "Kevesebb",
+ "term.showMore": "Mutass tÃļbbet",
+ "term.showLess": "Mutass kevesebbet",
+ "term.topSongs": "A legjobb dalok",
+ "term.latestReleases": "Ãj megjelenÊsek",
+ "term.time.added": "HozzÃĄadva",
+ "term.time.released": "Kiadva",
+ "term.time.updated": "FrissÃtve",
+ "term.time.hours": "Ãŗra",
+ "term.time.hour": "Ãŗra",
+ "term.time.minutes": "perc",
+ "term.time.minute": "perc",
+ "term.time.seconds": "mÃĄsodperc",
+ "term.time.second": "mÃĄsodperc",
+ "term.fullscreenView": "Teljes kÊpernyÅs mÃŗd",
+ "term.defaultView": "AlapÊrtelmezett nÊzet",
+ "term.audioSettings": "HangbeÃĄllÃtÃĄsok",
+ "term.audioControls": "HangerÅ beÃĄllÃtÃĄs",
+ "term.clearAll": "Ãsszes tÃļrlÊse",
+ "term.recentStations": "NemrÊg jÃĄtszott",
+ "term.language": "Nyelv",
+ "term.funLanguages": "FantÃĄzianyelvek",
+ "term.noLyrics": "BetÃļltÊs... / DalszÃļveg nem talÃĄlhatÃŗ. / InstrumentÃĄlis.",
+ "term.copyright": "SzerzÅi jog",
+ "term.rightsReserved": "Minden jog fenntartva.",
+ "term.sponsor": "TÃĄmogasd a projektet",
+ "term.ciderTeam": "A Cider csapata",
+ "term.developer": "FejlesztÅ",
+ "term.socialTeam": "KÃļzÃļssÊgi csapat",
+ "term.socials": "SzociÃĄlis",
+ "term.contributors": "HozzÃĄjÃĄrulÃŗk",
+ "term.equalizer": "HangszÃnszabÃĄlyozÃŗ",
+ "term.reset": "VisszaÃĄllÃtÃĄs",
+ "term.tracks": "zeneszÃĄm",
+ "term.videos": "VideÃŗk",
+ "term.menu": "MenÃŧ",
+ "term.check": "EllenÅrzÊs",
+ "term.aboutArtist": "About {{artistName}}",
+ "term.topResult": "Legjobb talÃĄlatok",
+ "term.sharedPlaylists": "Megosztott lejÃĄtszÃĄsi listÃĄk",
+ "term.people": "Profilok",
+ "term.newpreset.name": "Ãj EQ elÅbeÃĄllÃtÃĄs nÊv",
+ "term.addedpreset": "ElÅbeÃĄllÃtÃĄs hozzÃĄadva",
+ "term.deletepreset.warn": "Biztos tÃļrÃļlni szeretnÊd ezt az elÅbeÃĄllÃtÃĄst?",
+ "term.deletedpreset": "ElÅbeÃĄllÃtÃĄs tÃļrÃļlve",
+ "term.defaultPresets": "Alap elÅbeÃĄllÃtÃĄsok",
+ "term.userPresets": "FelhasznÃĄlÃŗi beÃĄllÃtÃĄsok",
+ "term.requestError": "Hiba tÃļrtÊnt a lekÊrÊs kÃļzben.",
+ "term.song.link.generate": "song.link URL lekÊrÊse...",
+ "term.musicVideos": "VideÃŗklipek",
+ "term.stations": "ÃllomÃĄsok",
+ "term.curators": "KurÃĄtorok",
+ "term.appleCurators": "Apple KurÃĄtorok",
+ "term.radioShows": "RÃĄdiÃŗadÃĄsok",
+ "term.recordLabels": "Record Labels",
+ "term.videoExtras": "VideÃŗextrÃĄk",
+ "term.top": "Top",
+ "term.version": "VerziÃŗ",
+ "term.noVideos": "Nincs talÃĄlat.",
+ "term.plugin": "Plug-in",
+ "term.pluginMenu": "Plug-in MenÃŧ",
+ "term.replay": "Replay",
+ "term.uniqueAlbums": "Unique Albums",
+ "term.uniqueArtists": "Unique Artists",
+ "term.uniqueSongs": "Unique Songs",
+ "term.topArtists": "Top Artists",
+ "term.listenedTo": "Listened to:",
+ "term.times": "alkalom",
+ "term.topAlbums": "Top Albums",
+ "term.plays": "Plays",
+ "term.topGenres": "Top Genres",
+ "term.confirmLogout": "Biztosan ki szeretnÊl jelentkezni?",
+ "home.title": "KezdÅlap",
+ "home.recentlyPlayed": "NemrÊg jÃĄtszott",
+ "home.recentlyAdded": "NemrÊg hozzÃĄadott",
+ "home.artistsFeed": "Az elÅadÃŗid feedje",
+ "home.artistsFeed.noArtist": "KÃļvess nÊhÃĄny elÅadÃŗt, hogy a legÃējabb zenÊik itt megjelenjenek",
+ "home.madeForYou": "SzemÊlyre szabva",
+ "home.friendsListeningTo": "A barÃĄtaid Êpp ezt hallgatjÃĄk",
+ "home.followedArtists": "KÃļvetett elÅadÃŗk",
+ "error.appleMusicSubRequired": "Apple Music elÅfizetÊs szÃŧksÊges.",
+ "error.connectionError": "Hiba tÃļrtÊnt az Apple Musichoz valÃŗ csatlakozÃĄs kÃļzben.",
+ "error.noResults": "Nincs talÃĄlat",
+ "error.noResults.description": "PrÃŗbÃĄlkozzon Ãēj keresÊssel",
+ "podcast.followOnCider": "KÃļvetÊs a Cideren",
+ "podcast.followedOnCider": "KÃļvetve a Cideren",
+ "podcast.subscribeOnItunes": "FeliratkozÃĄs az iTunesban",
+ "podcast.subscribedOnItunes": "Feliratkozva az iTunesban",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "EpizÃŗdok",
+ "podcast.playEpisode": "EpizÃŗd lejÃĄtszÃĄsa",
+ "podcast.website": "Podcast weboldala",
+ "action.addToLibrary": "HozzÃĄadÃĄs a KÃļnyvtÃĄrhoz",
+ "action.addToLibrary.success": "HozzÃĄadva a KÃļnyvtÃĄrhoz",
+ "action.addToLibrary.error": "Hiba a hozzÃĄadÃĄskor.",
+ "action.removeFromLibrary": "TÃļrlÊs a KÃļnytÃĄrbÃŗl",
+ "action.removeFromLibrary.success": "TÃļrÃļlve a KÃļnyvtÃĄrbÃŗl",
+ "action.addToQueue": "HozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz",
+ "action.addToQueue.success": "HozzÃĄadva a vÃĄrÃŗlistÃĄhoz",
+ "action.addToQueue.error": "Sikertelen hozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz",
+ "action.removeFromQueue": "TÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl",
+ "action.removeFromQueue.success": "TÃļrÃļlve a vÃĄrÃŗlistÃĄrÃŗl",
+ "action.removeFromQueue.error": "Sikertelen tÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl",
+ "action.createPlaylist": "Ãj lejÃĄtszÃĄsi lista lÊtrehozÃĄsa",
+ "action.addToPlaylist": "LejÃĄtszÃĄsi listÃĄhoz adÃĄs",
+ "action.removeFromPlaylist": "TÃļrlÊs a lejÃĄtszÃĄsi listÃĄrÃŗl",
+ "action.addToFavorites": "HozzÃĄadÃĄs a kedvencekhez",
+ "action.follow": "KÃļvetÊs",
+ "action.follow.success": "KÃļvetve",
+ "action.follow.error": "Sikertelen kÃļvetÊs",
+ "action.unfollow": "KÃļvetÊs visszavonÃĄsa",
+ "action.unfollow.success": "KÃļvetÊs visszavonva",
+ "action.unfollow.error": "Sikertelen visszavonÃĄs",
+ "action.playNext": "LejÃĄtszÃĄs kÃļvetkezÅkÊnt",
+ "action.playLater": "LejÃĄtszÃĄs utolsÃŗkÊnt",
+ "action.startRadio": "ÃllomÃĄs lÊtrehozÃĄsa",
+ "action.goToArtist": "ElÅadÃŗ megjelenÃtÊse",
+ "action.goToAlbum": "Album megjelenÃtÊse",
+ "action.moveToTop": "MozgatÃĄs legfelÃŧlre",
+ "action.share": "MegosztÃĄs",
+ "action.rename": "ÃtnevezÊs",
+ "action.love": "Szeretem",
+ "action.unlove": "MÊgsem szeretem",
+ "action.dislike": "Kevesebb ilyen javasolÃĄsa",
+ "action.undoDislike": "A Kevesebb ilyen javasolÃĄsa visszavonÃĄsa",
+ "action.showWebRemoteQR": "TÃĄvirÃĄnyÃtÃŗ",
+ "action.playTracksNext": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÃļvetkezÅnek",
+ "action.playTracksLater": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÊsÅbb",
+ "action.removeTracks": "${self.selectedItems.length} zenÊk eltÃĄvolÃtÃĄsa a vÃĄrÃŗlistÃĄrÃŗl",
+ "action.import": "ImportÃĄlÃĄs",
+ "action.export": "ExportÃĄlÃĄs",
+ "action.showAlbum": "Teljes album megjelenÃtÊse",
+ "action.tray.minimize": "KicsinyÃtÊs a tÃĄlcÃĄra",
+ "action.tray.quit": "KilÊpÊs",
+ "action.tray.show": "MegjelenÃtÊs",
+ "action.update": "FrissÃtÊs",
+ "action.install": "TelepÃtÊs",
+ "action.copy": "MÃĄsolÃĄs",
+ "action.newpreset": "Ãj Preset...",
+ "action.deletepreset": "Preset tÃļrlÊse",
+ "action.open": "MegnyitÃĄs",
+ "settings.header.general": "ÃltalÃĄnos",
+ "settings.header.general.description": "A Cider ÃĄltalÃĄnos beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
+ "settings.option.general.language": "Nyelv",
+ "settings.option.general.resumebehavior": "Resume behavior",
+ "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.",
+ "settings.option.general.resumebehavior.locally": "Locally",
+ "settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.",
+ "settings.option.general.resumebehavior.history": "History",
+ "settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.",
+ "settings.option.general.language.main": "Nyelvek",
+ "settings.option.general.language.fun": "FantÃĄzianyelvek",
+ "settings.option.general.language.unsorted": "AzonosÃtatlan",
+ "settings.option.general.updateCider": "Cider frissÃtÊse",
+ "settings.option.general.updateCider.branch": "VerziÃŗ kivÃĄlasztÃĄsa",
+ "settings.option.general.updateCider.branch.description": "VÃĄlaszd ki a Cider melyik verziÃŗjÃĄra szeretnÊl frissÃteni",
+ "settings.option.general.updateCider.branch.main": "NormÃĄl",
+ "settings.option.general.updateCider.branch.develop": "FejlesztÅi",
+ "settings.header.audio": "Hang",
+ "settings.header.audio.description": "A Cider hangbeÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
+ "settings.option.audio.volumeStep": "HangerŠlÊptÊk",
+ "settings.option.audio.maxVolume": "Maximum hangerÅ",
+ "settings.option.audio.quality": "HangminÅsÊg",
+ "settings.header.audio.quality.hireslossless": "Nagy felbontÃĄsÃē vesztesÊgmentes",
+ "settings.header.audio.quality.hireslossless.description": "max. 24-bit/192 kHz sebessÊgen",
+ "settings.header.audio.quality.lossless": "VesztesÊgmentes",
+ "settings.header.audio.quality.lossless.description": "max. up to 24-bit/48 kHz sebessÊgen",
+ "settings.header.audio.quality.high": "High",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "Standard",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "SzÃŧnetmentes lejÃĄtszÃĄs",
+ "settings.option.audio.enableAdvancedFunctionality": "HaladÃŗ funkcionalitÃĄs engedÊlyezÊse",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Az AudioContext funkciÃŗ engedÊlyezÊse lehetÅvÊ teszi a fejlettebb hangfunkciÃŗkat, pÊldÃĄul a NormalizÃĄsÃĄst, az Equalizereket Ês a Visualizer funkciÃŗkat, azonban egyes szÃĄmÃtÃŗgÊpeken ez akadozÃĄst okozhat a hangsÃĄvokban.",
+ "settings.option.audio.audioLab": "Cider Audio Lab",
+ "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
+ "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Pszichoakusztikus MÃŗdosÃtÃĄsok amik minden hangot felerÅsÃtenek Ês ÃŧtÅsebbÊ tesznek",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "A CAP nem kompatibilis a TÊrbeli Hanggal. Kapcsold ki a TÊrbeli Hangot a folytatÃĄshoz.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP ErÅssÊg",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "MegvÃĄltoztatja a hangra vÊgzett feldolgozÃĄs erÅssÊgÊt. (Az AgresszÃv mÃŗd nemkÃvÃĄnatos eredmÊnyeket hozhat!)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "SzokÃĄsos",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "AgresszÃv",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizÃĄlÃĄs",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NormalizÃĄlja az egyes zeneszÃĄmok hangosabb rÊszeit, hogy egysÊgesebb hallgatÃĄsi ÊlmÊnyt hozzon lÊtre.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "TÊrbeli hang",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "TÊrbeli hang Ês a hang hÃĄromdimenziÃŗsabbÃĄ tÊtele (Ez nem ÃļsszekeverendÅ a Dolby Atmos-szal!)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "A TÊrbeli Hang nem kompatibilis a CAP-pal. Kapcsold ki a CAP-ot a folytatÃĄshoz.",
+ "settings.header.visual": "VizuÃĄlis",
+ "settings.header.visual.description": "A Cider vizuÃĄlis beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
+ "settings.option.visual.windowBackgroundStyle": "AblakhÃĄttÊr stÃlusa",
+ "settings.header.visual.windowBackgroundStyle.none": "Sehol",
+ "settings.header.visual.windowBackgroundStyle.artwork": "BorÃtÃŗ",
+ "settings.header.visual.windowBackgroundStyle.image": "KÊp",
+ "settings.option.visual.animatedArtwork": "AnimÃĄlt borÃtÃŗ",
+ "settings.header.visual.animatedArtwork.always": "Mindig",
+ "settings.header.visual.animatedArtwork.limited": "Oldalakra Ês speciÃĄlis bejegyzÊsekre korlÃĄtozva.",
+ "settings.header.visual.animatedArtwork.disable": "KikapcsolÃĄs mindenhol",
+ "settings.option.visual.animatedArtworkQuality": "AnimÃĄlt borÃtÃŗ minÅsÊge",
+ "settings.header.visual.animatedArtworkQuality.low": "Alacsony",
+ "settings.header.visual.animatedArtworkQuality.medium": "KÃļzepes",
+ "settings.header.visual.animatedArtworkQuality.high": "Magas",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Nagyon magas",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊm",
+ "settings.option.visual.animatedWindowBackground": "AnimÃĄlt ablakhÃĄttÊr",
+ "settings.option.visual.hardwareAcceleration": "Hardveres gyorsÃtÃĄs",
+ "settings.option.visual.hardwareAcceleration.description": "ÃjraindÃtÃĄs szÃŧksÊges",
+ "settings.header.visual.hardwareAcceleration.default": "Alap",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "TÊma",
+ "settings.option.visual.theme.github.download": "TelepÃtÊs GitHub URL-rÅl",
+ "settings.option.visual.theme.github.explore": "TÊmaÃĄruhÃĄz",
+ "settings.header.visual.theme.github.page": "TÊmÃĄk a GitHub-rÃŗl",
+ "settings.option.visual.theme.github.install.confirm": "Biztos, hogy szeretnÊd telepÃteni a(z) {{ repo }} tÊmÃĄt?",
+ "settings.prompt.visual.theme.github.URL": "Add meg a telepÃtendÅ tÊma URL-jÊt",
+ "settings.notyf.visual.theme.install.success": "TÊma sikeresen telepÃtve",
+ "settings.notyf.visual.theme.install.error": "Sikertelen volt a tÊma telepÃtÊse",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "SÃļtÊt",
+ "settings.option.visual.showPersonalInfo": "SzemÊlyes adatok mutatÃĄsa",
+ "settings.header.lyrics": "DalszÃļveg",
+ "settings.header.lyrics.description": "A Cider dalszÃļveg beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
+ "settings.option.lyrics.enableMusixmatch": "MusixMatch dalszÃļvegek engedÊlyezÊse",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke mÃŗd bekapcsolÃĄsa (Csak MusixMatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "MusixMatch fordÃtÃĄs nyelve",
+ "settings.option.lyrics.enableYoutubeLyrics": "YouTube dalszÃļvegek engedÊlyezÊse a zenei videÃŗknÃĄl",
+ "settings.header.connectivity": "CsatlakozÃĄsok",
+ "settings.header.connectivity.description": "A Cider csatlakozÃĄs beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "LejÃĄtszÃĄs ÊrtesÃtÊsek",
+ "settings.header.connectivity.discordRPC.cider": "MegjelenÃtÊs 'Cider'-kÊnt",
+ "settings.header.connectivity.discordRPC.appleMusic": "MegjelenÃtÊs 'Apple Music'-kÊnt",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Discord Rich Presence tÃļrlÊse megÃĄllÃtÃĄsnÃĄl",
+ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble KÊsleltetÊs (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedÊlyezÊse",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszÃĄm szÅąrÊse (LastFM)",
+ "settings.header.debug": "HibakeresÊs",
+ "settings.option.debug.copy_log": "NaplÃŗ mÃĄsolÃĄsa a vÃĄgÃŗlapra",
+ "settings.option.debug.openAppData": "Cider mappa megnyitÃĄsa",
+ "settings.header.experimental": "KÃsÊrleti",
+ "settings.header.experimental.description": "A Cider kÃsÊrleti beÃĄllÃtÃĄsainak mÃŗdosÃtÃĄsa.",
+ "settings.option.experimental.unknownPlugin": "Unknown Sources",
+ "settings.option.experimental.unknownPlugin.description": "Allow installion of plugins from repos other than the Cider Plugin Repository",
+ "settings.option.experimental.compactUI": "Kompakt felÃŧlet",
+ "settings.option.window.close_button_hide": "A bezÃĄrÃĄs gomb rejtse el az alkalmazÃĄst",
+ "settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
+ "spatial.notTurnedOn": "A tÊrbeli hangzÃĄs ki van kapcsolva, hasznÃĄlatÃĄhoz kapcsolja be.",
+ "spatial.spatialProperties": "TÊrbeli hang",
+ "spatial.width": "SzÊlessÊg",
+ "spatial.height": "MagassÃĄg",
+ "spatial.depth": "HosszÃēsÃĄg",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Szoba felÊpÃtÊse",
+ "spatial.roomDimensions": "Szoba mÊretei",
+ "spatial.roomPositions": "Szoba pozÃciÃŗi",
+ "spatial.setDimensions": "MÊretek beÃĄllÃtÃĄsa",
+ "spatial.setPositions": "PozÃciÃŗk beÃĄllÃtÃĄsa",
+ "spatial.up": "Fent",
+ "spatial.front": "ElÅl",
+ "spatial.left": "Balra",
+ "spatial.right": "Jobbra",
+ "spatial.back": "HÃĄtul",
+ "spatial.down": "Lent",
+ "spatial.listener": "HallgatÃŗ",
+ "spatial.audioSource": "HangforrÃĄs",
+ "settings.header.unfinished": "Befejezetlen",
+ "remote.web.title": "Cider Remote",
+ "remote.web.description": "Olvasd be ezt a QR-kÃŗdot a telefonoddal, hogy tudd vezÊrelni a lejÃĄtszÃŗt.",
+ "about.thanks": "KÃļszÃļnet a Cider Collective csapatÃĄnak Ês minden hozzÃĄjÃĄrulÃŗnak."
+}
diff --git a/src/i18n/in_ID.json b/src/i18n/in_ID.json
new file mode 100644
index 00000000..8f257626
--- /dev/null
+++ b/src/i18n/in_ID.json
@@ -0,0 +1,309 @@
+{
+ "i18n.languageName": "Bahasa Indonesia",
+ "i18n.languageNameEnglish": "Indonesian",
+ "i18n.category": "main",
+ "i18n.authors": "@crystalshower",
+ "app.name": "Cider",
+ "date.format": "${d} ${m}, ${y}",
+ "dialog.cancel": "Batal",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Memperbarui Pustaka lagu...",
+ "notification.updatingLibraryAlbums": "Memperbarui Pustaka album...",
+ "notification.updatingLibraryArtists": "Memperbarui Pustaka artis...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "Pelajari lebih lanjut",
+ "term.accountSettings": "Pengaturan Akun",
+ "term.logout": "Keluar",
+ "term.login": "Masuk",
+ "term.about": "Tentang",
+ "term.privateSession": "Sesi Pribadi",
+ "term.queue": "Antrian",
+ "term.history": "Riwayat",
+ "term.search": "Cari",
+ "term.library": "Pustaka",
+ "term.listenNow": "Dengarkan Sekarang",
+ "term.browse": "Telusuri",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "Baru Ditambahkan",
+ "term.songs": "Lagu",
+ "term.albums": "Album",
+ "term.artists": "Artis",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Playlist",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "Playlist Baru",
+ "term.newPlaylistFolder": "Folder Playlist Baru",
+ "term.createNewPlaylist": "Buat Playlist Baru",
+ "term.createNewPlaylistFolder": "Buat Folder Playlist Baru",
+ "term.deletePlaylist": "Yakin ingin menghapus playlist ini?",
+ "term.play": "Mainkan",
+ "term.pause": "Jeda",
+ "term.previous": "Sebelumnya",
+ "term.next": "Selanjutnya",
+ "term.shuffle": "Acak",
+ "term.repeat": "Ulangi",
+ "term.volume": "Volume",
+ "term.mute": "Bisu",
+ "term.unmute": "Bunyikan",
+ "term.share": "Bagikan",
+ "term.share.success": "Disalin ke clipboard",
+ "term.settings": "Pengaturan",
+ "term.seeAll": "Lihat Semua",
+ "term.sortBy": "Urutkan Berdasarkan",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artis",
+ "term.sortBy.name": "Nama",
+ "term.sortBy.genre": "Genre",
+ "term.sortBy.releaseDate": "Tanggal Rilis",
+ "term.sortBy.duration": "Durasi",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Terkecil",
+ "term.sortOrder.descending": "Terbesar",
+ "term.viewAs": "Lihat Sebagai",
+ "term.viewAs.coverArt": "Cover Art",
+ "term.viewAs.list": "Daftar",
+ "term.size": "Ukuran",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Kompak",
+ "term.enable": "Aktifkan",
+ "term.disable": "Nonaktifkan",
+ "term.enabled": "Diaktifkan",
+ "term.disabled": "Dinonaktikan",
+ "term.connect": "Sambungkan",
+ "term.connecting": "Menyambungkan",
+ "term.disconnect": "Terputus",
+ "term.authed": "Diotentikasi",
+ "term.confirm": "Konfirmasi?",
+ "term.more": "Selebihnya",
+ "term.less": "Lebih Sedikit",
+ "term.showMore": "Tampilkan lebih banyak",
+ "term.showLess": "Tampilkan lebih sedikit",
+ "term.topSongs": "Lagu Teratas",
+ "term.latestReleases": "Rilis Terbaru",
+ "term.time.added": "Ditambahkan",
+ "term.time.released": "Dirilis",
+ "term.time.updated": "Diperbarui",
+ "term.time.hours": "jam",
+ "term.time.hour": "jam",
+ "term.time.minutes": "menit",
+ "term.time.minute": "menit",
+ "term.time.seconds": "detik",
+ "term.time.second": "detik",
+ "term.fullscreenView": "Mode Layar Penuh",
+ "term.defaultView": "Mode Default",
+ "term.audioSettings": "Pengaturan Audio",
+ "term.clearAll": "Bersihkan Semua",
+ "term.recentStations": "Stasiun Terbaru",
+ "term.language": "Bahasa",
+ "term.funLanguages": "Senang-senang",
+ "term.noLyrics": "Memuat... / Lirik tidak ditermukan./ Instrumental.",
+ "term.copyright": "Hak cipta",
+ "term.rightsReserved": "Hak cipta dilindungi Undang-undang.",
+ "term.sponsor": "Sponsori proyek ini",
+ "term.ciderTeam": "Cider Team",
+ "term.developer": "Pengembang",
+ "term.socialTeam": "Social Team",
+ "term.socials": "Sosial",
+ "term.contributors": "Kontributor",
+ "term.equalizer": "Equalizer",
+ "term.reset": "Atur Ulang",
+ "term.tracks": "lagu",
+ "term.videos": "Video",
+ "term.menu": "Menu",
+ "term.check": "Cek",
+ "term.aboutArtist": "Tentang {{artistName}}",
+ "term.topResult": "Hasil Teratas",
+ "term.sharedPlaylists": "Playlist yang dibagikan",
+ "term.people": "Orang",
+ "term.newpreset.name": "Nama Preset EQ Baru",
+ "term.addedpreset": "Preset Ditambahkan",
+ "term.deletepreset.warn": "Yakin ingin menghapus preset ini?",
+ "term.deletedpreset": "Preset dihapus",
+ "term.musicVideos": "Video Musik",
+ "term.stations": "Stasiun",
+ "term.curators": "Kurator",
+ "term.appleCurators": "Kurator Apple",
+ "term.radioShows": "Acara Radio",
+ "term.recordLabels": "Label Rekaman",
+ "term.videoExtras": "Bonus Video",
+ "term.top": "Atas",
+ "home.title": "Beranda",
+ "home.recentlyPlayed": "Baru Dimainkan",
+ "home.recentlyAdded": "Baru Ditambahkan",
+ "home.artistsFeed": "Feed Artis Anda",
+ "home.artistsFeed.noArtist": "Ikuti beberapa artis terlebih dahulu dan rilisan terbaru mereka akan ada di sini",
+ "home.madeForYou": "Dibuat Untuk Kamu",
+ "home.friendsListeningTo": "Teman Sedang Mendengarkan",
+ "home.followedArtists": "Artis Diikuti",
+ "error.appleMusicSubRequired": "Apple Music memerlukan langganan.",
+ "error.connectionError": "Terjadi masalah saat menyambungkan ke Apple Music.",
+ "error.noResults": "Tidak ada hasil.",
+ "error.noResults.description": "Coba pencarian baru.",
+ "podcast.followOnCider": "Ikuti Di Cider",
+ "podcast.followedOnCider": "Mengikuti Di Cider",
+ "podcast.subscribeOnItunes": "Langganan Di iTunes",
+ "podcast.subscribedOnItunes": "Berlangganan Di iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Episode",
+ "podcast.playEpisode": "Mainkan Episode",
+ "podcast.website": "Website Podcast",
+ "action.addToLibrary": "Tambahkan ke Pustaka",
+ "action.addToLibrary.success": "Ditambahkan ke Pustaka",
+ "action.addToLibrary.error": "Terjadi Kesalahan Saat Menambahkan Pustaka",
+ "action.removeFromLibrary": "Hapus dari Pustaka",
+ "action.removeFromLibrary.success": "Dihapus dari Pustaka",
+ "action.addToQueue": "Tambahkan ke Antrian",
+ "action.addToQueue.success": "Ditambahkan ke Antrian",
+ "action.addToQueue.error": "Terjadi Kesalahan Saat Menambahkan ke Antrean",
+ "action.removeFromQueue": "Hapus dari Antrian",
+ "action.removeFromQueue.success": "Dihapus dari Antrian",
+ "action.removeFromQueue.error": "Terjadi Kesalahan Saat Menghapus Antrian",
+ "action.createPlaylist": "Buat Playlist Baru",
+ "action.addToPlaylist": "Tambahkan ke Playlist",
+ "action.removeFromPlaylist": "Hapus dari Playlist",
+ "action.addToFavorites": "Tambahkan ke Favorit",
+ "action.follow": "Ikuti",
+ "action.follow.success": "Diikuti",
+ "action.follow.error": "Kesalahan Dalam Mengikuti",
+ "action.unfollow": "Berhenti Mengikuti",
+ "action.unfollow.success": "Sudah Tidak Mengikuti",
+ "action.unfollow.error": "Terjadi Kesalahan Saat Berhenti Mengikuti",
+ "action.playNext": "Mainkan Selanjutnya",
+ "action.playLater": "Mainkan Nanti",
+ "action.startRadio": "Mulai Radio",
+ "action.goToArtist": "Lihat Halaman Artis",
+ "action.goToAlbum": "Lihat Halaman Album",
+ "action.moveToTop": "Pindah ke Atas",
+ "action.share": "Bagikan",
+ "action.rename": "Ubah Nama",
+ "action.love": "Suka",
+ "action.unlove": "Batal Suka",
+ "action.dislike": "Tidak Suka",
+ "action.undoDislike": "Batalkan Tidak Suka",
+ "action.showWebRemoteQR": "Remot Web",
+ "action.playTracksNext": "Mainkan ${app.selectedMediaItems.length} lagu selanjutnya",
+ "action.playTracksLater": "Mainkan ${app.selectedMediaItems.length} lagu nanti",
+ "action.removeTracks": "Hapus ${self.selectedItems.length} lagu dari antrian",
+ "action.import": "Impor",
+ "action.export": "Ekspor",
+ "action.showAlbum": "Tampilkan Album Sepenuhnya",
+ "action.tray.minimize": "Sembunyikan ke Tray",
+ "action.tray.quit": "Keluar",
+ "action.tray.show": "Tampilkan",
+ "action.update": "Perbarui",
+ "action.copy": "Salin",
+ "action.newpreset": "Preset Baru...",
+ "action.deletepreset": "Hapus Preset",
+ "settings.header.general": "Umum",
+ "settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.",
+ "settings.option.general.language": "Bahasa",
+ "settings.option.general.language.main": "Bahasa",
+ "settings.option.general.language.fun": "Bahasa Candaan",
+ "settings.option.general.language.unsorted": "Tidak disortir",
+ "settings.option.general.updateCider": "Perbarui Cider",
+ "settings.option.general.updateCider.branch": "Branch Pembaruan Cider",
+ "settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider",
+ "settings.option.general.updateCider.branch.main": "Stable",
+ "settings.option.general.updateCider.branch.develop": "Development",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.",
+ "settings.option.audio.quality": "Kualitas Audio",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "sampai dari 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "Tinggi",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "Standar",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "Transisi Audio Mulus",
+ "settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Mengubah kekuatan pemrosesan yang dilakukan pada audio. (Agresif dapat menghasilkan hasil yang tidak diinginkan)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standar",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)",
+ "settings.header.visual": "Visual",
+ "settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela",
+ "settings.header.visual.windowBackgroundStyle.none": "Tidak Ada",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
+ "settings.header.visual.windowBackgroundStyle.image": "Gambar",
+ "settings.option.visual.animatedArtwork": "Artwork Bergerak",
+ "settings.header.visual.animatedArtwork.always": "Selalu",
+ "settings.header.visual.animatedArtwork.limited": "Terbatas untuk halaman dan entri khusus",
+ "settings.header.visual.animatedArtwork.disable": "Matikan di semua tempat",
+ "settings.option.visual.animatedArtworkQuality": "Kualitas Artwork Bergerak",
+ "settings.header.visual.animatedArtworkQuality.low": "Rendah",
+ "settings.header.visual.animatedArtworkQuality.medium": "Medium",
+ "settings.header.visual.animatedArtworkQuality.high": "Tinggi",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Sangat Tinggi",
+ "settings.header.visual.animatedArtworkQuality.extreme": "Paling Tinggi",
+ "settings.option.visual.animatedWindowBackground": "Jendela Latar Belakang Bergerak",
+ "settings.option.visual.hardwareAcceleration": "Akselerasi Perangkat Keras (HW Acceleration)",
+ "settings.option.visual.hardwareAcceleration.description": "Membutuhkan dibuka ulang",
+ "settings.header.visual.hardwareAcceleration.default": "Default",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Tema",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Gelap",
+ "settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi",
+ "settings.header.lyrics": "Lyrics",
+ "settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Bahasa Terjemahan Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "Aktifkan Lirik Youtube untuk Video Musik",
+ "settings.header.connectivity": "Konektivitas",
+ "settings.header.connectivity.description": "Sesuaikan pengaturan konektivitas untuk Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran",
+ "settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence saat dijeda",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktifkan Last.fm Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Hapus featuring artist dari judul lagu (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)",
+ "settings.header.experimental": "Eksperimental",
+ "settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.",
+ "settings.option.experimental.compactUI": "UI Kompak",
+ "settings.option.window.close_button_hide": "Tombol Tutup Menyembunyikan Aplikasi",
+ "settings.option.experimental.copy_log": "Salin log ke clipboard",
+ "settings.option.experimental.inline_playlists": "Playlist dan Album Sebaris",
+ "spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.",
+ "spatial.spatialProperties": "Spatial Properties",
+ "spatial.width": "Lebar",
+ "spatial.height": "Tinggi",
+ "spatial.depth": "Kedalaman",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Bahan Ruangan",
+ "spatial.roomDimensions": "Dimensi Ruangan",
+ "spatial.roomPositions": "Posisi Ruangan",
+ "spatial.setDimensions": "Atur Dimensi",
+ "spatial.setPositions": "Atur Posisi",
+ "spatial.up": "Atas",
+ "spatial.front": "Depan",
+ "spatial.left": "Kiri",
+ "spatial.right": "Kanan",
+ "spatial.back": "Belakang",
+ "spatial.down": "Bawah",
+ "spatial.listener": "Pendegar",
+ "spatial.audioSource": "Sumber Audio",
+ "settings.header.unfinished": "Belum Diselesaikan",
+ "remote.web.title": "Remote Cider",
+ "remote.web.description": "Pindai kode QR untuk memasangkan ponsel Anda dengan Cider.",
+ "about.thanks": "Terima kasih yang sebesar-besarnya kepada Cider Collective Team dan semua kontributor kami."
+}
\ No newline at end of file
diff --git a/src/i18n/it_IT.jsonc b/src/i18n/it_IT.json
similarity index 81%
rename from src/i18n/it_IT.jsonc
rename to src/i18n/it_IT.json
index 5c3589f0..51209dcc 100644
--- a/src/i18n/it_IT.jsonc
+++ b/src/i18n/it_IT.json
@@ -1,25 +1,15 @@
-{ // Base File
-
- // i18n Info
- "i18n.languageName": "Italiano", // name of language in native language
- "i18n.languageNameEnglish": "Italian", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "ConnectedR", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "Italiano",
+ "i18n.languageNameEnglish": "Italian",
+ "i18n.category": "main",
+ "i18n.authors": "ConnectedR",
"app.name": "Cider",
-
"date.format": "${d} ${m}, ${y}",
-
- // Dialogs
"dialog.cancel": "Annulla",
"dialog.ok": "OK",
-
- // Notification
"notification.updatingLibrarySongs": "Aggiornamento raccolta brani...",
"notification.updatingLibraryAlbums": "Aggornamento raccolta album...",
"notification.updatingLibraryArtists": "Aggiornamento raccolta artisti...",
- // Terms
"term.appleInc": "Apple Inc.",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
@@ -91,10 +81,10 @@
"term.less": "Meno",
"term.showMore": "Mostra altro",
"term.showLess": "Mostra menu",
- "term.topSongs" : "Brani top",
+ "term.topSongs": "Brani top",
"term.latestReleases": "Uscite Recenti",
"term.time.added": "Aggiunto",
- "term.time.released": "Rilasciato",
+ "term.time.released": "Rilasciato",
"term.time.updated": "Aggiornato",
"term.time.hours": "ore",
"term.time.hour": "ora",
@@ -120,12 +110,10 @@
"term.contributors": "Contribuenti",
"term.equalizer": "Equalizzatore",
"term.reset": "Reset",
- "term.tracks": "brani", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "Video",
+ "term.tracks": "brani",
+ "term.videos": "Video",
"term.menu": "Menu",
"term.check": "Controllo",
-
- // Home
"home.title": "Casa",
"home.recentlyPlayed": "Ascoltato di recente",
"home.recentlyAdded": "Aggiunto di recente",
@@ -134,13 +122,10 @@
"home.madeForYou": "Per Te",
"home.friendsListeningTo": "Ascoltato da Amici",
"home.followedArtists": "Artisti Seguiti",
- // Errors
"error.appleMusicSubRequired": "Apple Music ha bisogno di un abbonamento.",
"error.connectionError": "C'è stato un problema nella connessione a Apple Music.",
"error.noResults": "Nessun risultato.",
"error.noResults.description": "Prova un'altra ricerca.",
-
- //Podcasts
"podcast.followOnCider": "Segui in Cider",
"podcast.followedOnCider": "Seguiti in Cider",
"podcast.subscribeOnItunes": "Iscriviti in iTunes",
@@ -149,8 +134,6 @@
"podcast.episodes": "Episodi",
"podcast.playEpisode": "Ascolta Episodio",
"podcast.website": "Sito Podcast",
-
- // Actions
"action.addToLibrary": "Aggiungi a Raccolta",
"action.addToLibrary.success": "Aggiunto a Raccolta",
"action.addToLibrary.error": "Errore ad Aggiungere a Raccolta",
@@ -191,122 +174,96 @@
"action.import": "Importa",
"action.export": "Esporta",
"action.showAlbum": "Mostra Album Intero",
- // Waiting on Core for moving plugin to app.ts
"action.tray.minimize": "Minimizza nel tray",
"action.tray.quit": "Chiudi",
"action.tray.show": "Mostra",
-
- // Settings - General
"settings.header.general": "Generale",
"settings.header.general.description": "Cambia le impostazioni generali di Cider.",
"settings.option.general.language": "Lingua",
-
- // Language optgroups
"settings.option.general.language.main": "Lingue",
"settings.option.general.language.fun": "Lingue da Scherzo",
"settings.option.general.language.unsorted": "Non ordinato",
-
- // Settings - Audio
"settings.header.audio": "Audio",
"settings.header.audio.description": "Cambia le impostazioni di audio di Cider.",
- "settings.option.audio.quality": "Qualità di audio", // Dropdown
+ "settings.option.audio.quality": "Qualità di audio",
"settings.header.audio.quality.high": "Alta",
"settings.header.audio.quality.low": "Bassa",
"settings.header.audio.quality.auto": "Automatica",
- "settings.option.audio.seamlessTransition": "Transizioni Audio Immediate", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Attiva funzionalità avanzata", // Toggle
+ "settings.option.audio.seamlessTransition": "Transizioni Audio Immediate",
+ "settings.option.audio.enableAdvancedFunctionality": "Attiva funzionalità avanzata",
"settings.option.audio.enableAdvancedFunctionality.description": "Attiva AudioContext per funzionalià audio avanzata Normalizzazione Audio, Equalizzatori and Visualizzatori, perÃ˛ su alcuni sistemi potrebbero causare lag nei brani.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizzazione Audio", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizzazione Audio",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizza il volume massimo nei brani per un'esperienza d'ascolto piÚ uniforme.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spazializza l'audio per dare un effetto piÚ tridimensionale (nota: questo non è Dolby Atmos)",
- // Settings - Visual
- "settings.header.visual": "Visuale",
+ "settings.header.visual": "Visuale",
"settings.header.visual.description": "Cambia le impostazioni visuali per Cider.",
- "settings.option.visual.windowBackgroundStyle": "Stile Sfondo Finestra", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "Stile Sfondo Finestra",
"settings.header.visual.windowBackgroundStyle.none": "Nessuno",
"settings.header.visual.windowBackgroundStyle.artwork": "Copertina",
"settings.header.visual.windowBackgroundStyle.image": "Immagine",
- "settings.option.visual.animatedArtwork": "Copertina Animata", // Dropdown
+ "settings.option.visual.animatedArtwork": "Copertina Animata",
"settings.header.visual.animatedArtwork.always": "Sempre",
"settings.header.visual.animatedArtwork.limited": "Limita ad alcune pagine",
"settings.header.visual.animatedArtwork.disable": "Disattiva dappertutto",
- "settings.option.visual.animatedArtworkQuality": "Qualità Copertina Animata", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "Qualità Copertina Animata",
"settings.header.visual.animatedArtworkQuality.low": "Bassa",
"settings.header.visual.animatedArtworkQuality.medium": "Media",
"settings.header.visual.animatedArtworkQuality.high": "Alta",
"settings.header.visual.animatedArtworkQuality.veryHigh": "Molto Alta",
"settings.header.visual.animatedArtworkQuality.extreme": "Estrema",
- "settings.option.visual.animatedWindowBackground": "Sfondo Finestra Animato", // Toggle
- "settings.option.visual.hardwareAcceleration": "Accelerazione Hardware", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "Sfondo Finestra Animato",
+ "settings.option.visual.hardwareAcceleration": "Accelerazione Hardware",
"settings.option.visual.hardwareAcceleration.description": "Richiede riavvio del'app",
- "settings.header.visual.hardwareAcceleration.default": "Normale",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Mostra Informazione Personale", // Toggle
-
- // Settings - Lyrics
+ "settings.header.visual.hardwareAcceleration.default": "Normale",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.option.visual.showPersonalInfo": "Mostra Informazione Personale",
"settings.header.lyrics": "Testi",
"settings.header.lyrics.description": "Aggiusta le impostazioni dei testi per Cider.",
- "settings.option.lyrics.enableMusixmatch": "Attiva Testi Musixmatch", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Attiva Modalità Karaoke (solo Musixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Lingua di Traduzione MusixMatch Preferita", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Attiva Testi da YouTube Per i Video ", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Attiva Testi Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Attiva Modalità Karaoke (solo Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Lingua di Traduzione MusixMatch Preferita",
+ "settings.option.lyrics.enableYoutubeLyrics": "Attiva Testi da YouTube Per i Video ",
"settings.header.connectivity": "Connectività ",
"settings.header.connectivity.description": "Cambia le impostazioni di connettività per Cider.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Notifiche di Riproduzione", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Notifiche di Riproduzione",
"settings.header.connectivity.discordRPC.cider": "Mostra come 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "Mostra come 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Pausare Disattiva la Rich Presence", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "Ritardo di Scrobbling LastFM (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Attiva Now Playing in LastFM",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "Rimouvi Artisti Extra dal Titolo del Brano (LastFM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtra Brani Ripetuti (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
+ "settings.option.connectivity.discordRPC.clearOnPause": "Pausare Disattiva la Rich Presence",
+ "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM",
+ "settings.option.connectivity.lastfmScrobble.delay": "Ritardo di Scrobbling LastFM (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Attiva Now Playing in LastFM",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Rimouvi Artisti Extra dal Titolo del Brano (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtra Brani Ripetuti (LastFM)",
"settings.header.experimental": "Sperimentale",
"settings.header.experimental.description": "Cambia impostazioni sperimentali per Cider.",
- "settings.option.experimental.compactUI": "Interfaccia Compatta", // Toggle
+ "settings.option.experimental.compactUI": "Interfaccia Compatta",
"settings.option.experimental.closeButtonBehaviour": "Comportamento Tasto Chiudi",
"settings.option.experimental.closeButtonBehaviour.quit": "Chiudi Cider",
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Minimizza",
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Minimizza Nel Tray",
- // Refer to term.disabled & term.enabled
-
- // Spatialization Menu
"spatial.notTurnedOn": "Spazializzazione Audio è disattivata. Attivala prima.",
- "spatial.spatialProperties" : "Proprietà Spaziali",
- "spatial.width" : "Larghezza",
- "spatial.height" : "Altezza",
- "spatial.depth" : "Profondità ",
- "spatial.gain" : "Guadagno",
- "spatial.roomMaterials" : "Materiali Stanza",
- "spatial.roomDimensions" : "Dimensioni Stanza",
- "spatial.roomPositions" : "Posizioni Stanza",
- "spatial.setDimensions" : "Imposta Dimensioni",
- "spatial.setPositions" : "Imposta Posizioni",
- "spatial.up" : "Sopra",
- "spatial.front" : "In fronte",
- "spatial.left" : "Sinistra",
- "spatial.right" : "Destra",
- "spatial.back" : "Dietro",
- "spatial.down" : "Sotto",
- "spatial.listener" : "Utente",
- "spatial.audioSource" : "Fonte Audio",
-
- // Settings - Unfinished
+ "spatial.spatialProperties": "Proprietà Spaziali",
+ "spatial.width": "Larghezza",
+ "spatial.height": "Altezza",
+ "spatial.depth": "Profondità ",
+ "spatial.gain": "Guadagno",
+ "spatial.roomMaterials": "Materiali Stanza",
+ "spatial.roomDimensions": "Dimensioni Stanza",
+ "spatial.roomPositions": "Posizioni Stanza",
+ "spatial.setDimensions": "Imposta Dimensioni",
+ "spatial.setPositions": "Imposta Posizioni",
+ "spatial.up": "Sopra",
+ "spatial.front": "In fronte",
+ "spatial.left": "Sinistra",
+ "spatial.right": "Destra",
+ "spatial.back": "Dietro",
+ "spatial.down": "Sotto",
+ "spatial.listener": "Utente",
+ "spatial.audioSource": "Fonte Audio",
"settings.header.unfinished": "Incompleto",
-
- // Web Remote
"remote.web.title": "Telecomando Cider",
"remote.web.description": "Leggi il codice QR per connettere il tuo telefono con questa istanza di Cider",
-
- // About
"about.thanks": "Grazie mille alla Team di Cider Collective e tutti i nostri contribuenti."
}
\ No newline at end of file
diff --git a/src/i18n/ja_JP.jsonc b/src/i18n/ja_JP.json
similarity index 83%
rename from src/i18n/ja_JP.jsonc
rename to src/i18n/ja_JP.json
index 7b31f748..a416f930 100644
--- a/src/i18n/ja_JP.jsonc
+++ b/src/i18n/ja_JP.json
@@ -1,30 +1,20 @@
{
- // i18n Info
- "i18n.languageName": "æĨæŦčĒ", // name of language in native language
- "i18n.languageNameEnglish": "Japanese", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+ "i18n.languageName": "æĨæŦčĒ",
+ "i18n.languageNameEnglish": "Japanese",
+ "i18n.category": "main",
+ "i18n.authors": "@maikirakiwi",
"app.name": "Cider",
-
"date.format": "${y}åš´${m}æ${d}æĨ",
-
- // Dialogs
"dialog.cancel": "ããŖãŗãģãĢ",
"dialog.ok": "OK",
-
- // Notification
"notification.updatingLibrarySongs": "ãŠã¤ããŠãĒãŽæ´æ°ä¸...",
"notification.updatingLibraryAlbums": "ãŠã¤ããŠãĒãŽæ´æ°ä¸...",
"notification.updatingLibraryArtists": "ãŠã¤ããŠãĒãŽæ´æ°ä¸...",
-
- // Terms
- "term.appleMusic": "Apple Music", // Follows brand term
- "term.applePodcasts": "Apple Podcasts", // Follows brand term
- "term.itunes": "iTunes", // Follows brand term
- "term.github": "GitHub", // Follows brand term
- "term.discord": "Discord", // Follows brand term
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
"term.learnMore": "čŠŗããæ
å ą",
"term.accountSettings": "ãĸãĢãĻãŗãč¨åŽ",
"term.logout": "ãĩã¤ãŗãĸãĻã",
@@ -63,6 +53,7 @@
"term.sortBy.genre": "ã¸ãŖãŗãĢ",
"term.sortBy.releaseDate": "é
äŋĄéå§æĨ",
"term.sortBy.duration": "æé",
+ "term.sortBy.dateAdded": "čŋŊå æĨ",
"term.sortOrder": "ä¸Ļãšæŋã",
"term.sortOrder.ascending": "æé ",
"term.sortOrder.descending": "éé ",
@@ -105,7 +96,7 @@
"term.language": "č¨čĒ",
"term.noLyrics": "ããŧããŖãŗã°ãã / æčŠãčĻã¤ãããĒã / 卿ĨŊæ˛.",
"term.copyright": "čäŊ樊",
- "term.rightsReserved": "All Rights Reserved.", // Translation does not exist in Japanese
+ "term.rightsReserved": "All Rights Reserved.",
"term.sponsor": "ãšããŗãĩãŧãĢãĒããžããã",
"term.ciderTeam": "Cider ããŧã ",
"term.developer": "éįēč
",
@@ -113,13 +104,16 @@
"term.contributors": "č˛ĸįŽč
",
"term.equalizer": "ã¤ãŗãŠã¤ãļãŧ",
"term.reset": "ãĒãģãã",
- "term.tracks": "æ˛", // Assume x amount of tracks. e.g. 50 tracks
+ "term.track": {
+ "one": "æ˛",
+ "other": "æ˛"
+ },
+ "term.tracks": "æ˛",
"term.videos": "ãããĒ",
"term.menu": "ãĄããĨãŧ",
"term.check": "įĸēčĒ",
- "term.aboutArtist": "{{artistName}}ãĢã¤ããĻ", // e.g. 'About Doja Cat'
-
- // Home
+ "term.aboutArtist": "{{artistName}}ãĢã¤ããĻ",
+ "term.version": "ããŧã¸ã§ãŗ",
"home.title": "ããŧã ",
"home.recentlyPlayed": "æčŋãŽåį",
"home.recentlyAdded": "æčŋčŋŊå ããé
įŽ",
@@ -128,14 +122,10 @@
"home.madeForYou": "ããĒããĢãããã",
"home.friendsListeningTo": "åéãč´ããĻãã",
"home.followedArtists": "ããŠããŧããĻãããĸãŧããŖãšã",
-
- // Errors
"error.appleMusicSubRequired": "Apple MusicãŽãĩããšã¯ãĒããˇã§ãŗãåŋ
čĻã§ãã",
"error.connectionError": "Apple MusicãĢæĨįļã§ããžããã",
"error.noResults": "čĻã¤ãããžããã§ãã",
"error.noResults.description": "ããä¸åēĻãčŠĻããã ããã",
-
- //Podcasts
"podcast.followOnCider": "Ciderã§ããŠããŧ",
"podcast.followedOnCider": "ããŠããŧä¸",
"podcast.subscribeOnItunes": "iTunesã§čŗŧčĒ",
@@ -144,8 +134,6 @@
"podcast.episodes": "įĒįĩ",
"podcast.playEpisode": "åį",
"podcast.website": "Podcast ãĻã§ã",
-
- // Actions
"action.addToLibrary": "ãŠã¤ããŠãĒãĢčŋŊå ",
"action.addToLibrary.success": "ãŠã¤ããŠãĒãĢčŋŊå ãããžãã",
"action.addToLibrary.error": "ãŠã¤ããŠãĒã¸ãŽčŋŊå ãĢå¤ąæããžãã",
@@ -190,13 +178,19 @@
"action.tray.show": "襨į¤ē",
"action.update": "ãĸããããŧã",
"action.copy": "ãŗããŧ",
- "action.newpreset": "ããĨãŧããĒãģãã", // Equalizer Preset
- "action.deletepreset": "ããĒãģãããåé¤", // Equalizer Preset
-
- // Settings - Audio
+ "action.newpreset": "ããĨãŧããĒãģãã",
+ "action.deletepreset": "ããĒãģãããåé¤",
+ "settings.header.general": "ä¸čŦ",
+ "settings.header.general.description": "CiderãŽä¸čŦč¨åŽ",
+ "settings.option.general.language.main": "ãĄã¤ãŗ",
+ "settings.option.general.language.fun": "čãã",
+ "settings.option.general.language.unsorted": "æĒåéĄ",
+ "settings.option.general.updateCider": "Cider æ´æ°",
"settings.header.audio": "ãĒãŧããŖãĒ",
"settings.header.audio.description": "CiderãŽãĒãŧããŖãĒč¨åŽ",
- "settings.option.audio.quality": "éŗčŗĒ", // Dropdown
+ "settings.option.audio.volumeStep": "éŗéčĒŋæ´ãŽãšããã",
+ "settings.option.audio.maxVolume": "æå¤§éŗé",
+ "settings.option.audio.quality": "éŗčŗĒ",
"settings.header.audio.quality.hireslossless": "ãã¤ãŦãžããšãŦãš",
"settings.header.audio.quality.hireslossless.description": "(æå¤§č§ŖååēĻ 24 ãããīŧ192 kHz)",
"settings.header.audio.quality.lossless": "ããšãŦãš",
@@ -205,81 +199,65 @@
"settings.header.audio.quality.high": "éĢåčŗĒ",
"settings.header.audio.quality.standard": "éĢåšį",
"settings.header.audio.quality.auto": "čĒå",
- "settings.option.audio.seamlessTransition": "æ˛éãĒãã§åį", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "å
é˛įãĒæŠčŊ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext æŠčŊãæåšãĢããã¨ããĒãŧããŖãĒããŧããŠã¤ãēãįŠēéãĒãŧããŖãĒãã¤ãŗãŠã¤ãļãŧãĒãŠãŽæŠčŊãäŊŋį¨ã§ããžãããéŗãéåãããããããžããã", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider AEPâĸī¸", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "å§į¸ŽéŗæēãéĢč§ŖååēĻãĢåĻįãããã¨ãĢããŖãĻãããšãŦãšį¸åŊãŽéŗčŗĒãĢåä¸ãããžãã", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "AEPãŽåŧˇã", // Toggle
+ "settings.option.audio.seamlessTransition": "æ˛éãĒãã§åį",
+ "settings.option.audio.enableAdvancedFunctionality": "å
é˛įãĒæŠčŊ",
+ "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext æŠčŊãæåšãĢããã¨ããĒãŧããŖãĒããŧããŠã¤ãēãįŠēéãĒãŧããŖãĒãã¤ãŗãŠã¤ãļãŧãĒãŠãŽæŠčŊãäŊŋį¨ã§ããžãããéŗãéåãããããããžããã",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "å§į¸ŽéŗæēãéĢč§ŖååēĻãĢåĻįãããã¨ãĢããŖãĻãããšãŦãšį¸åŊãŽéŗčŗĒãĢåä¸ãããžãã",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAPãŽåŧˇã",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "æ¨æē",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "éĢ",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ãĒãŧããŖãĒããŧããŠã¤ãē", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ãĒãŧããŖãĒããŧããŠã¤ãē",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ããžããžãĒæ˛ãŽéŗéãåä¸ãĢããããæ´ãŖãéŗãæĨŊããããããĢããæŠčŊã§ãã",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ãĒãŧããŖãĒįŠēéå", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ãĒãŧããŖãĒįŠēéå",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ãĒãŧããŖãĒãįŠēéãĢåæŖãããæŠčŊã§ãã (ããĢããŧãĸããĸãšã§ã¯ãããžãã)",
-
- // Settings - Visual
"settings.header.visual": "ãã¸ãĨãĸãĢ",
"settings.header.visual.description": "CiderãŽãã¸ãĨãĸãĢč¨åŽ",
- "settings.option.visual.windowBackgroundStyle": "ãĸããĒãĻã¤ãŗããĻãŽčæ¯ãšãŋã¤ãĢ", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "ãĸããĒãĻã¤ãŗããĻãŽčæ¯ãšãŋã¤ãĢ",
"settings.header.visual.windowBackgroundStyle.none": "ãĒã",
"settings.header.visual.windowBackgroundStyle.artwork": "ãĸãŧãã¯ãŧã¯",
- "settings.option.visual.animatedArtwork": "ãĸããĄãŧãˇã§ãŗãĸãŧãã¯ãŧã¯", // Dropdown
+ "settings.option.visual.animatedArtwork": "ãĸããĄãŧãˇã§ãŗãĸãŧãã¯ãŧã¯",
"settings.header.visual.animatedArtwork.always": "常ãĢ襨į¤ē",
"settings.header.visual.animatedArtwork.limited": "ãĸãŧããŖãšãããŧã¸ãŽãŋ襨į¤ē",
"settings.header.visual.animatedArtwork.disable": "ãĒã",
- "settings.option.visual.animatedArtworkQuality": "ãĸããĄãŧãˇã§ãŗãĸãŧãã¯ãŧã¯ãŽåčŗĒ", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "ãĸããĄãŧãˇã§ãŗãĸãŧãã¯ãŧã¯ãŽåčŗĒ",
"settings.header.visual.animatedArtworkQuality.low": "äŊ",
"settings.header.visual.animatedArtworkQuality.medium": "ä¸",
"settings.header.visual.animatedArtworkQuality.high": "éĢ",
"settings.header.visual.animatedArtworkQuality.veryHigh": "čļ
éĢ",
"settings.header.visual.animatedArtworkQuality.extreme": "æéĢ",
- "settings.option.visual.animatedWindowBackground": "ãĸããĒãĻãŖãŗããĻãŽčæ¯ããĸããĄãŧãˇã§ãŗå", // Toggle
- "settings.option.visual.hardwareAcceleration": "ããŧããĻã§ãĸ ãĸã¯ãģãŠãŦãŧãˇã§ãŗ", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "ãĸããĒãĻãŖãŗããĻãŽčæ¯ããĸããĄãŧãˇã§ãŗå",
+ "settings.option.visual.hardwareAcceleration": "ããŧããĻã§ãĸ ãĸã¯ãģãŠãŦãŧãˇã§ãŗ",
"settings.option.visual.hardwareAcceleration.description": "ãĸããĒãåčĩˇåããåŋ
čĻããããžã",
"settings.header.visual.hardwareAcceleration.default": "æĸåŽ",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "ããããŖãŧãĢã襨į¤ē", // Toggle
-
- // Settings - General (Reserved)
- "settings.header.general": "ä¸čŦ",
- "settings.header.general.description": "CiderãŽä¸čŦč¨åŽ",
-
- // Settings - Lyrics
+ "settings.header.visual.theme": "ããŧã",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "ããŧã¯",
+ "settings.option.visual.showPersonalInfo": "ããããŖãŧãĢã襨į¤ē",
"settings.header.lyrics": "æčŠ",
"settings.header.lyrics.description": "æčŠãŽčĄ¨į¤ēč¨åŽ",
- "settings.option.lyrics.enableMusixmatch": "Musixmatchã§æčŠã襨į¤ēãã", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "ãĢãŠãĒãąãĸãŧããæåšãĢãã (MusixmatchãŽãŋ)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "æčŠãŽåĒå
č¨čĒ", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "YouTubeãŽæčŠãããĨãŧã¸ãã¯ãããĒãĢäŊŋį¨ãã", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Musixmatchã§æčŠã襨į¤ēãã",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "ãĢãŠãĒãąãĸãŧããæåšãĢãã (MusixmatchãŽãŋ)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "æčŠãŽåĒå
č¨čĒ",
+ "settings.option.lyrics.enableYoutubeLyrics": "YouTubeãŽæčŠãããĨãŧã¸ãã¯ãããĒãĢäŊŋį¨ãã",
"settings.header.connectivity": "ãĸããĒã¨éŖæē",
"settings.header.connectivity.description": "CiderãŽéŖæēč¨åŽ",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
"settings.header.connectivity.discordRPC.cider": "'Cider' ã襨į¤ēãã",
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' ã襨į¤ēãã",
- "settings.option.connectivity.discordRPC.clearOnPause": "䏿åæĸæãĢDiscord Rich Presenceãã¯ãĒãĸãã", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "䏿åæĸæãĢDiscord Rich Presenceãã¯ãĒãĸãã",
+ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling",
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable LastFM Now Playing",
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - General - Update Cider
- "settings.option.general.updateCider": "Cider æ´æ°", // Button
-
- // Settings - Experimental
"settings.header.experimental": "čŠĻé¨įãĒæŠčŊ",
"settings.header.experimental.description": "éįēä¸ãŽåŽé¨įãĒæŠčŊã¯ä¸åŽå
¨ã§ä¸åŽåŽã§ããå¯čŊæ§ããããžã",
- "settings.option.experimental.compactUI": "ãŗãŗãã¯ãã¤ãŗãŋãŧãã§ãŧãš", // Toggle
- "settings.option.experimental.close_button_hide": "ãéãããããŋãŗã§ãĸããĒãé ããžã", // Dropdown
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
+ "settings.option.experimental.compactUI": "ãŗãŗãã¯ãã¤ãŗãŋãŧãã§ãŧãš",
+ "settings.option.window.close_button_hide": "ãéãããããŋãŗã§ãĸããĒãé ããžã",
+ "settings.option.experimental.copy_log": "ãã°ããŗããŧãã",
+ "settings.option.experimental.inline_playlists": "ããŦã¤ãĒãšããã¤ãŗãŠã¤ãŗã§čĄ¨į¤ē",
"spatial.spatialProperties": "įŠēéåãŽãããããŖ",
"spatial.width": "åš
",
"spatial.height": "éĢã",
@@ -298,14 +276,8 @@
"spatial.down": "ä¸",
"spatial.listener": "ãĒãšããŧ",
"spatial.audioSource": "éŗæē",
-
- // Settings - Unfinished
"settings.header.unfinished": "æĒåŽæ",
-
- // Web Remote
"remote.web.title": "Cider ãĒãĸãŧã",
"remote.web.description": "QRãŗãŧããäŊŋį¨ããĻãCiderã¨ãšããŧãããŠãŗãããĸãĒãŗã°ãã",
-
- //About
"about.thanks": "Cider Collective ã¨ãååããã ããč˛ĸįŽč
æ§ãĢæčŦįŗãä¸ããžãã"
}
\ No newline at end of file
diff --git a/src/i18n/ko_KR.json b/src/i18n/ko_KR.json
new file mode 100644
index 00000000..4c8aea89
--- /dev/null
+++ b/src/i18n/ko_KR.json
@@ -0,0 +1,395 @@
+{
+ "i18n.languageName": "íęĩė´ (KR)",
+ "i18n.languageNameEnglish": "Korean (KR)",
+ "i18n.category": "main",
+ "i18n.authors": "@Hazealign @iodes",
+ "app.name": "Cider",
+ "date.format": "${y}. ${m}. ${d}",
+ "dialog.cancel": "뎍ė",
+ "dialog.ok": "íė¸",
+ "notification.updatingLibrarySongs": "ëŧė´ë¸ëŦëĻŦ ë
¸ë ė
ë°ė´í¸ ė¤...",
+ "notification.updatingLibraryAlbums": "ëŧė´ë¸ëŦëĻŦ ė¨ë˛ ė
ë°ė´í¸ ė¤...",
+ "notification.updatingLibraryArtists": "ëŧė´ë¸ëŦëĻŦ ėí°ė¤í¸ ė
ë°ė´í¸ ė¤...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "ë ėėëŗ´ę¸°",
+ "term.accountSettings": "ęŗė ė¤ė ",
+ "term.logout": "ëĄęˇ¸ėė",
+ "term.login": "ëĄęˇ¸ė¸",
+ "term.about": "ė ëŗ´",
+ "term.privateSession": "ę°ė¸ ė¸ė
",
+ "term.queue": "ë기ė´",
+ "term.history": "기ëĄ",
+ "term.search": "ę˛ė",
+ "term.library": "ëŧė´ë¸ëŦëĻŦ",
+ "term.listenNow": "ė§ę¸ ëŖę¸°",
+ "term.browse": "ëëŦëŗ´ę¸°",
+ "term.radio": "ëŧëė¤",
+ "term.recentlyAdded": "ėĩęˇŧ ėļę°ë íëĒŠ",
+ "term.songs": "ë
¸ë",
+ "term.albums": "ė¨ë˛",
+ "term.artists": "ėí°ė¤í¸",
+ "term.podcasts": "íėēė¤í¸",
+ "term.playlists": "íë ė´ëĻŦė¤í¸",
+ "term.playlist": "íë ė´ëĻŦė¤í¸",
+ "term.newPlaylist": "ėëĄė´ íë ė´ëĻŦė¤í¸",
+ "term.newPlaylistFolder": "ėëĄė´ íë ė´ëĻŦė¤í¸ í´ë",
+ "term.createNewPlaylist": "ėëĄė´ íë ė´ëĻŦė¤í¸ ë§ë¤ę¸°",
+ "term.createNewPlaylistFolder": "ėëĄė´ íë ė´ëĻŦė¤í¸ í´ë ë§ë¤ę¸°",
+ "term.deletePlaylist": "ė ë§ íë ė´ëĻŦė¤í¸ëĨŧ ėė íėę˛ ėĩëęš?",
+ "term.play": "ėŦė",
+ "term.pause": "ėŧė ė ė§",
+ "term.previous": "ė´ė ",
+ "term.next": "ë¤ė",
+ "term.shuffle": "ė
í",
+ "term.repeat": "ë°ëŗĩ",
+ "term.volume": "ëŗŧëĨ¨",
+ "term.mute": "ėėęą°",
+ "term.unmute": "ėėęą° í´ė ",
+ "term.share": "ęŗĩė ",
+ "term.share.success": "í´ëĻŊëŗ´ëė ëŗĩėŦë¨",
+ "term.settings": "ė¤ė ",
+ "term.seeAll": "ëǍë ëŗ´ę¸°",
+ "term.sortBy": "ė ë Ŧ ë°Šė",
+ "term.sortBy.album": "ė¨ë˛",
+ "term.sortBy.artist": "ėí°ė¤í¸",
+ "term.sortBy.name": "ė´ëĻ",
+ "term.sortBy.genre": "ėĨëĨ´",
+ "term.sortBy.releaseDate": "ėļėėŧ",
+ "term.sortBy.duration": "ėŦėėę°",
+ "term.sortBy.dateAdded": "ėļę°ë ë ė§",
+ "term.sortOrder": "ãą-ã
",
+ "term.sortOrder.ascending": "ė¤ëĻė°¨ė",
+ "term.sortOrder.descending": "ë´ëĻŧė°¨ė",
+ "term.viewAs": "íė ë°Šė",
+ "term.viewAs.coverArt": "ėģ¤ë˛ėí¸",
+ "term.viewAs.list": "ëĒŠëĄ",
+ "term.size": "íŦ기",
+ "term.size.normal": "ėŧë°",
+ "term.size.compact": "ę°ë¨í",
+ "term.enable": "íėąí",
+ "term.disable": "ëšíėąí",
+ "term.enabled": "íėąí",
+ "term.disabled": "ëšíėąí",
+ "term.connect": "ė°ę˛°",
+ "term.connecting": "ė°ę˛° ė¤",
+ "term.disconnect": "ė°ę˛° ëęš",
+ "term.authed": "ė¸ėĻë¨",
+ "term.confirm": "ėšė¸íėę˛ ėĩëęš?",
+ "term.more": "ë",
+ "term.less": "ė ę˛",
+ "term.showMore": "ë ëŗ´ę¸°",
+ "term.showLess": "ė ę˛ ëŗ´ę¸°",
+ "term.topSongs" : "ė¸ę¸°ęŗĄ",
+ "term.latestReleases": "ėĩė ęŗĄ",
+ "term.time.added": "ėļę°",
+ "term.time.released": "ë°ë§¤ėŧ",
+ "term.time.updated": "ė
ë°ė´í¸ėŧ",
+ "term.time.days": "ėŧ",
+ "term.time.day": "ėŧ",
+ "term.time.hours": "ėę°",
+ "term.time.hour": "ėę°",
+ "term.time.minutes": "ëļ",
+ "term.time.minute": "ëļ",
+ "term.time.seconds": "ė´",
+ "term.time.second": "ė´",
+ "term.fullscreenView": "ė 랴 í늴",
+ "term.defaultView": "ę¸°ëŗ¸ í늴",
+ "term.audioSettings": "ė¤ëė¤ ė¤ė ",
+ "term.audioControls": "ëŗŧëĨ¨ ė ė´",
+ "term.clearAll": "ëšė°ę¸°",
+ "term.recentStations": "ėĩęˇŧ ė¤í
ė´ė
",
+ "term.language": "ė¸ė´",
+ "term.funLanguages": "ėŦ미ėë",
+ "term.noLyrics": "ëļëŦė¤ë ė¤... / ę°ėŦëĨŧ ė°žė ė ėėĩëë¤./ ė°ėŖŧęŗĄ",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "All Rights Reserved.",
+ "term.sponsor": "íëĄė í¸ íėí기",
+ "term.ciderTeam": "Cider í",
+ "term.developer": "ę°ë°ė",
+ "term.socialTeam": "ėė
í",
+ "term.socials": "ėė
",
+ "term.contributors": "기ėŦė",
+ "term.equalizer": "ė´íëŧė´ė ",
+ "term.reset": "ė´ę¸°í",
+ "term.tracks": "í¸ë",
+ "term.track": {
+ "one" : "í¸ë",
+ "other" : "í¸ë"
+ },
+ "term.videos": "ëšëė¤",
+ "term.menu": "ëŠë´",
+ "term.check": "íė¸",
+ "term.aboutArtist": "{{artistName}}ė ëíėŦ",
+ "term.topResult": "ėė 결ęŗŧ",
+ "term.sharedPlaylists": "ęŗĩė íë ė´ëĻŦė¤í¸",
+ "term.people": "íëĄí",
+ "term.newpreset.name": "ė ė´íëŧė´ė íëĻŦė
",
+ "term.addedpreset": "ėļę°ë íëĻŦė
",
+ "term.deletepreset.warn": "ė ë§ëĄ íëĻŦė
ė ėė íėę˛ ėĩëęš?",
+ "term.deletedpreset": "íëĻŦė
ėė ",
+ "term.defaultPresets": "ę¸°ëŗ¸ íëĻŦė
",
+ "term.userPresets": "ėŦėŠė íëĻŦė
",
+ "term.requestError": "ėė˛ė ëŦ¸ė ę° ėėĩëë¤.",
+ "term.song.link.generate": "song.link ęŗĩė URL ę°ė ¸ė¤ë ė¤...",
+ "term.musicVideos": "ëŽ¤ė§ ëšëė¤",
+ "term.stations": "ė¤í
ė´ė
",
+ "term.curators": "íë ė´í°",
+ "term.appleCurators": "ė í íë ė´í°",
+ "term.radioShows": "ëŧëė¤ ėŧ",
+ "term.recordLabels": "ë ėŊë ë ė´ë¸",
+ "term.videoExtras": "ėļę° ëšëė¤",
+ "term.top": "ėė",
+ "term.version": "ë˛ė ",
+ "term.noVideos": "ë°ę˛Ŧë ëšëė¤ę° ėėĩëë¤.",
+ "term.plugin": "íëŦ꡸ė¸",
+ "term.pluginMenu": "íëŦęˇ¸ė¸ ëŠë´",
+ "term.pluginMenu.none": "ëíí íëŦ꡸ė¸ė´ ėėĩëë¤.",
+ "term.replay": "ëĻŦíë ė´",
+ "term.uniqueAlbums": "ęŗ ė í ė¨ë˛",
+ "term.uniqueArtists": "ęŗ ė í ėí°ė¤í¸",
+ "term.uniqueSongs": "ęŗ ė í ë
¸ë",
+ "term.topArtists": "ėė ėí°ė¤í¸",
+ "term.listenedTo": "ę°ė:",
+ "term.times": "ë˛",
+ "term.topAlbums": "ėė ė¨ë˛",
+ "term.plays": "ėŦė",
+ "term.topGenres": "ėė ėĨëĨ´",
+ "term.confirmLogout": "ė ë§ëĄ ëĄęˇ¸ėėíėę˛ ėĩëęš?",
+ "home.title": "í",
+ "home.recentlyPlayed": "ėĩęˇŧ ėŦėë íëĒŠ",
+ "home.recentlyAdded": "ėĩęˇŧ ėļę°ë íëĒŠ",
+ "home.artistsFeed": "ë´ ėí°ė¤í¸ íŧë",
+ "home.artistsFeed.noArtist": "ėí°ė¤í¸ëĨŧ íëĄė°í늴 ėĩęˇŧ ë°ë§¤ęŗĄė´ íėëŠëë¤.",
+ "home.madeForYou": "ëë§ė ėí ėļė˛",
+ "home.friendsListeningTo": "ėšęĩŦë¤ė´ ëŖë",
+ "home.followedArtists": "íëĄė°í ėí°ė¤í¸",
+ "error.appleMusicSubRequired": "Apple Musicė ęĩŦë
ė íėëĄ íŠëë¤.",
+ "error.connectionError": "Apple Musicė ė°ę˛°íė§ ëĒģíėĩëë¤.",
+ "error.noResults": "결ęŗŧ ėė",
+ "error.noResults.description": "ë¤ė ėëí´ėŖŧė¸ė.",
+ "podcast.followOnCider": "Ciderėė íëĄė°í기",
+ "podcast.followedOnCider": "íëĄė° ė¤",
+ "podcast.subscribeOnItunes": "iTunesėė ęĩŦë
",
+ "podcast.subscribedOnItunes": "ęĩŦë
ė¤",
+ "podcast.itunesStore": "iTunes ė¤í ė´",
+ "podcast.episodes": "ë°ŠėĄ",
+ "podcast.playEpisode": "ėŦė",
+ "podcast.website": "íėēė¤í¸ ėŦė´í¸",
+ "action.addToLibrary": "ëŗ´ę´í¨ė ėļę°",
+ "action.addToLibrary.success": "ëŗ´ę´í¨ė ėļę°ë¨",
+ "action.addToLibrary.error": "ëŗ´ę´í¨ė ėļę° ė¤í¨",
+ "action.removeFromLibrary": "ëŗ´ę´í¨ėė ėė ",
+ "action.removeFromLibrary.success": "ëŗ´ę´í¨ėė ėė ë¨",
+ "action.addToQueue": "ë기ė´ė ėļę°",
+ "action.addToQueue.success": "ë기ė´ė ėļę°ë¨",
+ "action.addToQueue.error": "ë기ė´ė ėļę° ė¤í¨",
+ "action.removeFromQueue": "ë기ė´ėė ėė ",
+ "action.removeFromQueue.success": "ë기ė´ėė ėė ë¨",
+ "action.removeFromQueue.error": "ë기ė´ėė ėė ė¤í¨",
+ "action.createPlaylist": "ėëĄė´ íë ė´ëĻŦė¤í¸",
+ "action.addToPlaylist": "íë ė´ëĻŦė¤í¸ė ėļę°...",
+ "action.removeFromPlaylist": "íë ė´ëĻŦė¤í¸ėė ėė ",
+ "action.addToFavorites": "ė í¸íëĒŠė ėļę°",
+ "action.follow": "íëĄė°",
+ "action.follow.success": "íëĄė°ë¨",
+ "action.follow.error": "íëĄė° ė¤í¨",
+ "action.unfollow": "ė¸íëĄė°",
+ "action.unfollow.success": "ė¸íëĄė°ë¨",
+ "action.unfollow.error": "ė¸íëĄė° ė¤í¨",
+ "action.playNext": "ë°ëĄ ë¤ėė ėŦė",
+ "action.playLater": "맨 ëė¤ė ėŦė",
+ "action.startRadio": "ė¤í
ė´ė
ėėą",
+ "action.goToArtist": "ėí°ė¤í¸ ëŗ´ę¸°",
+ "action.goToAlbum": "ė¨ë˛ ëŗ´ę¸°",
+ "action.showInPlaylist": "íë ė´ëĻŦė¤í¸ėė ëŗ´ę¸°",
+ "action.showInAppleMusic": "Apple Musicėė ëŗ´ę¸°",
+ "action.moveToTop": "맨 ėëĄ ė´ë",
+ "action.share": "ęŗĩė ",
+ "action.rename": "ė´ëĻ í¸ė§í기",
+ "action.love": "ėĸėė",
+ "action.unlove": "ėĸėė 뎍ė",
+ "action.dislike": "ëšėˇí íëĒŠė ė ė ė¤ė´ę¸°",
+ "action.undoDislike": "ëšėˇí íëĒŠė ė ė ė¤ė´ę¸° ė¤í 뎍ė",
+ "action.showWebRemoteQR": "ėš ëĻŦëǍí¸",
+ "action.playTracksNext": "${app.selectedMediaItems.length} ë°ëĄ ë¤ėė ėŦė",
+ "action.playTracksLater": "${app.selectedMediaItems.length} 맨 ëė¤ė ėŦė",
+ "action.removeTracks": "${self.selectedItems.length} ë기ė´ėė ėė ",
+ "action.import": "ę°ė ¸ė¤ę¸°",
+ "action.export": "ë´ëŗ´ë´ę¸°",
+ "action.showAlbum": "ė 랴 ė¨ë˛ ëŗ´ę¸°",
+ "action.tray.minimize": "í¸ë ė´ëĄ ėĩėí",
+ "action.tray.quit": "ėĸ
ëŖ",
+ "action.tray.show": "íė",
+ "action.update": "ė
ë°ė´í¸",
+ "action.install": "ė¤ėš",
+ "action.copy": "ëŗĩėŦ",
+ "action.newpreset": "ė íëĻŦė
",
+ "action.deletepreset": "íëĻŦė
ėė ",
+ "action.open": "ė´ę¸°",
+ "action.relaunch.confirm": "CiderëĨŧ ë¤ė ėėíėę˛ ėĩëęš?",
+ "settings.header.general": "ėŧë°",
+ "settings.header.general.description": "Ciderė ėŧë° ę¸°ëĨė ė¤ė íŠëë¤.",
+ "settings.option.general.language": "ė¸ė´",
+ "settings.option.general.resumebehavior": "ėŦę° ëė",
+ "settings.option.general.resumebehavior.description": "ėŦę° ëėė ėąėŧëĄ ëėę° ë Ciderę° ė¸ė
ė ėŦę°íë ë°Šë˛ė ėíĨė ė¤ëë¤.",
+ "settings.option.general.resumebehavior.locally": "ë´ëļ",
+ "settings.option.general.resumebehavior.locally.description": "Ciderë ė´ ėĨėšėė ë§ė§ë§ ė¸ė
ė ėŦę°íŠëë¤.",
+ "settings.option.general.resumebehavior.history": "기ëĄ",
+ "settings.option.general.resumebehavior.history.description": "Ciderë ėĨėš ė ë°ė ęą¸ėš ëǍë Apple Music 기ëĄė ë§ė§ë§ ë
¸ëëĨŧ ë기ė´ė ėļę°íŠëë¤.",
+ "settings.option.general.language.main": "ė¸ė´",
+ "settings.option.general.language.fun": "ėŦ미ëĨŧ ėí ė¸ė´",
+ "settings.option.general.language.unsorted": "미ëļëĨ",
+ "settings.option.general.updateCider": "Cider ė
ë°ė´í¸",
+ "settings.option.general.updateCider.branch": "Cider ė
ë°ė´í¸ ë¸ëėš",
+ "settings.option.general.updateCider.branch.description": "CiderëĨŧ ė
ë°ė´í¸í ë¸ëėš ė í",
+ "settings.option.general.updateCider.branch.main": "ėė ė ė¸ ë˛ė ",
+ "settings.option.general.updateCider.branch.develop": "ę°ë° ë˛ė ",
+ "settings.notyf.updateCider.update-not-available": "ė
ë°ė´í¸ ėė",
+ "settings.notyf.updateCider.update-downloaded": "ė
ë°ė´í¸ę° ë¤ė´ëĄëëėėĩëë¤. ė ėŠíë ¤ëŠ´ ë¤ė ėėíė¸ė.",
+ "settings.notyf.updateCider.update-error": "Cider ė
ë°ė´í¸ ė¤ëĨ",
+ "settings.notyf.updateCider.update-timeout": "ė
ë°ė´í¸ ėę° ė´ęŗŧ",
+ "settings.header.audio": "ė¤ëė¤",
+ "settings.header.audio.description": "Ciderė ė¤ëė¤ ę¸°ëĨė ė¤ė íŠëë¤.",
+ "settings.option.audio.volumeStep": "ëŗŧëĨ¨ ë¨ęŗ",
+ "settings.option.audio.maxVolume": "ėĩë ëŗŧëĨ¨",
+ "settings.option.audio.quality": "ė¤ëė¤ ėė§",
+ "settings.header.audio.quality.hireslossless": "ęŗ í´ėë ëŦ´ėė¤",
+ "settings.header.audio.quality.hireslossless.description": "ėĩë 24ëší¸/192 kHz",
+ "settings.header.audio.quality.lossless": "ëŦ´ėė¤",
+ "settings.header.audio.quality.lossless.description": "ėĩë 24ëší¸/48 kHz",
+ "settings.header.audio.quality.high": "ęŗ íė§",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "íė¤",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "íŦëĄė¤íė´ë 기ëĨ",
+ "settings.option.audio.enableAdvancedFunctionality": "ęŗ ę¸ ę¸°ëĨ íėąí",
+ "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 기ëĨė ėŦėŠíëëĄ ė¤ė í늴 ė¤ëė¤ ë
¸ëŠëŧė´ėĻ, ė´íëŧė´ė ë° ëšėŖŧėŧëŧė´ė ė ę°ė íėĨë ė¤ëė¤ ę¸°ëĨė ėŦėŠí ė ėė§ë§ ėŧëļ ėė¤í
ėėë ė¤ëė¤ ëęšė´ ë°ėí ė ėėĩëë¤.",
+ "settings.option.audio.audioLab": "Cider ė¤ëė¤ ė¤íė¤",
+ "settings.option.audio.audioLab.description": "CiderëĨŧ ėí´ ė랴 ę°ë°í ë¤ėí ė¤ëė¤ í¨ęŗŧė
ëë¤.",
+ "settings.warn.audioLab.withoutAF": "Cider ė¤ëė¤ ė¤íė¤ė íėąííë ¤ëŠ´ AudioContext(ęŗ ę¸ ę¸°ëĨ)ę° íėíŠëë¤.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "ėë ëĄęˇ¸ ë°ëģí¨",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Korg Nutube 6P1ė ëǍë¸ëĄ í ėë ëĄęˇ¸ ë°ëģí¨ė ėëŽŦë ė´ė
íŠëë¤.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "ėë ëĄęˇ¸ ë°ëģí¨ ę°ë",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "ėë ëĄęˇ¸ ë°ëģí¨ ëǍëė ę°ëëĨŧ ëŗę˛ŊíŠëë¤.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "ëļëëŦė",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "ë°ëģí¨",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "ëǍë ėëĻŦëĨŧ ëėą íëļíęŗ ėėíę˛ ë§ëë ėíĨ ėŦëĻŦíė íĨėė
ëë¤.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAPë ęŗĩę°íė í¸íëė§ ėėĩëë¤. ęŗėíë ¤ëŠ´ ęŗĩę°íëĨŧ ëšíėąííėėė¤.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP ę°ë",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ė¤ëė¤ ė˛ëĻŦ ę°ëëĨŧ ëŗę˛ŊíŠëë¤. (ė ꡚė ėŧëĄ ė¤ė ė ë°ëė§íė§ ėė 결ęŗŧëĨŧ ė´ëí ė ėėĩëë¤.)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "íė¤",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "ė ꡚė ",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ė¤ëė¤ ë
¸ëŠëŧė´ėĻ",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ę°ëŗ í¸ëė ėĩë ëŗŧëĨ¨ė ë
¸ëŠëŧė´ėĻíėŦ ëŗ´ë¤ ęˇ ėŧí ė˛ėˇ¨ ę˛Ŋíė ė ęŗĩíŠëë¤.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ė¤ëė¤ ęŗĩę°í",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ė¤ëė¤ëĨŧ ęŗĩę°ííęŗ ëėą ėŧė°¨ėė ėŧëĄ ë§ë¤ė´ė¤ëë¤. (ė°¸ęŗ : ė´ ę¸°ëĨė Dolby Atmosę° ėëëë¤.)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider íëë ęŗĩę°í",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "ėŦė ėĄ°ė ë ęŗĩę°í í¨ęŗŧë ė¤ëė¤ ęŗĩę°íė ėŦėŠė ė ė ė¤ė ė ëšíėąííŠëë¤. ėŦėŠí기 ėí´ėë ė¤ëė¤ ęŗĩę°íę° íėíŠëë¤.",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider ęŗĩę°í íëĄí",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "ęŗĩę°í íë íëĄíė ëŗę˛ŊíŠëë¤. (ėą ë¤ė ėė íė)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "íė¤",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "ė¤ëė¤ ė í¸ę°",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "ęŗĩę°íë CAPė í¸íëė§ ėėĩëë¤. ęŗėíë ¤ëŠ´ CAPëĨŧ ëšíėąííėėė¤.",
+ "settings.header.visual": "ėę°",
+ "settings.header.visual.description": "Ciderė ėę° ę¸°ëĨė ė¤ė íŠëë¤.",
+ "settings.option.visual.windowBackgroundStyle": "ė°Ŋ ë°°ę˛Ŋ ė¤íėŧ",
+ "settings.header.visual.windowBackgroundStyle.none": "ėė",
+ "settings.header.visual.windowBackgroundStyle.artwork": "ė¨ë˛ íė§",
+ "settings.header.visual.windowBackgroundStyle.image": "ė´ë¯¸ė§",
+ "settings.option.visual.animatedArtwork": "ėė§ė´ë ė¨ë˛ íė§",
+ "settings.header.visual.animatedArtwork.always": "íė íėąí",
+ "settings.header.visual.animatedArtwork.limited": "íė´ė§ ë° íšė í늴ėŧëĄ ė í",
+ "settings.header.visual.animatedArtwork.disable": "ëǍë ęŗŗėė ëšíėąí",
+ "settings.option.visual.animatedArtworkQuality": "ėė§ė´ë ė¨ë˛ íė§ íė§",
+ "settings.header.visual.animatedArtworkQuality.low": "ëŽė",
+ "settings.header.visual.animatedArtworkQuality.medium": "ė¤ę°",
+ "settings.header.visual.animatedArtworkQuality.high": "ëė",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "ë§¤ė° ëė",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ėĩė",
+ "settings.option.visual.animatedWindowBackground": "ėė§ė´ë ė°Ŋ ë°°ę˛Ŋ",
+ "settings.option.visual.hardwareAcceleration": "íëė¨ė´ ę°ė",
+ "settings.option.visual.hardwareAcceleration.description": "ėŦėė íė",
+ "settings.header.visual.hardwareAcceleration.default": "ę¸°ëŗ¸",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "í
ë§",
+ "settings.option.visual.theme.github.download": "GitHub URLėė ė¤ėš",
+ "settings.option.visual.theme.github.explore": "GitHub í
ë§ ė´í´ëŗ´ę¸°",
+ "settings.header.visual.theme.github.page": "GitHubė í
ë§",
+ "settings.option.visual.theme.github.install.confirm": "{{ repo }}ė(ëĨŧ) ė¤ėšíėę˛ ėĩëęš?",
+ "settings.prompt.visual.theme.github.URL": "ė¤ėšíë ¤ë í
ë§ė URL ė
ë Ĩ",
+ "settings.notyf.visual.theme.install.success": "í
ë§ę° ėąęŗĩė ėŧëĄ ė¤ėšëėėĩëë¤.",
+ "settings.notyf.visual.theme.install.error": "í
ë§ ė¤ėšė ė¤í¨íėėĩëë¤.",
+ "settings.header.visual.plugin": "íëŦ꡸ė¸",
+ "settings.option.visual.plugin.github.download": "GitHub URLėė ė¤ėš",
+ "settings.option.visual.plugin.github.explore": "GitHub íëŦęˇ¸ė¸ ė´í´ëŗ´ę¸°",
+ "settings.header.visual.plugin.github.page": "GitHubė íëŦ꡸ė¸",
+ "settings.option.visual.plugin.github.install.confirm": "{{ repo }}ė(ëĨŧ) ė¤ėšíėę˛ ėĩëęš?",
+ "settings.prompt.visual.plugin.github.URL": "ė¤ėšíë ¤ë íëŦ꡸ė¸ė URL ė
ë Ĩ",
+ "settings.prompt.visual.plugin.github.success": "íëŦ꡸ė¸ė´ ėąęŗĩė ėŧëĄ ė¤ėšëėėĩëë¤. íė¸ė ëëŦ CiderëĨŧ ë¤ė ėėíė¸ė.",
+ "settings.notyf.visual.plugin.install.success": "íëŦ꡸ė¸ė´ ėąęŗĩė ėŧëĄ ė¤ėšëėėĩëë¤.",
+ "settings.notyf.visual.plugin.install.error": "íëŦęˇ¸ė¸ ė¤ėšė ė¤í¨íėėĩëë¤.",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Dark",
+ "settings.option.visual.showPersonalInfo": "ę°ė¸ ė ëŗ´ ëŗ´ę¸°",
+ "settings.header.lyrics": "ę°ėŦ",
+ "settings.header.lyrics.description": "Ciderė ę°ėŦ 기ëĨė ė¤ė íŠëë¤.",
+ "settings.option.lyrics.enableMusixmatch": "Musixmatch ę°ėŦ íėąí",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "ë
¸ëë°Š ëǍë íėąí (Musixmatchë§ ę°ëĨ)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch ë˛ė ė í¸ ė¸ė´",
+ "settings.option.lyrics.enableYoutubeLyrics": "ëŽ¤ė§ ëšëė¤ė ëí YouTube ėë§ íėąí",
+ "settings.header.connectivity": "ė°ë",
+ "settings.header.connectivity.description": "Ciderė ė°ë 기ëĨė ė¤ė íŠëë¤.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "ėŦė ėëĻŧ",
+ "settings.header.connectivity.discordRPC.cider": "'Cider'ëĄ íėí기",
+ "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music'ėŧëĄ íėí기",
+ "settings.option.connectivity.discordRPC.clearOnPause": "ėŧė ė ė§ ė Discord Rich Presenceė ë기",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm ė¤íŦëĄë¸ë§",
+ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm ė¤íŦëĄë¸ ëë ė´ (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm ė§ę¸ ėŦė ė¤ ę¸°ëĨ íėąí",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "ęŗĄ ė ëĒŠėė íŧėŗë§ ėí°ė¤í¸ ė ė¸ (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "ë°ëŗĩëë í¸ë íí°ë§ (Last.fm)",
+ "settings.header.debug": "ëë˛ęˇ¸",
+ "settings.option.debug.copy_log": "í´ëĻŊëŗ´ëė ëĄęˇ¸ ëŗĩėŦ",
+ "settings.option.debug.openAppData": "Cider í´ë ė´ę¸°",
+ "settings.header.experimental": "ė¤íė¤",
+ "settings.header.experimental.description": "Ciderė ė¤íė 기ëĨė ė¤ė íŠëë¤.",
+ "settings.option.experimental.unknownPlugin": "ė ė ėë ėļė˛",
+ "settings.option.experimental.unknownPlugin.description": "Cider íëŦęˇ¸ė¸ ė ėĨė ė´ė¸ė ė ėĨėėė íëŦęˇ¸ė¸ ė¤ėš íėŠ",
+ "settings.option.experimental.compactUI": "ę°ę˛°í ėŦėŠė ė¸í°íė´ė¤",
+ "settings.option.experimental.close_button_hide": "ëĢ기 ë˛íŧėŧëĄ ė íëĻŦėŧė´ė
ė¨ę¸°ę¸°",
+ "settings.option.experimental.inline_playlists": "ė¸ëŧė¸ íë ė´ëĻŦė¤í¸ ë° ė¨ë˛",
+ "settings.option.advanced.playlistTrackMapping": "íë ė´ëĻŦė¤í¸ í¸ë 매í",
+ "settings.option.advanced.playlistTrackMapping.description": "íë ė´ëĻŦė¤í¸ëĨŧ ėė¸í ė¤ėēíėŦ ė´ë¤ í¸ëė´ ė´ë¤ íë ė´ëĻŦė¤í¸ė ėëė§ íė¸íŠëë¤. íë ė´ëĻŦė¤í¸ ėēė ëšë ėę°ė´ íŦę˛ ëė´ë ė ėėĩëë¤.",
+ "settings.option.visual.transparent": "íŦëĒ
íë ė",
+ "settings.option.visual.transparent.description": "íŦëĒ
íë ė (í
ë§ ė§ė íė, ėŦė¤í íė)",
+ "spatial.notTurnedOn": "ė¤ëė¤ ęŗĩę°íę° ëšíėąíëėėĩëë¤. ėŦėŠíë ¤ëŠ´ ë¨ŧė íėąííėėė¤.",
+ "spatial.spatialProperties": "ęŗĩę° ė¤ė ",
+ "spatial.width": "길ė´",
+ "spatial.height": "ëė´",
+ "spatial.depth": "ęšė´",
+ "spatial.gain": "ę˛ė¸",
+ "spatial.roomMaterials": "ë°Š ėŦė§",
+ "spatial.roomDimensions": "ë°Š ė°¨ė",
+ "spatial.roomPositions": "ë°Š ėėš",
+ "spatial.setDimensions": "ė°¨ė ė¤ė ",
+ "spatial.setPositions": "ėėš ė¤ė ",
+ "spatial.up": "ė",
+ "spatial.front": "ė",
+ "spatial.left": "ėŧėĒŊ",
+ "spatial.right": "ė¤ëĨ¸ėĒŊ",
+ "spatial.back": "ë¤",
+ "spatial.down": "ėë",
+ "spatial.listener": "ė˛ėˇ¨ė",
+ "spatial.audioSource": "ė¤ëė¤ ėė¤",
+ "settings.header.unfinished": "미ėėą",
+ "remote.web.title": "Cider ëĻŦëǍí¸",
+ "remote.web.description": "QR ėŊëëĨŧ ė¤ėēí´ė Ciderė ė¤ë§í¸í° ė°ę˛°í기",
+ "about.thanks": "Cider Collective Teamęŗŧ ëǍë 기ėŦėë¤ėę˛ ęšė ę°ėŦëĨŧ ëëĻŊëë¤."
+}
diff --git a/src/i18n/ko_KR.jsonc b/src/i18n/ko_KR.jsonc
deleted file mode 100644
index b821d188..00000000
--- a/src/i18n/ko_KR.jsonc
+++ /dev/null
@@ -1,342 +0,0 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "íęĩė´ (KR)", // name of language in native language
- "i18n.languageNameEnglish": "Korean (KR)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@Hazealign", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
- "app.name": "Cider",
-
- "date.format": "${y}. ${m}. ${d}",
-
- // Dialogs
- "dialog.cancel": "뎍ė",
- "dialog.ok": "íė¸",
-
- // Notification
- "notification.updatingLibrarySongs": "ëŧė´ë¸ëŦëĻŦė ë
¸ëëĨŧ ė
ë°ė´í¸íë ė¤ė
ëë¤...",
- "notification.updatingLibraryAlbums": "ëŧė´ë¸ëŦëĻŦė ė¨ë˛ė ė
ë°ė´í¸íë ė¤ė
ëë¤...",
- "notification.updatingLibraryArtists": "ëŧė´ë¸ëŦëĻŦė ėí°ė¤í¸ëĨŧ ė
ë°ė´í¸íë ė¤ė
ëë¤...",
-
- // Terms
- "term.appleInc": "Apple Inc.", // Follows brand term
- "term.appleMusic": "Apple Music", // Follows brand term
- "term.applePodcasts": "Apple Podcasts", // Follows brand term
- "term.itunes": "iTunes", // Follows brand term
- "term.github": "GitHub", // Follows brand term
- "term.discord": "Discord", // Follows brand term
- "term.learnMore": "ë ėėëŗ´ę¸°",
- "term.accountSettings": "ęŗė ė¤ė ",
- "term.logout": "ëĄęˇ¸ėė",
- "term.login": "ëĄęˇ¸ė¸",
- "term.about": "ė ëŗ´",
- "term.privateSession": "ę°ė¸ ė¸ė
",
- "term.queue": "ë기ė´",
- "term.history": "ė˛ėˇ¨ 기ëĄ",
- "term.search": "ę˛ė",
- "term.library": "ëŗ´ę´í¨",
- "term.listenNow": "ė§ę¸ ëŖę¸°",
- "term.browse": "ëëŦëŗ´ę¸°",
- "term.radio": "ëŧëė¤",
- "term.recentlyAdded": "ėĩęˇŧ ėļę°ë íëĒŠ",
- "term.songs": "ë
¸ë",
- "term.albums": "ė¨ë˛",
- "term.artists": "ėí°ė¤í¸",
- "term.podcasts": "íėēė¤í¸",
- "term.playlists": "ėŦė ëĒŠëĄ",
- "term.playlist": "ėŦė ëĒŠëĄ",
- "term.newPlaylist": "ė ėŦė ëĒŠëĄ",
- "term.newPlaylistFolder": "ė ėŦė ëĒŠëĄ í´ë",
- "term.createNewPlaylist": "ė ėŦė ëĒŠëĄ ë§ë¤ę¸°",
- "term.createNewPlaylistFolder": "ė ėŦė ëĒŠëĄ í´ë ë§ë¤ę¸°",
- "term.deletePlaylist": "ė ë§ëĄ ė´ ėŦė ëĒŠëĄė ėė íėę˛ ėĩëęš?",
- "term.play": "ėŦė",
- "term.pause": "ėŧė ė ė§",
- "term.previous": "ė´ė ",
- "term.next": "ë¤ė",
- "term.shuffle": "ė
í",
- "term.repeat": "ë°ëŗĩ",
- "term.volume": "ëŗŧëĨ¨",
- "term.mute": "ėėęą°",
- "term.unmute": "ėėęą° í´ė ",
- "term.share": "ęŗĩė ",
- "term.share.success": "í´ëĻŊëŗ´ëė ëŗĩėŦë¨",
- "term.settings": "ė¤ė ",
- "term.seeAll": "ëǍë ëŗ´ę¸°",
- "term.sortBy": "ė ë Ŧ",
- "term.sortBy.album": "ė¨ë˛ëĒ
",
- "term.sortBy.artist": "ėí°ė¤í¸ ė´ëĻ",
- "term.sortBy.name": "ė ëĒŠ",
- "term.sortBy.genre": "ėĨëĨ´",
- "term.sortBy.releaseDate": "ë°ë§¤ėŧ",
- "term.sortBy.duration": "길ė´",
- "term.sortOrder": "A-Z",
- "term.sortOrder.ascending": "ė¤ëĻė°¨ė",
- "term.sortOrder.descending": "ë´ëĻŧė°¨ė",
- "term.viewAs": "íė",
- "term.viewAs.coverArt": "ėģ¤ë˛ ėí¸",
- "term.viewAs.list": "ëĻŦė¤í¸",
- "term.size": "íŦ기",
- "term.size.normal": "íė¤",
- "term.size.compact": "ėģ´íŠí¸",
- "term.enable": "ėŧ기",
- "term.disable": "ë기",
- "term.enabled": "ėŧė§",
- "term.disabled": "ęēŧė§",
- "term.connect": "ė°ę˛°",
- "term.connecting": "ė°ę˛° ė¤",
- "term.disconnect": "ė°ę˛° í´ė ",
- "term.authed": "ė¸ėĻë¨",
- "term.confirm": "ė§ííėę˛ ėĩëęš?",
- "term.more": "ėļę°",
- "term.less": "ė¤ė´ę¸°",
- "term.showMore": "ë ëŗ´ę¸°",
- "term.showLess": "ë ëŗ´ę¸°",
- "term.topSongs": "ë§ė´ ëŖë ë
¸ë",
- "term.latestReleases": "ėĩęˇŧ ë°ë§¤ë ë
¸ë",
- "term.time.added": "ėļę°ë¨",
- "term.time.released": "ë°ë§¤ë¨",
- "term.time.updated": "ė
ë°ė´í¸ë¨",
- "term.time.hours": "ėę°",
- "term.time.hour": "ėę°",
- "term.time.minutes": "ëļ",
- "term.time.minute": "ëļ",
- "term.time.seconds": "ė´",
- "term.time.second": "ė´",
- "term.fullscreenView": "ė 랴 í늴 ëŗ´ę¸°",
- "term.defaultView": "ėëė° ëŗ´ę¸°",
- "term.audioSettings": "ė¤ëė¤ ė¤ė ",
- "term.clearAll": "ëǍë ė§ė°ę¸°",
- "term.recentStations": "ėĩęˇŧ ė¤í
ė´ė
",
- "term.language": "ė¸ė´",
- "term.funLanguages": "ėŦ미ëĨŧ ėí ė¸ė´",
- "term.noLyrics": "ëĄëŠ ė¤... / ę°ėŦëĨŧ ė°žė§ ëĒģíėĩëë¤. / Instrumental ęŗĄėŧ ė ėėĩëë¤.",
- "term.copyright": "ė ėęļ",
- "term.rightsReserved": "All Rights Reserved.",
- "term.sponsor": "ė´ íëĄė í¸ëĨŧ íėí기",
- "term.ciderTeam": "Cider í",
- "term.developer": "ę°ë°ė",
- "term.socialTeam": "ėė
í",
- "term.socials": "ėė
",
- "term.contributors": "기ėŦė",
- "term.equalizer": "ė´íëŧė´ė ",
- "term.reset": "ė´ę¸°í",
- "term.tracks": "ęŗĄ", // Assume x amount of tracks. e.g. 50 tracks
- "term.videos": "ëšëė¤",
- "term.menu": "ëŠë´",
- "term.check": "íė¸",
- "term.aboutArtist": "{{artistName}}ė ëíėŦ", // e.g. 'About Doja Cat'
- "term.topResult": "Top Result", // Search Results
- "term.sharedPlaylists": "ęŗĩė íë ė´ëĻŦė¤í¸", // Search Results
- "term.people": "íëĄí", // Search Results
- "term.newpreset.name": "ė ė´íëŧė´ė íëĻŦė
", // Equalizer Preset
- "term.addedpreset": "ėļę°ë íëĻŦė
",
- "term.deletepreset.warn": "ė ë§ëĄ íëĻŦė
ė ėė íėę˛ ėĩëęš?",
- "term.deletedpreset": "íëĻŦė
ėė ",
- "term.musicVideos": "ëŽ¤ė§ ëšëė¤", // Search page friendlyTypes
- "term.stations": "ė¤í
ė´ė
",
- "term.curators": "íë ė´í°",
- "term.appleCurators": "ė í íë ė´í°",
- "term.radioShows": "ëŧëė¤ ėŧ",
- "term.recordLabels": "ë ėŊë ë ė´ë¸",
- "term.videoExtras": "ėļę° ëšëė¤",
- "term.top": "Top",
-
- // Home
- "home.title": "í",
- "home.recentlyPlayed": "ėĩęˇŧ ėŦėí íëĒŠ",
- "home.recentlyAdded": "ėĩęˇŧ ėļę°ë íëĒŠ",
- "home.artistsFeed": "ėí°ė¤í¸ íŧë",
- "home.artistsFeed.noArtist": "ėĸėíë ėí°ė¤í¸ëĨŧ íëĄė°í´ëŗ´ė¸ė.",
- "home.madeForYou": "ëë§ė ėí ėļė˛",
- "home.friendsListeningTo": "ėšęĩŦę° ëŖë ėė
",
- "home.followedArtists": "íëĄė°í ėí°ė¤í¸",
-
- // Errors
- "error.appleMusicSubRequired": "Apple Musicė ęĩŦë
ė íėëĄ íŠëë¤.",
- "error.connectionError": "Apple Musicė ė°ę˛°íė§ ëĒģíėĩëë¤.",
- "error.noResults": "결ęŗŧ ėė",
- "error.noResults.description": "ë¤ė ėëí´ėŖŧė¸ė.",
-
- // Podcasts
- "podcast.followOnCider": "Ciderėė íëĄė°í기",
- "podcast.followedOnCider": "íëĄė° ė¤",
- "podcast.subscribeOnItunes": "iTunesėė ęĩŦë
",
- "podcast.subscribedOnItunes": "ęĩŦë
ė¤",
- "podcast.itunesStore": "iTunes Store",
- "podcast.episodes": "ë°ŠėĄ",
- "podcast.playEpisode": "ėŦė",
- "podcast.website": "íėēė¤í¸ ėŦė´í¸",
-
- // Actions
- "action.addToLibrary": "ëŗ´ę´í¨ė ėļę°",
- "action.addToLibrary.success": "ëŗ´ę´í¨ė ėļę°ë¨",
- "action.addToLibrary.error": "ëŗ´ę´í¨ė ėļę°íëë° ė¤í¨í¨",
- "action.removeFromLibrary": "ëŗ´ę´í¨ėė ėė ",
- "action.removeFromLibrary.success": "ëŗ´ę´í¨ėė ėė ë¨",
- "action.addToQueue": "ë기ė´ė ėļę°",
- "action.addToQueue.success": "ë기ė´ė ėļę°ë¨",
- "action.addToQueue.error": "ë기ė´ė ėļę°íëë° ė¤í¨í¨",
- "action.removeFromQueue": "ë기ė´ėė ėė ",
- "action.removeFromQueue.success": "ë기ė´ėė ėė ë¨",
- "action.removeFromQueue.error": "ë기ė´ėė ėė íëë° ė¤í¨í¨",
- "action.createPlaylist": "ė ėŦė ëĒŠëĄ ë§ë¤ę¸°",
- "action.addToPlaylist": "ėŦė ëĒŠëĄė ėļę°",
- "action.removeFromPlaylist": "ėŦė ëĒŠëĄėė ėė ",
- "action.addToFavorites": "ėĻę˛¨ė°žę¸°ė ėļę°",
- "action.follow": "íëĄė°",
- "action.follow.success": "íëĄė° ė¤",
- "action.follow.error": "íëĄė° ė¤í¨",
- "action.unfollow": "ė¸íëĄė°",
- "action.unfollow.success": "ė¸íëĄė°ë¨",
- "action.unfollow.error": "ė¸íëĄė° ė¤í¨",
- "action.playNext": "ë°ëĄ ë¤ėė ėŦė",
- "action.playLater": "맨 ëė¤ė ėŦė",
- "action.startRadio": "ė¤í
ė´ė
ėėą",
- "action.goToArtist": "ėí°ė¤í¸ ëŗ´ę¸°",
- "action.goToAlbum": "ė¨ë˛ ëŗ´ę¸°",
- "action.moveToTop": "ėëĄ ę°ę¸°",
- "action.share": "ęŗĩė ",
- "action.rename": "í¸ė§",
- "action.love": "ėĸėė",
- "action.unlove": "ėĸėė 뎍ė",
- "action.dislike": "ėĢė´ė",
- "action.undoDislike": "ėĢė´ė 뎍ė",
- "action.showWebRemoteQR": "ėš ëĻŦëǍí¸",
- "action.playTracksNext": "ë¤ė ${app.selectedMediaItems.length}ęŗĄ ėŦė",
- "action.playTracksLater": "ëė¤ė ${app.selectedMediaItems.length}ęŗĄ ėŦė",
- "action.removeTracks": "${self.selectedItems.length}ęŗĄė ë기ė´ėė ėė ",
- "action.import": "ëļëŦė¤ę¸°",
- "action.export": "ë´ëŗ´ë´ę¸°",
- "action.showAlbum": "ė 랴 ė¨ë˛ ëŗ´ę¸°",
- "action.tray.minimize": "í¸ë ė´ė ėĩėí",
- "action.tray.quit": "ėĸ
ëŖ",
- "action.tray.show": "ëŗ´ę¸°",
- "action.update": "ė
ë°ė´í¸",
- "action.copy": "ëŗĩėŦ",
- "action.newpreset": "ė íëĻŦė
", // Equalizer Preset
- "action.deletepreset": "íëĻŦė
ėė ",
-
- // Settings - General
- "settings.header.general": "ėŧë°",
- "settings.header.general.description": "Ciderė ėŧë° ę¸°ëĨė ė¤ė íŠëë¤.",
- "settings.option.general.language": "ė¸ė´",
-
- // Language optgroups
- "settings.option.general.language.main": "ė¸ė´",
- "settings.option.general.language.fun": "ėŦ미ëĨŧ ėí ė¸ė´",
- "settings.option.general.language.unsorted": "미ëļëĨ",
-
- // Update Cider
- "settings.option.general.updateCider": "Cider ė
ë°ė´í¸", // Button
-
- // Settings - Audio
- "settings.header.audio": "ė¤ëė¤",
- "settings.header.audio.description": "Ciderė ė¤ëė¤ ę¸°ëĨė ė¤ė íŠëë¤.",
- "settings.option.audio.quality": "ė¤ëė¤ ėė§", // Dropdown
- "settings.header.audio.quality.high": "ęŗ íė§",
- "settings.header.audio.quality.low": "ëŽė",
- "settings.header.audio.quality.auto": "ėë",
- "settings.option.audio.seamlessTransition": "íŦëĄė¤íė´ë 기ëĨ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "ėļę° ę¸°ëĨ ė¤ė ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 기ëĨė íėąííėŦ ė¤ëė¤ ė ęˇí, ė´íëŧė´ė , ëšėĨŦėŧëŧė´ė ëąė 기ëĨė ė¸ ė ėę˛ í´ė¤ëë¤. ėŧëļ ėė¤í
ėėë ė¤ëė¤ę° ë길 ė ėėĩëë¤.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ė¤ëė¤ ė ęˇí", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ę°ëŗ í¸ëė ėĩë ëŗŧëĨ¨ė ė ęˇííėŦ ëŗ´ë¤ ęˇ ėŧí ė˛ėˇ¨ ę˛Ŋíė ė ęŗĩíŠëë¤.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ė¤ëė¤ ęŗĩę°í", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ė¤ëė¤ëĨŧ ęŗĩę°ííęŗ ëėą 3ė°¨ėė ėŧëĄ ë§ë¤ė´ė¤ëë¤. (ė°¸ęŗ : ė´ ę¸°ëĨė Dolby Atmosę° ėëëë¤.)",
-
- // Settings - Visual
- "settings.header.visual": "ėę°",
- "settings.header.visual.description": "Ciderė ėę° ę¸°ëĨė ė¤ė íŠëë¤.",
- "settings.option.visual.windowBackgroundStyle": "ėëė° ë°°ę˛Ŋ ė¤íėŧ", // Toggle
- "settings.header.visual.windowBackgroundStyle.none": "ėė",
- "settings.header.visual.windowBackgroundStyle.artwork": "ė¨ë˛ ėí¸",
- "settings.header.visual.windowBackgroundStyle.image": "ė´ë¯¸ė§",
- "settings.option.visual.animatedArtwork": "ė ëëŠė´ė
ė¨ë˛ íė§", // Dropdown
- "settings.header.visual.animatedArtwork.always": "íė íėąí",
- "settings.header.visual.animatedArtwork.limited": "íė´ė§ë íšė í늴ėėë§ íėąí",
- "settings.header.visual.animatedArtwork.disable": "íė ëšíėąí",
- "settings.option.visual.animatedArtworkQuality": "ė ëëŠė´ė
ė¨ë˛ íė§ íė§", // Dropdown
- "settings.header.visual.animatedArtworkQuality.low": "ëŽė",
- "settings.header.visual.animatedArtworkQuality.medium": "ė¤ę°",
- "settings.header.visual.animatedArtworkQuality.high": "ëė",
- "settings.header.visual.animatedArtworkQuality.veryHigh": "ë§¤ė° ëė",
- "settings.header.visual.animatedArtworkQuality.extreme": "ėĩė",
- "settings.option.visual.animatedWindowBackground": "ėė§ė´ë ėëė° ë°°ę˛Ŋ", // Toggle
- "settings.option.visual.hardwareAcceleration": "íëė¨ė´ ę°ė", // Dropdown
- "settings.option.visual.hardwareAcceleration.description": "ėŦėėė íėëĄ íŠëë¤.",
- "settings.header.visual.hardwareAcceleration.default": "ę¸°ëŗ¸",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- "settings.header.visual.theme": "í
ë§",
-
- // Settings - Visual - Theme name
- "settings.option.visual.theme.default": "Cider",
- "settings.option.visual.theme.dark": "ë¤íŦ",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "ę°ė¸ ė ëŗ´ ëŗ´ę¸°", // Toggle
-
- // Settings - Lyrics
- "settings.header.lyrics": "ę°ėŦ",
- "settings.header.lyrics.description": "Ciderė ę°ėŦ 기ëĨė ė¤ė íŠëë¤.",
- "settings.option.lyrics.enableMusixmatch": "Musixmatch ę°ėŦ íėąí", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "ë
¸ëë°Š ëǍë íėąí (Musixmatchë§ ę°ëĨ)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch ë˛ė ė í¸ ė¸ė´", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "ëŽ¤ė§ ëšëė¤ė ëí ė íë¸ ėë§ íėąí", // Toggle
-
- // Settings - Connectivity
- "settings.header.connectivity": "ė°ë",
- "settings.header.connectivity.description": "Ciderė ė°ë 기ëĨė ė¤ė íŠëë¤.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- "settings.option.connectivity.playbackNotifications": "ėŦė ėëĻŧ", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "'Cider'ëĄ íėí기",
- "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music'ėŧëĄ íėí기",
- "settings.option.connectivity.discordRPC.clearOnPause": "ėŧė ė ė§ ė Discord Rich Presenceė ë기", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Last.fm ė¤íŦëĄë¸ë§", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "Last.fm ė¤íŦëĄë¸ ëë ė´ (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playing 기ëĨ íėąí",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "ęŗĄ ė ëĒŠėė íŧėŗë§ ėí°ė¤í¸ëĨŧ ė ė¸í기 (Last.fm)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "ëŖ¨í í¸ëė íí°í기 (Last.fm)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
- "settings.header.experimental": "ė¤íė¤",
- "settings.header.experimental.description": "Ciderė ė¤íė 기ëĨė ė¤ė íŠëë¤.",
- "settings.option.experimental.compactUI": "ėģ´íŠí¸ UI", // Toggle
- "settings.option.experimental.close_button_hide": "ëĢ기 ë˛íŧė´ ė íëĻŦėŧė´ė
ė ę°ëĻ´ ę˛ė
ëë¤",
- "settings.option.experimental.copy_log": "ëĄęˇ¸ëĨŧ í´ëĻŊëŗ´ëė ëŗĩėŦí기",
- "settings.option.experimental.inline_playlists": "ė¸ëŧė¸ íë ė´ëĻŦė¤í¸ ë° ė¨ë˛",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
- "spatial.notTurnedOn": "ė¤ëė¤ ęŗĩę°íę° ëšíėąíëė´ėėĩëë¤. ėŦėŠí기 ė ė ë¨ŧė íėąíí´ėŖŧė¸ė.",
- "spatial.spatialProperties": "ęŗĩę° ė¤ė ",
- "spatial.width": "길ė´",
- "spatial.height": "ëė´",
- "spatial.depth": "ęšė´",
- "spatial.gain": "ėļë Ĩ",
- "spatial.roomMaterials": "ë°Š ėŦė§",
- "spatial.roomDimensions": "ë°Š ė°¨ė",
- "spatial.roomPositions": "ë°Š ėėš",
- "spatial.setDimensions": "ė°¨ė ė¤ė ",
- "spatial.setPositions": "ėėš ė¤ė ",
- "spatial.up": "ė",
- "spatial.front": "ė",
- "spatial.left": "ėĸ",
- "spatial.right": "ė°",
- "spatial.back": "ë¤",
- "spatial.down": "ėë",
- "spatial.listener": "ėŦėŠė",
- "spatial.audioSource": "ė¤ëė¤ ėė¤",
-
- // Settings - Unfinished
- "settings.header.unfinished": "미ėėą",
-
- // Web Remote
- "remote.web.title": "Cider ëĻŦëǍí¸",
- "remote.web.description": "QR ėŊëëĨŧ ė¤ėēí´ė Ciderė ė¤ë§í¸í°ė ė°ę˛°í기",
-
- // About
- "about.thanks": "Cider Collective Teamęŗŧ ëǍë 기ėŦėë¤ėę˛ ę°ėŦíŠëë¤."
-}
\ No newline at end of file
diff --git a/src/i18n/pt_BR.json b/src/i18n/pt_BR.json
new file mode 100644
index 00000000..4203ec94
--- /dev/null
+++ b/src/i18n/pt_BR.json
@@ -0,0 +1,306 @@
+{
+ "i18n.languageName": "PortuguÃĒs (brasileiro)",
+ "i18n.languageNameEnglish": "Portuguese (Brazil)",
+ "i18n.category": "main",
+ "i18n.authors": "",
+ "app.name": "Cider",
+ "date.format": "${d} ${m}, ${y}",
+ "dialog.cancel": "Cancelar",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Atualizando mÃēsicas na biblioteca...",
+ "notification.updatingLibraryAlbums": "Atualizando albuns na biblioteca...",
+ "notification.updatingLibraryArtists": "Atualizando artistas na biblioteca...",
+ "notification.connectionError": "Houve um problema a se conectar no Apple Music",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "Saiba Mais",
+ "term.accountSettings": "DefiniçÃĩes da Conta",
+ "term.logout": "Sair",
+ "term.login": "Entrar",
+ "term.about": "Sobre",
+ "term.privateSession": "SessÃŖo Privada",
+ "term.queue": "Fila",
+ "term.search": "Procurar",
+ "term.library": "Biblioteca",
+ "term.listenNow": "Ouça Agora",
+ "term.browse": "Explorar",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "Adicionado Recentemente",
+ "term.songs": "MÃēsicas",
+ "term.albums": "Albuns",
+ "term.artists": "Artistas",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Playlists",
+ "term.playlist": "Playlist",
+ "term.play": "Tocar",
+ "term.pause": "Pausar",
+ "term.previous": "Anterior",
+ "term.next": "PrÃŗximo",
+ "term.shuffle": "AleatÃŗrio",
+ "term.repeat": "Repetir",
+ "term.volume": "Volume",
+ "term.mute": "Mudo",
+ "term.unmute": "Tirar o Mudo",
+ "term.share": "Compartilhar",
+ "term.settings": "DefiniçÃĩes",
+ "term.seeAll": "Ver Tudo",
+ "term.sortBy": "Organizar Por",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artista",
+ "term.sortBy.name": "Nome",
+ "term.sortBy.genre": "Genero",
+ "term.sortBy.releaseDate": "Data de Lançamento",
+ "term.sortBy.duration": "DuraÃ§ÃŖo",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascendente",
+ "term.sortOrder.descending": "Descendente",
+ "term.viewAs": "Ver Como",
+ "term.viewAs.coverArt": "Capa",
+ "term.viewAs.list": "Lista",
+ "term.size": "Tamanho",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Compacto",
+ "term.enable": "Ativar",
+ "term.disable": "Desativar",
+ "term.enabled": "Ativado",
+ "term.disabled": "Desativado",
+ "term.connect": "Conectar",
+ "term.disconnect": "Desconectar",
+ "term.connecting": "Conectando",
+ "term.confirm": "Confirmar?",
+ "term.more": "Mais",
+ "term.less": "Menos",
+ "term.showMore": "Mostrar Mais",
+ "term.showLess": "Mostrar Menos",
+ "term.topSongs": "Top de MÃēsicas",
+ "term.latestReleases": "Ultimos Lançamentos",
+ "term.time.added": "Adicionado",
+ "term.time.released": "Lançado",
+ "term.time.updated": "Atualizado",
+ "term.fullscreenView": "VisualizaÃ§ÃŖo em Tela Cheia",
+ "term.defaultView": "VisualizaÃ§ÃŖo Normal",
+ "term.spacializedAudioSetting": "DefiniçÃĩes de Audio Espacial",
+ "term.clearAll": "Limpar Tudo",
+ "term.language": "Idioma",
+ "term.recentStations": "EstaçÃĩes Recentes",
+ "term.funLanguages": "Fun",
+ "term.noLyrics": "Carregando... / Letras nÃŖo achadas./ Instrumental.",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "Todos direitos reservados.",
+ "term.sponsor": "Patrocine esse projeto",
+ "term.ciderTeam": "Time Cider",
+ "term.developer": "Desenvolvedor",
+ "term.socialTeam": "Time social",
+ "term.socials": "Redes Sociais",
+ "term.contributors": "Contribuidores",
+ "term.equalizer": "Equalizador",
+ "term.reset": "Resetar",
+ "term.tracks": "mÃēsicas",
+ "term.videos": "VÃdeos",
+ "term.menu": "Menu",
+ "term.check": "Checark",
+ "term.aboutArtist": "Sobre {{artistName}}",
+ "term.topResult": "Melhor resultado",
+ "term.sharedPlaylists": "Playlists compartilhadas",
+ "term.people": "Pessoas",
+ "term.newpreset.name": "Nova predefiniÃ§ÃŖo para o equalizador",
+ "term.addedpreset": "PredefiniÃ§ÃŖo adicionada",
+ "term.deletepreset.warn": "Certeza que quer apagar essa predefiniÃ§ÃŖo?",
+ "term.deletedpreset": "PredefiniÃ§ÃŖo removida",
+ "term.defaultPresets": "predefiniçÃĩes padrÃŖo",
+ "term.userPresets": "PredefiniçÃĩes do usuÃĄrio",
+ "term.requestError": "There was a problem with the request.",
+ "term.song.link.generate": "Gerando URL do song.link...",
+ "term.musicVideos": "VÃdeos",
+ "term.stations": "EstaçÃĩes",
+ "term.curators": "Curadores",
+ "term.appleCurators": "Curadores da Apple",
+ "term.radioShows": "Shows de Radio",
+ "term.recordLabels": "Gravadoras",
+ "term.videoExtras": "Extras",
+ "term.top": "Top",
+ "term.version": "VersÃŖo",
+ "term.noVideos": "VÃdeos nÃŖo encontrados.",
+ "home.title": "Inicio",
+ "home.recentlyPlayed": "Tocado Recentemente",
+ "home.recentlyAdded": "Adicionado Recentemente",
+ "home.artistsFeed": "Novidades dos seus Artistas",
+ "home.madeForYou": "Feito para VocÃĒ",
+ "home.friendsListeningTo": "Amigos Ouvindo",
+ "home.followedArtists": "Artistas Seguidos",
+ "home.artistsFeed.noArtist": "Siga uns artistas e o seus ultimos lançamentos aparecerÃŖo aqui",
+ "error.appleMusicSubRequired": "NecessÃĄrio uma assinatura Apple Music.",
+ "error.connectionError": "Aconteceu um problema ao conectar ao Apple Music.",
+ "error.noResults": "Sem resultados.",
+ "error.noResults.description": "Tente uma nova busca.",
+ "podcast.followOnCider": "Seguir no Cider",
+ "podcast.followedOnCider": "Seguindo no Cider",
+ "podcast.subscribeOnItunes": "Inscrever-se no iTunes",
+ "podcast.subscribedOnItunes": "Inscrito no iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Episodios",
+ "podcast.playEpisode": "Reproduzir episÃŗdio",
+ "podcast.website": "Website do Podcast",
+ "action.addToLibrary": "Adicionar à Biblioteca",
+ "action.addToLibrary.success": "Adicionado à Biblioteca",
+ "action.addToLibrary.error": "Erro ao Adicionar na Biblioteca",
+ "action.removeFromLibrary": "Remover da Biblioteca",
+ "action.removeFromLibrary.success": "Removido da Biblioteca",
+ "action.addToQueue": "Adicionar à Fila",
+ "action.addToQueue.success": "Adicionado à Fila",
+ "action.addToQueue.error": "Erro ao Adicionar à Fila",
+ "action.removeFromQueue": "Remover da Fila",
+ "action.removeFromQueue.success": "Removido da Fila",
+ "action.removeFromQueue.error": "Erro ao Remover da Fila",
+ "action.addToPlaylist": "Adicionar à Lista de ReproduÃ§ÃŖo",
+ "action.removeFromPlaylist": "Remover da Lista de ReproduÃ§ÃŖo",
+ "action.addToFavorites": "Adicionar aos Favoritos",
+ "action.follow": "Seguir",
+ "action.follow.success": "A Seguir",
+ "action.follow.error": "Erro ao Seguir",
+ "action.unfollow": "Deixar de Seguir",
+ "action.unfollow.success": "Deixou de Seguir",
+ "action.unfollow.error": "Erro ao Deixar de Seguir",
+ "action.playNext": "Reproduzir a Seguir",
+ "action.playLater": "Reproduzir por Ultimo",
+ "action.startRadio": "Começar Radio",
+ "action.goToArtist": "Ir para o Artista",
+ "action.goToAlbum": "Ir para o Album",
+ "action.moveToTop": "Mover para cima",
+ "action.share": "Compartilhar",
+ "action.rename": "Renomear",
+ "action.love": "Gostar",
+ "action.unlove": "Deixar de Gostar",
+ "action.dislike": "NÃŖo Gostar",
+ "action.undoDislike": "Deixar de NÃŖo Gostar",
+ "action.showWebRemoteQR": "Mostrar o QR para PÃĄgina Remota",
+ "action.playTracksNext": "Reproduzir ${app.selectedMediaItems.length} mÃēsicas a seguir",
+ "action.playTracksLater": "Reproduzir ${app.selectedMediaItems.length} mÃēsicas depois",
+ "action.removeTracks": "Remover ${self.selectedItems.length} mÃēsicas da fila",
+ "action.import": "Importar",
+ "action.export": "Exportar",
+ "action.showAlbum": "Mostrar album completo",
+ "action.tray.minimize": "Minimize to Tray",
+ "action.tray.quit": "Sair",
+ "action.tray.show": "Mostrar",
+ "action.update": "Atualizar",
+ "action.copy": "Copiar",
+ "action.newpreset": "Nova predefiniÃ§ÃŖo...",
+ "action.deletepreset": "Apagar predefiniÃ§ÃŖo",
+ "action.open": "Abrir",
+ "settings.header.general": "Principal",
+ "settings.header.general.description": "Ajustar as definiçoes principais no Cider.",
+ "settings.option.general.language": "Idioma",
+ "settings.option.general.language.main": "Idiomas",
+ "settings.option.general.language.fun": "Idiomas divertidos",
+ "settings.option.general.language.unsorted": "Sem categoria",
+ "settings.option.general.updateCider": "Atualizar o Cider",
+ "settings.option.general.updateCider.branch": "Cider Update Branch",
+ "settings.option.general.updateCider.branch.description": "Escolha a versÃŖo do Cider para atualizar",
+ "settings.option.general.updateCider.branch.main": "EstÃĄvel",
+ "settings.option.general.updateCider.branch.develop": "Em desenvolvimeno",
+ "settings.header.audio": "Ãudio",
+ "settings.header.audio.description": "Ajustar as configuraçÃĩes de ÃĄudio no Cider.",
+ "settings.option.audio.volumeStep": "Incrementos",
+ "settings.option.audio.maxVolume": "Volume mÃĄximo",
+ "settings.option.audio.quality": "Qualidade de Ãudio",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "atÊ 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "atÊ 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "Alta",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "PadrÃŖo",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "TransiÃ§ÃŖo de audio ...",
+ "settings.option.audio.enableAdvancedFunctionality": "Ativar configuraçÃĩes avancadas",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Habilitar a funcionalidade AudioContext permitirÃĄ recursos de ÃĄudio estendidos, como NormalizaÃ§ÃŖo de Ãudio , Equalizadores e Visualizadores. No entanto, em alguns sistemas, isso pode causar travamentos nas faixas de ÃĄudio.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Melhoras psicoacusticas que fazem com que tudo soe mais vivo.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP nÃŖo Ê compativel com Ãudio Espacial. Por favor, desative-o para continuar.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "PotÃĒncia do CAP",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Muda a potÃĒncia do processamento feito no ÃĄudio. (a funÃ§ÃŖo Agressiva pode levar a resultados nÃŖo desejados.)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "PadrÃŖo",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressiva",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizaÃ§ÃŖo de Ãudio",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiÃĒncia de audiÃ§ÃŖo mais uniforme.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Ãudio Espacial",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o ÃĄudio e torne o ÃĄudio mais tridimensional (nota: isto nÃŖo Ê Dolby Atmos)",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Ãudio Espacial nÃŖo Ê compativel com o CAP. Por favor desative-o.",
+ "settings.header.visual": "Visual",
+ "settings.header.visual.description": "Ajustar as configuraçÃĩes visuais do Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Estilo do fundo da janela",
+ "settings.header.visual.windowBackgroundStyle.none": "Nenhum",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Capa",
+ "settings.header.visual.windowBackgroundStyle.image": "Imagem",
+ "settings.option.visual.animatedArtwork": "Capa animada",
+ "settings.header.visual.animatedArtwork.always": "Sempre",
+ "settings.header.visual.animatedArtwork.limited": "Limitado a pÃĄginas e entradas especiais",
+ "settings.header.visual.animatedArtwork.disable": "Desativar",
+ "settings.option.visual.animatedArtworkQuality": "Qualidade da capa animada",
+ "settings.header.visual.animatedArtworkQuality.low": "Baixa",
+ "settings.header.visual.animatedArtworkQuality.medium": "Media",
+ "settings.header.visual.animatedArtworkQuality.high": "Alta",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Muito Alta",
+ "settings.header.visual.animatedArtworkQuality.extreme": "Altissima",
+ "settings.option.visual.animatedWindowBackground": "Fundo animado",
+ "settings.option.visual.hardwareAcceleration": "AceleraÃ§ÃŖo de Hardware",
+ "settings.option.visual.hardwareAcceleration.description": "NecessÃĄrio reabrir o Cider",
+ "settings.header.visual.hardwareAcceleration.default": "PadrÃŖo",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Tema",
+ "settings.option.visual.theme.github.download": "Instalar pelo URL do GitHub",
+ "settings.option.visual.theme.github.explore": "Explorar temas no GitHub",
+ "settings.option.visual.theme.github.install.confirm": "Tem certeza que quer instalar {{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "Insira o URL do tema que deseja instalar",
+ "settings.notyf.visual.theme.install.success": "Tema instalado com sucesso",
+ "settings.notyf.visual.theme.install.error": "A instalaÃ§ÃŖo do tema falhou",
+ "settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais",
+ "settings.header.lyrics": "Letras",
+ "settings.header.lyrics.description": "Ajustar as definiçÃĩes das letras no Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Ativar Letras do Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Ativar Modo Karaoke (sÃŗ para Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma Preferido para TraduÃ§ÃŖo Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videos musicais",
+ "settings.header.connectivity": "Conectividade",
+ "settings.header.connectivity.description": "Ajustar as definiçÃĩes de conectividade no Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Apagar Discord Rich Presence quando estiver pausado",
+ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Atraso dos Scrobbles do LastFM (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar LastFM Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas de colaboraÃ§ÃŖo do nome da mÃēsica (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar mÃēsicas repitidas (Last.fm)",
+ "settings.header.debug": "Debug",
+ "settings.option.debug.copy_log": "Copiar logs",
+ "settings.option.debug.openAppData": "Abrir a pasta do Cider",
+ "settings.header.experimental": "Experimental",
+ "settings.header.experimental.description": "Ajustar as definiçÃĩes experimental no Cider.",
+ "settings.option.experimental.compactUI": "UI Compacto",
+ "settings.option.window.close_button_hide": "Fechar apenas esconde o Cider",
+ "spatial.spatialProperties": "Propriedades do Espacial",
+ "spatial.width": "Largura",
+ "spatial.height": "Altura",
+ "spatial.depth": "Profundidade",
+ "spatial.roomMaterials": "Materiais da Sala",
+ "spatial.roomDimensions": "DimensÃĩes da Sala",
+ "spatial.roomPositions": "PosiçÃĩes da Sala",
+ "spatial.setDimensions": "Definir DimensÃĩes",
+ "spatial.setPositions": "Definir PosiçÃĩes",
+ "spatial.up": "Acima",
+ "spatial.front": "Frente",
+ "spatial.left": "Esquerda",
+ "spatial.right": "Direita",
+ "spatial.back": "AtrÃĄs",
+ "spatial.down": "Abaixo",
+ "spatial.listener": "Ouvinte",
+ "spatial.audioSource": "Fonte de Audio",
+ "settings.header.unfinished": "Inacabado",
+ "remote.web.title": "Cider Remoto",
+ "remote.web.description": "Digitalize o cÃŗdigo QR para emparelhar seu telefone com esta instÃĸncia Cider"
+}
diff --git a/src/i18n/pt_BR.jsonc b/src/i18n/pt_BR.jsonc
deleted file mode 100644
index dad04de4..00000000
--- a/src/i18n/pt_BR.jsonc
+++ /dev/null
@@ -1,244 +0,0 @@
-{ // Base File
- // App info
- "app.name": "Cider",
-
- "date.format": "${d} ${m}, ${y}",
-
- // i18n Info
- "i18n.languageName": "PortuguÃĒs ( brasileiro )", // name of language in native language
- "i18n.languageNameEnglish": "Portuguese (Brazil)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // Dialogs
- "dialog.cancel": "Cancelar",
- "dialog.ok": "OK",
-
- // Notification
- "notification.updatingLibrarySongs": "Atualizando mÃēsicas na biblioteca...",
- "notification.updatingLibraryAlbums": "Atualizando albuns na biblioteca...",
- "notification.updatingLibraryArtists": "Atualizando artistas na biblioteca...",
- "notification.connectionError": "Houve um problema a se conectar no Apple Music",
-
- // Terms
- "term.appleMusic": "Apple Music",
- "term.applePodcasts": "Apple Podcasts",
- "term.itunes": "iTunes",
- "term.github": "GitHub",
- "term.discord": "Discord",
- "term.learnMore": "Saiba Mais",
- "term.accountSettings": "DefiniçÃĩes da Conta",
- "term.logout": "Sair",
- "term.login": "Entrar",
- "term.about": "Sobre",
- "term.privateSession": "SessÃŖo Privada",
- "term.queue": "Fila",
- "term.search": "Procurar",
- "term.library": "Biblioteca",
- "term.listenNow": "Ouça Agora",
- "term.browse": "Explorar",
- "term.radio": "Radio",
- "term.recentlyAdded": "Adicionado Recentemente",
- "term.songs": "MÃēsicas",
- "term.albums": "Albuns",
- "term.artists": "Artistas",
- "term.podcasts": "Podcasts",
- "term.playlists": "Listas de ReproduÃ§ÃŖo",
- "term.playlist": "Lista de ReproduÃ§ÃŖo",
- "term.play": "Tocar",
- "term.pause": "Pausar",
- "term.previous": "Anterior",
- "term.next": "PrÃŗximo",
- "term.shuffle": "AleatÃŗrio",
- "term.repeat": "Repetir",
- "term.volume": "Volume",
- "term.mute": "Mudo",
- "term.unmute": "Tirar o Mudo",
- "term.share": "Partilhar",
- "term.settings": "DefiniçÃĩes",
- "term.seeAll": "Ver Tudo",
- "term.sortBy": "Organizar Por",
- "term.sortBy.album": "Album",
- "term.sortBy.artist": "Artista",
- "term.sortBy.name": "Nome",
- "term.sortBy.genre": "Genero",
- "term.sortBy.releaseDate": "Data de Lançamento",
- "term.sortBy.duration": "DuraÃ§ÃŖo",
- "term.sortOrder": "A-Z",
- "term.sortOrder.ascending": "Ascendente",
- "term.sortOrder.descending": "Descendente",
- "term.viewAs": "Ver Como",
- "term.viewAs.coverArt": "Capa",
- "term.viewAs.list": "Lista",
- "term.size": "Tamanho",
- "term.size.normal": "Normal",
- "term.size.compact": "Compacto",
- "term.enable": "Ativar",
- "term.disable": "Desativar",
- "term.enabled": "Ativado",
- "term.disabled": "Desativado",
- "term.connect": "Conectar",
- "term.disconnect": "Desconectar",
- "term.connecting": "Conectando",
- "term.confirm": "Confirmar ?",
- "term.more": "Mais",
- "term.less": "Menos",
- "term.showMore": "Mostrar Mais",
- "term.showLess": "Mostrar Menos",
- "term.topSongs" : "Top de MÃēsicas",
- "term.latestReleases": "Ultimos Lançamentos",
- "term.time.added": "Adicionado",
- "term.time.released": "Lançado",
- "term.time.updated": "Atualizado",
- "term.fullscreenView": "VisualizaÃ§ÃŖo em Tela Cheia",
- "term.defaultView": "VisualizaÃ§ÃŖo Normal",
- "term.spacializedAudioSetting": "DefiniçÃĩes de Audio Espacial",
- "term.clearAll": "Limpar Tudo",
- "term.language": "Idioma",
- "term.recentStations": "EstaçÃĩes Recentes",
-
- // Home
- "home.title": "Inicio",
- "home.recentlyPlayed": "Tocado Recentemente",
- "home.recentlyAdded": "Adicionado Recentemente",
- "home.artistsFeed": "Novidades dos seus Artistas",
- "home.madeForYou": "Feito para VocÃĒ",
- "home.friendsListeningTo": "Amigos Ouvindo",
- "home.followedArtists": "Artistas Seguidos",
- // Errors
- "error.appleMusicSubRequired": "NecessÃĄrio uma assinatura Apple Music.",
-
- // Actions
- "action.addToLibrary": "Adicionar à Biblioteca",
- "action.addToLibrary.success": "Adicionado à Biblioteca",
- "action.addToLibrary.error": "Erro ao Adicionar na Biblioteca",
- "action.removeFromLibrary": "Remover da Biblioteca",
- "action.removeFromLibrary.success": "Removido da Biblioteca",
- "action.addToQueue": "Adicionar à Fila",
- "action.addToQueue.success": "Adicionado à Fila",
- "action.addToQueue.error": "Erro ao Adicionar à Fila",
- "action.removeFromQueue": "Remover da Fila",
- "action.removeFromQueue.success": "Removido da Fila",
- "action.removeFromQueue.error": "Erro ao Remover da Fila",
- "action.addToPlaylist": "Adicionar à Lista de ReproduÃ§ÃŖo",
- "action.removeFromPlaylist": "Remover da Lista de ReproduÃ§ÃŖo",
- "action.addToFavorites": "Adicionar aos Favoritos",
- "action.follow": "Seguir",
- "action.follow.success": "A Seguir",
- "action.follow.error": "Erro ao Seguir",
- "action.unfollow": "Deixar de Seguir",
- "action.unfollow.success": "Deixou de Seguir",
- "action.unfollow.error": "Erro ao Deixar de Seguir",
- "action.playNext": "Tocar Proximo",
- "action.playLater": "Tocar por Ultimo",
- "action.startRadio": "Começar Radio",
- "action.goToArtist": "Ir para o Artista",
- "action.goToAlbum": "Ir para o Album",
- "action.moveToTop": "Mover para cima",
- "action.share": "Partilhar",
- "action.rename": "Mudar o Nome",
- "action.love": "Gostar",
- "action.unlove": "Deixar de Gostar",
- "action.dislike": "NÃŖo Gostar",
- "action.undoDislike": "Deixar de NÃŖo Gostar",
- "action.showWebRemoteQR": "Mostrar o QR para PÃĄgina Remota",
- // Settings - Audio
- "settings.header.audio": "Audio",
- "settings.header.audio.description": "Ajustar as definiçÃĩes de audio no Cider.",
- "settings.option.audio.quality": "Qualidade do Audio", // Dropdown
- "settings.header.audio.quality.high": "Alta",
- "settings.header.audio.quality.low": "Baixa",
- "settings.header.audio.quality.auto": "Automatico",
- "settings.option.audio.seamlessTransition": "TransiÃ§ÃŖo de Ãudio Perfeita", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Ativar Funcionabilidades Avançadas", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "Habilitar a funcionalidade AudioContext permitirÃĄ recursos de ÃĄudio estendidos, como NormalizaÃ§ÃŖo de Ãudio , Equalizadores e Visualizadores. No entanto, em alguns sistemas, isso pode causar travamentos nas faixas de ÃĄudio.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizaÃ§ÃŖo de Audio", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiÃĒncia de audiÃ§ÃŖo mais uniforme.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Espacial", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o ÃĄudio e torne o ÃĄudio mais tridimensional (nota: isto nÃŖo Ê Dolby Atmos)",
- // Settings - Visual
- "settings.header.visual": "Visual",
- "settings.header.visual.description": "Ajustar as DefiniçÃĩes de Visual do Cider.",
- "settings.option.visual.windowBackgroundStyle": "Estilo do Fundo da Janela", // Toggle
- "settings.header.visual.windowBackgroundStyle.none": "Nenhum",
- "settings.header.visual.windowBackgroundStyle.artwork": "Capa",
- "settings.option.visual.animatedArtwork": "Capa Animada", // Dropdown
- "settings.header.visual.animatedArtwork.always": "Sempre",
- "settings.header.visual.animatedArtwork.limited": "Limitado a pÃĄginas e entradas especiais",
- "settings.header.visual.animatedArtwork.disable": "Desativar em Tudo",
- "settings.option.visual.animatedArtworkQuality": "Qualidade da Capa Animada", // Dropdown
- "settings.header.visual.animatedArtworkQuality.low": "Baixa",
- "settings.header.visual.animatedArtworkQuality.medium": "Media",
- "settings.header.visual.animatedArtworkQuality.high": "Alta",
- "settings.header.visual.animatedArtworkQuality.veryHigh": "Muito Alta",
- "settings.header.visual.animatedArtworkQuality.extreme": "Extrema",
- "settings.option.visual.animatedWindowBackground": "Fundo de Janela Animado", // Toggle
- "settings.option.visual.hardwareAcceleration": "AcelaraÃ§ÃŖo no Hardware", // Dropdown
- "settings.option.visual.hardwareAcceleration.description": "NecessÃĄrio reiniciar a aplicaÃ§ÃŖo",
- "settings.header.visual.hardwareAcceleration.default": "Normal",
- "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
-
-
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais", // Toggle
- // Settings - General (Reserved)
- "settings.header.general": "Principal",
- "settings.header.general.description": "Ajustar as definiçoes principais no Cider.",
-
- // Settings - Lyrics
- "settings.header.lyrics": "Letras",
- "settings.header.lyrics.description": "Ajustar as definiçÃĩes das letras no Cider.",
- "settings.option.lyrics.enableMusixmatch": "Ativar Letras do Musixmatch", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Ativar Modo Karaoke (sÃŗ para Musixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma Preferido para TraduÃ§ÃŖo Musixmatch", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videos musicais", // Toggle
-
- // Settings - Connectivity
- "settings.header.connectivity": "Conectividade",
- "settings.header.connectivity.description": "Ajustar as definiçÃĩes de conectividade no Cider.",
- "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Apagar Discord Rich Presence quando estiver pausado", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "Atraso dos Scrobbles do LastFM (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar LastFM Now Playing",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas de colaboraÃ§ÃŖo do nome da mÃēsica (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
- "settings.header.experimental": "Experimental",
- "settings.header.experimental.description": "Ajustar as definiçÃĩes experimental no Cider.",
- "settings.option.experimental.compactUI": "UI Compacto", // Toggle
- // Refer to term.disabled & term.enabled
-
- // Spatialization Menu
- "spatial.spatialProperties" : "Propriedades do Espacial",
- "spatial.width" : "Largura",
- "spatial.height" : "Altura",
- "spatial.depth" : "Profundidade",
- "spatial.roomMaterials" : "Materiais da Sala",
- "spatial.roomDimensions" : "DimensÃĩes da Sala",
- "spatial.roomPositions" : "PosiçÃĩes da Sala",
- "spatial.setDimensions" : "Definir DimensÃĩes",
- "spatial.setPositions" : "Definir PosiçÃĩes",
- "spatial.up" : "Acima",
- "spatial.front" : "Frente",
- "spatial.left" : "Esquerda",
- "spatial.right" : "Direita",
- "spatial.back" : "AtrÃĄs",
- "spatial.down" : "Abaixo",
- "spatial.listener" : "Ouvinte",
- "spatial.audioSource" : "Fonte de Audio",
-
-
-
-
- // Settings - Unfinished
- "settings.header.unfinished": "Inacabado",
-
- // Web Remote
- "remote.web.title": "Cider Remoto",
- "remote.web.description": "Digitalize o cÃŗdigo QR para emparelhar seu telefone com esta instÃĸncia Cider"
-}
\ No newline at end of file
diff --git a/src/i18n/ro_RO.json b/src/i18n/ro_RO.json
new file mode 100644
index 00000000..5b37b59d
--- /dev/null
+++ b/src/i18n/ro_RO.json
@@ -0,0 +1,270 @@
+{
+ "i18n.languageName": "RomÃĸnÄ",
+ "i18n.languageNameEnglish": "Romanian",
+ "i18n.category": "main",
+ "i18n.authors": "@SubZeroNexii georgechrc",
+ "app.name": "Cider",
+
+ "date.format": "${d} ${m}, ${y}",
+ "dialog.cancel": "Anulare",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Actualizare bibliotecÄ muzicÄ...",
+ "notification.updatingLibraryAlbums": "Actualizare bibliotecÄ albume...",
+ "notification.updatingLibraryArtists": "Actualizare bibliotecÄ artiČti...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "AflÄ mai multe",
+ "term.accountSettings": "SetÄri cont",
+ "term.logout": "Deconectare",
+ "term.login": "Autentificare",
+ "term.about": "Despre",
+ "term.privateSession": "Sesiune PrivatÄ",
+ "term.queue": "ÃŽn CoadÄ",
+ "term.search": "CÄutare",
+ "term.library": "BibliotecÄ",
+ "term.listenNow": "AscultÄ acum",
+ "term.browse": "NavigaČi",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "Recent AdÄugate",
+ "term.songs": "MuzicÄ",
+ "term.albums": "Albume",
+ "term.artists": "ArtiČti",
+ "term.podcasts": "Podcast-uri",
+ "term.playlists": "Playlist-uri",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "Playlist Nou",
+ "term.newPlaylistFolder": "Dosar Playlist Nou",
+ "term.createNewPlaylist": "CreeazÄ un Playlist Nou",
+ "term.createNewPlaylistFolder": "CreeazÄ un Dosar Playlist Nou",
+ "term.deletePlaylist": "SunteČi siguri cÄ vreČi sÄ ČtergeČi acest Playlist?",
+ "term.play": "RedÄ",
+ "term.pause": "PauzÄ",
+ "term.previous": "Ãnapoi",
+ "term.next": "Ãnainte",
+ "term.shuffle": "Aleator",
+ "term.repeat": "RepetÄ",
+ "term.volume": "Volum",
+ "term.mute": "FarÄ sunet",
+ "term.unmute": "Activare sunet",
+ "term.share": "PartajeazÄ",
+ "term.settings": "SetÄri",
+ "term.seeAll": "VedeČi tot",
+ "term.sortBy": "Sortare dupÄ",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artist",
+ "term.sortBy.name": "Nume",
+ "term.sortBy.genre": "Gen",
+ "term.sortBy.releaseDate": "Data LansÄrii",
+ "term.sortBy.duration": "DuratÄ",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascendent",
+ "term.sortOrder.descending": "Descendent",
+ "term.viewAs": "Vizualizare ca",
+ "term.viewAs.coverArt": "ArtÄ CopertÄ",
+ "term.viewAs.list": "ListÄ",
+ "term.size": "MÄrime",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Compact",
+ "term.enable": "Activare",
+ "term.disable": "Dezactivare",
+ "term.enabled": "Activat",
+ "term.disabled": "Dezactivat",
+ "term.connect": "Conectare",
+ "term.connecting": "Se conecteazÄ",
+ "term.disconnect": "Deconectare",
+ "term.authed": "Autentificat",
+ "term.confirm": "ConfirmaČi ?",
+ "term.more": "Mai mult",
+ "term.less": "Mai puČin",
+ "term.showMore": "AratÄ mai mult",
+ "term.showLess": "AratÄ mai puČin",
+ "term.topSongs" : "Top MuzicÄ",
+ "term.latestReleases": "Ultimele LansÄri",
+ "term.time.added": "AdÄugate",
+ "term.time.released": "Lansate",
+ "term.time.updated": "Actualizate",
+ "term.time.hours": "ore",
+ "term.time.hour": "orÄ",
+ "term.time.minutes": "minute",
+ "term.time.minute": "minut",
+ "term.time.seconds": "secunde",
+ "term.time.second": "secundÄ",
+ "term.fullscreenView": "Vizualizare Ecran Complet",
+ "term.defaultView": "Vizualizare Standard",
+ "term.audioSettings": "SetÄri Audio",
+ "term.clearAll": "Čtergere toate",
+ "term.recentStations": "StaČii Recente",
+ "term.language": "LimbÄ",
+ "term.funLanguages": "Amuzament",
+ "term.noLyrics": "IncÄrcare... / Versurile nu au fost gÄsite./ Instrumental.",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "Toate drepturile rezervate.",
+ "term.sponsor": "SponsorizaČi acest proiect",
+ "term.ciderTeam": "Echipa Cider",
+ "term.developer": "Dezvoltatori",
+ "term.socialTeam": "Echipa de relaČii publice",
+ "term.socials": "ReČele Sociale",
+ "term.contributors": "Contribuitori",
+ "term.equalizer": "Egalizator",
+ "term.reset": "Reset",
+ "term.tracks": "melodii",
+ "term.videos": "Videoclipuri",
+ "term.menu": "Meniu",
+ "term.check": "Verificare",
+ "term.aboutArtist": "Despre {{artistName}}",
+ "term.updateCider": "Actualizare Cider",
+ "home.title": "AcasÄ",
+ "home.recentlyPlayed": "Asculate Recent",
+ "home.recentlyAdded": "AdÄugate Recent",
+ "home.artistsFeed": "Fluxul ArtiČtilor tÄi",
+ "home.artistsFeed.noArtist": "UrmÄreČte prima oarÄ caČiva artiČti Či ultimele lor lansÄri vor apÄrea aici",
+ "home.madeForYou": "Pentru tine",
+ "home.friendsListeningTo": "Prietenii tÄi ascultÄ",
+ "home.followedArtists": "ArtiČti UrmÄriČi",
+ "error.appleMusicSubRequired": "Apple Music necesitÄ un abonament.",
+ "error.connectionError": "A apÄrut o problemÄ ÃŽn conectarea la Apple Music.",
+ "error.noResults": "Nici un rezultat.",
+ "error.noResults.description": "ÃŽncearcÄ o nouÄ cÄutare.",
+ "podcast.followOnCider": "UrmÄreČte pe Cider",
+ "podcast.followedOnCider": "UrmÄrit pe Cider",
+ "podcast.subscribeOnItunes": "AboneazÄ-te pe iTunes",
+ "podcast.subscribedOnItunes": "Abonat pe iTunes",
+ "podcast.itunesStore": "Magazin iTunes",
+ "podcast.episodes": "Episoade",
+ "podcast.playEpisode": "Ãncepe Episodul",
+ "podcast.website": "PaginÄ Podcast",
+ "action.addToLibrary": "AdaugÄ ÃŽn LibrÄrie",
+ "action.addToLibrary.success": "AdÄugat ÃŽn LibrÄrie",
+ "action.addToLibrary.error": "Eroare la adÄugarea ÃŽn LibrÄrie",
+ "action.removeFromLibrary": "Čtergere din LibrÄrie",
+ "action.removeFromLibrary.success": "Čters din LibrÄrie",
+ "action.addToQueue": "AdÄugare la CoadÄ",
+ "action.addToQueue.success": "AdÄugat la CoadÄ",
+ "action.addToQueue.error": "Eroare adÄugare la CoadÄ",
+ "action.removeFromQueue": "Čtergere din CoadÄ",
+ "action.removeFromQueue.success": "Čters din CoadÄ",
+ "action.removeFromQueue.error": "Eroare Čtergere din CoadÄ",
+ "action.createPlaylist": "CreeazÄ un nou Playlist",
+ "action.addToPlaylist": "AdaugÄ la Playlist",
+ "action.removeFromPlaylist": "Čtergere din Playlist",
+ "action.addToFavorites": "AdaugÄ la Favorite",
+ "action.follow": "UrmÄreČte",
+ "action.follow.success": "UrmÄrit",
+ "action.follow.error": "Eroare UrmÄrire",
+ "action.unfollow": "Nu mai urmÄriČi",
+ "action.unfollow.success": "UrmÄrire ÃŽncetatÄ",
+ "action.unfollow.error": "Eroare ÃŽncetare UrmÄrire",
+ "action.playNext": "AscultÄ ÃŽn Continuare",
+ "action.playLater": "AscultÄ Mai TÃĸrziu",
+ "action.startRadio": "PorneČte Radio",
+ "action.goToArtist": "Du-te la Artist",
+ "action.goToAlbum": "Du-te la Album",
+ "action.moveToTop": "MutÄ ÃŽn vÃĸrf",
+ "action.share": "PartajeazÄ",
+ "action.rename": "Redenumire",
+ "action.love": "ApreciazÄ",
+ "action.unlove": "EliminÄ Apreciere",
+ "action.dislike": "Dislike",
+ "action.undoDislike": "EliminÄ dislike",
+ "action.showWebRemoteQR": "TelecomandÄ Web",
+ "action.playTracksNext": "RedÄ ${app.selectedMediaItems.length} de melodii ÃŽn continuare",
+ "action.playTracksLater": "RedÄ ${app.selectedMediaItems.length} de melodii mai tÃĸrziu",
+ "action.removeTracks": "Čterge ${self.selectedItems.length} de melodii din CoadÄ",
+ "action.import": "Import",
+ "action.export": "Export",
+ "action.showAlbum": "AratÄ Albumul Complet",
+ "action.tray.minimize": "MinimizeazÄ ÃŽn Tray",
+ "action.tray.quit": "IeČire",
+ "action.tray.show": "AratÄ",
+ "action.update": "ActualizeazÄ",
+ "settings.header.general": "General",
+ "settings.header.general.description": "AjusteazÄ setÄrile generale pentru Cider.",
+ "settings.option.general.language": "LimbÄ",
+ "settings.option.general.language.main": "Limbi",
+ "settings.option.general.language.fun": "Amuzant",
+ "settings.option.general.language.unsorted": "Nesortate",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "AjusteazÄ setÄrile audio pentru Cider.",
+ "settings.option.audio.quality": "Calitate Audio",
+ "settings.header.audio.quality.high": "RidicatÄ",
+ "settings.header.audio.quality.low": "RedusÄ",
+ "settings.header.audio.quality.auto": "Auto",
+ "settings.option.audio.seamlessTransition": "TranziČie Audio NeÃŽntreruptÄ",
+ "settings.option.audio.enableAdvancedFunctionality": "ActiveazÄ FuncČionalitate AvansatÄ",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Pornirea funcČionalitÄČii AudioContext va permite folosirea funcČiilor audio avansate precum Normalizare Volum , Egalizator Či Vizualizator, dar pe unele sisteme poate cauza probleme precum ÃŽntreruperi ÃŽn redare.",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizare Volum",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NormalizeazÄ volumul maxim al melodiilor pentru a genera o experienČÄ audio optimÄ.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "SpaČializare Audio",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SpaČializeazÄ sunetul Či face sunetul 3-dimensional (notÄ: Nu este Dolby Atmos)",
+ "settings.header.visual": "Vizual",
+ "settings.header.visual.description": "AjusteazÄ setÄrile vizuale pentru Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Stil Fundal FereastrÄ",
+ "settings.header.visual.windowBackgroundStyle.none": "Niciunul",
+ "settings.header.visual.windowBackgroundStyle.artwork": "CopertÄ Melodie",
+ "settings.header.visual.windowBackgroundStyle.image": "Imagine",
+ "settings.option.visual.animatedArtwork": "CopertÄ AnimatÄ",
+ "settings.header.visual.animatedArtwork.always": "Ãntotdeauna",
+ "settings.header.visual.animatedArtwork.limited": "Limitat la pagini Či Albume speciale",
+ "settings.header.visual.animatedArtwork.disable": "DezactiveazÄ peste tot",
+ "settings.option.visual.animatedArtworkQuality": "Calitate CopertÄ AnimatÄ",
+ "settings.header.visual.animatedArtworkQuality.low": "RedusÄ",
+ "settings.header.visual.animatedArtworkQuality.medium": "Medie",
+ "settings.header.visual.animatedArtworkQuality.high": "RidicatÄ",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Foarte RidicatÄ",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ExtremÄ",
+ "settings.option.visual.animatedWindowBackground": "Fundal FereastrÄ Animat",
+ "settings.option.visual.hardwareAcceleration": "Accelerare Hardware",
+ "settings.option.visual.hardwareAcceleration.description": "NecesitÄ Repornire",
+ "settings.header.visual.hardwareAcceleration.default": "Implitcit",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.option.visual.showPersonalInfo": "AratÄ informaČii personale",
+ "settings.header.lyrics": "Versuri",
+ "settings.header.lyrics.description": "AjusteazÄ setÄrile versurilor pentru Cider.",
+ "settings.option.lyrics.enableMusixmatch": "ActiveazÄ Versuri Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "ActiveazÄ Mod Karaoke (numai Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "LimbÄ PreferatÄ Traducere Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "ActiveazÄ Versuri Youtube pentru Videoclipuri MuzicÄ",
+ "settings.header.connectivity": "Conectivitate",
+ "settings.header.connectivity.description": "AjusteazÄ setÄrile de conectivitate pentru Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "NotificÄri Redare",
+ "settings.header.connectivity.discordRPC.cider": "AfiČeazÄ ca 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "AfiČeazÄ ca 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "CurÄČÄ Discord Rich Presence la PauzÄ",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "ActiveazÄ Last.fm Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "ČtergeČi artiČtii invitat din titlul melodiei (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "FiltreazÄ melodii repetate (Last.fm)",
+ "settings.header.experimental": "Experimental",
+ "settings.header.experimental.description": "AjusteazÄ setÄrile experimentale pentru Cider.",
+ "settings.option.experimental.compactUI": "UI Compact",
+ "settings.option.window.close_button_hide": "Butonul de ÃŽnchidere ar trebui sÄ ascundÄ aplicaČia",
+ "spatial.notTurnedOn": "SpaČializarea Audio este dezactivatÄ. Pentru a folosi opČiunea aceasta, activaČi-o mai ÃŽntÃĸi.",
+ "spatial.spatialProperties": "ProprietÄČi SpaČiale",
+ "spatial.width": "LÄČime",
+ "spatial.height": "ÃnÄlČime",
+ "spatial.depth": "AdÃĸncime",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Materiale CamerÄ",
+ "spatial.roomDimensions": "Dimensiuni CamerÄ",
+ "spatial.roomPositions": "PoziČii CamerÄ",
+ "spatial.setDimensions": "SeteazÄ Dimensiunile",
+ "spatial.setPositions": "SeteazÄ PoziČiile",
+ "spatial.up": "Sus",
+ "spatial.front": "Ãn FaČÄ",
+ "spatial.left": "StÃĸnga",
+ "spatial.right": "Dreapta",
+ "spatial.back": "Ãn Spate",
+ "spatial.down": "Jos",
+ "spatial.listener": "AscultÄtor",
+ "spatial.audioSource": "SursÄ Audio",
+ "settings.header.unfinished": "Neterminat",
+ "remote.web.title": "TelecomandÄ Cider",
+ "remote.web.description": "ScaneazÄ codul QR pentru a ÃŽmperechea telefonul tÄu cu aceastÄ instanČÄ Cider",
+ "about.thanks": "Multe MulČumiri Echipei Colectiv Cider Či a tuturor contribuitorilor."
+}
diff --git a/src/i18n/ro_RO.jsonc b/src/i18n/ro_RO.jsonc
deleted file mode 100644
index dcbcaf43..00000000
--- a/src/i18n/ro_RO.jsonc
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- // i18n Info
- "i18n.languageName": "RomÃĸnÄ", // name of language in native language
- "i18n.languageNameEnglish": "Romanian", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community
- "i18n.authors": "georgechrc, ", // Authors, if you contribute to this
- //file feel free to add your name seperated with a space
- "date.format": "${d} ${m}, ${y}",
- // translations
- "term.equalizer": "Egalizator",
- "settings.option.audio.enableAdvancedFunctionality.description": "Pornirea funcČionalitÄČilor AudioContext va permite folosirea funcČiilor audio avansate precum Normalizare Volum , Egalizator Či Vizualizator, pe unele sisteme mai slabe poate cauza probleme precum ÃŽntreruperi ÃŽn redare.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizare Volum", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NormalizeazÄ volumul maxim al melodiilor pentru a genera o experienČÄ audio optimÄ.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "SpaČializare Sunet", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Efect de spaČializare tri-dimensionalÄ a sunetului(AtenČie, nu e Dolby Atmos!)",
- "spatial.notTurnedOn": "SpaČializarea Sunetului e dezactivatÄ, pentru a o utiliza porneČte-o."
-}
\ No newline at end of file
diff --git a/src/i18n/ru_RU.json b/src/i18n/ru_RU.json
new file mode 100644
index 00000000..fbd5e1df
--- /dev/null
+++ b/src/i18n/ru_RU.json
@@ -0,0 +1,343 @@
+{
+ "i18n.languageName": "Đ ŅŅŅĐēиК (RU)",
+ "i18n.languageNameEnglish": "Russian (RU)",
+ "i18n.category": "main",
+ "i18n.authors": "@h0ckerman",
+ "app.name": "Cider",
+ "date.format": "${d} ${m}, ${y}",
+ "dialog.cancel": "ĐŅĐŧĐĩĐŊа",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "ĐĐąĐŊОвĐģĐĩĐŊиĐĩ ĐŧĐĩдиаŅĐĩĐēи ĐŋĐĩŅĐĩĐŊ...",
+ "notification.updatingLibraryAlbums": "ĐĐąĐŊОвĐģĐĩĐŊиĐĩ ĐŧĐĩдиаŅĐĩĐēи аĐģŅйОĐŧОв...",
+ "notification.updatingLibraryArtists": "ĐĐąĐŊОвĐģĐĩĐŊиĐĩ ĐŧĐĩдиаŅĐĩĐēи аŅŅиŅŅОв...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "ĐОдĐēаŅŅŅ Apple",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "ĐŖĐˇĐŊаŅŅ ĐąĐžĐģŅŅĐĩ",
+ "term.accountSettings": "ĐаŅŅŅОКĐēи аĐēĐēаŅĐŊŅа",
+ "term.logout": "ĐŅĐšŅи",
+ "term.login": "ĐОКŅи",
+ "term.about": "Đ Cider",
+ "term.privateSession": "ЧаŅŅĐŊĐ°Ņ ŅĐĩŅŅиŅ",
+ "term.queue": "ĐŅĐĩŅĐĩĐ´Ņ",
+ "term.history": "ĐŅŅĐžŅиŅ",
+ "term.search": "ĐОиŅĐē",
+ "term.library": "ĐĐĩдиаŅĐĩĐēа",
+ "term.listenNow": "ĐĄĐģŅŅаКŅĐĩ ŅĐĩĐšŅаŅ",
+ "term.browse": "ĐйСОŅ",
+ "term.radio": "РадиО",
+ "term.recentlyAdded": "ĐĐĩдавĐŊĐž дОйавĐģĐĩĐŊĐž",
+ "term.songs": "ĐĐĩŅĐŊи",
+ "term.albums": "ĐĐģŅйОĐŧŅ",
+ "term.artists": "ĐŅŅиŅŅŅ",
+ "term.podcasts": "ĐОдĐēаŅŅŅ",
+ "term.playlists": "ĐĐģĐĩĐšĐģиŅŅŅ",
+ "term.playlist": "ĐĐģĐĩĐšĐģиŅŅ",
+ "term.newPlaylist": "ĐОвŅĐš ĐĐģĐĩĐšĐģиŅŅ",
+ "term.newPlaylistFolder": "ĐĐžĐ˛Đ°Ņ ĐаĐŋĐēа ĐĐģĐĩĐšĐģиŅŅа",
+ "term.createNewPlaylist": "ХОСдаŅŅ ĐŊОвŅĐš ĐŋĐģĐĩĐšĐģиŅŅ",
+ "term.createNewPlaylistFolder": "ХОСдаŅŅ ĐŊОвŅŅ ĐŋаĐŋĐēŅ",
+ "term.deletePlaylist": "ĐŅ ŅвĐĩŅĐĩĐŊŅ, ŅŅĐž Ņ
ĐžŅиŅĐĩ ŅдаĐģиŅŅ ĐŋĐģĐĩĐšĐģиŅŅ?",
+ "term.play": "ĐĐžŅĐŋŅОиСвĐĩŅŅи",
+ "term.pause": "ĐаŅСа",
+ "term.previous": "ĐŅĐĩĐ´ŅĐ´ŅŅиК",
+ "term.next": "ĐĄĐģĐĩĐ´ŅŅŅиК",
+ "term.shuffle": "ĐĐĩŅĐĩĐŧĐĩŅаŅŅ",
+ "term.repeat": "ĐОвŅĐžŅŅŅŅ",
+ "term.volume": "ĐŅĐžĐŧĐēĐžŅŅŅ",
+ "term.mute": "ĐĐ°ĐŗĐģŅŅиŅŅ",
+ "term.unmute": "ĐĐēĐģŅŅиŅŅ ĐˇĐ˛ŅĐē",
+ "term.share": "ĐОдĐĩĐģиŅŅŅŅ",
+ "term.share.success": "ĐĄĐēĐžĐŋиŅОваĐŊĐž в ĐąŅŅĐĩŅ ĐžĐąĐŧĐĩĐŊа",
+ "term.settings": "ĐаŅŅŅОКĐēи",
+ "term.seeAll": "ĐĄĐŧĐžŅŅĐĩŅŅ Đ˛ŅĐĩ",
+ "term.sortBy": "ĐĄĐžŅŅиŅОваŅŅ ĐŋĐž",
+ "term.sortBy.album": "ĐĐģŅйОĐŧ",
+ "term.sortBy.artist": "ĐŅŅиŅŅ",
+ "term.sortBy.name": "ĐĐŧŅ",
+ "term.sortBy.genre": "ĐаĐŊŅ",
+ "term.sortBy.releaseDate": "ĐаŅа вŅŅ
Ода",
+ "term.sortBy.duration": "ĐĐģиŅĐĩĐģŅĐŊĐžŅŅŅ",
+ "term.sortBy.dateAdded": "ĐаŅа дОйавĐģĐĩĐŊиŅ",
+ "term.sortOrder": "Đ-Đ¯",
+ "term.sortOrder.ascending": "ĐĐž вОСŅаŅŅаĐŊиŅ",
+ "term.sortOrder.descending": "ĐĐž ŅĐąŅваĐŊиŅ",
+ "term.viewAs": "ĐĐžĐēаСŅваŅŅ",
+ "term.viewAs.coverArt": "ĐĐąĐģĐžĐļĐēи",
+ "term.viewAs.list": "ĐĄĐŋиŅĐžĐē",
+ "term.size": "РаСĐŧĐĩŅ",
+ "term.size.normal": "ĐĐąŅŅĐŊŅĐš",
+ "term.size.compact": "ĐĐžĐŧĐŋаĐēŅĐŊŅĐš",
+ "term.enable": "ĐĐēĐģŅŅиŅŅ",
+ "term.disable": "ĐŅĐēĐģŅŅиŅŅ",
+ "term.enabled": "ĐĐēĐģŅŅĐĩĐŊĐž",
+ "term.disabled": "ĐŅĐēĐģŅŅĐĩĐŊĐž",
+ "term.connect": "ĐОдĐēĐģŅŅиŅŅ",
+ "term.connecting": "ĐОдĐēĐģŅŅĐĩĐŊиĐĩ",
+ "term.disconnect": "ĐŅĐēĐģŅŅиŅŅ",
+ "term.authed": "ĐвŅĐžŅиСОваĐŊĐž",
+ "term.confirm": "ĐОдŅвĐĩŅдиŅŅ?",
+ "term.more": "ĐĐžĐģŅŅĐĩ",
+ "term.less": "ĐĐĩĐŊŅŅĐĩ",
+ "term.showMore": "ĐĐžĐēаСаŅŅ ĐąĐžĐģŅŅĐĩ",
+ "term.showLess": "ĐĐžĐēаСаŅŅ ĐŧĐĩĐŊŅŅĐĩ",
+ "term.topSongs": "ĐŅŅŅиĐĩ ĐŋĐĩŅĐŊи",
+ "term.latestReleases": "ĐĐžŅĐģĐĩĐ´ĐŊиĐĩ ŅĐĩĐģиСŅ",
+ "term.time.added": "ĐОйавĐģĐĩĐŊĐž",
+ "term.time.released": "Đ ĐĩĐģиС: ",
+ "term.time.updated": "ĐĐąĐŊОвĐģĐĩĐŊĐž",
+ "term.time.hour": {
+ "one": "ŅаŅ",
+ "few": "ŅаŅа",
+ "other": "ŅаŅОв"
+ },
+ "term.time.minute": {
+ "one": "ĐŧиĐŊŅŅа",
+ "few": "ĐŧиĐŊŅŅŅ",
+ "other": "ĐŧиĐŊŅŅ"
+ },
+ "term.time.second": {
+ "one": "ŅĐĩĐēŅĐŊĐ´",
+ "few": "ŅĐĩĐēŅĐŊĐ´Ņ",
+ "other": "ŅĐĩĐēŅĐŊĐ´"
+ },
+ "term.fullscreenView": "ĐĐžĐģĐŊĐžŅĐēŅаĐŊĐŊĐžĐĩ ĐžŅОйŅаĐļĐĩĐŊиĐĩ",
+ "term.defaultView": "ĐĄŅаĐŊдаŅŅĐŊĐžĐĩ ĐžŅОйŅаĐļĐĩĐŊиĐĩ",
+ "term.audioSettings": "ĐаŅŅŅОКĐēи СвŅĐēа",
+ "term.audioControls": "ĐаŅŅŅОКĐēа ĐŗŅĐžĐŧĐēĐžŅŅи",
+ "term.clearAll": "ĐŅиŅŅиŅŅ",
+ "term.recentStations": "ĐŅ ĐŊĐĩдавĐŊĐž ŅĐģŅŅаĐģи",
+ "term.language": "Đ¯ĐˇŅĐē",
+ "term.funLanguages": "ĐайавĐŊŅĐĩ",
+ "term.noLyrics": "ĐĸĐĩĐēŅŅ ĐŋĐĩŅĐŊи ĐŊĐĩ ĐŊаКдĐĩĐŊ.",
+ "term.copyright": "ĐвŅĐžŅŅĐēĐžĐĩ ĐŋŅавО",
+ "term.rightsReserved": "ĐŅĐĩ ĐŋŅава СаŅиŅĐĩĐŊŅ.",
+ "term.sponsor": "ĐОддĐĩŅĐļаŅŅ ĐŋŅĐžĐĩĐēŅ",
+ "term.ciderTeam": "ĐĐžĐŧаĐŊда Cider",
+ "term.developer": "РаСŅайОŅŅиĐē",
+ "term.socialTeam": "ĐĄĐžŅиаĐģŅĐŊĐ°Ņ ĐēĐžĐŧаĐŊда",
+ "term.socials": "ĐĄĐžŅиаĐģŅĐŊŅĐĩ ŅĐĩŅи",
+ "term.contributors": "ĐĐŊĐĩŅĐģи вĐēĐģад",
+ "term.equalizer": "ĐĐēваĐģаКСĐĩŅ",
+ "term.reset": "ĐĄĐąŅĐžŅиŅŅ",
+ "term.tracks": {
+ "one": "ĐŋĐĩŅĐŊŅ",
+ "few": "ĐŋĐĩŅĐŊи",
+ "other": "ĐŋĐĩŅĐĩĐŊ"
+ },
+ "term.videos": "ĐидĐĩĐž",
+ "term.menu": "ĐĐĩĐŊŅ",
+ "term.check": "ĐŅОвĐĩŅиŅŅ",
+ "term.aboutArtist": "Đ {{artistName}}",
+ "term.topResult": "ĐĸĐžĐŋ ŅĐĩСŅĐģŅŅаŅОв",
+ "term.sharedPlaylists": "ĐĐąŅиĐĩ ĐŋĐģĐĩĐšĐģиŅŅŅ",
+ "term.people": "ĐŅди",
+ "term.newpreset.name": "ĐаСваĐŊиĐĩ ĐŊĐžĐ˛ĐžĐŗĐž ĐŋŅĐĩŅĐĩŅа ŅĐēваĐģаКСĐĩŅа",
+ "term.addedpreset": "ĐŅĐĩŅĐĩŅ Đ´ĐžĐąĐ°Đ˛ĐģĐĩĐŊ",
+ "term.deletepreset.warn": "ĐŅ ŅвĐĩŅĐĩĐŊŅ, ŅŅĐž Ņ
ĐžŅиŅĐĩ ŅдаĐģиŅŅ ĐŋŅĐĩŅĐĩŅ?",
+ "term.deletedpreset": "ĐŅĐĩŅĐĩŅ ŅдаĐģĐĩĐŊ",
+ "term.defaultPresets": "ĐŅĐĩĐ´ŅŅŅаĐŊОвĐēи ĐŋĐž ŅĐŧĐžĐģŅаĐŊиŅ",
+ "term.userPresets": "ĐŅĐĩĐ´ŅŅŅаĐŊОвĐēи ĐŋĐžĐģŅСОваŅĐĩĐģŅ",
+ "term.requestError": "ĐОСĐŊиĐēĐģа ĐŋŅОйĐģĐĩĐŧа Ņ ĐˇĐ°ĐŋŅĐžŅĐžĐŧ.",
+ "term.song.link.generate": "ĐĐžĐģŅŅĐĩĐŊиĐĩ ŅŅŅĐģĐēи Ņ song.link...",
+ "term.musicVideos": "ĐŅСŅĐēаĐģŅĐŊŅĐĩ видĐĩĐž",
+ "term.stations": "ĐĄŅаĐŊŅии",
+ "term.curators": "ĐŅŅаŅĐžŅŅ",
+ "term.appleCurators": "ĐŅŅаŅĐžŅŅ Apple",
+ "term.radioShows": "РадиОŅĐžŅ",
+ "term.recordLabels": "ĐĐĩКйĐģŅ ĐˇĐ˛ŅĐēОСаĐŋиŅи",
+ "term.videoExtras": "ĐŅŅ",
+ "term.top": "Top",
+ "term.version": "ĐĐĩŅŅиŅ",
+ "term.noVideos": "ĐидĐĩĐž ĐŊĐĩ ĐŊаКдĐĩĐŊĐž.",
+ "home.title": "ĐĐģавĐŊаŅ",
+ "home.recentlyPlayed": "ĐĐĩдавĐŊĐž ĐŋŅĐžŅĐģŅŅаĐŊĐŊŅĐĩ",
+ "home.recentlyAdded": "ĐĐĩдавĐŊĐž дОйавĐģĐĩĐŊĐŊŅĐĩ",
+ "home.artistsFeed": "ĐĐĩĐŊŅа иŅĐŋĐžĐģĐŊиŅĐĩĐģĐĩĐš",
+ "home.artistsFeed.noArtist": "ĐОдĐŋиŅиŅĐĩŅŅ ĐŊа ĐŊĐĩĐēĐžŅĐžŅŅŅ
аŅŅиŅŅОв, и иŅ
ĐŋĐžŅĐģĐĩĐ´ĐŊиĐĩ ŅĐĩĐģĐ¸ĐˇŅ ĐąŅĐ´ŅŅ ĐˇĐ´ĐĩŅŅ",
+ "home.madeForYou": "ĐĄĐŋĐĩŅиаĐģŅĐŊĐž Đ´ĐģŅ Đ˛Đ°Ņ",
+ "home.friendsListeningTo": "ЧŅĐž ŅĐģŅŅаŅŅ Đ´ŅŅСŅŅ",
+ "home.followedArtists": "ĐŅŅĐģĐĩĐļиваĐĩĐŧŅĐĩ аŅŅиŅŅŅ",
+ "error.appleMusicSubRequired": "ĐĐģŅ ĐŋŅĐžŅĐģŅŅиваĐŊĐ¸Ņ Apple Music ŅŅĐĩĐąŅĐĩŅŅŅ ĐŋОдĐŋиŅĐēа.",
+ "error.connectionError": "ĐОСĐŊиĐēĐģа ĐŋŅОйĐģĐĩĐŧа Ņ ĐŋОдĐēĐģŅŅĐĩĐŊиĐĩĐŧ Đē Apple Music.",
+ "error.noResults": "ĐĐĩŅ ŅĐĩСŅĐģŅŅаŅОв.",
+ "error.noResults.description": "ĐĐžĐŋŅОйŅĐšŅĐĩ ĐĩŅŅ ŅаС.",
+ "podcast.followOnCider": "ĐŅŅĐģĐĩĐļиваŅŅ Đ˛ Cider",
+ "podcast.followedOnCider": "ĐŅŅĐģĐĩĐļиваĐĩĐŧŅĐĩ в Cider",
+ "podcast.subscribeOnItunes": "ĐОдĐŋиŅаŅŅŅŅ Đ˛ iTunes",
+ "podcast.subscribedOnItunes": "ĐОдĐŋиŅаĐŊ в iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "ĐŅĐŋŅŅĐēи ŅадиОŅĐžŅ",
+ "podcast.playEpisode": "ĐĐžŅĐŋŅОиСвĐĩŅŅи",
+ "podcast.website": "ĐĐĩĐą-ŅаКŅ",
+ "action.addToLibrary": "ĐОйавиŅŅ Đ˛ ĐŧĐĩдиаŅĐĩĐēŅ",
+ "action.addToLibrary.success": "ĐОйавĐģĐĩĐŊĐž в ĐŧĐĩдиаŅĐĩĐēŅ",
+ "action.addToLibrary.error": "ĐŅийĐēа ĐОйавĐģĐĩĐŊĐ¸Ņ Đ˛ ĐŧĐĩдиаŅиĐēŅ",
+ "action.removeFromLibrary": "ĐŖĐąŅаŅŅ Đ¸Đˇ ĐŧĐĩдиаŅĐĩĐēи",
+ "action.removeFromLibrary.success": "ĐŖĐ´Đ°ĐģĐĩĐŊĐž иС ĐŧĐĩдиаŅĐĩĐēи",
+ "action.addToQueue": "ĐĐžŅĐŋŅОиСвĐĩŅŅи даĐģĐĩĐĩ",
+ "action.addToQueue.success": "ĐОйавĐģĐĩĐŊĐž в ĐžŅĐĩŅĐĩĐ´Ņ",
+ "action.addToQueue.error": "ĐŅийĐēа дОйавĐģĐĩĐŊĐ¸Ņ Đ˛ ĐžŅĐĩŅĐĩĐ´Ņ",
+ "action.removeFromQueue": "ĐŖĐąŅаŅŅ Đ¸Đˇ ĐžŅĐĩŅĐĩди",
+ "action.removeFromQueue.success": "ĐŖĐ´Đ°ĐģĐĩĐŊĐž иС ĐžŅĐĩŅĐĩди",
+ "action.removeFromQueue.error": "ĐŅийĐēа ŅдаĐģĐĩĐŊĐ¸Ņ Đ¸Đˇ ĐžŅĐĩŅĐĩди",
+ "action.createPlaylist": "ХОСдаŅŅ ĐŊОвŅĐš ĐŋĐģĐĩĐšĐģиŅŅ",
+ "action.addToPlaylist": "ĐОйавиŅŅ Đ˛ ĐŋĐģĐĩĐšĐģиŅŅ",
+ "action.removeFromPlaylist": "ĐŖĐ´Đ°ĐģиŅŅ Đ¸Đˇ ĐŋĐģĐĩĐšĐģиŅŅа",
+ "action.addToFavorites": "ĐОйавиŅŅ Đ˛ иСйŅаĐŊĐŊĐžĐĩ",
+ "action.follow": "ĐŅŅĐģĐĩĐļиваŅŅ",
+ "action.follow.success": "Đ ĐžŅŅĐģĐĩĐļиваĐĩĐŧŅŅ
",
+ "action.follow.error": "ĐŅийĐēа ĐžŅŅĐģĐĩĐļиваĐŊиŅ",
+ "action.unfollow": "ĐŅĐŋиŅаŅŅŅŅ",
+ "action.unfollow.success": "ĐŅĐŋиŅаĐŊ",
+ "action.unfollow.error": "ĐŅийĐēа ĐžŅĐŋиŅĐēи",
+ "action.playNext": "ĐĐžŅĐŋŅОиСвĐĩŅŅи даĐģĐĩĐĩ",
+ "action.playLater": "ĐĐžŅĐŋŅОиСвĐĩŅŅи ĐŋОСĐļĐĩ",
+ "action.startRadio": "ХОСдаŅŅ ŅŅаĐŊŅиŅ",
+ "action.goToArtist": "ĐĐĩŅĐĩĐšŅи Đē аŅŅиŅŅŅ",
+ "action.goToAlbum": "ĐĐĩŅĐĩĐšŅи Đē аĐģŅйОĐŧŅ",
+ "action.moveToTop": "ĐĐĩŅĐĩĐŧĐĩŅŅиŅŅ ĐŊавĐĩŅŅ
",
+ "action.share": "ĐОдĐĩĐģиŅŅŅŅ",
+ "action.rename": "ĐĐĩŅĐĩиĐŧĐĩĐŊОваŅŅ",
+ "action.love": "ĐŅавиŅŅŅ",
+ "action.unlove": "ĐĐžĐģŅŅĐĩ ĐŊĐĩ ĐŊŅавиŅŅŅ",
+ "action.dislike": "ĐĐĩĐŊŅŅĐĩ ĐŋОдОйĐŊŅŅ
ŅĐĩĐēĐžĐŧĐĩĐŊдаŅиК",
+ "action.undoDislike": "ĐĐĩŅĐŊŅŅŅ ĐŋОдОйĐŊŅĐĩ ŅĐĩĐēĐžĐŧĐĩĐŊдаŅии",
+ "action.showWebRemoteQR": "ĐĐĩĐą-иĐŊŅĐĩŅŅĐĩĐšŅ",
+ "action.playTracksNext": "ĐĐžŅĐŋŅОиСвĐĩŅŅи ${app.selectedMediaItems.length} ĐŋĐĩŅĐĩĐŊ ŅĐģĐĩĐ´ŅŅŅиĐŧи",
+ "action.playTracksLater": "ĐĐžŅĐŋŅОиСвĐĩŅŅи ${app.selectedMediaItems.length} ĐŋĐĩŅĐĩĐŊ ĐŋОСĐļĐĩ",
+ "action.removeTracks": "ĐŖĐ´Đ°ĐģиŅŅ ${self.selectedItems.length} ĐŋĐĩŅĐĩĐŊ иС ĐžŅĐĩŅĐĩди",
+ "action.import": "ĐĐŧĐŋĐžŅŅ",
+ "action.export": "ĐĐēŅĐŋĐžŅŅ",
+ "action.showAlbum": "ĐĐžĐēаСаŅŅ Đ˛ĐĩŅŅ Đ°ĐģŅйОĐŧ",
+ "action.tray.minimize": "ХвĐĩŅĐŊŅŅŅ Đ˛ ŅŅĐĩĐš",
+ "action.tray.quit": "ĐŅĐšŅи",
+ "action.tray.show": "ĐĐžĐēаСаŅŅ",
+ "action.update": "ĐĐąĐŊОвиŅŅ",
+ "action.copy": "ĐĄĐēĐžĐŋиŅОваŅŅ",
+ "action.newpreset": "ĐОвŅĐš ĐŋŅĐĩŅĐĩŅ...",
+ "action.deletepreset": "ĐŖĐ´Đ°ĐģиŅŅ ĐŋŅĐĩŅĐĩŅ",
+ "action.open": "ĐŅĐēŅŅŅŅ",
+ "settings.header.general": "ĐĐąŅиĐĩ",
+ "settings.header.general.description": "ĐаŅŅŅОКĐēа ОйŅиŅ
ĐŋаŅаĐŧĐĩŅŅОв Cider.",
+ "settings.option.general.language": "Đ¯ĐˇŅĐē",
+ "settings.option.general.language.main": "Đ¯ĐˇŅĐēи",
+ "settings.option.general.language.fun": "ĐайавĐŊŅĐĩ ŅСŅĐēи",
+ "settings.option.general.language.unsorted": "ĐĐĩĐžŅŅĐžŅŅиŅОваĐŊĐŊŅĐĩ",
+ "settings.option.general.updateCider": "ĐĐąĐŊОвиŅŅ Cider",
+ "settings.option.general.updateCider.branch": "ĐĐĩŅĐēа ОйĐŊОвĐģĐĩĐŊĐ¸Ņ Cider",
+ "settings.option.general.updateCider.branch.description": "ĐŅĐąĐĩŅиŅĐĩ вĐĩŅĐēŅ ĐžĐąĐŊОвĐģĐĩĐŊĐ¸Ņ Cider",
+ "settings.option.general.updateCider.branch.main": "ĐĄŅайиĐģŅĐŊаŅ",
+ "settings.option.general.updateCider.branch.develop": "ĐĐĩŅŅайиĐģŅĐŊаŅ",
+ "settings.header.audio": "ĐвŅĐē",
+ "settings.header.audio.description": "ĐаŅŅŅОКĐēа СвŅĐēа Cider.",
+ "settings.option.audio.volumeStep": "Đ¨Đ°Đŗ ĐŗŅĐžĐŧĐēĐžŅŅи",
+ "settings.option.audio.maxVolume": "ĐаĐēŅиĐŧаĐģŅĐŊĐ°Ņ ĐŗŅĐžĐŧĐēĐžŅŅŅ",
+ "settings.option.audio.quality": "ĐаŅĐĩŅŅвО СвŅĐēа",
+ "settings.header.audio.quality.hireslossless": "ĐŅŅĐžĐēĐžĐĩ ŅаСŅĐĩŅĐĩĐŊиĐĩ, ĐąĐĩС ĐŋĐžŅĐĩŅŅ",
+ "settings.header.audio.quality.hireslossless.description": "ALAC Đ´Đž 24 йиŅ/192 ĐēĐŅ",
+ "settings.header.audio.quality.lossless": "ĐĐĩС ĐŋĐžŅĐĩŅŅ",
+ "settings.header.audio.quality.lossless.description": "ALAC Đ´Đž 24 йиŅ/48 ĐēĐŅ",
+ "settings.header.audio.quality.high": "ĐŅŅĐžĐēĐžĐĩ ĐēаŅĐĩŅŅвО",
+ "settings.header.audio.quality.high.description": "AAC 256 ĐēĐą/Ņ",
+ "settings.header.audio.quality.standard": "ĐŅŅĐžĐēĐ°Ņ ŅŅŅĐĩĐēŅивĐŊĐžŅŅŅ",
+ "settings.header.audio.quality.standard.description": "ĐĐ-ĐĐĐĄ Đ´ĐģŅ ŅĐēĐžĐŊĐžĐŧии ŅŅаŅиĐēа(64 ĐēĐą/Ņ)",
+ "settings.option.audio.seamlessTransition": "ĐĐģавĐŊŅĐš ĐŋĐĩŅĐĩŅ
Од ĐŧĐĩĐļĐ´Ņ ĐŋĐĩŅĐŊŅĐŧи",
+ "settings.option.audio.enableAdvancedFunctionality": "ĐĐēĐģŅŅиŅŅ ŅаŅŅиŅĐĩĐŊĐŊŅĐš ŅŅĐŊĐēŅиОĐŊаĐģ",
+ "settings.option.audio.enableAdvancedFunctionality.description": "ĐĐēĐģŅŅĐĩĐŊиĐĩ ŅŅĐŊĐēŅии AudioContext ĐŋОСвОĐģĐ¸Ņ Đ¸ŅĐŋĐžĐģŅСОваŅŅ ŅаŅŅиŅĐĩĐŊĐŊŅĐĩ ŅŅĐŊĐēŅии СвŅĐēа, ŅаĐēиĐĩ ĐēаĐē ĐŊĐžŅĐŧаĐģиСаŅĐ¸Ņ ĐˇĐ˛ŅĐēа, ŅĐēваĐģаКСĐĩŅŅ Đ¸ виСŅаĐģиСаŅĐžŅŅ, ОдĐŊаĐēĐž в ĐŊĐĩĐēĐžŅĐžŅŅŅ
ŅиŅŅĐĩĐŧаŅ
ŅŅĐž ĐŧĐžĐļĐĩŅ Đ˛ŅСваŅŅ ĐˇĐ°Đ¸ĐēаĐŊиĐĩ СвŅĐēОвŅŅ
Đ´ĐžŅĐžĐļĐĩĐē.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "ĐŅиŅ
ОаĐēŅŅŅиŅĐĩŅĐēиĐĩ ŅĐģŅŅŅĐĩĐŊиŅ, ĐąĐģĐ°ĐŗĐžĐ´Đ°ŅŅ ĐēĐžŅĐžŅŅĐŧ вŅĐĩ СвŅŅĐ¸Ņ ĐąĐžĐŗĐ°ŅĐĩ и ĐļивĐĩĐĩ.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP ĐŊĐĩ ŅОвĐŧĐĩŅŅиĐŧ Ņ ĐŋŅĐžŅŅŅаĐŊŅŅвĐĩĐŊĐŊŅĐŧ СвŅŅаĐŊиĐĩĐŧ. ĐĐžĐļаĐģŅĐšŅŅа, ĐžŅĐēĐģŅŅиŅĐĩ ĐŋŅĐžŅŅŅаĐŊŅŅвĐĩĐŊĐŊĐžĐĩ СвŅŅаĐŊиĐĩ, ŅŅĐžĐąŅ ĐŋŅОдОĐģĐļиŅŅ.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Đ ĐĩĐļиĐŧ CAP",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ĐСĐŧĐĩĐŊŅĐĩŅ ŅĐĩĐļиĐŧ ОйŅайОŅĐēи СвŅĐēа. (Đ ĐĩĐļиĐŧ Đ°ĐŗŅĐĩŅŅии ĐŧĐžĐļĐĩŅ ĐŋŅивĐĩŅŅи Đē ĐŊĐĩĐļĐĩĐģаĐĩĐŧŅĐŧ ŅĐĩСŅĐģŅŅаŅаĐŧ)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "ĐĄŅаĐŊдаŅŅĐŊŅĐš",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "ĐĐŗŅĐĩŅŅивĐŊŅĐš",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ĐĐžŅĐŧаĐģиСаŅĐ¸Ņ ĐˇĐ˛ŅĐēа",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ĐĐžŅĐŧаĐģиСŅĐĩŅ ĐŋиĐēОвŅŅ ĐŗŅĐžĐŧĐēĐžŅŅŅ Đ´ĐģŅ ĐžŅĐ´ĐĩĐģŅĐŊŅŅ
ŅŅĐĩĐēОв, ŅŅĐžĐąŅ ŅОСдаŅŅ ĐąĐžĐģĐĩĐĩ ОдĐŊĐžŅОдĐŊĐžĐĩ вĐŋĐĩŅаŅĐģĐĩĐŊиĐĩ ĐžŅ ĐŋŅĐžŅĐģŅŅиваĐŊиŅ.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ĐŅĐžŅŅŅаĐŊŅŅвĐĩĐŊĐŊĐžĐĩ СвŅŅаĐŊиĐĩ",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ĐŅĐžŅŅŅаĐŊŅŅвĐĩĐŊĐŊĐžĐĩ аŅдиО; ŅĐ´ĐĩĐģаŅŅ ĐˇĐ˛ŅĐē йОĐģĐĩĐĩ ŅŅĐĩŅ
ĐŧĐĩŅĐŊŅĐŧ (ĐŋŅиĐŧĐĩŅаĐŊиĐĩ: ŅŅĐž ĐŊĐĩ Dolby Atmos)",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "ĐŅĐžŅŅŅаĐŊŅŅвĐĩĐŊĐŊĐ°Ņ ĐžĐąŅайОŅĐēа ĐŊĐĩŅОвĐŧĐĩŅŅиĐŧа Ņ CAP. ĐĐžĐļаĐģŅĐšŅŅа, ĐžŅĐēĐģŅŅиŅĐĩ CAP, ŅŅĐžĐąŅ ĐŋŅОдОĐģĐļиŅŅ.",
+ "settings.header.visual": "ĐĐŊĐĩŅĐŊиК вид",
+ "settings.header.visual.description": "ĐаŅŅŅОКĐēа вĐŊĐĩŅĐŊĐĩĐŗĐž вида Cider.",
+ "settings.option.visual.windowBackgroundStyle": "ĐĄŅиĐģŅ ŅĐžĐŊа Cider",
+ "settings.header.visual.windowBackgroundStyle.none": "ĐŅŅŅŅŅŅвŅĐĩŅ",
+ "settings.header.visual.windowBackgroundStyle.artwork": "ĐĐąĐģĐžĐļĐēа",
+ "settings.header.visual.windowBackgroundStyle.image": "ĐСОйŅаĐļĐĩĐŊиĐĩ",
+ "settings.option.visual.animatedArtwork": "ĐĐŊиĐŧиŅОваĐŊĐŊĐ°Ņ ĐžĐąĐģĐžĐļĐēа",
+ "settings.header.visual.animatedArtwork.always": "ĐŅĐĩĐŗĐ´Đ°",
+ "settings.header.visual.animatedArtwork.limited": "ĐĐŗŅаĐŊиŅĐĩĐŊĐž ŅĐŋĐĩŅиаĐģŅĐŊŅĐŧи ŅŅŅаĐŊиŅаĐŧи",
+ "settings.header.visual.animatedArtwork.disable": "ĐŅĐēĐģŅŅĐĩĐŊĐž вĐĩСдĐĩ",
+ "settings.option.visual.animatedArtworkQuality": "ĐаŅĐĩŅŅвО аĐŊиĐŧиŅОваĐŊĐŊОК ОйĐģĐžĐļĐēи",
+ "settings.header.visual.animatedArtworkQuality.low": "ĐиСĐēĐžĐĩ",
+ "settings.header.visual.animatedArtworkQuality.medium": "ĐĄŅĐĩĐ´ĐŊĐĩĐĩ",
+ "settings.header.visual.animatedArtworkQuality.high": "ĐŅŅĐžĐēĐžĐĩ",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "ĐŅĐĩĐŊŅ Đ˛ŅŅĐžĐēĐžĐĩ",
+ "settings.header.visual.animatedArtworkQuality.extreme": "ĐаивŅŅŅĐĩĐĩ",
+ "settings.option.visual.animatedWindowBackground": "ĐĐŊиĐŧиŅОваĐŊĐŊŅĐš ŅĐžĐŊ ĐžĐēĐŊа Cider",
+ "settings.option.visual.hardwareAcceleration": "ĐĐŋĐŋаŅаŅĐŊĐžĐĩ ŅŅĐēĐžŅĐĩĐŊиĐĩ",
+ "settings.option.visual.hardwareAcceleration.description": "ĐĸŅĐĩĐąŅĐĩŅ ĐŋĐĩŅĐĩĐˇĐ°ĐŗŅŅСĐēи ĐŋŅиĐģĐžĐļĐĩĐŊиŅ",
+ "settings.header.visual.hardwareAcceleration.default": "ĐĐž ŅĐŧĐžĐģŅаĐŊиŅ",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "ĐĸĐĩĐŧа",
+ "settings.option.visual.theme.github.download": "ĐŖŅŅаĐŊОвиŅŅ Ņ GitHub",
+ "settings.option.visual.theme.github.explore": "ĐŅŅĐģĐĩдОваŅŅ ŅĐĩĐŧŅ Ņ GitHub",
+ "settings.option.visual.theme.github.install.confirm": "ĐŅ ŅвĐĩŅĐĩĐŊŅ, ŅŅĐž Ņ
ĐžŅиŅĐĩ ŅŅŅаĐŊОвиŅŅ {{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "ĐвĐĩдиŅĐĩ URL ŅĐĩĐŧŅ, ĐēĐžŅĐžŅŅŅ Ņ
ĐžŅиŅĐĩ ŅŅŅаĐŊОвиŅŅ",
+ "settings.notyf.visual.theme.install.success": "ĐĸĐĩĐŧа ŅŅĐŋĐĩŅĐŊĐž ŅŅŅаĐŊОвĐģĐĩĐŊа",
+ "settings.notyf.visual.theme.install.error": "ĐĐĩ ŅдаĐģĐžŅŅ ŅŅŅаĐŊОвиŅŅ ŅĐĩĐŧŅ",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "ĐĸŅĐŧĐŊаŅ",
+ "settings.option.visual.showPersonalInfo": "ĐĐžĐēаСаŅŅ ĐģиŅĐŊŅŅ Đ¸ĐŊŅĐžŅĐŧаŅиŅ",
+ "settings.header.lyrics": "ĐĸĐĩĐēŅŅ ĐŋĐĩŅĐŊи",
+ "settings.header.lyrics.description": "ĐаŅŅŅОКĐēа ŅĐĩĐēŅŅа ĐŋĐĩŅĐĩĐŊ.",
+ "settings.option.lyrics.enableMusixmatch": "ĐĐžĐģŅŅаŅŅ ŅĐĩĐēŅŅ ĐŋĐĩŅĐĩĐŊ иС Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "ĐĐēĐģŅŅиŅŅ ŅĐĩĐļиĐŧ ĐēаŅаОĐēĐĩ (ŅĐžĐģŅĐēĐž Ņ Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "ĐŅĐĩĐ´ĐŋĐžŅŅиŅĐĩĐģŅĐŊŅĐš ŅСŅĐē ĐŋĐĩŅĐĩвОда Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "ĐĐēĐģŅŅиŅŅ Youtube Lyrics Đ´ĐģŅ ĐŧŅСŅĐēаĐģŅĐŊŅŅ
ĐēĐģиĐŋОв",
+ "settings.header.connectivity": "ĐŅĐžŅĐĩĐĩ",
+ "settings.header.connectivity.description": "ĐаŅŅŅОКĐēа ĐŋŅĐžŅиŅ
ĐŋаŅаĐŧĐĩŅŅОв Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "ĐŖĐ˛ĐĩĐ´ĐžĐŧĐģĐĩĐŊĐ¸Ņ Đž вОŅĐŋŅОиСвĐĩĐ´ĐĩĐŊии",
+ "settings.header.connectivity.discordRPC.cider": "ĐŅОйŅаĐļаŅŅ ĐēаĐē 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "ĐŅОйŅаĐļаŅŅ ĐēаĐē 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "ĐŅĐēĐģŅŅаŅŅ Discord Rich Presence ĐŊа ĐŋаŅСĐĩ",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm cĐēŅОййĐģиĐŊĐŗ",
+ "settings.option.connectivity.lastfmScrobble.delay": "ЧаŅŅĐžŅа ŅĐēŅОййĐģиĐŊĐŗĐ° Last.fm (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "ĐĐēĐģŅŅиŅŅ Last.fm ĐĄĐĩĐšŅĐ°Ņ Đ¸ĐŗŅаĐĩŅ",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "ĐŖĐ´Đ°ĐģŅŅŅ ŅиŅ-иŅĐŋĐžĐģĐŊиŅĐĩĐģĐĩĐš иС ĐŊаСваĐŊĐ¸Ņ ĐŋĐĩŅĐŊи (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "ФиĐģŅŅŅОваŅŅ ĐˇĐ°ŅиĐēĐģĐĩĐŊĐŊŅĐš ŅŅĐĩĐē (Last.fm)",
+ "settings.header.debug": "Debug",
+ "settings.option.debug.copy_log": "ĐĐžĐŋиŅОваŅŅ ĐģĐžĐŗĐ¸ в ĐąŅŅĐĩŅ ĐžĐąĐŧĐĩĐŊа",
+ "settings.option.debug.openAppData": "ĐŅĐēŅŅŅŅ ĐŋаĐŋĐēŅ Cider",
+ "settings.header.experimental": "ĐĐēŅĐŋĐĩŅиĐŧĐĩĐŊŅаĐģŅĐŊŅĐĩ",
+ "settings.header.experimental.description": "ĐаŅŅŅОКĐēа ŅĐēŅĐŋĐĩŅиĐŧĐĩĐŊŅаĐģŅĐŊŅŅ
ŅŅĐŊĐēŅиК Cider.",
+ "settings.option.experimental.compactUI": "ĐĐžĐŧĐŋаĐēŅĐŊŅĐš иĐŊŅĐĩŅŅĐĩĐšŅ",
+ "settings.option.window.close_button_hide": "ĐĐŊĐžĐŋĐēа ÂĢĐаĐēŅŅŅŅÂģ ŅĐēŅŅваĐĩŅ ĐŋŅиĐģĐžĐļĐĩĐŊиĐĩ",
+ "settings.option.experimental.inline_playlists": "ĐŅŅŅĐžĐĩĐŊĐŊŅĐĩ ĐŋĐģĐĩĐšĐģиŅŅŅ Đ¸ аĐģŅйОĐŧŅ",
+ "spatial.notTurnedOn": "ĐŅĐžŅŅŅаĐŊŅŅвĐĩĐŊĐŊĐžĐĩ аŅдиО ĐžŅĐēĐģŅŅĐĩĐŊĐž. ЧŅĐžĐąŅ Đ¸ŅĐŋĐžĐģŅСОваŅŅ, ŅĐŊаŅаĐģа вĐēĐģŅŅиŅĐĩ ĐĩĐŗĐž.",
+ "spatial.spatialProperties": "ĐаŅŅŅОКĐēа ĐŋŅĐžŅŅŅаĐŊŅŅвĐĩĐŊĐŊĐžĐŗĐž аŅдиО",
+ "spatial.width": "ШиŅиĐŊа",
+ "spatial.height": "ĐŅŅĐžŅа",
+ "spatial.depth": "ĐĐģŅйиĐŊа",
+ "spatial.gain": "ĐŖŅиĐģĐĩĐŊиĐĩ",
+ "spatial.roomMaterials": "ĐаŅĐĩŅиаĐģŅ ĐēĐžĐŧĐŊаŅŅ",
+ "spatial.roomDimensions": "РаСĐŧĐĩŅŅ ĐēĐžĐŧĐŊаŅŅ",
+ "spatial.roomPositions": "ĐОСиŅии ĐēĐžĐŧĐŊаŅŅ",
+ "spatial.setDimensions": "ĐŖŅŅаĐŊОвиŅŅ ŅаСĐŧĐĩŅŅ",
+ "spatial.setPositions": "ĐŖŅŅаĐŊОвиŅŅ ĐŋОСиŅии",
+ "spatial.up": "ХвĐĩŅŅ
Ņ",
+ "spatial.front": "ĐĄĐŋĐĩŅĐĩди",
+ "spatial.left": "ĐĄĐģĐĩва",
+ "spatial.right": "ĐĄĐŋŅава",
+ "spatial.back": "ХСади",
+ "spatial.down": "ĐĄĐŊиСŅ",
+ "spatial.listener": "ĐĄĐģŅŅаŅĐĩĐģŅ",
+ "spatial.audioSource": "ĐŅŅĐžŅĐŊиĐē СвŅĐēа",
+ "settings.header.unfinished": "ĐĐĩ СавĐĩŅŅĐĩĐŊĐž",
+ "remote.web.title": "ĐĐĩĐą-иĐŊŅĐĩŅŅĐĩĐšŅ",
+ "remote.web.description": "ĐŅŅĐēаĐŊиŅŅĐšŅĐĩ QR-ĐēОд, ŅŅĐžĐąŅ ĐŋОдĐēĐģŅŅиŅŅ ŅĐĩĐģĐĩŅĐžĐŊ Đē Cider Remote",
+ "about.thanks": "ĐĐžĐģŅŅĐžĐĩ ŅĐŋаŅийО ĐēĐžĐŧаĐŊĐ´Đĩ Cider Collective и вŅĐĩĐŧ ĐŊаŅиĐŧ вĐēĐģадŅиĐēаĐŧ."
+}
diff --git a/src/i18n/sk_SK.jsonc b/src/i18n/sk_SK.json
similarity index 85%
rename from src/i18n/sk_SK.jsonc
rename to src/i18n/sk_SK.json
index 95100010..718e7148 100644
--- a/src/i18n/sk_SK.jsonc
+++ b/src/i18n/sk_SK.json
@@ -1,25 +1,15 @@
-{ // Base File
-
- // i18n Info
- "i18n.languageName": "SlovenÄina (SK)", // name of language in native language
- "i18n.languageNameEnglish": "Slovak (SK)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@jurosic", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "SlovenÄina (SK)",
+ "i18n.languageNameEnglish": "Slovak (SK)",
+ "i18n.category": "main",
+ "i18n.authors": "@jurosic-JurajJanosik",
"app.name": "Cider",
-
"date.format": "${d} ${m}, ${y}",
-
- // Dialogs
"dialog.cancel": "ZruÅĄit",
"dialog.ok": "OK",
-
- // Notification
"notification.updatingLibrarySongs": "Aktualizujem pesniÄky v kniÅžnici...",
"notification.updatingLibraryAlbums": "Aktualizujem albumy v kniÅžnici...",
"notification.updatingLibraryArtists": "Aktualizujem tvorcov v kniÅžnici...",
- // Terms
"term.appleInc": "Apple Inc.",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
@@ -31,7 +21,7 @@
"term.logout": "OdhlÃĄsiÅĨ",
"term.login": "PrihlÃĄsiÅĨ",
"term.about": "About",
- "term.privateSession": "OsobnÃŊ Session",
+ "term.privateSession": "Skuromn PoÄÃēvanie",
"term.queue": "Poradie",
"term.search": "VyhlÃĄdavaÅĨ",
"term.library": "KniÅžnica",
@@ -76,8 +66,8 @@
"term.viewAs.coverArt": "NÃĄhÄžadovka",
"term.viewAs.list": "List",
"term.size": "VelkosÅĨ",
- "term.size.normal": "Normal",
- "term.size.compact": "Compact",
+ "term.size.normal": "NormÃĄlny",
+ "term.size.compact": "KompaktnÃŊ",
"term.enable": "ZapnÃēÅĨ",
"term.disable": "VypnÃēÅĨ",
"term.enabled": "ZapnutÊ",
@@ -91,7 +81,7 @@
"term.less": "Menej",
"term.showMore": "UkÃĄzaÅĨ viac",
"term.showLess": "UkÃĄzaÅĨ menej",
- "term.topSongs" : "Top PesniÄky",
+ "term.topSongs": "Top PesniÄky",
"term.latestReleases": "NajnovÅĄie vydania",
"term.time.added": "PridanÊ",
"term.time.released": "VydanÊ",
@@ -120,14 +110,11 @@
"term.contributors": "Contributors",
"term.equalizer": "Equalizer",
"term.reset": "ResetovaÅĨ",
- "term.tracks": "pesniÄiek", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "pesniÄiek",
"term.videos": "VideÃĄ",
"term.menu": "Menu",
"term.check": "SkontrolovaÅĨ",
- "term.aboutArtist": "Viac o {{artistName}}", // e.g. 'About Doja Cat'
- "term.updateCider": "AktualizovaÅĨ Cider",
-
- // Home
+ "term.aboutArtist": "Viac o {{artistName}}",
"home.title": "Domov",
"home.recentlyPlayed": "NedÃĄvno PrehranÊ",
"home.recentlyAdded": "NedÃĄvno PridanÊ",
@@ -136,13 +123,10 @@
"home.madeForYou": "RobenÊ Pre Teba",
"home.friendsListeningTo": "KamarÃĄti poÄÃēvajÃē",
"home.followedArtists": "SledovanÃŊ Tvorcovia",
- // Errors
"error.appleMusicSubRequired": "Apple Music potrebuje subscription.",
"error.connectionError": "Pri pripojovanà ku Apple Music sa vyskytol problÊm",
"error.noResults": "ÅŊiadne vÃŊsledky",
"error.noResults.description": "SkÃēs novÊ vyhÄžÃĄdavanie",
-
- //Podcasts
"podcast.followOnCider": "Sleduj na Cider",
"podcast.followedOnCider": "SledovanÊ na Cider",
"podcast.subscribeOnItunes": "Odoberaj na iTunes",
@@ -151,8 +135,6 @@
"podcast.episodes": "EpizÃŗdy",
"podcast.playEpisode": "Prehraj EpizÃŗdu",
"podcast.website": "StrÃĄnka Podcastu",
-
- // Actions
"action.addToLibrary": "Pridaj do KniÅžnice",
"action.addToLibrary.success": "PridanÊ do KniŞnice",
"action.addToLibrary.error": "Pri pridÃĄvani do KniÅžnice sa vzskytol problÊm",
@@ -197,88 +179,77 @@
"action.tray.quit": "OdÃsÅĨ",
"action.tray.show": "UkÃĄzaÅĨ",
"action.update": "AktualizovaÅĨ",
-
- // Settings - General
- "settings.header.general": "vÅĄeobecnÊ",
+ "settings.header.general": "VÅĄeobecnÊ",
"settings.header.general.description": "ZmeniÅĨ vÅĄeobecnÊ nastavenia pre Cider.",
"settings.option.general.language": "Jazyk",
-
- // Language optgroups
"settings.option.general.language.main": "Jazyky",
"settings.option.general.language.fun": "ZÃĄbanve Jazyky",
"settings.option.general.language.unsorted": "NepotriedenÊ",
-
- // Settings - Audio
+ "settings.option.general.updateCider": "AktualizovaÅĨ Cider",
"settings.header.audio": "Zvuk",
"settings.header.audio.description": "ZmeniÅĨ nastavenia zvuku pre Cider.",
- "settings.option.audio.quality": "Kvalita zvuku", // Dropdown
+ "settings.option.audio.quality": "Kvalita zvuku",
"settings.header.audio.quality.high": "VysokÃĄ",
"settings.header.audio.quality.low": "NizkÃĄ",
"settings.header.audio.quality.auto": "AutomatickÊ",
- "settings.option.audio.seamlessTransition": "HladkÃŊ Prevod Zvuku", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "ZapnÃēt PokroÄilÊ Nastavenia Zvuku", // Toggle
+ "settings.option.audio.seamlessTransition": "HladkÃŊ Prevod Zvuku",
+ "settings.option.audio.enableAdvancedFunctionality": "ZapnÃēt PokroÄilÊ Nastavenia Zvuku",
"settings.option.audio.enableAdvancedFunctionality.description": "Zapnutie AudioContext funkcionality dovolà rozÅĄÃrenÊ funkcie zvuku ako ZvukovÃĄ NormalizÃĄvia , EqualizÊry a VisualÃzery, ale na niektorÃŊch systÊmoch to moÅže spôsobiÅĨ problÊmy so zvukom.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalÃzacia Zvuku", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "PsychoakustickÊ VylepÅĄenia ktorÊ urobia zvuk viac bohatÃŊ a ÅživÃŊ.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Sila",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Zmenà silu CAP (AgresÃvnÃĄ môŞe spôsobiÅĨ neÅžiadanÊ vÃŊsledky)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Å tandardnÃĄ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "AgresÃvnÃĄ",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalÃzacia Zvuku",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje silu zvuku v pesniÄkÃĄch pre hÄžadÅĄÃ poÄÃēvacà zÃĄÅžitok",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "PriestorovÃŊ Zvuk", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "PriestorovÃŊ Zvuk",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "PriestorovÃŊ zvuk urobà zvuk 3-dimenzionÃĄlny (poznÃĄmka: Toto nie je Dolby Atmos)",
- // Settings - Visual
"settings.header.visual": "VisuÃĄlne",
"settings.header.visual.description": "Zmenit VisuÃĄlne nastavenia pre Cider.",
- "settings.option.visual.windowBackgroundStyle": "Å tÃŊl pozadia okna", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "Å tÃŊl pozadia okna",
"settings.header.visual.windowBackgroundStyle.none": "ÅŊiadne",
"settings.header.visual.windowBackgroundStyle.artwork": "NÃĄhÄžadovka",
"settings.header.visual.windowBackgroundStyle.image": "ObrÃĄtok",
- "settings.option.visual.animatedArtwork": "AnimovanÊ NÃĄhÄžadovky", // Dropdown
+ "settings.option.visual.animatedArtwork": "AnimovanÊ NÃĄhÄžadovky",
"settings.header.visual.animatedArtwork.always": "VÅždy",
"settings.header.visual.animatedArtwork.limited": "LimitovanÊ pre strÃĄnky a ÅĄpecialne vydania",
"settings.header.visual.animatedArtwork.disable": "VypnuÅĨ VÅĄade",
- "settings.option.visual.animatedArtworkQuality": "Kvalita Animovanej NÃĄhÄžadovky", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "Kvalita Animovanej NÃĄhÄžadovky",
"settings.header.visual.animatedArtworkQuality.low": "NÃzka",
"settings.header.visual.animatedArtworkQuality.medium": "StrednÃĄ",
"settings.header.visual.animatedArtworkQuality.high": "VysokÃĄ",
"settings.header.visual.animatedArtworkQuality.veryHigh": "VeÄžmi VysokÃĄ",
"settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊmna",
- "settings.option.visual.animatedWindowBackground": "Pozadie AnimovÃĄneho Okna", // Toggle
- "settings.option.visual.hardwareAcceleration": "HardvÊrova AkcelerÃĄcia", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "Pozadie AnimovÃĄneho Okna",
+ "settings.option.visual.hardwareAcceleration": "HardvÊrova AkcelerÃĄcia",
"settings.option.visual.hardwareAcceleration.description": "VyÅžaduje ReÅĄtart",
"settings.header.visual.hardwareAcceleration.default": "PredvoÄžba",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "ZobraziÅĨ osobnÊ informÃĄcie", // Toggle
-
- // Settings - Lyrics
+ "settings.header.visual.theme": "Theme",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Dark",
+ "settings.option.visual.showPersonalInfo": "ZobraziÅĨ osobnÊ informÃĄcie",
"settings.header.lyrics": "Text",
"settings.header.lyrics.description": "Zmenit nastavenia textu pre Cider.",
- "settings.option.lyrics.enableMusixmatch": "ZapnÃēÅĨ Musixmatch Texty", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "ZapnÃēÅĨ Karaoke ReÅžim (Iba pre Musixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "PredvolenÃŊ jazyk pre Musixmatch prekladanie", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "ZapnÃēÅĨ Youtube Lyrics pre videÃĄ", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "ZapnÃēÅĨ Musixmatch Texty",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "ZapnÃēÅĨ Karaoke ReÅžim (Iba pre Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "PredvolenÃŊ jazyk pre Musixmatch prekladanie",
+ "settings.option.lyrics.enableYoutubeLyrics": "ZapnÃēÅĨ Youtube Lyrics pre videÃĄ",
"settings.header.connectivity": "Konektivita",
"settings.header.connectivity.description": "ZmeniÅĨ nastavenia konektivity pre Cider.",
- "settings.option.connectivity.discordRPC": "ZobraziÅĨ status v Discord", // Dropdown
- "settings.option.connectivity.playbackNotifications": "NotifikÃĄcie", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "ZobraziÅĨ status v Discord",
+ "settings.option.connectivity.playbackNotifications": "NotifikÃĄcie",
"settings.header.connectivity.discordRPC.cider": "ZobraziÅĨ ako 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "ZobraziÅĨ ako 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "VypnÃēt Discord status pri Pauze", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Last.fm zaznamenanie poÄÃēvanej hudby", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "VypnÃēt Discord status pri Pauze",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm zaznamenanie poÄÃēvanej hudby",
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Oneskorenie (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "ZapnÃēÅĨ Last.fm Now Playing",
"settings.option.connectivity.lastfmScrobble.removeFeatured": "OdstrÃĄniÅĨ tvorcov z poÄÃēvanej pesniÄky (Last.fm)",
"settings.option.connectivity.lastfmScrobble.filterLoop": "FiltrovaÅĨ loopovanÊ pesniÄky (Last.fm)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
"settings.header.experimental": "ExperimentÃĄlne",
"settings.header.experimental.description": "ZmeniÅĨ experimentÃĄlne nastavenia pre Cider.",
- "settings.option.experimental.compactUI": "Compact UI", // Toggle
- "settings.option.experimental.close_button_hide": "ZatvoriÅĨ by malo skriÅĨ aplikÃĄciu",
- // Refer to term.disabled & term.enabled
-
- // Spatialization Menu
"spatial.notTurnedOn": "PriestorovÃŊ Zvuk je vypnutÃŊ. ProsÃm najprv ho zapnite.",
"spatial.spatialProperties": "Å peciÃĄlne Nastavenia",
"spatial.width": "Å Ãrka",
@@ -298,14 +269,8 @@
"spatial.down": "Dole",
"spatial.listener": "Listener",
"spatial.audioSource": "Zdroj zvuku",
-
- // Settings - Unfinished
"settings.header.unfinished": "NedokonÄenÊ",
-
- // Web Remote
"remote.web.title": "Cider Remote",
"remote.web.description": "Naskenujte QR kÃŗd aby ste si spÃĄrovali telefÃŗn s touto Cider session",
-
- // About
"about.thanks": "Äakujeme Cider TÃmu, Komunite a KontribÃētorom, bez vÃĄs by to nebolo moÅžnÊ."
-}
+}
\ No newline at end of file
diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json
new file mode 100644
index 00000000..73656dc8
--- /dev/null
+++ b/src/i18n/source/en_US.json
@@ -0,0 +1,425 @@
+{
+ "i18n.languageName": "English (US)",
+ "i18n.languageNameEnglish": "English (US)",
+ "i18n.category": "main",
+ "i18n.authors": "@maikirakiwi @kyw504100 @nosh118",
+ "app.name": "Cider",
+ "date.format": "${m} ${d}, ${y}",
+ "dialog.cancel": "Cancel",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Updating library songs...",
+ "notification.updatingLibraryAlbums": "Updating library albums...",
+ "notification.updatingLibraryArtists": "Updating library artists...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "Learn more",
+ "term.accountSettings": "Account Settings",
+ "term.logout": "Logout",
+ "term.login": "Log In",
+ "term.about": "About",
+ "term.privateSession": "Private Session",
+ "term.queue": "Queue",
+ "term.lyrics": "Lyrics",
+ "term.miniplayer": "MiniPlayer",
+ "term.history": "History",
+ "term.search": "Search",
+ "term.library": "Library",
+ "term.listenNow": "Listen Now",
+ "term.browse": "Browse",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "Recently Added",
+ "term.songs": "Songs",
+ "term.albums": "Albums",
+ "term.artists": "Artists",
+ "term.podcasts": "Podcasts",
+ "term.playlists": "Playlists",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "New Playlist",
+ "term.newPlaylistFolder": "New Playlist Folder",
+ "term.createNewPlaylist": "Create New Playlist",
+ "term.createNewPlaylistFolder": "Create New Playlist Folder",
+ "term.deletePlaylist": "Are you sure you want to delete this playlist?",
+ "term.play": "Play",
+ "term.pause": "Pause",
+ "term.previous": "Previous",
+ "term.next": "Next",
+ "term.shuffle": "Shuffle",
+ "term.repeat": "Repeat",
+ "term.volume": "Volume",
+ "term.mute": "Mute",
+ "term.unmute": "Unmute",
+ "term.share": "Share",
+ "term.share.success": "Copied to clipboard",
+ "term.settings": "Settings",
+ "term.seeAll": "See All",
+ "term.sortBy": "Sort By",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Artist",
+ "term.sortBy.name": "Name",
+ "term.sortBy.genre": "Genre",
+ "term.sortBy.releaseDate": "Release Date",
+ "term.sortBy.duration": "Duration",
+ "term.sortBy.dateAdded": "Date Added",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "Ascending",
+ "term.sortOrder.descending": "Descending",
+ "term.viewAs": "View As",
+ "term.viewAs.coverArt": "Cover Art",
+ "term.viewAs.list": "List",
+ "term.size": "Size",
+ "term.size.normal": "Normal",
+ "term.size.compact": "Compact",
+ "term.enable": "Enable",
+ "term.disable": "Disable",
+ "term.enabled": "Enabled",
+ "term.disabled": "Disabled",
+ "term.connect": "Connect",
+ "term.connecting": "Connecting",
+ "term.disconnect": "Disconnect",
+ "term.authed": "Authed",
+ "term.confirm": "Confirm?",
+ "term.more": "More",
+ "term.less": "Less",
+ "term.showMore": "Show more",
+ "term.showLess": "Show less",
+ "term.topSongs": "Top Songs",
+ "term.latestReleases": "Latest Releases",
+ "term.time.added": "Added",
+ "term.time.released": "Released",
+ "term.time.updated": "Updated",
+ "term.time.days": "days",
+ "term.time.day": {
+ "one": "day",
+ "other": "days"
+ },
+ "term.time.hours": "hours",
+ "term.time.hour": {
+ "one": "hour",
+ "other": "hours"
+ },
+ "term.time.minutes": "minutes",
+ "term.time.minute": {
+ "one": "minute",
+ "other": "minutes"
+ },
+ "term.time.seconds": "seconds",
+ "term.time.second": {
+ "one": "second",
+ "other": "seconds"
+ },
+ "term.fullscreenView": "Fullscreen View",
+ "term.defaultView": "Default View",
+ "term.audioSettings": "Audio Settings",
+ "term.audioControls": "Volume Controls",
+ "term.clearAll": "Clear All",
+ "term.recentStations": "Recent Stations",
+ "term.language": "Language",
+ "term.funLanguages": "Fun",
+ "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.",
+ "term.copyright": "Copyright",
+ "term.rightsReserved": "All Rights Reserved.",
+ "term.sponsor": "Sponsor this project",
+ "term.ciderTeam": "Cider Team",
+ "term.developer": "Developer",
+ "term.socialTeam": "Social Team",
+ "term.socials": "Socials",
+ "term.contributors": "Contributors",
+ "term.equalizer": "Equalizer",
+ "term.reset": "Reset",
+ "term.tracks": "tracks",
+ "term.track": {
+ "one" : "track",
+ "other" : "tracks"
+ },
+ "term.videos": "Videos",
+ "term.menu": "Menu",
+ "term.check": "Check",
+ "term.aboutArtist": "About {{artistName}}",
+ "term.topResult": "Top Result",
+ "term.sharedPlaylists": "Shared Playlists",
+ "term.people": "People",
+ "term.newpreset.name": "New EQ Preset Name",
+ "term.addedpreset": "Added Preset",
+ "term.deletepreset.warn": "Are you sure you want to delete this preset?",
+ "term.deletedpreset": "Removed preset",
+ "term.defaultPresets": "Default Presets",
+ "term.userPresets": "User Presets",
+ "term.requestError": "There was a problem with the request.",
+ "term.song.link.generate": "Getting song.link share URL...",
+ "term.musicVideos": "Music Videos",
+ "term.stations": "Stations",
+ "term.curators": "Curators",
+ "term.appleCurators": "Apple Curators",
+ "term.radioShows": "Radio Shows",
+ "term.recordLabels": "Record Labels",
+ "term.videoExtras": "Video Extras",
+ "term.top": "Top",
+ "term.version": "Version",
+ "term.noVideos": "No videos found.",
+ "term.plugin": "Plug-in",
+ "term.pluginMenu": "Plug-in Menu",
+ "term.pluginMenu.none": "No interactive plugins",
+ "term.replay": "Replay",
+ "term.uniqueAlbums": "Unique Albums",
+ "term.uniqueArtists": "Unique Artists",
+ "term.uniqueSongs": "Unique Songs",
+ "term.topArtists": "Top Artists",
+ "term.listenedTo": "Listened to:",
+ "term.times": "times",
+ "term.topAlbums": "Top Albums",
+ "term.plays": "Plays",
+ "term.topGenres": "Top Genres",
+ "term.confirmLogout": "Are you sure you want to logout?",
+ "term.creditDesignedBy": "Designed by ${authorUsername}",
+ "home.title": "Home",
+ "home.recentlyPlayed": "Recently Played",
+ "home.recentlyAdded": "Recently Added",
+ "home.artistsFeed": "Your Artists Feed",
+ "home.artistsFeed.noArtist": "Follow some artists to see their latest releases",
+ "home.madeForYou": "Made For You",
+ "home.friendsListeningTo": "Friends Listening To",
+ "home.followedArtists": "Followed Artists",
+ "error.appleMusicSubRequired": "Apple Music requires a subscription.",
+ "error.connectionError": "There was a problem connecting to Apple Music.",
+ "error.noResults": "No Results.",
+ "error.noResults.description": "Try a new search.",
+ "podcast.followOnCider": "Follow On Cider",
+ "podcast.followedOnCider": "Following On Cider",
+ "podcast.subscribeOnItunes": "Subscribe On iTunes",
+ "podcast.subscribedOnItunes": "Subscribed On iTunes",
+ "podcast.itunesStore": "iTunes Store",
+ "podcast.episodes": "Episodes",
+ "podcast.playEpisode": "Play Episode",
+ "podcast.website": "Podcast Website",
+ "action.addToLibrary": "Add to Library",
+ "action.addToLibrary.success": "Added to Library",
+ "action.addToLibrary.error": "Error Adding to Library",
+ "action.removeFromLibrary": "Remove from Library",
+ "action.removeFromLibrary.success": "Removed from Library",
+ "action.addToQueue": "Add to Queue",
+ "action.addToQueue.success": "Added to Queue",
+ "action.addToQueue.error": "Error Adding to Queue",
+ "action.removeFromQueue": "Remove from Queue",
+ "action.removeFromQueue.success": "Removed from Queue",
+ "action.removeFromQueue.error": "Error Removing from Queue",
+ "action.createPlaylist": "Create a New Playlist",
+ "action.addToPlaylist": "Add to Playlist",
+ "action.removeFromPlaylist": "Remove from Playlist",
+ "action.addToFavorites": "Add to Favorites",
+ "action.follow": "Follow",
+ "action.follow.success": "Followed",
+ "action.follow.error": "Error Following",
+ "action.unfollow": "Unfollow",
+ "action.unfollow.success": "Unfollowed",
+ "action.unfollow.error": "Error Unfollowing",
+ "action.playNext": "Play Next",
+ "action.playLater": "Play Later",
+ "action.startRadio": "Start Radio",
+ "action.goToArtist": "Go to Artist",
+ "action.goToAlbum": "Go to Album",
+ "action.showInPlaylist": "Show in Playlist",
+ "action.showInAppleMusic": "Show in Apple Music",
+ "action.moveToTop": "Move out of Folder",
+ "action.share": "Share",
+ "action.rename": "Rename",
+ "action.love": "Love",
+ "action.unlove": "Unlove",
+ "action.dislike": "Dislike",
+ "action.undoDislike": "Undo dislike",
+ "action.showWebRemoteQR": "Web Remote",
+ "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next",
+ "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later",
+ "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
+ "action.import": "Import",
+ "action.export": "Export",
+ "action.showAlbum": "Show Complete Album",
+ "action.tray.minimize": "Minimize to Tray",
+ "action.tray.quit": "Quit",
+ "action.tray.show": "Show",
+ "action.update": "Update",
+ "action.install": "Install",
+ "action.copy": "Copy",
+ "action.newpreset": "New Preset...",
+ "action.deletepreset": "Delete Preset",
+ "action.open": "Open",
+ "action.relaunch.confirm": "Do you want to relaunch Cider?",
+ "settings.header.general": "General",
+ "settings.header.general.description": "Adjust the general settings for Cider.",
+ "settings.option.general.language": "Language",
+ "settings.option.general.resumebehavior": "Resume behavior",
+ "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.",
+ "settings.option.general.resumebehavior.locally": "Locally",
+ "settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.",
+ "settings.option.general.resumebehavior.history": "History",
+ "settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.",
+ "settings.option.general.language.main": "Languages",
+ "settings.option.general.language.fun": "Fun Languages",
+ "settings.option.general.language.unsorted": "Unsorted",
+ "settings.option.general.updateCider": "Update Cider",
+ "settings.option.general.updateCider.branch": "Cider Update Branch",
+ "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to",
+ "settings.option.general.updateCider.branch.main": "Stable",
+ "settings.option.general.updateCider.branch.develop": "Development",
+ "settings.notyf.updateCider.update-not-available": "No update available",
+ "settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply",
+ "settings.notyf.updateCider.update-error": "Error updating Cider",
+ "settings.notyf.updateCider.update-timeout": "Update timed out",
+ "settings.header.audio": "Audio",
+ "settings.header.audio.description": "Adjust the audio settings for Cider.",
+ "settings.option.audio.volumeStep": "Volume Step",
+ "settings.option.audio.maxVolume": "Max Volume",
+ "settings.option.audio.quality": "Audio Quality",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "High",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "Standard",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "Seamless Audio Transition",
+ "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization, Equalizers and Visualizers - however on some systems this may cause stuttering in audio tracks.",
+ "settings.option.audio.audioLab": "Cider Audio Lab",
+ "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
+ "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.",
+ "settings.header.visual": "Visual",
+ "settings.header.visual.description": "Adjust the visual settings for Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Window Background Style",
+ "settings.header.visual.windowBackgroundStyle.none": "None",
+ "settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
+ "settings.header.visual.windowBackgroundStyle.image": "Image",
+ "settings.option.visual.animatedArtwork": "Animated Artwork",
+ "settings.header.visual.animatedArtwork.always": "Always",
+ "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries",
+ "settings.header.visual.animatedArtwork.disable": "Disable everywhere",
+ "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality",
+ "settings.header.visual.animatedArtworkQuality.low": "Low",
+ "settings.header.visual.animatedArtworkQuality.medium": "Medium",
+ "settings.header.visual.animatedArtworkQuality.high": "High",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High",
+ "settings.header.visual.animatedArtworkQuality.extreme": "Extreme",
+ "settings.option.visual.animatedWindowBackground": "Animated Window Background",
+ "settings.option.visual.hardwareAcceleration": "Hardware Acceleration",
+ "settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
+ "settings.header.visual.hardwareAcceleration.default": "Default",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Theme",
+ "settings.option.visual.theme.github.download": "Install from GitHub URL",
+ "settings.option.visual.theme.github.explore": "Explore GitHub Themes",
+ "settings.header.visual.theme.github.page": "Themes from GitHub",
+ "settings.option.visual.theme.github.install.confirm": "Are you sure you want to install {{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "Enter the URL of the theme you want to install",
+ "settings.notyf.visual.theme.install.success": "Theme installed successfully",
+ "settings.notyf.visual.theme.install.error": "Theme installation failed",
+ "settings.header.visual.plugin": "Plugin",
+ "settings.option.visual.plugin.github.download": "Install from GitHub URL",
+ "settings.option.visual.plugin.github.explore": "Explore GitHub Plugins",
+ "settings.header.visual.plugin.github.page": "Plugins from GitHub",
+ "settings.option.visual.plugin.github.install.confirm": "Are you sure you want to install {{ repo }}?",
+ "settings.prompt.visual.plugin.github.URL": "Enter the URL of the plugin you want to install",
+ "settings.prompt.visual.plugin.github.success": "Plugin installed successfully, Press OK to relaunch Cider",
+ "settings.notyf.visual.plugin.install.success": "Plugin installed successfully",
+ "settings.notyf.visual.plugin.install.error": "Plugin installation failed",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Dark",
+ "settings.option.visual.showPersonalInfo": "Show Personal Info",
+ "settings.header.window": "Window",
+ "settings.header.window.description": "Adjust the window settings for Cider.",
+ "settings.option.window.openOnStartup": "Open Cider on Startup",
+ "settings.option.window.openOnStartup.hidden": "Open Hidden",
+ "settings.header.lyrics": "Lyrics",
+ "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
+ "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language",
+ "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos",
+ "settings.header.connectivity": "Connectivity",
+ "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Playback Notifications",
+ "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
+ "settings.header.debug": "Debug",
+ "settings.option.debug.copy_log": "Copy logs to clipboard",
+ "settings.option.debug.openAppData": "Open Cider Folder",
+ "settings.header.experimental": "Experimental",
+ "settings.header.experimental.description": "Adjust the experimental settings for Cider.",
+ "settings.option.experimental.unknownPlugin": "Unknown Sources",
+ "settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository",
+ "settings.option.experimental.compactUI": "Compact UI",
+ "settings.option.window.close_button_hide": "Close Button Should Hide the Application",
+ "settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
+ "settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping",
+ "settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.",
+ "settings.option.visual.transparent": "Transparent frame",
+ "settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)",
+ "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
+ "spatial.spatialProperties": "Spatial Properties",
+ "spatial.width": "Width",
+ "spatial.height": "Height",
+ "spatial.depth": "Depth",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "Room Materials",
+ "spatial.roomDimensions": "Room Dimensions",
+ "spatial.roomPositions": "Room Positions",
+ "spatial.setDimensions": "Set Dimensions",
+ "spatial.setPositions": "Set Positions",
+ "spatial.up": "Up",
+ "spatial.front": "Front",
+ "spatial.left": "Left",
+ "spatial.right": "Right",
+ "spatial.back": "Back",
+ "spatial.down": "Down",
+ "spatial.listener": "Listener",
+ "spatial.audioSource": "Audio Source",
+ "settings.header.unfinished": "Unfinished",
+ "remote.web.title": "Cider Remote",
+ "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
+ "share.platform.twitter.tweet": "Listen to {{song}} on Apple Music.\n\n{{url}}\n\n#AppleMusic #Cider",
+ "share.platform.twitter": "Twitter",
+ "share.platform.facebook": "Facebook",
+ "share.platform.reddit": "Reddit",
+ "share.platform.telegram": "Telegram",
+ "share.platform.whatsapp": "WhatsApp",
+ "share.platform.messenger": "Messenger",
+ "share.platform.email": "Email",
+ "share.platform.songLink": "Copy with song.link",
+ "share.platform.clipboard": "Copy Link",
+ "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors."
+}
diff --git a/src/i18n/sv_SE.jsonc b/src/i18n/sv_SE.json
similarity index 85%
rename from src/i18n/sv_SE.jsonc
rename to src/i18n/sv_SE.json
index abdd2d29..fec435e8 100644
--- a/src/i18n/sv_SE.jsonc
+++ b/src/i18n/sv_SE.json
@@ -1,25 +1,15 @@
-{ // Base File
- // i18n Info
- "i18n.languageName": "Svenska (SE)", // name of language in native language
- "i18n.languageNameEnglish": "Swedish (SE)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@thisismemeboi", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+{
+ "i18n.languageName": "Svenska (SE)",
+ "i18n.languageNameEnglish": "Swedish (SE)",
+ "i18n.category": "main",
+ "i18n.authors": "@thisismemeboi",
"app.name": "Cider",
-
"date.format": "${d} ${m}, ${y}",
-
- // Dialogs
"dialog.cancel": "Avbryt",
"dialog.ok": "OK",
-
- // Notification
"notification.updatingLibrarySongs": "Uppdaterar lÃĨtar i biblioteket...",
"notification.updatingLibraryAlbums": "Uppdaterar album i biblioteket...",
"notification.updatingLibraryArtists": "Uppdaterar artister i biblioteket...",
-
- // Terms
"term.appleInc": "Apple Inc.",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
@@ -120,13 +110,11 @@
"term.contributors": "Bidrag",
"term.equalizer": "EQ",
"term.reset": "Ã
terställ",
- "term.tracks": "lÃĨtar", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "lÃĨtar",
"term.videos": "Videor",
"term.menu": "Meny",
"term.check": "SÃļk efter uppdateringar",
- "term.aboutArtist": "Om {{artistName}}", // e.g. 'About Doja Cat'
-
- // Home
+ "term.aboutArtist": "Om {{artistName}}",
"home.title": "Hem",
"home.recentlyPlayed": "Senast spelade",
"home.recentlyAdded": "Senast tillagda",
@@ -135,14 +123,10 @@
"home.madeForYou": "Skapat fÃļr dig",
"home.friendsListeningTo": "Vänner lyssnar pÃĨ",
"home.followedArtists": "FÃļljda artister",
-
- // Errors
"error.appleMusicSubRequired": "Apple Music kräver en prenumeration.",
"error.connectionError": "OjdÃĨ. Det gick inte att ansluta till Apple Music.",
"error.noResults": "Inga träffar.",
"error.noResults.description": "Prova en ny sÃļkning.",
-
- // Podcasts
"podcast.followOnCider": "FÃļlj pÃĨ Cider",
"podcast.followedOnCider": "FÃļljer pÃĨ Cider",
"podcast.subscribeOnItunes": "FÃļlj pÃĨ iTunes",
@@ -151,8 +135,6 @@
"podcast.episodes": "Avsnitt",
"podcast.playEpisode": "Spela avsnitt",
"podcast.website": "Ãppna webbsida",
-
- // Actions
"action.addToLibrary": "Lägg till i bibliotek",
"action.addToLibrary.success": "Tillagd i biblioteket",
"action.addToLibrary.error": "Kunde inte lägga till i biblioteket",
@@ -197,92 +179,70 @@
"action.tray.quit": "Avsluta",
"action.tray.show": "Visa Cider",
"action.update": "Uppdatera",
-
- // Settings - General
"settings.header.general": "Allmänt",
"settings.header.general.description": "Ãndra Ciders allmänna inställningar.",
"settings.option.general.language": "SprÃĨk",
-
- // Language optgroups
"settings.option.general.language.main": "SprÃĨk",
"settings.option.general.language.fun": "Roliga sprÃĨk",
"settings.option.general.language.unsorted": "Osorterade",
-
- // Update Cider
- "settings.option.general.updateCider": "Uppdatera Cider", // Button
-
- // Settings - Audio
+ "settings.option.general.updateCider": "Uppdatera Cider",
"settings.header.audio": "Ljud",
"settings.header.audio.description": "Ãndra Ciders ljudinställningar.",
- "settings.option.audio.quality": "Ljudkvalitet", // Dropdown
+ "settings.option.audio.quality": "Ljudkvalitet",
"settings.header.audio.quality.high": "HÃļg",
"settings.header.audio.quality.low": "LÃĨg",
"settings.header.audio.quality.auto": "Automatisk",
- "settings.option.audio.seamlessTransition": "SÃļmlÃļsa ljudÃļvergÃĨngar", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "Aktivera avancerade ljudfunktioner", // Toggle
+ "settings.option.audio.seamlessTransition": "SÃļmlÃļsa ljudÃļvergÃĨngar",
+ "settings.option.audio.enableAdvancedFunctionality": "Aktivera avancerade ljudfunktioner",
"settings.option.audio.enableAdvancedFunctionality.description": "Om du aktiverar avancerade ljudfunktioner kommer funktioner som ljudnormalisering, EQ och virtualisering aktiveras, men pÃĨ nÃĨgra system kan detta orsaka ljudproblem.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ljudnormalisering", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ljudnormalisering",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliserar hÃļga ljudnivÃĨer fÃļr att fÃļrbättra ljudkvaliteten.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spiralljud", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spiralljud",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "GÃļr ljudet mer 3D (Ej Dolby Atmos)",
-
- // Settings - Visual
"settings.header.visual": "Visuellt",
"settings.header.visual.description": "Ãndra Ciders visuella inställningar.",
- "settings.option.visual.windowBackgroundStyle": "Stil fÃļr bakgrunden", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "Stil fÃļr bakgrunden",
"settings.header.visual.windowBackgroundStyle.none": "Ingen",
"settings.header.visual.windowBackgroundStyle.artwork": "FrÃĨn omslagsbilden",
"settings.header.visual.windowBackgroundStyle.image": "Bild",
- "settings.option.visual.animatedArtwork": "Animerad omslagsbild", // Dropdown
+ "settings.option.visual.animatedArtwork": "Animerad omslagsbild",
"settings.header.visual.animatedArtwork.always": "Alltid",
"settings.header.visual.animatedArtwork.limited": "Endast pÃĨ sidor där det behÃļvs",
"settings.header.visual.animatedArtwork.disable": "Aldrig",
- "settings.option.visual.animatedArtworkQuality": "Kvalitet fÃļr animerad omslagsbild", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "Kvalitet fÃļr animerad omslagsbild",
"settings.header.visual.animatedArtworkQuality.low": "LÃĨg",
"settings.header.visual.animatedArtworkQuality.medium": "Standard",
"settings.header.visual.animatedArtworkQuality.high": "HÃļg",
"settings.header.visual.animatedArtworkQuality.veryHigh": "Väldigt hÃļg",
"settings.header.visual.animatedArtworkQuality.extreme": "Okomprimerat",
- "settings.option.visual.animatedWindowBackground": "Animerad fÃļnsterbakgrund", // Toggle
- "settings.option.visual.hardwareAcceleration": "HÃĨrdvaruacceleration", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "Animerad fÃļnsterbakgrund",
+ "settings.option.visual.hardwareAcceleration": "HÃĨrdvaruacceleration",
"settings.option.visual.hardwareAcceleration.description": "kräver omstart",
"settings.header.visual.hardwareAcceleration.default": "Standard",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "Visa personlig information", // Toggle
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "Visa personlig information",
"settings.header.lyrics": "LÃĨttext",
"settings.header.lyrics.description": "Ãndra Ciders lÃĨttextsinställningar.",
- "settings.option.lyrics.enableMusixmatch": "Använd Musixmatch istället fÃļr Apple Lyrics", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Aktivera karaokeläge (Endast Musixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "SprÃĨk fÃļr lÃĨttextsÃļversättning (Endast Musixmatch)", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "Använd YouTube Lyrcis fÃļr videor", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Använd Musixmatch istället fÃļr Apple Lyrics",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Aktivera karaokeläge (Endast Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "SprÃĨk fÃļr lÃĨttextsÃļversättning (Endast Musixmatch)",
+ "settings.option.lyrics.enableYoutubeLyrics": "Använd YouTube Lyrcis fÃļr videor",
"settings.header.connectivity": "Anslutning",
"settings.header.connectivity.description": "Ãndra Ciders anslutningsinställningar.",
- "settings.option.connectivity.discordRPC": "Discord integration (discordRPC)", // Dropdown
- "settings.option.connectivity.playbackNotifications": "Uppspelningsnotiser", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Discord integration (discordRPC)",
+ "settings.option.connectivity.playbackNotifications": "Uppspelningsnotiser",
"settings.header.connectivity.discordRPC.cider": "PÃĨ, visa som 'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "PÃĨ, visa som 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "Rensa Discord notiser frÃĨn Cider när du pausar", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Last.fm integration", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "Rensa Discord notiser frÃĨn Cider när du pausar",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm integration",
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm fÃļrdrÃļjning i %",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Visa vad som spelas nu i Last.fm",
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Visa inte extraartister i Last.fm",
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrera bort loopade lÃĨtar i Last.fm",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
"settings.header.experimental": "Experimentellt",
"settings.header.experimental.description": "Ãndra Ciders experimentella inställningar.",
- "settings.option.experimental.compactUI": "Kompakt gränssnitt", // Toggle
- "settings.option.experimental.close_button_hide": "Stängknappen gÃļmmer Cider istället",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
+ "settings.option.experimental.compactUI": "Kompakt gränssnitt",
+ "settings.option.window.close_button_hide": "Stängknappen gÃļmmer Cider istället",
"spatial.notTurnedOn": "Spiralljud är av. Akrtivera det fÃļrst.",
"spatial.spatialProperties": "Spiralljudsintällningar",
"spatial.width": "Bredd",
@@ -302,14 +262,8 @@
"spatial.down": "Ner",
"spatial.listener": "Lyssnare",
"spatial.audioSource": "Ljudkälla",
-
- // Settings - Unfinished
"settings.header.unfinished": "Ej tillgängligt",
-
- // Web Remote
"remote.web.title": "Cider fjärrkontroll",
"remote.web.description": "Skanna QR koden fÃļr att ansluta din telefon till Cider.",
-
- // About
"about.thanks": "Stort tack till Ciders Collective Team och alla som har bidragit!"
}
\ No newline at end of file
diff --git a/src/i18n/tr_TR.jsonc b/src/i18n/tr_TR.json
similarity index 81%
rename from src/i18n/tr_TR.jsonc
rename to src/i18n/tr_TR.json
index 828ecb59..64cbd996 100644
--- a/src/i18n/tr_TR.jsonc
+++ b/src/i18n/tr_TR.json
@@ -1,25 +1,15 @@
{
- // i18n Info
- "i18n.languageName": "TÃŧrkçe", // name of language in native language
- "i18n.languageNameEnglish": "Turkish", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@gms10ur", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+ "i18n.languageName": "TÃŧrkçe",
+ "i18n.languageNameEnglish": "Turkish",
+ "i18n.category": "main",
+ "i18n.authors": "@gms10ur",
"app.name": "Cider",
-
"date.format": "${d} ${m}, ${y}",
-
- // Dialogs
"dialog.cancel": "İptal",
"dialog.ok": "Tamam",
-
- // Notification
"notification.updatingLibrarySongs": "ArÅiv'deki ÅarkÄąlar alÄąnÄąyor...",
"notification.updatingLibraryAlbums": "ArÅiv'deki albÃŧmler alÄąnÄąyor...",
"notification.updatingLibraryArtists": "ArÅiv'deki sanatÃ§Äąlar alÄąnÄąyor...",
-
- // Terms
"term.appleInc": "Apple",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
@@ -91,10 +81,10 @@
"term.less": "Daha Az",
"term.showMore": "Daha Fazla GÃļster",
"term.showLess": "Daha Az GÃļster",
- "term.topSongs" : "PopÃŧler Parçalar",
+ "term.topSongs": "PopÃŧler Parçalar",
"term.latestReleases": "Yeni ÃÄąkan",
"term.time.added": "Åu tarihte eklendi: ",
- "term.time.released": "Åu tarihte yayÄąnalndÄą: ",
+ "term.time.released": "Åu tarihte yayÄąnalndÄą: ",
"term.time.updated": "Åu tarihte gÃŧncellendi: ",
"term.fullscreenView": "Tam Ekrana Geç",
"term.defaultView": "Normal GÃļrÃŧnÃŧme DÃļn",
@@ -115,27 +105,27 @@
"term.contributors": "KatkÄąda Bulunanlar",
"term.equalizer": "Ekolayzer",
"term.reset": "SÄąfÄąrla",
- "term.tracks": "adet ÅarkÄą", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "adet ÅarkÄą",
"term.time.hours": "saat",
"term.time.hour": "saat",
"term.time.minutes": "dakika",
"term.time.minute": "dakika",
"term.time.seconds": "saniye",
"term.time.second": "saniye",
- "term.videos": "Video Klipler",
+ "term.videos": "Video Klipler",
"term.menu": "MenÃŧ",
"term.check": "Åimdi Kontrol Et",
- "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
+ "term.aboutArtist": "About {{artistName}}",
"term.updateCider": "GÃŧncellemeleri Denetle",
"term.share.success": "Panoya KopyalandÄą",
- "term.topResult": "En İyi Sonuç", // Search Results
- "term.sharedPlaylists": "PaylaÅÄąlan Listeler", // Search Results
- "term.people": "KiÅiler", // Search Results
- "term.newpreset.name": "Yeni Ãnayar İsmi", // Equalizer Preset
+ "term.topResult": "En İyi Sonuç",
+ "term.sharedPlaylists": "PaylaÅÄąlan Listeler",
+ "term.people": "KiÅiler",
+ "term.newpreset.name": "Yeni Ãnayar İsmi",
"term.addedpreset": "Ãnayar Kaydedildi",
"term.deletepreset.warn": "Bu ÃļnayarÄą silmek istediÄinize emin misiniz?",
"term.deletedpreset": "Ãnayar Silindi",
- "term.musicVideos": "Video Klipler", // Search page friendlyTypes
+ "term.musicVideos": "Video Klipler",
"term.stations": "İstasyonlar",
"term.curators": "EditÃļrler",
"term.appleCurators": "Apple EditÃļrleri",
@@ -143,8 +133,6 @@
"term.recordLabels": "KayÄąt StÃŧdyolarÄą",
"term.videoExtras": "Ekstra Videolar",
"term.top": "En İyi",
-
- // Home
"home.title": "Ana Sayfa",
"home.recentlyPlayed": "Son OynatÄąlanlar",
"home.recentlyAdded": "Son Eklenenler",
@@ -153,14 +141,10 @@
"home.madeForYou": "Sadece Size Ãzel",
"home.friendsListeningTo": "ArkadaÅlarÄąnÄązÄąn Dinledikleri",
"home.followedArtists": "Takip Edilen SanatÃ§Äąlar",
-
- // Errors
"error.appleMusicSubRequired": "Apple MÃŧzik, aktif bir abonelik gerektirir.",
"error.connectionError": "Apple MÃŧzik ile baÄlantÄą kurulamadÄą.",
"error.noResults": "Hiç sonuç yok",
"error.noResults.description": "Tekrar deneyin.",
-
- //Podcasts
"podcast.followOnCider": "Cider'de Takip Et",
"podcast.followedOnCider": "Cider'de Takip Ediliyor",
"podcast.subscribeOnItunes": "itunes'de Abone Ol",
@@ -169,8 +153,6 @@
"podcast.episodes": "BÃļlÃŧmler",
"podcast.playEpisode": "BÃļlÃŧmÃŧ Oynat",
"podcast.website": "Web SayfasÄą",
-
- // Actions
"action.addToLibrary": "ArÅiv'e Ekle",
"action.addToLibrary.success": "ArÅiv'e Eklendi",
"action.addToLibrary.error": "ArÅiv'e Eklenemedi",
@@ -216,30 +198,22 @@
"action.tray.show": "GÃļster",
"action.update": "GÃŧncelle",
"action.copy": "Kopyala",
- "action.newpreset": "Yeni Ãnayar...", // Equalizer Preset
+ "action.newpreset": "Yeni Ãnayar...",
"action.deletepreset": "ÃnayarÄą Sil",
-
- // Settings - General
"settings.header.general": "Genel Ayarlar",
"settings.header.general.description": "Genel ayarlarÄą buradan dÃŧzenleyin.",
"settings.option.general.language": "Dil SeçeneÄi",
-
- // Language optgroups
"settings.option.general.language.main": "Gerçek Diller",
"settings.option.general.language.fun": "Mizahi Diller",
"settings.option.general.language.unsorted": "HenÃŧz TamamlanmamÄąÅ Diller",
-
- // Update Cider
- "settings.option.general.updateCider": "GÃŧncellemeleri Kontrol Et", // Button. Refer to term.check for the check button
- "settings.option.general.updateCider.branch": "Seçilen GitHub Versiyonu", // Dropdown
+ "settings.option.general.updateCider": "GÃŧncellemeleri Kontrol Et",
+ "settings.option.general.updateCider.branch": "Seçilen GitHub Versiyonu",
"settings.option.general.updateCider.branch.description": "Cider'in hangi versiyonuna gÃŧncelleneceÄini seçin",
"settings.option.general.updateCider.branch.main": "Stabil",
"settings.option.general.updateCider.branch.develop": "Deneysel",
-
- // Settings - Audio
"settings.header.audio": "Ãalma / Oynatma",
"settings.header.audio.description": "Cider'in sizin için en iyi dinleme deneyimini saÄlayabilmesi için ses ayarlarÄąnÄązÄą yapÄąn.",
- "settings.option.audio.quality": "Ses Kalitesi", // Dropdown
+ "settings.option.audio.quality": "Ses Kalitesi",
"settings.header.audio.quality.hireslossless": "YÃŧksek ÃÃļzÃŧnÃŧrlÃŧklÃŧ KayÄąpsÄąz",
"settings.header.audio.quality.hireslossless.description": "24-bit/192 kHz'e kadar",
"settings.header.audio.quality.lossless": "KayÄąpsÄąz",
@@ -249,109 +223,89 @@
"settings.header.audio.quality.standard": "Standart",
"settings.header.audio.quality.standard.description": "64 kbps",
"settings.header.audio.quality.auto": "Otomatik",
- "settings.option.audio.seamlessTransition": "Kesintisiz Ses GeçiÅi", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "GeliÅmiÅ Ses Deneyimi", // Toggle
+ "settings.option.audio.seamlessTransition": "Kesintisiz Ses GeçiÅi",
+ "settings.option.audio.enableAdvancedFunctionality": "GeliÅmiÅ Ses Deneyimi",
"settings.option.audio.enableAdvancedFunctionality.description": "GeliÅmiÅ ses deneyiminin etkinleÅtirilmesi, Ses NormalleÅtirme, Ekolayzer ve GÃļrselleÅtirici gibi geniÅletilmiÅ ses Ãļzelliklerine izin verir, ancak bu durum bazÄą sistemlerde seste bozulmalara neden olabilir.",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses NormalleÅtirme", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleÅtirme alçak ve yÃŧksek sesli ÅarkÄąlarÄą dengeler ve daha dÃŧzgÃŧn bir dinleme deneyimi saÄlar.",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaÅtÄąrÄąn ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos deÄildir)",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin ProsesÃļrÃŧâĸī¸", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin ProsesÃļrÃŧâĸī¸",
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "MÃŧziÄin hem daha zengin hem de daha canlÄą duyulmasÄąnÄą saÄlayan Psikoakustik GeliÅtirme Sistemi | Maikiwi tarafÄąndan tasarlanmÄąÅtÄąr.",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Sese yapÄąlan iÅlemin gÃŧcÃŧnÃŧ deÄiÅtirir. (Agresif istenmeyen sonuçlar doÄurabilir)",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standart",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
-
- // Settings - Visual
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses NormalleÅtirme",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleÅtirme alçak ve yÃŧksek sesli ÅarkÄąlarÄą dengeler ve daha dÃŧzgÃŧn bir dinleme deneyimi saÄlar.",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaÅtÄąrÄąn ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos deÄildir)",
"settings.header.visual": "GÃļrÃŧnÃŧm",
"settings.header.visual.description": "Cider'in nasÄąl gÃļzÃŧkmesini istediÄinizi ayarlayÄąn",
- "settings.option.visual.windowBackgroundStyle": "Uygulama Arka Plan Stili", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "Uygulama Arka Plan Stili",
"settings.header.visual.windowBackgroundStyle.image": "GÃļrsel",
"settings.header.visual.windowBackgroundStyle.none": "KaranlÄąk",
"settings.header.visual.windowBackgroundStyle.artwork": "AlbÃŧm KapaÄÄą",
- "settings.option.visual.animatedArtwork": "Hareketli AlbÃŧm KapaklarÄą", // Dropdown
+ "settings.option.visual.animatedArtwork": "Hareketli AlbÃŧm KapaklarÄą",
"settings.header.visual.animatedArtwork.always": "Her Zaman AÃ§Äąk",
"settings.header.visual.animatedArtwork.limited": "BazÄą Sayfalara ve Ãzel BÃļlgelerle SÄąnÄąrlÄą",
"settings.header.visual.animatedArtwork.disable": "Her Zaman KapalÄą",
- "settings.option.visual.animatedArtworkQuality": "Hareketli AlbÃŧm KapaÄÄą Kalitesi", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "Hareketli AlbÃŧm KapaÄÄą Kalitesi",
"settings.header.visual.animatedArtworkQuality.low": "DÃŧÅÃŧk",
"settings.header.visual.animatedArtworkQuality.medium": "Orta",
"settings.header.visual.animatedArtworkQuality.high": "YÃŧksek",
"settings.header.visual.animatedArtworkQuality.veryHigh": "Daha YÃŧksek",
"settings.header.visual.animatedArtworkQuality.extreme": "Ekstrem",
- "settings.option.visual.animatedWindowBackground": "Hareketli Uygulama Arka PlanÄą", // Toggle
- "settings.option.visual.hardwareAcceleration": "DonanÄąm HÄązlandÄąrmasÄą", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "Hareketli Uygulama Arka PlanÄą",
+ "settings.option.visual.hardwareAcceleration": "DonanÄąm HÄązlandÄąrmasÄą",
"settings.option.visual.hardwareAcceleration.description": "Etki etmesi için uygulamayÄą yeniden baÅlatmak gerekir.",
- "settings.header.visual.hardwareAcceleration.default": "VarsayÄąlan",
- "settings.header.visual.hardwareAcceleration.webGPU": "GeliÅmiÅ",
- "settings.option.visual.showPersonalInfo": "KullanÄącÄą AdÄąmÄą GÃļster", // Toggle
+ "settings.header.visual.hardwareAcceleration.default": "VarsayÄąlan",
+ "settings.header.visual.hardwareAcceleration.webGPU": "GeliÅmiÅ",
"settings.header.visual.theme": "Tema",
-
- // Settings - Visual - Theme name
"settings.option.visual.theme.default": "Cider",
"settings.option.visual.theme.dark": "KaranlÄąk",
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "KullanÄącÄą AdÄąmÄą GÃļster",
"settings.header.lyrics": "ÅarkÄą SÃļzleri",
"settings.header.lyrics.description": "Cider'in ÅarkÄą sÃļzlerini nasÄąl gÃļrÃŧntÃŧlemesini istediÄini buradan ayarlayÄąn.",
- "settings.option.lyrics.enableMusixmatch": "Musixmatch Kullan", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke Modunu EtkinleÅtir (Sadece Musixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch için Otomatik Ãeviri Dili", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "MÃŧzik VideolarÄą için ÅarkÄą SÃļzÃŧnÃŧ YouTube'dan Al", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "Musixmatch Kullan",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke Modunu EtkinleÅtir (Sadece Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch için Otomatik Ãeviri Dili",
+ "settings.option.lyrics.enableYoutubeLyrics": "MÃŧzik VideolarÄą için ÅarkÄą SÃļzÃŧnÃŧ YouTube'dan Al",
"settings.header.connectivity": "DiÄer Servisler",
"settings.header.connectivity.description": "Cider'i diÄer servislere baÄlayarak deneyiminizi zenginleÅtirin.",
- "settings.option.connectivity.discordRPC": "Ne DinlediÄimi Discord'da GÃļster", // Dropdown
- "settings.option.connectivity.playbackNotifications": "OynatÄąlan deÄiÅtiÄinde bildirim gÃļster", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Ne DinlediÄimi Discord'da GÃļster",
+ "settings.option.connectivity.playbackNotifications": "OynatÄąlan deÄiÅtiÄinde bildirim gÃļster",
"settings.header.connectivity.discordRPC.cider": "'Cider' Olarak",
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' Olarak",
- "settings.option.connectivity.discordRPC.clearOnPause": "DuraklatÄąldÄąÄÄąnda Discord'da GÃļsterme", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM BaÄlantÄąsÄą", // Option to Connect
- "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobblalma YÃŧzdesi (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "Åimdi çalan ÅarkÄąyÄą LastFM'de gÃļster",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "AlbÃŧm sanatÃ§ÄąsÄąnÄą Scrobbledan kaldÄąr(LastFM)",
- "settings.option.connectivity.lastfmScrobble.filterLoop": "Tekrar edilen ÅarkÄąyÄą filtrele (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
+ "settings.option.connectivity.discordRPC.clearOnPause": "DuraklatÄąldÄąÄÄąnda Discord'da GÃļsterme",
+ "settings.option.connectivity.lastfmScrobble": "LastFM BaÄlantÄąsÄą",
+ "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobblalma YÃŧzdesi (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Åimdi çalan ÅarkÄąyÄą LastFM'de gÃļster",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "AlbÃŧm sanatÃ§ÄąsÄąnÄą Scrobbledan kaldÄąr(LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Tekrar edilen ÅarkÄąyÄą filtrele (LastFM)",
"settings.header.experimental": "Deneysel",
"settings.header.experimental.description": "Cider'deki deneysel Ãļzelliklere eriÅim saÄlayÄąn. (Not: BazÄą Ãļzellikler dÃŧzgÃŧn çalÄąÅmayabilir.)",
- "settings.option.experimental.compactUI": "Kompakt ArayÃŧz", // Toggle
- "settings.option.experimental.close_button_hide": "Kapatma DÃŧÄmesi Cider'i KÃŧçÃŧltÃŧr",
+ "settings.option.experimental.compactUI": "Kompakt ArayÃŧz",
+ "settings.option.window.close_button_hide": "Kapatma DÃŧÄmesi Cider'i KÃŧçÃŧltÃŧr",
"settings.option.experimental.copy_log": "GÃŧnlÃŧÄÃŧ Panoya Kopyala",
"settings.option.experimental.inline_playlists": "Listeleri ve AlbÃŧmleri AÃ§ÄąlÄąr Pencere İle gÃļster",
-
- // Spatialization Menu
"spatial.notTurnedOn": "Uzamsal ses devre dÄąÅÄą. Kullanabilmek için lÃŧtfen Ãļnce etkinleÅtirin.",
- "spatial.spatialProperties" : "Uzamsal Ãzellikler",
- "spatial.width" : "GeniÅlik",
- "spatial.height" : "YÃŧkseklik",
- "spatial.depth" : "Derinlik",
- "spatial.roomMaterials" : "Oda Materyalleri",
- "spatial.roomDimensions" : "Oda ÃlçÃŧleri",
- "spatial.roomPositions" : "Oda Pozisyonu",
- "spatial.setDimensions" : "ÃlçÃŧleri Ayarla",
- "spatial.setPositions" : "Pozisyonu Ayarla",
- "spatial.up" : "Ãst",
- "spatial.front" : "Ãn",
- "spatial.left" : "Sol",
- "spatial.right" : "SaÄ",
- "spatial.back" : "Arka",
- "spatial.down" : "AÅaÄÄą",
- "spatial.listener" : "Dinleyici",
- "spatial.audioSource" : "Ses KaynaÄÄą",
- "spatial.gain" : "Kazanç",
-
- // Settings - Unfinished
+ "spatial.spatialProperties": "Uzamsal Ãzellikler",
+ "spatial.width": "GeniÅlik",
+ "spatial.height": "YÃŧkseklik",
+ "spatial.depth": "Derinlik",
+ "spatial.gain": "Kazanç",
+ "spatial.roomMaterials": "Oda Materyalleri",
+ "spatial.roomDimensions": "Oda ÃlçÃŧleri",
+ "spatial.roomPositions": "Oda Pozisyonu",
+ "spatial.setDimensions": "ÃlçÃŧleri Ayarla",
+ "spatial.setPositions": "Pozisyonu Ayarla",
+ "spatial.up": "Ãst",
+ "spatial.front": "Ãn",
+ "spatial.left": "Sol",
+ "spatial.right": "SaÄ",
+ "spatial.back": "Arka",
+ "spatial.down": "AÅaÄÄą",
+ "spatial.listener": "Dinleyici",
+ "spatial.audioSource": "Ses KaynaÄÄą",
"settings.header.unfinished": "GeliÅtirme AÅamasÄąnda",
-
- // Web Remote
"remote.web.title": "Cider'e BaÄlan",
"remote.web.description": "Telefonunuzu Bu Cider Oturumuyla EÅleÅtirmek için QR Kodunu TarayÄąn",
-
- //About
"about.thanks": "Cider Collective Ekibine ve tÃŧm katkÄąda bulunanlara çok teÅekkÃŧr ederiz."
}
\ No newline at end of file
diff --git a/src/i18n/vi_VN.json b/src/i18n/vi_VN.json
new file mode 100644
index 00000000..fc3b667b
--- /dev/null
+++ b/src/i18n/vi_VN.json
@@ -0,0 +1,314 @@
+{
+ "i18n.languageName": "Tiáēŋng Viáģt",
+ "i18n.languageNameEnglish": "Vietnamese",
+ "i18n.category": "main",
+ "i18n.authors": "@vapormusic",
+ "app.name": "Cider",
+ "date.format": "${d} ${m}, ${y}",
+ "dialog.cancel": "Cancel",
+ "dialog.ok": "OK",
+ "notification.updatingLibrarySongs": "Cáēp nháēt bà i hÃĄt trong thư viáģn...",
+ "notification.updatingLibraryAlbums": "Cáēp nháēt album trong thư viáģn...",
+ "notification.updatingLibraryArtists": "Cáēp nháēt ca sÄŠ trong thư viáģn...",
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
+ "term.learnMore": "TÃŦm hiáģu thÃĒm",
+ "term.accountSettings": "Cà i Äáēˇt tà i khoáēŖn",
+ "term.logout": "ÄÄng xuáēĨt",
+ "term.login": "ÄÄng nháēp",
+ "term.about": "Giáģi thiáģu",
+ "term.privateSession": "PhiÃĒn dÚng riÃĒng tư",
+ "term.queue": "HÃ ng ÄáģŖi",
+ "term.history": "Láģch sáģ",
+ "term.search": "TÃŦm kiáēŋm",
+ "term.library": "Thư viáģn",
+ "term.listenNow": "Nghe ngay",
+ "term.browse": "KhÃĄm phÃĄ",
+ "term.radio": "Radio",
+ "term.recentlyAdded": "VáģĢa ÄÆ°áģŖc thÃĒm",
+ "term.songs": "BÃ i hÃĄt",
+ "term.albums": "Album",
+ "term.artists": "Ngháģ sÄŠ",
+ "term.podcasts": "Podcast",
+ "term.playlists": "Playlist",
+ "term.playlist": "Playlist",
+ "term.newPlaylist": "Playlist máģi",
+ "term.newPlaylistFolder": "CáģĨm playlist máģi",
+ "term.createNewPlaylist": "TáēĄo playlist",
+ "term.createNewPlaylistFolder": "TáēĄo cáģĨm playlist",
+ "term.deletePlaylist": "BáēĄn cÃŗ muáģn xoÃĄ playlist nà y?",
+ "term.play": "PhÃĄt",
+ "term.pause": "DáģĢng",
+ "term.previous": "Trưáģc ÄÃŗ",
+ "term.next": "Tiáēŋp theo",
+ "term.shuffle": "XÃĄo tráģn",
+ "term.repeat": "Láēˇp",
+ "term.volume": "Ãm lưáģŖng",
+ "term.mute": "Táē¯t tiáēŋng",
+ "term.unmute": "Huáģˇ táē¯t tiáēŋng",
+ "term.share": "Chia sáēģ",
+ "term.share.success": "ÄÃŖ lưu và o báģ nháģ táēĄm",
+ "term.settings": "Cà i Äáēˇt",
+ "term.seeAll": "Xem táēĨt cáēŖ",
+ "term.sortBy": "Xáēŋp theo",
+ "term.sortBy.album": "Album",
+ "term.sortBy.artist": "Ngháģ sÄŠ",
+ "term.sortBy.name": "TÃĒn",
+ "term.sortBy.genre": "DÃ˛ng nháēĄc",
+ "term.sortBy.releaseDate": "Ngà y phÃĄt hà nh",
+ "term.sortBy.duration": "Tháģi lưáģŖng",
+ "term.sortBy.dateAdded": "Ngà y thÃĒm và o",
+ "term.sortOrder": "A-Z",
+ "term.sortOrder.ascending": "TÄng dáē§n",
+ "term.sortOrder.descending": "GiáēŖm dáē§n",
+ "term.viewAs": "Xem theo kiáģu",
+ "term.viewAs.coverArt": "áēĸnh bÃŦa",
+ "term.viewAs.list": "Danh sÃĄch",
+ "term.size": "CáģĄ",
+ "term.size.normal": "VáģĢa",
+ "term.size.compact": "Thu gáģn",
+ "term.enable": "Báēt",
+ "term.disable": "Táē¯t",
+ "term.enabled": "ÄÃŖ báēt",
+ "term.disabled": "ÄÃŖ táē¯t",
+ "term.connect": "Káēŋt náģi",
+ "term.connecting": "Äang káēŋt náģi",
+ "term.disconnect": "DáģĢng káēŋt náģi",
+ "term.authed": "ÄÃŖ ÄÄng nháēp",
+ "term.confirm": "BáēĄn cÃŗ chÄc không?",
+ "term.more": "ThÃĒm",
+ "term.less": "Ãt hÆĄn",
+ "term.showMore": "Hiáģn thÃĒm",
+ "term.showLess": "Hiáģn Ãt hÆĄn",
+ "term.topSongs": "CÃĄc bà i hÃĄt náģi báēt",
+ "term.latestReleases": "Máģi nháēĨt",
+ "term.time.added": "ThÃĒm và o ngà y",
+ "term.time.released": "PhÃĄt hà nh và o ngà y",
+ "term.time.updated": "Cáēp nháēt và o ngà y",
+ "term.time.hours": "giáģ",
+ "term.time.hour": "giáģ",
+ "term.time.minutes": "phÃēt",
+ "term.time.minute": "phÃēt",
+ "term.time.seconds": "giÃĸy",
+ "term.time.second": "giÃĸy",
+ "term.fullscreenView": "Xem toà n mà n hÃŦnh",
+ "term.defaultView": "Xem gáģc",
+ "term.audioSettings": "Cà i Äáēˇt Ãĸm thanh",
+ "term.clearAll": "XoÃĄ táēĨt cáēŖ",
+ "term.recentStations": "CÃĄc ÄÃ i gáē§n ÄÃĸy",
+ "term.language": "Ngôn ngáģ¯",
+ "term.funLanguages": "Vui váēģ",
+ "term.noLyrics": "Äang tÃŦm... / Không cÃŗ láģi bà i hÃĄt.",
+ "term.copyright": "BáēŖn quyáģn",
+ "term.rightsReserved": "Máģi quyáģn thuáģc váģ cÃĄc cháģ§ sáģ háģ¯u.",
+ "term.sponsor": "Tà i tráģŖ cho dáģą ÃĄn nà y",
+ "term.ciderTeam": "Cider Team",
+ "term.developer": "Láēp trÃŦnh viÃĒn",
+ "term.socialTeam": "Social Team",
+ "term.socials": "PR",
+ "term.contributors": "CÃĄc ÄÃŗng gÃŗp viÃĒn",
+ "term.equalizer": "EQ",
+ "term.reset": "Äáēˇt váģ máēˇc Äáģnh",
+ "term.tracks": "bà i",
+ "term.videos": "Video",
+ "term.menu": "Menu",
+ "term.check": "Kiáģm tra",
+ "term.aboutArtist": "Váģ {{artistName}}",
+ "term.topResult": "Káēŋt quáēŖ gáē§n nháēĨt",
+ "term.sharedPlaylists": "Playlist ÄÆ°áģŖc chia sáēģ",
+ "term.people": "Ngưáģi dÚng",
+ "term.newpreset.name": "TáēĄo thiÊt láēp EQ",
+ "term.addedpreset": "CÃĄc thiÊt láēp EQ ÄÃŖ ÄÆ°áģŖc thÃĒm",
+ "term.deletepreset.warn": "BáēĄn cÃŗ muáģn xoÃĄ thiáēŋt láēp nà y?",
+ "term.deletedpreset": "Thiáēŋt láēp ÄÃŖ báģ xoÃĄ",
+ "term.requestError": "CÃŗ váēĨn Äáģ khi tháģąc hiáģn yÃĒu cáē§u.",
+ "term.song.link.generate": "TÃŦm URL danh máģĨc trÃĒn song.link ...",
+ "term.musicVideos": "Video ca nháēĄc",
+ "term.stations": "CÃĄc ÄÃ i",
+ "term.curators": "Nhà tuyáģn cháģn",
+ "term.appleCurators": "Tuyáģn cháģn táģĢ Apple",
+ "term.radioShows": "CÃĄc chÆ°ÆĄng trÃŦnh radio",
+ "term.recordLabels": "Nhà phÃĄt hà nh Ãĸm nháēĄc",
+ "term.videoExtras": "Video khÃĄc",
+ "term.top": "Top",
+ "home.title": "ChÃnh",
+ "home.recentlyPlayed": "Máģi phÃĄt",
+ "home.recentlyAdded": "Máģi thÃĒm và o",
+ "home.artistsFeed": "Theo dÃĩi",
+ "home.artistsFeed.noArtist": "Theo dÃĩi cÃĄc nháēĄc sÄŠ mà báēĄn yÃĒu thÃch và nháēn thông bÃĄo khi cÃŗ bà i hÃĄt máģi.",
+ "home.madeForYou": "Dà nh cho báēĄn",
+ "home.friendsListeningTo": "BáēĄn bè Äang nghe",
+ "home.followedArtists": "CÃĄc ngháģ sÄŠ Äang theo dÃĩi",
+ "error.appleMusicSubRequired": "Apple Music yÃĒu cáē§u báēĄn ÄÄng kÃ.",
+ "error.connectionError": "CÃŗ váēĨn Äáģ káēŋt náģi táģi Apple Music.",
+ "error.noResults": "Không cÃŗ káēŋt quáēŖ.",
+ "error.noResults.description": "HÃŖy tháģ tÃŦm kiáēŋm báēŗng táģĢ khoÃĄ khÃĄc.",
+ "podcast.followOnCider": "Theo dÃĩi trÃĒn Cider",
+ "podcast.followedOnCider": "Äang theo dÃĩi trÃĒn Cider",
+ "podcast.subscribeOnItunes": "Theo dÃĩi trÃĒn iTunes",
+ "podcast.subscribedOnItunes": "Äang theo dÃĩi trÃĒn iTunes",
+ "podcast.itunesStore": "Cáģa hà ng iTunes",
+ "podcast.episodes": "CÃĄc táēp",
+ "podcast.playEpisode": "PhÃĄt",
+ "podcast.website": "Trang cháģ§",
+ "action.addToLibrary": "ThÃĒm và o thư viáģn",
+ "action.addToLibrary.success": "ÄÃŖ thÃĒm và o thư viáģn",
+ "action.addToLibrary.error": "CÃŗ láģi khi thÃĒm và o thư viáģn",
+ "action.removeFromLibrary": "XoÃĄ kháģi thư viáģn",
+ "action.removeFromLibrary.success": "ÄÃŖ xoÃĄ kháģi thư viáģn",
+ "action.addToQueue": "ThÃĒm và o hà ng ÄáģŖi",
+ "action.addToQueue.success": "ÄÃŖ thÃĒm và o hà ng ÄáģŖi",
+ "action.addToQueue.error": "CÃŗ láģi khi thÃĒm và o hà ng ÄáģŖi",
+ "action.removeFromQueue": "XoÃĄ kháģi hà ng ÄáģŖi",
+ "action.removeFromQueue.success": "ÄÃŖ xoÃĄ kháģi hà ng ÄáģŖi",
+ "action.removeFromQueue.error": "CÃŗ láģi khi xoÃĄ kháģi hà ng ÄáģŖi",
+ "action.createPlaylist": "TáēĄo playlist",
+ "action.addToPlaylist": "ThÃĒm và o playlist",
+ "action.removeFromPlaylist": "XoÃĄ kháģi playlist",
+ "action.addToFavorites": "ThÃĒm và o YÃĒu thÃch",
+ "action.follow": "Theo dÃĩi",
+ "action.follow.success": "ÄÃŖ theo dÃĩi",
+ "action.follow.error": "CÃŗ láģi khi theo dÃĩi",
+ "action.unfollow": "NgáģĢng theo dÃĩi",
+ "action.unfollow.success": "ÄÃŖ ngáģĢng theo dÃĩi",
+ "action.unfollow.error": "CÃŗ láģi khi ngáģĢng theo dÃĩi",
+ "action.playNext": "PhÃĄt tiáēŋp theo",
+ "action.playLater": "PhÃĄt cuáģi cÚng",
+ "action.startRadio": "TáēĄo Äà i phÃĄt",
+ "action.goToArtist": "Äi Äáēŋn ngháģ sÄŠ",
+ "action.goToAlbum": "Äi Äáēŋn album",
+ "action.moveToTop": "ÄÆ°a lÃĒn Äáē§u",
+ "action.share": "Chia sáēģ",
+ "action.rename": "Äáģi tÃĒn",
+ "action.love": "YÃĒu thÃch",
+ "action.unlove": "Báģ yÃĒu thÃch",
+ "action.dislike": "Không thÃch",
+ "action.undoDislike": "Báģ không thÃch",
+ "action.showWebRemoteQR": "Äiáģu khiáģn táģĢ xa",
+ "action.playTracksNext": "PhÃĄt ${app.selectedMediaItems.length} bà i tiáēŋp theo",
+ "action.playTracksLater": "PhÃĄt ${app.selectedMediaItems.length} bà i cuáģi cÚng",
+ "action.removeTracks": "Báģ ${self.selectedItems.length} bà i kháģi hà ng ÄáģŖi",
+ "action.import": "Nháēp",
+ "action.export": "XuáēĨt",
+ "action.showAlbum": "Hiáģn album Äáē§y Äáģ§",
+ "action.tray.minimize": "Thu nháģ xuáģng khay háģ tháģng",
+ "action.tray.quit": "ThoÃĄt",
+ "action.tray.show": "Hiáģn",
+ "action.update": "Cáēp nháēt",
+ "action.copy": "Sao chÊp",
+ "action.newpreset": "Thiáēŋp láēp máģi...",
+ "action.deletepreset": "XoÃĄ thiÃĒt láēp",
+ "settings.header.general": "Cà i Äáēˇt chung",
+ "settings.header.general.description": "Thay Äáģi cÃĄc cà i Äáēˇt chung cáģ§a Cider.",
+ "settings.option.general.language": "Ngôn ngáģ¯",
+ "settings.option.general.language.main": "Ngôn ngáģ¯ chÃnh",
+ "settings.option.general.language.fun": "Ngôn ngáģ¯ hư cáēĨu",
+ "settings.option.general.language.unsorted": "Ngôn ngáģ¯ khÃĄc",
+ "settings.option.general.updateCider": "Cáēp nháēt Cider",
+ "settings.option.general.updateCider.branch": "NhÃĄnh cáēp nháēt",
+ "settings.option.general.updateCider.branch.description": "Cháģn nhÃĄnh cáēp nháēt cáģ§a Cider:",
+ "settings.option.general.updateCider.branch.main": "áģn Äáģnh",
+ "settings.option.general.updateCider.branch.develop": "Tháģ nghiáģm",
+ "settings.header.audio": "Ãm thanh",
+ "settings.header.audio.description": "Thay Äáģi cÃĄc cà i Äáēˇt Ãĸm thanh cáģ§a Cider.",
+ "settings.option.audio.quality": "CháēĨt lưáģŖng Ãĸm thanh",
+ "settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
+ "settings.header.audio.quality.hireslossless.description": "lÃĒn táģi 24-bit/192 kHz",
+ "settings.header.audio.quality.lossless": "Lossless",
+ "settings.header.audio.quality.lossless.description": "lÃĒn táģi 24-bit/48 kHz",
+ "settings.header.audio.quality.high": "Cao",
+ "settings.header.audio.quality.high.description": "256 kbps",
+ "settings.header.audio.quality.standard": "TiÃĒu chuáēŠn",
+ "settings.header.audio.quality.standard.description": "64 kbps",
+ "settings.option.audio.seamlessTransition": "Gapless playback",
+ "settings.option.audio.enableAdvancedFunctionality": "KÃch hoáēĄt chÃnh nÄng nÃĸng cao",
+ "settings.option.audio.enableAdvancedFunctionality.description": "Báēt cÃĄc cháģŠc nÄng nÃĸng cao sáēŊ kÃch hoáēĄt cÃĄc cháģŠc nÄng như EQ, ChuáēŠn hoÃĄ Ãĸm lưáģŖng hay Visualizer, tuy nhiÃĒn cÃŗ tháģ sáēŊ áēŖnh hưáģng táģi cháēĨt lưáģŖng Ãĸm thanh",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "CÃĄc tinh cháģnh váģ Ãĸm thanh giÃēp cho nháēĄc cáģ§a báēĄn áēĨm và rÃĩ hÆĄn.",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP không tÆ°ÆĄng thÃch váģi Ãm thanh Äa chiáģu. HÃŖy táē¯t Ãm thanh Äa chiáģu Äáģ kÃch hoáēĄt.",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Cháģnh máģŠc Äáģ áēŖnh hưáģng cáģ§a CAP Äáēŋn Ãĸm thanh. (Cháēŋ Äáģ MáēĄnh cÃŗ tháģ áēŖnh hưáģng Äáēŋn Ãĸm thanh cáģ§a báēĄn)",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "TiÃĒu chuáēŠn",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "MáēĄnh",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ChuáēŠn hoÃĄ Ãĸm lưáģŖng",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Äáēˇt cÚng máģŠc Ãĸm lưáģŖng cho máģi bà i hÃĄt",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "TáēĄo Ãm thanh Äa chiáģu ",
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Là m cho Ãĸm thanh tráģ nÃĒn nhiáģu chiáģu hÆĄn (Ghi chÃē: ÄÃĸy không pháēŖi là Dolby Atmos)",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Ãm thanh Äa chiáģu không tÆ°ÆĄng thÃch váģi CAP. HÃŖy táē¯t CAP Äáģ kÃch hoáēĄt.",
+ "settings.header.visual": "Hiáģn tháģ",
+ "settings.header.visual.description": "Thay Äáģi cÃĄc cà i Äáēˇt hiáģn tháģ cáģ§a Cider.",
+ "settings.option.visual.windowBackgroundStyle": "Cháēŋ Äáģ áēŖnh náģn",
+ "settings.header.visual.windowBackgroundStyle.none": "Không",
+ "settings.header.visual.windowBackgroundStyle.artwork": "áēĸnh bÃŦa",
+ "settings.header.visual.windowBackgroundStyle.image": "áēĸnh",
+ "settings.option.visual.animatedArtwork": "áēĸnh bÃŦa Äáģng",
+ "settings.header.visual.animatedArtwork.always": "Luôn báēt",
+ "settings.header.visual.animatedArtwork.limited": "Cháģ hiáģn áģ máģt sáģ trang cÃĄ nhÃĸn",
+ "settings.header.visual.animatedArtwork.disable": "Táē¯t",
+ "settings.option.visual.animatedArtworkQuality": "CháēĨt lưáģŖng áēŖnh bÃŦa Äáģng",
+ "settings.header.visual.animatedArtworkQuality.low": "TháēĨp",
+ "settings.header.visual.animatedArtworkQuality.medium": "Trung bÃŦnh",
+ "settings.header.visual.animatedArtworkQuality.high": "Cao",
+ "settings.header.visual.animatedArtworkQuality.veryHigh": "RáēĨt cao",
+ "settings.header.visual.animatedArtworkQuality.extreme": "RáēĨt ráēĨt cao",
+ "settings.option.visual.animatedWindowBackground": "HÃŦnh náģn chuyáģn Äáģng",
+ "settings.option.visual.hardwareAcceleration": "Cháēŋ Äáģ Hiáģn tháģ",
+ "settings.option.visual.hardwareAcceleration.description": "YÃĒu cáē§u restart láēĄi Cider Äáģ kÃch hoáēĄt",
+ "settings.header.visual.hardwareAcceleration.default": "Gáģc",
+ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
+ "settings.header.visual.theme": "Cháģ§ Äáģ",
+ "settings.option.visual.theme.default": "Cider",
+ "settings.option.visual.theme.dark": "Táģi hÆĄn",
+ "settings.option.visual.showPersonalInfo": "Hiáģn thông tin cÃĄ nhÃĸn",
+ "settings.header.lyrics": "Láģi bà i hÃĄt",
+ "settings.header.lyrics.description": "Thay Äáģi cÃĄc cà i Äáēˇt láģi bà i hÃĄt cáģ§a Cider.",
+ "settings.option.lyrics.enableMusixmatch": "DÚng láģi táģĢ Musixmatch",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "Báēt cháēŋ Äáģ karaoke (cháģ trÃĒn láģi táģĢ Musixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Ngôn ngáģ¯ dáģch cáģ§a Musixmatch",
+ "settings.option.lyrics.enableYoutubeLyrics": "DÚng láģi táģĢ Youtube cho cÃĄc Video ca nháēĄc",
+ "settings.header.connectivity": "Káēŋt náģi",
+ "settings.header.connectivity.description": "Thay Äáģi cÃĄc cà i Äáēˇt láģi káēŋt náģi cáģ§a Cider.",
+ "settings.option.connectivity.discordRPC": "Discord Rich Presence",
+ "settings.option.connectivity.playbackNotifications": "Thông bÃĄo chuyáģn bà i",
+ "settings.header.connectivity.discordRPC.cider": "Hiáģn là 'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "Hiáģn là 'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "XoÃĄ Discord Rich Presence khi dáģĢng nháēĄc",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
+ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Báēt Last.fm Now Playing",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "XoÃĄ cÃĄc ngháģ sÄŠ pháģi háģŖp áģ tÃĒn bà i hÃĄt (Last.fm)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "Láģc cÃĄc bà i trÚng (Last.fm)",
+ "settings.header.experimental": "Tháģ nghiáģm",
+ "settings.header.experimental.description": "Thay Äáģi cÃĄc cà i Äáēˇt láģi tháģ nghiáģm cáģ§a Cider.",
+ "settings.option.experimental.compactUI": "UI thu gáģn",
+ "settings.option.window.close_button_hide": "NÃēt thoÃĄt cáģa sáģ sáēŊ áēŠn Cider xuáģng khay háģ tháģng",
+ "settings.option.experimental.copy_log": "Sao chÊp logs ra báģ nháģ táēĄm",
+ "settings.option.experimental.inline_playlists": "Playlists and Albums hiáģn náģi lÃĒn trÃĒn",
+ "spatial.notTurnedOn": "Ãm thanh Äa chiáģu chưa ÄÆ°áģŖc kÃch hoáēĄt. HÃŖy kÃch hoáēĄt nÃŗ trưáģc",
+ "spatial.spatialProperties": "Tinh cháģnh cho Ãm thanh Äa chiáģu",
+ "spatial.width": "Chiáģu ráģng",
+ "spatial.height": "Chiáģu cao",
+ "spatial.depth": "Chiáģu sÃĸu",
+ "spatial.gain": "Gain",
+ "spatial.roomMaterials": "CháēĨt liáģu phÃ˛ng",
+ "spatial.roomDimensions": "KÃch thưáģc phÃ˛ng",
+ "spatial.roomPositions": "Váģ trà phÃ˛ng",
+ "spatial.setDimensions": "Cháģnh kÃch thưáģc",
+ "spatial.setPositions": "Cháģnh váģ trÃ",
+ "spatial.up": "TrÃĒn",
+ "spatial.front": "Trưáģc",
+ "spatial.left": "TrÃĄi",
+ "spatial.right": "PháēŖi",
+ "spatial.back": "Sau",
+ "spatial.down": "Dưáģi",
+ "spatial.listener": "Ngưáģi nghe",
+ "spatial.audioSource": "Nguáģn Ãĸm thanh",
+ "settings.header.unfinished": "Chưa hoà n thiáģn",
+ "remote.web.title": "Äiáģu khiáģn táģĢ xa cáģ§a Cider",
+ "remote.web.description": "QuÊt mÃŖ QR Äáģ káēŋt náģi thiáēŋt báģ cáģ§a báēĄn váģi Cider",
+ "about.thanks": "TrÃĸn tráģng cáēŖm ÆĄn Cider Collective Team và táēĨt cáēŖ cÃĄc ÄÃŗng gÃŗp viÃĒn cáģ§a chÃēng tôi."
+}
\ No newline at end of file
diff --git a/src/i18n/zh_CN.jsonc b/src/i18n/zh_CN.json
similarity index 65%
rename from src/i18n/zh_CN.jsonc
rename to src/i18n/zh_CN.json
index 8844e83b..8ec56875 100644
--- a/src/i18n/zh_CN.jsonc
+++ b/src/i18n/zh_CN.json
@@ -1,30 +1,21 @@
{
- // i18n Info
- "i18n.languageName": "įŽäŊ䏿īŧä¸åŊīŧ", // name of language in native language
- "i18n.languageNameEnglish": "Simp. Chinese (China)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+ "i18n.languageName": "įŽäŊ䏿īŧä¸åŊīŧ",
+ "i18n.languageNameEnglish": "Simp. Chinese (China)",
+ "i18n.category": "main",
+ "i18n.authors": "@maikirakiwi @BillKerman",
"app.name": "Cider",
-
"date.format": "${y}åš´${m}æ${d}æĨ",
-
- // Dialogs
"dialog.cancel": "åæļ",
"dialog.ok": "įĄŽåŽ",
-
- // Notification
"notification.updatingLibrarySongs": "æŖå¨æ´æ°čĩæåēįææ˛äŋĄæ¯...",
"notification.updatingLibraryAlbums": "æŖå¨æ´æ°čĩæåēįä¸čžäŋĄæ¯...",
"notification.updatingLibraryArtists": "æŖå¨æ´æ°čĩæåēįčēäēēäŋĄæ¯...",
-
- // Terms
- "term.appleMusic": "Apple Music", // Follows brand term
- "term.applePodcasts": "Apple Podcasts", // Follows brand term
- "term.itunes": "iTunes", // Follows brand term
- "term.github": "GitHub", // Follows brand term
- "term.discord": "Discord", // Follows brand term
+ "term.appleInc": "Apple Inc.",
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
"term.learnMore": "æ´å¤äŋĄæ¯",
"term.accountSettings": "č´ĻæˇčŽžįŊŽ",
"term.logout": "įģåē",
@@ -32,6 +23,7 @@
"term.about": "å
ŗäē",
"term.privateSession": "į§äēēčåŦ",
"term.queue": "éå",
+ "term.history": "ææžåå˛",
"term.search": "æį´ĸ",
"term.library": "čĩæåē",
"term.listenNow": "į°å¨å°ąåŦ",
@@ -44,6 +36,11 @@
"term.podcasts": "æåŽĸ",
"term.playlists": "ææžå襨",
"term.playlist": "ææžå襨",
+ "term.newPlaylist": "æ°ææžå襨",
+ "term.newPlaylistFolder": "æ°ææžå襨æäģļ多",
+ "term.createNewPlaylist": "æ°åģēææžå襨",
+ "term.createNewPlaylistFolder": "æ°åģēææžå襨æäģļ多",
+ "term.deletePlaylist": "æ¨įĄŽåŽčĻå é¤č¯Ĩææžå襨å?",
"term.play": "ææž",
"term.pause": "æå",
"term.previous": "ä¸ä¸éĻ",
@@ -54,6 +51,7 @@
"term.mute": "ééŗ",
"term.unmute": "č§Ŗé¤ééŗ",
"term.share": "åäēĢ",
+ "term.share.success": "厞å¤åļå°åĒč´´æŋ",
"term.settings": "莞įŊŽ",
"term.seeAll": "æĨįå
¨é¨",
"term.sortBy": "æåē",
@@ -103,60 +101,73 @@
"term.clearAll": "æ¸
įŠē",
"term.recentStations": "æčŋææžįéĸé",
"term.language": "č¯č¨",
- "term.noLyrics": "å čŊŊä¸ãã/ æį´ĸæ įģæ / įē¯éŗäš",
+ "term.funLanguages": "æļæ",
+ "term.noLyrics": "å čŊŊä¸... / æ æį´ĸįģæ / įē¯éŗäš",
"term.copyright": "įæææ",
"term.rightsReserved": "äŋįæææåŠã",
"term.sponsor": "čĩåŠ",
"term.ciderTeam": "Cider åĸé",
"term.developer": "åŧåč
",
"term.socialTeam": "åĒäŊåĸé",
+ "term.socials": "åĒäŊ",
"term.contributors": "č´ĄįŽč
",
"term.equalizer": "å襥å¨",
"term.reset": "éįŊŽ",
- "term.tracks": "éĻææ˛", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "éĻææ˛",
"term.videos": "č§éĸ",
"term.menu": "čå",
"term.check": "æŖæĨ",
- "term.aboutArtist": "å
ŗäē{{artistName}}", // e.g. 'About Doja Cat'
-
- // Home
+ "term.aboutArtist": "å
ŗäē{{artistName}}",
+ "term.updateCider": "æ´æ° Cider",
+ "term.topResult": "į鍿į´ĸįģæ",
+ "term.sharedPlaylists": "åäēĢææžå襨",
+ "term.people": "ä¸ĒäēēæĄŖæĄ",
+ "term.newpreset.name": "æ°å襥å¨éĸ莞å",
+ "term.addedpreset": "éĸčŽžåˇ˛æˇģå ",
+ "term.deletepreset.warn": "äŊ įĄŽåŽčĻå 餿¤éĸ莞å?",
+ "term.deletedpreset": "éĸčŽžåˇ˛å é¤",
+ "term.defaultPresets": "éģ莤éĸ莞",
+ "term.userPresets": "፿ˇéĸ莞",
+ "term.requestError": "蝎æąåēį°ä¸ä¸ĒéŽéĸã",
+ "term.song.link.generate": "čˇå song.link å
ąäēĢéžæĨ...",
+ "term.musicVideos": "éŗäšč§éĸ",
+ "term.stations": "įĩå°",
+ "term.radioShows": "åšŋæåé",
+ "term.recordLabels": "åąįå
Ŧå¸",
+ "term.videoExtras": "č§éĸįščž",
+ "term.version": "įæŦ",
"home.title": "ä¸ģéĄĩ",
"home.recentlyPlayed": "æčŋææž",
"home.recentlyAdded": "æčŋæˇģå ",
"home.artistsFeed": "čēäē翍č",
- "home.artistsFeed.noArtist": "čŋŊč¸Ēæ¨åįąįčēäēēåäžŋ坿ĨįäģäģŦįææ°åčĄã",
+ "home.artistsFeed.noArtist": "å
ŗæŗ¨æ¨åįąįčēäēēåäžŋ坿ĨįäģäģŦįææ°åčĄææ˛ã",
"home.madeForYou": "ä¸å࿍č",
"home.friendsListeningTo": "æåæŖå¨åŦ",
"home.followedArtists": "å
ŗæŗ¨įčēäēē",
-
- // Errors
"error.appleMusicSubRequired": "éčĻčŽĸé
Apple Music äģĨäŊŋ፠Cider",
"error.connectionError": "æ æŗčŋæĨå° Apple Musicã",
- "error.noResults": "æ˛Ąæįģæ",
+ "error.noResults": "æ˛Ąæįģæã",
"error.noResults.description": "å°č¯æ´æšæį´ĸæĄäģļã",
-
- // Podcasts
- "podcast.followOnCider": "å¨ Cider ä¸čŋŊč¸Ē",
- "podcast.followedOnCider": "厞čŋŊč¸Ē",
+ "podcast.followOnCider": "å¨ Cider ä¸å
ŗæŗ¨",
+ "podcast.followedOnCider": "厞å
ŗæŗ¨",
"podcast.subscribeOnItunes": "å¨ iTunes ä¸čŽĸé
",
"podcast.subscribedOnItunes": "厞čŽĸé
",
- "podcast.itunesStore": "iTunes Store", // Follow brand term
+ "podcast.itunesStore": "iTunes Store",
"podcast.episodes": "åé",
"podcast.playEpisode": "ææžåé",
"podcast.website": "Podcast įŊįĢ",
-
- // Actions
"action.addToLibrary": "å å
Ĩčĩæåē",
"action.addToLibrary.success": "æåå å
Ĩčĩæåē",
"action.addToLibrary.error": "å å
Ĩčĩæåēįčŋį¨åįäēé蝝",
"action.removeFromLibrary": "äģčĩæåēä¸į§ģé¤",
"action.removeFromLibrary.success": "厞äģčĩæåēä¸į§ģé¤",
- "action.addToQueue": "å å
Ĩéå",
- "action.addToQueue.success": "æåå å
Ĩéå",
- "action.addToQueue.error": "å å
Ĩéåįčŋį¨åįäēé蝝",
- "action.removeFromQueue": "äģéåä¸į§ģé¤",
- "action.removeFromQueue.success": "厞äģéåä¸į§ģé¤",
- "action.removeFromQueue.error": "äģéåä¸į§ģé¤įčŋį¨åįäēé蝝",
+ "action.addToQueue": "å å
Ĩåž
ææ¸
å",
+ "action.addToQueue.success": "æåå å
Ĩå å
Ĩåž
ææ¸
å",
+ "action.addToQueue.error": "å å
Ĩå å
Ĩåž
ææ¸
åįčŋį¨åįäēé蝝",
+ "action.removeFromQueue": "äģå å
Ĩåž
ææ¸
åä¸į§ģé¤",
+ "action.removeFromQueue.success": "厞äģå å
Ĩåž
ææ¸
åä¸į§ģé¤",
+ "action.removeFromQueue.error": "äģå å
Ĩåž
ææ¸
åä¸į§ģé¤įčŋį¨åįäēé蝝",
+ "action.createPlaylist": "æ°åģēææžå襨",
"action.addToPlaylist": "å å
Ĩææžå襨",
"action.removeFromPlaylist": "äģææžå襨ä¸į§ģé¤",
"action.addToFavorites": "å čŗæļč",
@@ -166,7 +177,7 @@
"action.unfollow": "åæļå
ŗæŗ¨",
"action.unfollow.success": "厞åæļå
ŗæŗ¨",
"action.unfollow.error": "å°č¯åæļå
ŗæŗ¨įčŋį¨åįäēé蝝",
- "action.playNext": "ä¸ä¸éĻææž",
+ "action.playNext": "ææ",
"action.playLater": "æåææž",
"action.startRadio": "åŧå§įĩå°",
"action.goToArtist": "ååžčēäēē",
@@ -177,11 +188,11 @@
"action.love": "åæŦĸ",
"action.unlove": "踊",
"action.dislike": "åå°æ¤įąģåģē莎",
- "action.undoDislike": "åĸå æ¤įąģåģē莎",
+ "action.undoDislike": "æ¤éåå°æ¤įąģåģē莎",
"action.showWebRemoteQR": "æžį¤ēčŋ፿§åļįäēįģ´į ",
"action.playTracksNext": "ææ ${app.selectedMediaItems.length} éĻææ˛",
"action.playTracksLater": "æåææž ${app.selectedMediaItems.length} éĻææ˛",
- "action.removeTracks": "äģéåä¸į§ģé¤ ${self.selectedItems.length} éĻææ˛",
+ "action.removeTracks": "äģåž
ææ¸
åä¸į§ģé¤ ${self.selectedItems.length} éĻææ˛",
"action.import": "å¯ŧå
Ĩ",
"action.export": "å¯ŧåē",
"action.showAlbum": "æžį¤ēä¸čž",
@@ -189,11 +200,23 @@
"action.tray.quit": "éåē",
"action.tray.show": "æžį¤ē",
"action.update": "æ´æ°",
-
- // Settings - Audio
+ "action.copy": "å¤åļ",
+ "action.newpreset": "æ°åģēéĸ莞...",
+ "action.deletepreset": "å é¤éĸ莞",
+ "settings.header.general": "éį¨",
+ "settings.header.general.description": "č°æ´ Cider įéį¨čŽžįŊŽ",
+ "settings.option.general.language": "č¯č¨",
+ "settings.option.general.language.main": "č¯č¨",
+ "settings.option.general.language.fun": "æļæč¯č¨",
+ "settings.option.general.language.unsorted": "æĒåįąģ",
+ "settings.option.general.updateCider": "æ´æ° Cider",
+ "settings.option.general.updateCider.branch": "Cider æ´æ°éé",
+ "settings.option.general.updateCider.branch.description": "éæŠæĨå Cider æ´æ°įéé",
+ "settings.option.general.updateCider.branch.main": "፺åŽ",
+ "settings.option.general.updateCider.branch.develop": "æĩč¯",
"settings.header.audio": "éŗéĸ",
"settings.header.audio.description": "č°æ´ Cider įéŗéĸ莞įŊŽ",
- "settings.option.audio.quality": "éŗč´¨", // Dropdown
+ "settings.option.audio.quality": "éŗč´¨",
"settings.header.audio.quality.hireslossless": "éĢč§ŖæåēĻæ æ",
"settings.header.audio.quality.hireslossless.description": "(æéĢ 24 äŊ/192 kHz)",
"settings.header.audio.quality.lossless": "æ æ",
@@ -202,77 +225,75 @@
"settings.header.audio.quality.high": "éĢéŗč´¨",
"settings.header.audio.quality.standard": "éĢæį",
"settings.header.audio.quality.auto": "čĒå¨",
- "settings.option.audio.seamlessTransition": "æ įŧææž", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "čŋéļåčŊ", // Toggle
+ "settings.option.audio.seamlessTransition": "æ įŧææž",
+ "settings.option.audio.enableAdvancedFunctionality": "čŋéļåčŊ",
"settings.option.audio.enableAdvancedFunctionality.description": "å¯į¨ AudioContext å°č§ŖéäžåĻéŗéæ åååéŗéĸįŠēé´åįåčŊīŧäŊå¯čŊäŧå¨å°é¨å莞å¤ä¸åēį°éŗéĸä¸įåĄéĄŋã",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider æ°ååĸåŧēåŧæâĸī¸", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider æ°ååĸåŧēåŧæâĸī¸",
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "å°æŦēéĒæ¨į大čæĨæįĨå°čŋäŧŧæ æéŗéĸįææã",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗéæ åå", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "æ°ååĸåŧēåŧæåŧēåēĻ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "æšåéŗéĸå¤įįåŧēåēĻã(æŋčŋé饚å¯čŊäē§įæéŗ)",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗéæ åå",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "äŊŋææįĨå°įéŗéĸååēĻįģä¸",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "éŗéĸįŠēé´å", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "éŗéĸįŠēé´å",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "äŊŋææįĨå°įéŗéĸæ´æįĢäŊæ (æŗ¨: čŋ䏿¯ææ¯å
¨æ¯åŖ°)",
-
- // Settings - Visual
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "æ å",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "æŋčŋ",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "įŠēé´éŗéĸ䏿°ååĸåŧēåŧæä¸å
ŧ厚īŧ蝎å
å፿°ååĸåŧēåŧæ",
"settings.header.visual": "å¤č§",
"settings.header.visual.description": "č°æ´ Cider įå¤č§",
- "settings.option.visual.windowBackgroundStyle": "įĒåŖčæ¯æ ˇåŧ", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "įĒåŖčæ¯æ ˇåŧ",
"settings.header.visual.windowBackgroundStyle.none": "æ ",
"settings.header.visual.windowBackgroundStyle.artwork": "ä¸čžå°éĸ",
- "settings.option.visual.animatedArtwork": "卿ä¸čžå°éĸ", // Dropdown
+ "settings.header.visual.windowBackgroundStyle.image": "åžå",
+ "settings.option.visual.animatedArtwork": "卿ä¸čžå°éĸ",
"settings.header.visual.animatedArtwork.always": "æģæ¯æžį¤ē",
"settings.header.visual.animatedArtwork.limited": "åĒå¨čēäēēéĄĩéĸåä¸čžå°éĸæžį¤ē",
"settings.header.visual.animatedArtwork.disable": "å
ŗé",
- "settings.option.visual.animatedArtworkQuality": "卿ä¸čžå°éĸįģč´¨", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "卿ä¸čžå°éĸįģč´¨",
"settings.header.visual.animatedArtworkQuality.low": "äŊ",
"settings.header.visual.animatedArtworkQuality.medium": "ä¸",
"settings.header.visual.animatedArtworkQuality.high": "éĢ",
"settings.header.visual.animatedArtworkQuality.veryHigh": "é常éĢ",
"settings.header.visual.animatedArtworkQuality.extreme": "æéĢ",
- "settings.option.visual.animatedWindowBackground": "卿įĒåŖčæ¯", // Toggle
- "settings.option.visual.hardwareAcceleration": "įĄŦäģļå é", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "卿įĒåŖčæ¯",
+ "settings.option.visual.hardwareAcceleration": "įĄŦäģļå é",
"settings.option.visual.hardwareAcceleration.description": "éčĻéå¯ Cider æäŧįæ",
"settings.header.visual.hardwareAcceleration.default": "éģ莤",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "æžį¤ēä¸Ēäēēčĩæ", // Toggle
-
- // Settings - General (Reserved)
- "settings.header.general": "éį¨",
- "settings.header.general.description": "č°æ´ Cider įéį¨čŽžįŊŽ",
-
- // Settings - General - Update Cider
- "settings.option.general.updateCider": "æ´æ° Cider", // Button
-
- // Settings - Lyrics
+ "settings.header.visual.theme": "ä¸ģéĸ",
+ "settings.option.visual.theme.github.download": "éčŋGitHub URLåŽčŖ
",
+ "settings.option.visual.theme.github.explore": "æĩč§ GitHub ä¸įä¸ģéĸ",
+ "settings.option.visual.theme.github.install.confirm": "įĄŽåŽčĻåŽčŖ
{{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "蝎čžå
ĨæŦ˛åŽčŖ
ä¸ģéĸįURL",
+ "settings.notyf.visual.theme.install.success": "ä¸ģéĸåŽčŖ
æå",
+ "settings.notyf.visual.theme.install.error": "ä¸ģéĸåŽčŖ
å¤ąč´Ĩ",
+ "settings.option.visual.theme.default": "éģ莤",
+ "settings.option.visual.theme.dark": "åå¤éģ",
+ "settings.option.visual.showPersonalInfo": "æžį¤ēä¸Ēäēēčĩæ",
"settings.header.lyrics": "æč¯",
"settings.header.lyrics.description": "č°æ´ Cider įæč¯čŽžįŊŽ",
- "settings.option.lyrics.enableMusixmatch": "å¯į¨ Musixmatch æč¯", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "å¯į¨åĄæ OK æ¨Ąåŧīŧäģ
Musixmatchīŧ", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æč¯č¯č¨ååĨŊ", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "ææž MV æļäŊŋ፠YouTube æč¯", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "å¯į¨ Musixmatch æč¯",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "å¯į¨åĄæ OK æ¨Ąåŧīŧäģ
Musixmatchīŧ",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æč¯č¯č¨ååĨŊ",
+ "settings.option.lyrics.enableYoutubeLyrics": "ææž MV æļäŊŋ፠YouTube æč¯",
"settings.header.connectivity": "å¤é¨čŋæĨ",
"settings.header.connectivity.description": "č°æ´Ciderä¸å¤é¨åēį¨įäē¤äē莞įŊŽ",
- "settings.option.connectivity.discordRPC": "Discord 卿", // Dropdown
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "æžį¤ēæŖå¨įŠ 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "æžį¤ēæŖå¨įŠ 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "æåæļæ¸
é¤Discord 卿", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 莰åŊ", // Option to Connect
+ "settings.option.connectivity.discordRPC": "Discord 卿",
+ "settings.option.connectivity.playbackNotifications": "ææ˛ææžéįĨ",
+ "settings.header.connectivity.discordRPC.cider": "æžį¤ēæŖå¨äŊŋ፠'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "æžį¤ēæŖå¨äŊŋ፠'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "æåæļæ¸
é¤ Discord 卿",
+ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 莰åŊ",
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble åģļčŋ (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "å¯į¨ LastFM æŖå¨ææž",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "äģæåéåģé¤čēäē翍č (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "äģæåéåģé¤åäŊč
(LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "ä¸čްåŊ忞åžĒᝠ(LastFM)",
"settings.header.experimental": "åŽéĒæ§åčŊ",
- "settings.header.experimental.description": "č°æ´CiderįåŽéĒæ§åčŊ",
- "settings.option.experimental.compactUI": "į´§åå UI", // Toggle
- "settings.option.experimental.close_button_hide": "įšåģå
ŗéæéŽæļäģ
éčįĒåŖ",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
+ "settings.header.experimental.description": "č°æ´ Cider įåŽéĒæ§åčŊ",
+ "settings.option.experimental.compactUI": "į´§åå UI",
+ "settings.option.window.close_button_hide": "įšåģå
ŗéæéŽæļäģ
éčįĒåŖ",
+ "settings.option.experimental.copy_log": "å¤åļæĨåŋčŗåĒč´´æŋ",
+ "spatial.notTurnedOn": "蝎å¨čŽžåŽä¸åŧå¯įŠēé´éŗéĸã",
"spatial.spatialProperties": "įŠēé´åąæ§",
"spatial.width": "åŽŊåēĻ",
"spatial.height": "éĢåēĻ",
@@ -291,14 +312,8 @@
"spatial.down": "ä¸",
"spatial.listener": "æ¨",
"spatial.audioSource": "éŗæē",
-
- // Settings - Unfinished
"settings.header.unfinished": "æĒåŽæ",
-
- // Web Remote
"remote.web.title": "Cider čŋ፿§åļ",
"remote.web.description": "æĢæäģĨä¸įäēįģ´į äģĨæ§åļ Cider",
-
- //About
"about.thanks": "ééæč°ĸ Cider Collective äģĨåä¸ēčŋä¸ĒéĄšįŽæäžæ¯æįč´ĄįŽč
ã"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/zh_HK.jsonc b/src/i18n/zh_HK.json
similarity index 74%
rename from src/i18n/zh_HK.jsonc
rename to src/i18n/zh_HK.json
index b0618dae..b89a8b42 100644
--- a/src/i18n/zh_HK.jsonc
+++ b/src/i18n/zh_HK.json
@@ -1,31 +1,21 @@
{
- // i18n Info
- "i18n.languageName": "įšéĢ䏿īŧéĻæ¸¯īŧ", // name of language in native language
- "i18n.languageNameEnglish": "Trad. Chinese (Hong Kong)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@kyw504100 @maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+ "i18n.languageName": "įšéĢ䏿īŧéĻæ¸¯īŧ",
+ "i18n.languageNameEnglish": "Trad. Chinese (Hong Kong)",
+ "i18n.category": "main",
+ "i18n.authors": "@kyw504100 @maikirakiwi @BillKerman",
"app.name": "Cider",
-
"date.format": "${y}åš´${m}æ${d}æĨ",
-
- // Dialogs
"dialog.cancel": "åæļ",
"dialog.ok": "įĸēčĒ",
-
- // Notification
"notification.updatingLibrarySongs": "æŖå¨æ´æ°čŗæåēĢįææ˛...",
"notification.updatingLibraryAlbums": "æŖå¨æ´æ°čŗæåēĢįå°čŧ¯...",
"notification.updatingLibraryArtists": "æŖå¨æ´æ°čŗæåēĢįčäēē...",
-
- // Terms
"term.appleInc": "Apple Inc.",
- "term.appleMusic": "Apple Music", // Follows brand term
- "term.applePodcasts": "Apple Podcasts", // Follows brand term
- "term.itunes": "iTunes", // Follows brand term
- "term.github": "GitHub", // Follows brand term
- "term.discord": "Discord", // Follows brand term
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
"term.learnMore": "äēč§Ŗæ´å¤",
"term.accountSettings": "叺čč¨åŽ",
"term.logout": "įģåē",
@@ -33,7 +23,6 @@
"term.about": "éæŧ",
"term.privateSession": "į§äē翍Ąåŧ",
"term.queue": "åž
ææ¸
åŽ",
- "term.history": "æˇå˛į´é",
"term.search": "æå°",
"term.library": "čŗæåēĢ",
"term.listenNow": "įĢåŗččŊ",
@@ -47,9 +36,9 @@
"term.playlists": "ææžå襨",
"term.playlist": "ææžå襨",
"term.newPlaylist": "æ°ææžå襨",
- "term.newPlaylistFolder": "æ°čŗæå¤ž",
+ "term.newPlaylistFolder": "æ°ææžåčĄ¨čŗæå¤ž",
"term.createNewPlaylist": "æ°åĸææžå襨",
- "term.createNewPlaylistFolder": "æ°åĸčŗæå¤ž",
+ "term.createNewPlaylistFolder": "æ°åĸææžåčĄ¨čŗæå¤ž",
"term.deletePlaylist": "äŊ įĸēčĒčĻåĒé¤éåææžå襨īŧ",
"term.play": "ææž",
"term.pause": "æĢå",
@@ -61,7 +50,6 @@
"term.mute": "ééŗ",
"term.unmute": "åæļééŗ",
"term.share": "åäēĢ",
- "term.share.success": "厞č¤čŖŊčŗåĒč˛ŧį°ŋ",
"term.settings": "č¨åŽ",
"term.seeAll": "éĄ¯į¤ēå
¨é¨",
"term.sortBy": "æåē",
@@ -71,6 +59,7 @@
"term.sortBy.genre": "éŗæ¨éĸ¨æ ŧ",
"term.sortBy.releaseDate": "įŧčĄæĨæ",
"term.sortBy.duration": "æéˇ",
+ "term.sortBy.dateAdded": "å å
ĨæĨæ",
"term.sortOrder": "忝æåē",
"term.sortOrder.ascending": "é åē",
"term.sortOrder.descending": "ååē",
@@ -107,6 +96,7 @@
"term.fullscreenView": "å
¨čĸåšæĒĸčĻ",
"term.defaultView": "ä¸čŦæĒĸčĻ",
"term.audioSettings": "éŗč¨č¨åŽ",
+ "term.audioControls": "éŗéæ§åļ",
"term.clearAll": "æ¸
įŠē",
"term.recentStations": "æčŋææžįé ģé",
"term.language": "čĒč¨",
@@ -122,28 +112,31 @@
"term.contributors": "č˛ĸįģč
",
"term.equalizer": "å襥å¨",
"term.reset": "éč¨",
- "term.tracks": "éĻææ˛", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "éĻææ˛",
"term.videos": "åŊąį",
"term.menu": "é¸é
",
"term.check": "æĒĸæĨ",
- "term.aboutArtist": "éæŧ {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "įąéæå°įĩæ", // Search Results
- "term.sharedPlaylists": "ææžå襨", // Search Results
- "term.people": "åäēēæĒæĄ", // Search Results
- "term.newpreset.name": "æ°å襥å¨į¯æŦåį¨ą", // Equalizer Preset
+ "term.aboutArtist": "éæŧ {{artistName}}",
+ "term.topResult": "įąéæå°įĩæ",
+ "term.sharedPlaylists": "ææžå襨",
+ "term.people": "åäēēæĒæĄ",
+ "term.newpreset.name": "æ°å襥å¨į¯æŦåį¨ą",
"term.addedpreset": "厞æ°åĸ",
"term.deletepreset.warn": "äŊ įĸēčĒčĻåĒé¤éå᝿Ŧīŧ",
"term.deletedpreset": "厞åĒé¤",
- "term.musicVideos": "MV", // Search page friendlyTypes
+ "term.defaultPresets": "é č¨į¯æŦ",
+ "term.userPresets": "čĒč¨į¯æŦ",
+ "term.requestError": "čįčĢæąæįŧįé¯čǤ",
+ "term.song.link.generate": "æŖå¨įæ song.link åäēĢéŖįĩ...",
+ "term.musicVideos": "MV",
"term.stations": "éģå°",
- //"term.curators": "Curators",
- //"term.appleCurators": "Apple Curators",
"term.radioShows": "åģŖæåŽé",
"term.recordLabels": "åąįå
Ŧå¸",
"term.videoExtras": "åŊąįįščŧ¯",
- //"term.top": "Top",
-
- // Home
+ "term.version": "įæŦ",
+ "term.noVideos": "æ˛æåŊąį",
+ "term.plugin": "夿į¨åŧ",
+ "term.pluginMenu": "夿į¨åŧé¸åŽ",
"home.title": "ä¸ģé ",
"home.recentlyPlayed": "æčŋææž",
"home.recentlyAdded": "æčŋå å
Ĩ",
@@ -152,14 +145,10 @@
"home.madeForYou": "į翍æ¨čĻ",
"home.friendsListeningTo": "æåæŖå¨ččŊ",
"home.followedArtists": "čŋŊ蚤įčäēē",
-
- // Errors
"error.appleMusicSubRequired": "éčĻč¨éąApple MusicäģĨäŊŋį¨Cider",
"error.connectionError": "įĄæŗéŖæĨå° Apple Musicã",
"error.noResults": "æ˛æįĩæ",
"error.noResults.description": "čĢåčŠĻæ°įæå°å
§åŽšã",
-
- // Podcasts
"podcast.followOnCider": "å¨Ciderä¸čŋŊ蚤",
"podcast.followedOnCider": "厞å¨Ciderä¸čŋŊ蚤",
"podcast.subscribeOnItunes": "å¨iTunesä¸č¨éą",
@@ -168,8 +157,6 @@
"podcast.episodes": "åŽé",
"podcast.playEpisode": "ææžåŽé",
"podcast.website": "Podcast įļ˛é ",
-
- // Actions
"action.addToLibrary": "å å
ĨčŗæåēĢ",
"action.addToLibrary.success": "æåå å
ĨčŗæåēĢ",
"action.addToLibrary.error": "å å
ĨčŗæåēĢįéį¨įŧįé¯čǤ",
@@ -202,7 +189,7 @@
"action.love": "åæ",
"action.unlove": "åæļåæ",
"action.dislike": "æ¸å°æ¤éĄåģēč°",
- "action.undoDislike": "é忏尿¤éĄåģēč°",
+ "action.undoDislike": "é忏尿¤éĄåģēč°",
"action.showWebRemoteQR": "é莿§åļ",
"action.playTracksNext": "ææ ${app.selectedMediaItems.length} éĻææ˛",
"action.playTracksLater": "į¨åžææž ${app.selectedMediaItems.length} éĻææ˛",
@@ -215,107 +202,102 @@
"action.tray.show": "éĄ¯į¤ē",
"action.update": "æ´æ°",
"action.copy": "č¤čŖŊ",
- "action.newpreset": "æ°åĸ᝿Ŧ", //Equallizer preset
+ "action.newpreset": "æ°åĸ᝿Ŧ",
"action.deletepreset": "åĒé¤į¯æŦ",
-
- // Settings - General
+ "action.open": "éå",
"settings.header.general": "ä¸čŦ",
"settings.header.general.description": "čĒŋæ´Ciderįä¸čŦč¨åŽ",
"settings.option.general.language": "čĒč¨",
-
- // Language optgroups
"settings.option.general.language.main": "čĒč¨",
"settings.option.general.language.fun": "æĄæčĒč¨",
"settings.option.general.language.unsorted": "æĒåéĄ",
-
- // Update Cider
- "settings.option.general.updateCider": "æ´æ° Cider", // Button
-
- // Settings - Audio
+ "settings.option.general.updateCider": "æ´æ° Cider",
+ "settings.option.general.updateCider.branch": "Cider æ´æ°éé",
+ "settings.option.general.updateCider.branch.description": "鏿äŊ æŗčĻæĨæļäžčĒåĒåééįæ´æ°",
+ "settings.option.general.updateCider.branch.main": "įŠŠåŽ",
+ "settings.option.general.updateCider.branch.develop": "æ¸ŦčŠĻ",
"settings.header.audio": "éŗč¨",
"settings.header.audio.description": "čĒŋæ´Ciderįéŗč¨č¨åŽ",
- "settings.option.audio.quality": "éŗč¨éŗčŗĒ", // Dropdown
+ "settings.option.audio.volumeStep": "éŗéæščŽé",
+ "settings.option.audio.maxVolume": "æéĢéŗé",
+ "settings.option.audio.quality": "éŗč¨éŗčŗĒ",
"settings.header.audio.quality.hireslossless": "éĢæ¸
įĄæåŖį¸Ž",
"settings.header.audio.quality.hireslossless.description": "īŧéĢé 24-bit/192 kHzīŧ",
"settings.header.audio.quality.lossless": "įĄæåŖį¸Ž",
"settings.header.audio.quality.lossless.description": "īŧéĢé 24-bit/48 kHzīŧ",
"settings.header.audio.quality.high": "éĢį´ čŗĒ",
- "settings.header.audio.quality.low": "éĢæį",
- "settings.header.audio.quality.auto": "čĒå",
- "settings.option.audio.seamlessTransition": "įĄį¸Ģææž", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "é˛éåčŊ", // Toggle
+ "settings.header.audio.quality.standard": "éĢæį",
+ "settings.option.audio.seamlessTransition": "įĄį¸Ģææž",
+ "settings.option.audio.enableAdvancedFunctionality": "é˛éåčŊ",
"settings.option.audio.enableAdvancedFunctionality.description": "å፠AudioContext å°č§ŖééĄäŧŧéŗéåšŗčĄĄåå襥å¨įé˛éåčŊãäŊæ¯æå¨ä¸äēéģč
Ļé æéŗæ¨åĄé ã",
- "settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "įĄæåŖį¸Žč§Ŗįĸŧ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "æäž Cider č§ŖįĸŧįĄæåŖį¸ŽæĒæĄįčŊåīŧäŊ᏿尿åĸå éģč
ĻįåˇĨäŊéã",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗéåšŗčĄĄ", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider æ¸įĸŧéŗč¨åĸåŧˇčįâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "čŊå¤ æŦēé¨äŊ į大č
ĻčŽäŊ æåå°čŋäŧŧįĄæåŖį¸ŽįéŗčŗĒã",
+ "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "éŗč¨åĸåŧˇčįä¸å
ŧ厚æŧįŠēééŗč¨īŧčĢå
åį¨įŠēééŗč¨ã",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "æ¸įĸŧéŗč¨åĸåŧˇčįč¨åŽ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "å°æ´æšéŗč¨čįįæŋé˛į¨åēĻīŧæŋé˛åé¸é
æå¯čŊæåŧčĩˇéč¨īŧ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "æ¨æēå",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "æŋé˛å",
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗéåšŗčĄĄ",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "å°åšŗčĄĄčŧæåéŋäēŽįææ˛īŧåģēįĢæ´įĩąä¸įččŊéĢéŠã",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēééŗč¨", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēééŗč¨",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "å°éŗč¨é˛čĄįŠēéåčįäžčŖŊé ä¸åæ´įĢéĢįččŊéĢéŠīŧæŗ¨īŧæ¤åčŊ䏿¯åŽæšįææ¯å
¨æ¯č˛īŧ",
-
- // Settings - Visual
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "įŠēééŗč¨ä¸å
ŧ厚æŧéŗč¨åĸåŧˇčįīŧčĢå
åį¨éŗč¨åĸåŧˇčįã",
"settings.header.visual": "å¤č§",
"settings.header.visual.description": "čĒŋæ´Ciderįå¤č§",
- "settings.option.visual.windowBackgroundStyle": "įĒåŖčæ¯æ¨Ŗåŧ", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "įĒåŖčæ¯æ¨Ŗåŧ",
"settings.header.visual.windowBackgroundStyle.none": "įŠēįŊ",
"settings.header.visual.windowBackgroundStyle.artwork": "å°čŧ¯å°éĸ",
"settings.header.visual.windowBackgroundStyle.image": "åį",
- "settings.option.visual.animatedArtwork": "åæ
å°čŧ¯å°éĸ", // Dropdown
+ "settings.option.visual.animatedArtwork": "åæ
å°čŧ¯å°éĸ",
"settings.header.visual.animatedArtwork.always": "į¸Ŋæ¯éĄ¯į¤ē",
"settings.header.visual.animatedArtwork.limited": "åĒå¨čäēēé éĸåå°čŧ¯å°éĸéĄ¯į¤ē",
"settings.header.visual.animatedArtwork.disable": "éé",
- "settings.option.visual.animatedArtworkQuality": "åæ
å°čŧ¯å°éĸåčŗĒ", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "åæ
å°čŧ¯å°éĸåčŗĒ",
"settings.header.visual.animatedArtworkQuality.low": "äŊ",
"settings.header.visual.animatedArtworkQuality.medium": "ä¸",
"settings.header.visual.animatedArtworkQuality.high": "éĢ",
"settings.header.visual.animatedArtworkQuality.veryHigh": "é常éĢ",
"settings.header.visual.animatedArtworkQuality.extreme": "æĨĩéĢ",
- "settings.option.visual.animatedWindowBackground": "åæ
įĒåŖčæ¯", // Toggle
- "settings.option.visual.hardwareAcceleration": "įĄŦéĢå é", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "åæ
įĒåŖčæ¯",
+ "settings.option.visual.hardwareAcceleration": "įĄŦéĢå é",
"settings.option.visual.hardwareAcceleration.description": "éčĻéå Cider æčŊįæ",
"settings.header.visual.hardwareAcceleration.default": "é č¨",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
"settings.header.visual.theme": "ä¸ģéĄ",
-
- // Settings - Visual - Theme name
+ "settings.option.visual.theme.github.download": "äŊŋ፠Github įļ˛ååŽčŖ",
+ "settings.option.visual.theme.github.explore": "æĸį´ĸæ´å¤ä¸ģéĄ",
+ "settings.option.visual.theme.github.install.confirm": "äŊ įĸēčĒčĻåŽčŖ {{ repo }}?",
+ "settings.prompt.visual.theme.github.URL": "čĢčŧ¸å
ĨäŊ æŗčĻåŽčŖįä¸ģéĄįįļ˛å",
+ "settings.notyf.visual.theme.install.success": "æååŽčŖä¸ģéĄ",
+ "settings.notyf.visual.theme.install.error": "ä¸ģéĄåŽčŖå¤ąæ",
"settings.option.visual.theme.default": "é č¨",
"settings.option.visual.theme.dark": "å夿",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "éĄ¯į¤ēåäēēæĒæĄ", // Toggle
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "éĄ¯į¤ēåäēēæĒæĄ",
"settings.header.lyrics": "æčŠ",
"settings.header.lyrics.description": "čĒŋæ´CiderįæčŠč¨åŽ",
- "settings.option.lyrics.enableMusixmatch": "å፠Musixmatch æčŠ", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "åį¨åĄæOKæ¨Ąåŧīŧå
éMusixmatchīŧ", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æčŠčĒč¨ååĨŊ", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "ææž MV æäŊŋ፠YouTube æčŠ", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "å፠Musixmatch æčŠ",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "åį¨åĄæOKæ¨Ąåŧīŧå
éMusixmatchīŧ",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æčŠčĒč¨ååĨŊ",
+ "settings.option.lyrics.enableYoutubeLyrics": "ææž MV æäŊŋ፠YouTube æčŠ",
"settings.header.connectivity": "å¤é¨éŖįĩ",
"settings.header.connectivity.description": "čĒŋæ´Ciderčå¤é¨įéŖįĩ",
- "settings.option.connectivity.discordRPC": "Discord įæ
", // Dropdown
- "settings.option.connectivity.playbackNotifications": "ææžéįĨ", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Discord įæ
",
+ "settings.option.connectivity.playbackNotifications": "ææžéįĨ",
"settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēįē'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēįē'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "æĢåææ¸
é¤ Discord įæ
", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling č¨é", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "æĢåææ¸
é¤ Discord įæ
",
+ "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling č¨é",
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble åģļé˛ (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "å፠Last.fm æŖå¨ææž",
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "åžæåä¸į§ģé¤čäē翍čĻ (Last.fm)",
- //"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "åžæåä¸į§ģé¤åŽĸ串čäēēīŧLast.fmīŧ",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "ä¸č¨éåŽæ˛åžĒį°īŧLast.fmīŧ",
+ "settings.header.debug": "é¤é¯",
+ "settings.option.debug.copy_log": "č¤čŖŊéčĄč¨éæĒčŗåĒč˛ŧį°ŋ",
+ "settings.option.debug.openAppData": "éå Cider į¨åŧčŗæå¤ž",
"settings.header.experimental": "å¯ĻéŠæ§åčŊ",
"settings.header.experimental.description": "čĒŋæ´Ciderįå¯ĻéŠæ§åčŊ",
- "settings.option.experimental.compactUI": "įˇåå UI", // Toggle
- "settings.option.experimental.close_button_hide": "äģĨééæéäžéąč Cider",
- "settings.option.experimental.copy_log": "č¤čŖŊéčĄč¨éæĒčŗåĒč˛ŧį°ŋ",
- //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
+ "settings.option.experimental.compactUI": "įˇåå UI",
+ "settings.option.window.close_button_hide": "äģĨééæéäžéąč Cider",
"spatial.notTurnedOn": "čĢå
å¨č¨åŽä¸åį¨įŠēééŗč¨ã",
"spatial.spatialProperties": "įŠēééŗč¨åąŦæ§",
"spatial.width": "éåēĻ",
@@ -335,14 +317,8 @@
"spatial.down": "䏿š",
"spatial.listener": "č§įž",
"spatial.audioSource": "éŗæē",
-
- // Settings - Unfinished
"settings.header.unfinished": "æĒåŽæ",
-
- // Web Remote
"remote.web.title": "é莿§åļ Cider",
"remote.web.description": "ææäģĨä¸įäēįļįĸŧäģĨæ§åļ Cider",
-
- // About
"about.thanks": "æčŦ Cider Collective äģĨåææč˛ĸįģč
æäŊåēįč˛ĸįģã"
}
\ No newline at end of file
diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.json
similarity index 56%
rename from src/i18n/zh_TW.jsonc
rename to src/i18n/zh_TW.json
index 5a7ef4da..00380ef4 100644
--- a/src/i18n/zh_TW.jsonc
+++ b/src/i18n/zh_TW.json
@@ -1,30 +1,20 @@
{
- // i18n Info
- "i18n.languageName": "įšéĢ䏿īŧå°įŖīŧ", // name of language in native language
- "i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@maikirakiwi @jay900604", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+ "i18n.languageName": "įšéĢ䏿īŧå°įŖīŧ",
+ "i18n.languageNameEnglish": "Trad. Chinese (Taiwan)",
+ "i18n.category": "main",
+ "i18n.authors": "@maikirakiwi @jay900604 @kyw504100 @BillKerman",
"app.name": "Cider",
-
"date.format": "${y}åš´${m}æ${d}æĨ",
-
- // Dialogs
"dialog.cancel": "åæļ",
"dialog.ok": "įĸēåŽ",
-
- // Notification
"notification.updatingLibrarySongs": "æŖå¨æ´æ°čŗæåēĢįææ˛...",
"notification.updatingLibraryAlbums": "æŖå¨æ´æ°čŗæåēĢįå°čŧ¯...",
"notification.updatingLibraryArtists": "æŖå¨æ´æ°čŗæåēĢįčäēē...",
-
- // Terms
- "term.appleMusic": "Apple Music", // Follows brand term
- "term.applePodcasts": "Apple Podcasts", // Follows brand term
- "term.itunes": "iTunes", // Follows brand term
- "term.github": "GitHub", // Follows brand term
- "term.discord": "Discord", // Follows brand term
+ "term.appleMusic": "Apple Music",
+ "term.applePodcasts": "Apple Podcasts",
+ "term.itunes": "iTunes",
+ "term.github": "GitHub",
+ "term.discord": "Discord",
"term.learnMore": "æ´å¤å
厚",
"term.accountSettings": "叺æļč¨åŽ",
"term.logout": "įģåē",
@@ -32,6 +22,7 @@
"term.about": "éæŧ",
"term.privateSession": "į§äēēææŽĩ",
"term.queue": "åž
ææ¸
åŽ",
+ "term.history": "ææžæˇå˛",
"term.search": "æå°",
"term.library": "čŗæåēĢ",
"term.listenNow": "įĢåŗččŊ",
@@ -44,6 +35,11 @@
"term.podcasts": "Podcasts",
"term.playlists": "ææžå襨",
"term.playlist": "ææžå襨",
+ "term.newPlaylist": "æ°ææžå襨",
+ "term.newPlaylistFolder": "æ°ææžåčĄ¨čŗæå¤ž",
+ "term.createNewPlaylist": "æ°åĸææžå襨",
+ "term.createNewPlaylistFolder": "æ°åĸææžåčĄ¨čŗæå¤ž",
+ "term.deletePlaylist": "æ¨įĸēåŽčĻåĒ餿¤ææžå襨åīŧ",
"term.play": "ææž",
"term.pause": "æĢå",
"term.previous": "ä¸ä¸éĻ",
@@ -54,7 +50,7 @@
"term.mute": "ééŗ",
"term.unmute": "åæļééŗ",
"term.share": "åäēĢ",
- "term.share.success": "厞č¤čŖŊčŗåĒč˛ŧį°ŋ",
+ "term.share.success": "厞č¤čŖŊå°åĒč˛ŧį°ŋ",
"term.settings": "č¨åŽ",
"term.seeAll": "éĄ¯į¤ēå
¨é¨",
"term.sortBy": "æåē",
@@ -64,6 +60,7 @@
"term.sortBy.genre": "éŗæ¨éĸ¨æ ŧ",
"term.sortBy.releaseDate": "įŧčĄæĨæ",
"term.sortBy.duration": "æéˇ",
+ "term.sortBy.dateAdded": "æ°åĸæĨæ",
"term.sortOrder": "忝æåē",
"term.sortOrder.ascending": "ååē",
"term.sortOrder.descending": "éåē",
@@ -73,10 +70,10 @@
"term.size": "大å°",
"term.size.normal": "æŖå¸¸",
"term.size.compact": "įˇå¯",
- "term.enable": "åį¨",
- "term.disable": "åį¨",
- "term.enabled": "厞åį¨",
- "term.disabled": "厞åį¨",
+ "term.enable": "éå",
+ "term.disable": "éé",
+ "term.enabled": "厞éå",
+ "term.disabled": "厞éé",
"term.connect": "éŖæĨ",
"term.connecting": "éŖæĨä¸",
"term.disconnect": "æˇé",
@@ -100,11 +97,12 @@
"term.fullscreenView": "å
¨čĸåšéĄ¯į¤ē",
"term.defaultView": "é č¨éĄ¯į¤ē",
"term.audioSettings": "éŗč¨č¨åŽ",
+ "term.audioControls": "éŗč¨æ§åļ",
"term.spacializedAudioSetting": "įŠēééŗč¨č¨åŽ",
"term.clearAll": "æ¸
įŠē",
"term.recentStations": "æčŋæļčŊįåģŖæ",
"term.language": "čĒč¨",
- "term.noLyrics": "æŖå¨čŧå
Ĩãã/ įĄæčŠįĩæ / į´éŗæ¨",
+ "term.noLyrics": "æŖå¨čŧå
Ĩ... / įĄæčŠįĩæ / į´éŗæ¨",
"term.copyright": "įæŦ螿",
"term.rightsReserved": "äŋįæææŦåŠã",
"term.sponsor": "č´åŠæå",
@@ -115,13 +113,18 @@
"term.contributors": "č˛ĸįģč
",
"term.equalizer": "įåå¨",
"term.reset": "éč¨",
- "term.tracks": "éĻææ˛", // Assume x amount of tracks. e.g. 50 tracks
+ "term.track": {
+ "one": "éĻææ˛",
+ "other": "éĻææ˛"
+ },
+ "term.tracks": "éĻææ˛",
"term.videos": "åŊąį",
"term.menu": "é¸åŽ",
"term.check": "æĒĸæĨ",
- "term.aboutArtist": "éæŧ{{artistName}}", // e.g. 'About Doja Cat'
-
- // Home
+ "term.aboutArtist": "éæŧ{{artistName}}",
+ "term.requestError": "čĢæąįŧįé¯čǤã",
+ "term.song.link.generate": "æŖå¨ååž song.link įåäēĢįļ˛å...",
+ "term.version": "įæŦ",
"home.title": "éĻé ",
"home.recentlyPlayed": "æčŋææž",
"home.recentlyAdded": "æčŋå å
Ĩ",
@@ -130,24 +133,18 @@
"home.madeForYou": "į翍æ¨čĻ",
"home.friendsListeningTo": "æåæŖå¨ččŊ",
"home.followedArtists": "čŋŊ蚤įčäēē",
-
- // Errors
"error.appleMusicSubRequired": "éčĻč¨éą Apple Music äģĨäŊŋ፠Cider",
"error.connectionError": "įĄæŗéŖæĨå° Apple Musicã",
"error.noResults": "æ˛æįĩæ",
"error.noResults.description": "åčŠĻæ°įæå°é
įŽã",
-
- // Podcasts
"podcast.followOnCider": "å¨ Cider ä¸čŋŊ蚤",
"podcast.followedOnCider": "厞čŋŊ蚤",
"podcast.subscribeOnItunes": "å¨ iTunes ä¸č¨éą",
"podcast.subscribedOnItunes": "厞č¨éą",
- "podcast.itunesStore": "iTunes Store", // Follows brand term
+ "podcast.itunesStore": "iTunes Store",
"podcast.episodes": "åŽé",
"podcast.playEpisode": "ææžåŽé",
"podcast.website": "Podcast įļ˛įĢ",
-
- // Actions
"action.addToLibrary": "å å
ĨčŗæåēĢ",
"action.addToLibrary.success": "æåå å
ĨčŗæåēĢ",
"action.addToLibrary.error": "å å
ĨčŗæåēĢįéį¨įŧįé¯čǤ",
@@ -192,21 +189,34 @@
"action.tray.show": "éĄ¯į¤ē",
"action.update": "æ´æ°",
"action.copy": "č¤čŖŊ",
- "action.newpreset": "æ°åĸé č¨", // Equalizer Preset
- "action.deletepreset": "åĒé¤é č¨", // Equalizer Preset
-
- // Language optgroups
+ "action.newpreset": "æ°åĸé č¨",
+ "action.deletepreset": "åĒé¤é č¨",
+ "action.open": "éå",
+ "settings.header.general": "ä¸čŦ",
+ "settings.header.general.description": "čĒŋæ´ Cider įä¸čŦč¨åŽ",
+ "settings.option.general.resumebehavior": "éåčĄįē",
+ "settings.option.general.resumebehavior.description": "æåŊąéŋäŊ åå° Cider æį¨į¨åŧæīŧæĸåžŠææ˛įæšåŧã",
+ "settings.option.general.resumebehavior.locally": "æŦæŠ",
+ "settings.option.general.resumebehavior.locally.description": "Cider å°éåäŊ å¨éå°éģč
Ļä¸įæåžä¸æŦĄæäŊã",
+ "settings.option.general.resumebehavior.history": "æˇå˛",
+ "settings.option.general.resumebehavior.history.description": "Cider å°čˇ¨čŖįŊŽå°äŊ įæ´å Apple Music æˇå˛č¨éä¸įæåžä¸éĻææ˛æéå
Ĩåã",
"settings.option.general.language.main": "čĒč¨",
"settings.option.general.language.fun": "įšæŽčĒč¨",
"settings.option.general.language.unsorted": "æĒåéĄ",
-
- // Update Cider
- "settings.option.general.updateCider": "æ´æ° Cider", // Button
-
- // Settings - Audio
+ "settings.option.general.updateCider": "æ´æ° Cider",
+ "settings.option.general.updateCider.branch": "Cider æ´æ°éé",
+ "settings.option.general.updateCider.branch.description": "鏿æ¨čĻæĨæļ Cider čģéĢæ´æ°įéé",
+ "settings.option.general.updateCider.branch.main": "įŠŠåŽį(åģēč°)",
+ "settings.option.general.updateCider.branch.develop": "éįŧč
æ¸ŦčŠĻį(ä¸įŠŠåŽ)",
+ "settings.notyf.updateCider.update-not-available": "æ˛æå¯į¨įæ´æ°",
+ "settings.notyf.updateCider.update-downloaded": "æ´æ°åˇ˛æåä¸čŧīŧéååžé˛čĄæ´æ°",
+ "settings.notyf.updateCider.update-error": "æ´æ°æīŧįŧįé¯čǤ",
+ "settings.notyf.updateCider.update-timeout": "æ´æ°čļ
æ",
"settings.header.audio": "éŗč¨",
"settings.header.audio.description": "čĒŋæ´ Cider įéŗč¨č¨åŽ",
- "settings.option.audio.quality": "éŗč¨åčŗĒ", // Dropdown
+ "settings.option.audio.volumeStep": "éŗéæščŽé",
+ "settings.option.audio.maxVolume": "æå¤§éŗé",
+ "settings.option.audio.quality": "éŗč¨åčŗĒ",
"settings.header.audio.quality.hireslossless": "éĢåčŗĒįĄæåŖį¸Ž",
"settings.header.audio.quality.hireslossless.description": "īŧéĢé 24-bit/192 kHzīŧ",
"settings.header.audio.quality.lossless": "įĄæåŖį¸Ž",
@@ -215,114 +225,131 @@
"settings.header.audio.quality.high": "éĢåčŗĒ",
"settings.header.audio.quality.standard": "éĢæį",
"settings.header.audio.quality.auto": "čĒå",
- "settings.option.audio.seamlessTransition": "įĄéæˇææž", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "é˛ééŗč¨åčŊ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.description": "å፠AudioContext å°éåéĄäŧŧéŗč¨åšŗčĄĄåįåå¨įé˛éč¨åŽãäŊéä¸Ļä¸ä¸åŽéŠåæ¯é¨éģč
Ļīŧå¯čŊæįŧįéŗæ¨åĄé ã",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider æ¸äŊåĸåŧˇéŗč¨čįâĸī¸", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "å°æŦē鍿¨į大č
ĻčŽæ¨æåå°čŋäŧŧäŋįåŖį¸ŽįéŗčŗĒã| įą Maikiwi č¨č¨",
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "æ¸äŊåĸåŧˇéŗč¨čįč¨åŽ", // Toggle
- "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "å°æ´æšéŗč¨čįįæŋé˛/æ¯åĨŽį¨åēĻīŧåĸåŧˇé¸é
æå¯čŊæåŧčĩˇéč¨īŧ",
+ "settings.option.audio.seamlessTransition": "įĄéæˇææž",
+ "settings.option.audio.enableAdvancedFunctionality": "é˛ééŗč¨åčŊ",
+ "settings.option.audio.enableAdvancedFunctionality.description": "éå AudioContext å°éåéĄäŧŧéŗč¨åšŗčĄĄåįåå¨įé˛éč¨åŽãäŊéä¸Ļä¸ä¸åŽéŠåæ¯é¨éģč
Ļīŧå¯čŊæįŧįéŗæ¨åĄé ã",
+ "settings.option.audio.audioLab": "Cider éŗč¨å¯ĻéŠåޤ",
+ "settings.option.audio.audioLab.description": "å
åĢįą Cider éįŧåéé˛čĄįåį¨Žéŗč¨æšååčŊã",
+ "settings.warn.audioLab.withoutAF": "äŊŋ፠Cider éŗč¨å¯ĻéŠåޤéčĻéåé˛ééŗč¨åčŊæčŊäŊŋį¨ã" ,
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "æ¨ĄæŦæēĢæ",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "äģĨ Korg Nutube 6P1 įēč¨č¨įæ¨ĄæŦæēĢæã",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "æščŽæ¨ĄæŦæēĢææ¨ĄįĩčįįåŧˇåēĻã",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "æēĢå",
+ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "æēĢæ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider æ¸äŊåĸåŧˇéŗč¨čįâĸī¸",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "å°æŦē鍿¨į大č
ĻčŽæ¨æåå°čŋäŧŧäŋįåŖį¸ŽįéŗčŗĒã",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "æ¸äŊåĸåŧˇéŗč¨čįč¨åŽ",
+ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "å°æ´æšéŗč¨čįįæŋé˛/æ¯åĨŽį¨åēĻīŧåĸåŧˇé¸é
æå¯čŊæåŧčĩˇéč¨īŧã",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "æ¨æē",
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "åĸåŧˇ",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗč¨åšŗčĄĄ", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗč¨åšŗčĄĄ",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "å°åšŗčĄĄčŧæåéŋäēŽįææ˛īŧåģēįĢæ´įĩąä¸čéŠįččŊéĢéŠã",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēééŗč¨", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēééŗč¨",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "å°éŗč¨é˛čĄįŠēéåčįäžčŖŊé ä¸åæ´įĢéĢįččŊéĢéŠīŧč¨ģīŧæ¤åčŊ䏿¯åŽæšįææ¯å
¨æ¯č˛īŧ",
-
- // Settings - Visual
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider įŠēééŗč¨ææ",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "é å
čĒŋæ´įŠēééŗč¨ææīŧééįŠēééŗč¨å¯čĒč¨č¨åŽãäŊåŋ
é å
éåįŠēééŗč¨æå¯äģĨåč¨åŽã",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider įŠēééŗč¨é
įŊ޿ǿĄ",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "čŽæ´įŠēééŗč¨įé
įŊ޿ǿĄīŧéčĻéæ°ååæį¨į¨åŧã",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "æ¨æē",
+ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "įŧįå",
+ "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "įŠēééŗč¨įĄæŗč CAP į¸åŽšīŧčĢéé CAP å¨é˛čĄæäŊã",
"settings.header.visual": "å¤č§",
"settings.header.visual.description": "čĒŋæ´ Cider įå¤č§",
- "settings.option.visual.windowBackgroundStyle": "čĻįĒčæ¯æ¨Ŗåŧ", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "čĻįĒčæ¯æ¨Ŗåŧ",
"settings.header.visual.windowBackgroundStyle.none": "įŠēįŊ",
"settings.header.visual.windowBackgroundStyle.artwork": "å°čŧ¯å°éĸ",
- "settings.header.visual.windowBackgroundStyle.image": "åį",
- "settings.option.visual.animatedArtwork": "åæ
å°čŧ¯å°éĸ", // Dropdown
+ "settings.header.visual.windowBackgroundStyle.image": "åį",
+ "settings.option.visual.animatedArtwork": "åæ
å°čŧ¯å°éĸ",
"settings.header.visual.animatedArtwork.always": "į¸Ŋæ¯éĄ¯į¤ē",
"settings.header.visual.animatedArtwork.limited": "åĒå¨čäēēé éĸåå°čŧ¯å°éĸéĄ¯į¤ē",
"settings.header.visual.animatedArtwork.disable": "éé",
- "settings.option.visual.animatedArtworkQuality": "åæ
å°čŧ¯å°éĸåčŗĒ", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "åæ
å°čŧ¯å°éĸåčŗĒ",
"settings.header.visual.animatedArtworkQuality.low": "äŊ",
"settings.header.visual.animatedArtworkQuality.medium": "ä¸",
"settings.header.visual.animatedArtworkQuality.high": "éĢ",
"settings.header.visual.animatedArtworkQuality.veryHigh": "é常éĢ",
"settings.header.visual.animatedArtworkQuality.extreme": "æĨĩéĢ",
- "settings.option.visual.animatedWindowBackground": "åæ
čĻįĒ违", // Toggle
- "settings.option.visual.hardwareAcceleration": "įĄŦéĢå é", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "åæ
čĻįĒ违",
+ "settings.option.visual.hardwareAcceleration": "įĄŦéĢå é",
"settings.option.visual.hardwareAcceleration.description": "éčĻéæ°åå Cider ææåĨį¨",
"settings.header.visual.hardwareAcceleration.default": "é č¨",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
"settings.header.visual.theme": "ä¸ģéĄ",
- // Settings - Visual - Theme name
- "settings.option.visual.theme.default": "Cider",
- "settings.option.visual.theme.dark": "æé쿍Ąåŧ",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "éĄ¯į¤ēåäēēæĒæĄ", // Toggle
-
- // Settings - General (Reserved)
- "settings.header.general": "ä¸čŦ",
- "settings.header.general.description": "čĒŋæ´ Cider įä¸čŦč¨åŽ",
-
- // Settings - Lyrics
+ "settings.option.visual.theme.github.download": "åž GitHub įļ˛ååŽčŖ",
+ "settings.option.visual.theme.github.explore": "æĸį´ĸ GitHub ä¸įä¸ģéĄ",
+ "settings.prompt.visual.theme.github.URL": "čŧ¸å
ĨäŊ čĻåŽčŖįä¸ģéĄįļ˛å",
+ "settings.notyf.visual.theme.install.success": "ä¸ģéĄæååŽčŖ",
+ "settings.notyf.visual.theme.install.error": "ä¸ģéĄåŽčŖå¤ąæ",
+ "settings.header.visual.plugin": "åĨäģļ",
+ "settings.option.visual.plugin.github.download": "åž GitHub įļ˛ååŽčŖ",
+ "settings.option.visual.plugin.github.explore": "æĸį´ĸ GitHub åĨäģļ",
+ "settings.header.visual.plugin.github.page": "äžčĒ GitHub įåĨäģļ",
+ "settings.option.visual.plugin.github.install.confirm": "äŊ įĸēåŽčĻåŽčŖ {{ repo }}īŧ",
+ "settings.prompt.visual.plugin.github.URL": "čŧ¸å
ĨäŊ čĻåŽčŖįåĨäģļįļ˛å",
+ "settings.prompt.visual.plugin.github.success": "åĨäģļæååŽčŖīŧæãįĸēčĒãäģĨéæ°åå Cider",
+ "settings.notyf.visual.plugin.install.success": "åĨäģļæååŽčŖ",
+ "settings.notyf.visual.plugin.install.error": "åĨäģļåŽčŖå¤ąæ",
+ "settings.option.visual.theme.default": "é č¨",
+ "settings.option.visual.theme.dark": "åå¤éģ",
+ "settings.option.visual.showPersonalInfo": "éĄ¯į¤ēåäēēæĒæĄ",
+ "settings.header.window": "čĻįĒ",
+ "settings.header.window.description": "čĒŋæ´ Cider įčĻįĒč¨åŽ",
+ "settings.option.window.openOnStartup": "éæŠæīŧåå Cider ",
+ "settings.option.window.openOnStartup.hidden": "ååæīŧčĒåéąččŗįŗģįĩąå",
"settings.header.lyrics": "æčŠ",
"settings.header.lyrics.description": "čĒŋæ´ Cider įæčŠč¨åŽ",
- "settings.option.lyrics.enableMusixmatch": "å፠Musixmatch æčŠ", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "åį¨Kææ¨Ąåŧīŧå
éMusixmatchīŧ", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æčŠčĒč¨ååĨŊ", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "ææž MV æäŊŋ፠YouTube æčŠ", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "éå Musixmatch æčŠ",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "éåKææ¨Ąåŧīŧå
éMusixmatchīŧ",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æčŠčĒč¨ååĨŊ",
+ "settings.option.lyrics.enableYoutubeLyrics": "ææž MV æäŊŋ፠YouTube æčŠ",
"settings.header.connectivity": "å¤é¨éŖæĨ",
"settings.header.connectivity.description": "čĒŋæ´ Cider čå¤é¨įéŖæĨ",
- "settings.option.connectivity.discordRPC": "Discord åæ
", // Dropdown
- "settings.option.connectivity.playbackNotifications": "ææ˛ææžéįĨ", // Toggle
- // Refer to term.disabled for the disabled option
- "settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēæŖå¨įŠ 'Cider'",
- "settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēæŖå¨įŠ 'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "æĢåææ¸
é¤ Discord åæ
", // Toggle
- "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling č¨é", // Option to Connect
+ "settings.option.connectivity.discordRPC": "Discord åæ
",
+ "settings.option.connectivity.playbackNotifications": "ææ˛ææžéįĨ",
+ "settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēæŖå¨äŊŋ፠'Cider'",
+ "settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēæŖå¨äŊŋ፠'Apple Music'",
+ "settings.option.connectivity.discordRPC.clearOnPause": "æĢåææ¸
é¤ Discord åæ
",
+ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling č¨é",
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble åģļé˛ (%)",
- "settings.option.connectivity.lastfmScrobble.nowPlaying": "å፠LastFM įŽåččŊ", // Toggle
- "settings.option.connectivity.lastfmScrobble.removeFeatured": "åžæåä¸į§ģé¤čäē翍čĻ (LastFM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
+ "settings.option.connectivity.lastfmScrobble.nowPlaying": "éå LastFM įŽåččŊ",
+ "settings.option.connectivity.lastfmScrobble.removeFeatured": "åžæåä¸į§ģé¤åŽĸ串čäēē (LastFM)",
+ "settings.option.connectivity.lastfmScrobble.filterLoop": "ä¸č¨éåŽæ˛åžĒį° (LastFM)",
+ "settings.header.debug": "é¤é¯",
+ "settings.option.debug.copy_log": "č¤čŖŊåˇčĄį´éæĒčŗåĒč˛ŧį°ŋ",
+ "settings.option.debug.openAppData": "æé Cider čŗæå¤ž",
"settings.header.experimental": "å¯ĻéŠæ§åčŊ",
"settings.header.experimental.description": "čĒŋæ´ Cider įå¯ĻéŠæ§åčŊ",
- "settings.option.experimental.compactUI": "äŊŋį¨įˇå¯įäģéĸč¨č¨", // Toggle
- "settings.option.experimental.closeButtonBehaviour": "ééæéæäŊ", // Dropdown
- "settings.option.experimental.close_button_hide": "ééæéå° Cider éąččŗįŗģįĩąå",
- "settings.option.experimental.copy_log": "č¤čŖŊåˇčĄį´éæĒčŗåĒč˛ŧį°ŋ",
+ "settings.option.experimental.unknownPlugin": "æĒįĨäžæē",
+ "settings.option.experimental.unknownPlugin.description": "å
č¨ąåž Cider äžæēäģĨå¤į repo åŽčŖåĨäģļ",
+ "settings.option.experimental.compactUI": "äŊŋį¨įˇå¯įäģéĸč¨č¨",
+ "settings.option.experimental.closeButtonBehaviour": "ééæéæäŊ",
+ "settings.option.window.close_button_hide": "ééæéå° Cider éąččŗįŗģįĩąå",
"settings.option.experimental.inline_playlists": "å°ææžå襨åįēčĄå
å
į´ éĄ¯į¤ē",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
- "spatial.notTurnedOn": "įŠēééŗč¨įŽåæ¯ééįæ
īŧčĢå
åį¨åäŊŋį¨ã",
- "spatial.spatialProperties" : "įŠēééŗč¨åąŦæ§č¨åŽ",
- "spatial.width" : "å¯ŦåēĻ",
- "spatial.height" : "éĢåēĻ",
- "spatial.depth" : "æˇąåēĻ",
- "spatial.gain" : "åĸį",
- "spatial.roomMaterials" : "įŠēéæčŗĒ",
- "spatial.roomDimensions" : "įŠēéå°ē寸",
- "spatial.roomPositions" : "įŠēéäŊįŊŽ",
- "spatial.setDimensions" : "č¨åŽå°ē寸",
- "spatial.setPositions" : "åĨį¨č¨åŽ",
- "spatial.up" : "ä¸",
- "spatial.front" : "å",
- "spatial.left" : "åˇĻ",
- "spatial.right" : "åŗ",
- "spatial.back" : "åž",
- "spatial.down" : "ä¸",
- "spatial.listener" : "čŊčĄ",
- "spatial.audioSource" : "éŗč¨äžæē",
-
- // Settings - Unfinished
+ "settings.option.advanced.playlistTrackMapping": "ææžå襨čŋŊ蚤æ å°",
+ "settings.option.advanced.playlistTrackMapping.description": "éåå°ææžåčĄ¨įæˇąåēĻææīŧäģĨįĸēåŽææ˛å¨åĒäēææžå襨ä¸ãäŊææžå襨åŋĢåæéæéĄ¯čåĸå ã",
+ "settings.option.visual.transparent": "éæčĻįĒæĄæļ",
+ "settings.option.visual.transparent.description": "éä¸ģéĄææ¯æ´éææĄæļīŧä¸é éæ°ååææåĨį¨ã",
+ "spatial.notTurnedOn": "įŠēééŗč¨įŽåæ¯ééįæ
īŧčĢå
éååäŊŋį¨ã",
+ "spatial.spatialProperties": "įŠēééŗč¨åąŦæ§č¨åŽ",
+ "spatial.width": "å¯ŦåēĻ",
+ "spatial.height": "éĢåēĻ",
+ "spatial.depth": "æˇąåēĻ",
+ "spatial.gain": "åĸį",
+ "spatial.roomMaterials": "įŠēéæčŗĒ",
+ "spatial.roomDimensions": "įŠēéå°ē寸",
+ "spatial.roomPositions": "įŠēéäŊįŊŽ",
+ "spatial.setDimensions": "č¨åŽå°ē寸",
+ "spatial.setPositions": "åĨį¨č¨åŽ",
+ "spatial.up": "ä¸",
+ "spatial.front": "å",
+ "spatial.left": "åˇĻ",
+ "spatial.right": "åŗ",
+ "spatial.back": "åž",
+ "spatial.down": "ä¸",
+ "spatial.listener": "čŊčĄ",
+ "spatial.audioSource": "éŗč¨äžæē",
"settings.header.unfinished": "æĒéįŧåŽæįåčŊ",
-
- // Web Remote
"remote.web.title": "Cider é įĢ¯ææ§",
- "remote.web.description": "ææäģĨä¸įčĄåæĸįĸŧäģĨææ§ Cider",
-
- //About
+ "remote.web.description": "ææäģĨä¸ QR Code åŗå¯ææ§ Cider",
"about.thanks": "čéæčŦ Cider Collective įæåĄäģĨåææįēé
įŽäģåēįč˛ĸįģč
ã"
-}
\ No newline at end of file
+}
diff --git a/src/i18n/zh_yue.jsonc b/src/i18n/zh_yue.json
similarity index 81%
rename from src/i18n/zh_yue.jsonc
rename to src/i18n/zh_yue.json
index 6fec3bfb..560f9b74 100644
--- a/src/i18n/zh_yue.jsonc
+++ b/src/i18n/zh_yue.json
@@ -1,25 +1,15 @@
{
- // i18n Info
- "i18n.languageName": "åģŖæąčŠąīŧéĻæ¸¯īŧ", // name of language in native language
- "i18n.languageNameEnglish": "Cantonese (Hong Kong)", // name of language in English
- "i18n.category": "main", // main = real language, fun = fun community languages
- "i18n.authors": "@tszngaiyip @strikesnc", // Authors, if you contribute to this file feel free to add your name seperated with a space
-
- // App info
+ "i18n.languageName": "åģŖæąčŠąīŧéĻæ¸¯īŧ",
+ "i18n.languageNameEnglish": "Cantonese (Hong Kong)",
+ "i18n.category": "main",
+ "i18n.authors": "@tszngaiyip @strikesnc",
"app.name": "Cider",
-
"date.format": "${y}åš´${m}æ${d}æĨ",
-
- // Dialogs
"dialog.cancel": "åæļ",
"dialog.ok": "įĸēčĒ",
-
- // Notification
"notification.updatingLibrarySongs": "æ´æ°įˇčŗæåēĢå
ææ˛...",
"notification.updatingLibraryAlbums": "æ´æ°įˇčŗæåēĢå
å°čŧ¯...",
"notification.updatingLibraryArtists": "æ´æ°įˇčŗæåēĢå
čäēē...",
-
- // Terms
"term.appleInc": "Apple Inc.",
"term.appleMusic": "Apple Music",
"term.applePodcasts": "Apple Podcasts",
@@ -122,28 +112,23 @@
"term.contributors": "åäŊäēē",
"term.equalizer": "åčĄĄå¨ (EQ)",
"term.reset": "éč¨",
- "term.tracks": "éĻæ", // Assume x amount of tracks. e.g. 50 tracks
+ "term.tracks": "éĻæ",
"term.videos": "åŊąį",
"term.menu": "é¸é
",
"term.check": "æĒĸæĨ",
- "term.aboutArtist": "éæŧ {{artistName}}", // e.g. 'About Doja Cat'
- "term.topResult": "įąéæå°įĩæ", // Search Results
- "term.sharedPlaylists": "ææžæ¸
åŽ", // Search Results
- "term.people": "åäēēæĒæĄ", // Search Results
- "term.newpreset.name": "æ°EQ᝿Ŧå
å", // Equalizer Preset
+ "term.aboutArtist": "éæŧ {{artistName}}",
+ "term.topResult": "įąéæå°įĩæ",
+ "term.sharedPlaylists": "ææžæ¸
åŽ",
+ "term.people": "åäēēæĒæĄ",
+ "term.newpreset.name": "æ°EQ᝿Ŧå
å",
"term.addedpreset": "æ°åĸå",
"term.deletepreset.warn": "äŊ äŋåĒčĻåĒé¤åĸå᝿Ŧīŧ",
"term.deletedpreset": "åĒé¤å",
- "term.musicVideos": "MV", // Search page friendlyTypes
+ "term.musicVideos": "MV",
"term.stations": "éģå°",
- //"term.curators": "Curators",
- //"term.appleCurators": "Apple Curators",
"term.radioShows": "éģå°åŽé",
"term.recordLabels": "åąįå
Ŧå¸",
"term.videoExtras": "į¸éå
į",
- //"term.top": "Top",
-
- // Home
"home.title": "ä¸ģé ",
"home.recentlyPlayed": "åĸææåˇĻ",
"home.recentlyAdded": "åĸæå å
",
@@ -152,14 +137,10 @@
"home.madeForYou": "įēäŊ čæ´",
"home.friendsListeningTo": "äŊ å˛FriendčŊįˇ",
"home.followedArtists": "FollowåˇĻå
čäēē",
-
- // Errors
"error.appleMusicSubRequired": "éčĻč¨éąApple Musicå
å¯äģĨį¨Ciderã",
"error.connectionError": "éŖæĨåå°Apple Musicã",
"error.noResults": "åįĩæã",
"error.noResults.description": "éæ°æĩéåĻã",
-
- // Podcasts
"podcast.followOnCider": "åēCiderä¸Follow",
"podcast.followedOnCider": "åēCiderä¸FollowåˇĻ",
"podcast.subscribeOnItunes": "åēiTunesä¸č¨éą",
@@ -168,8 +149,6 @@
"podcast.episodes": "åŽé",
"podcast.playEpisode": "æåĸé",
"podcast.website": "Podcast įļ˛é ",
-
- // Actions
"action.addToLibrary": "å å
ĨčŗæåēĢ",
"action.addToLibrary.success": "å å
ĨåčŗæåēĢ",
"action.addToLibrary.error": "å å
Ĩåå°čŗæåēĢ",
@@ -215,101 +194,76 @@
"action.tray.show": "éĄ¯į¤ē",
"action.update": "æ´æ°",
"action.copy": "č¤čŖŊ",
- "action.newpreset": "æ°åĸ᝿Ŧ", // Equalizer Preset
+ "action.newpreset": "æ°åĸ᝿Ŧ",
"action.deletepreset": "åĒé¤į¯æŦ",
-
- // Settings - General
"settings.header.general": "ä¸čŦ",
"settings.header.general.description": "čĒŋæ´Ciderå
ä¸čŦč¨åŽ",
"settings.option.general.language": "čĒč¨",
-
- // Language optgroups
"settings.option.general.language.main": "čĒč¨",
"settings.option.general.language.fun": "æĄæčĒč¨",
"settings.option.general.language.unsorted": "æĒåéĄ",
-
- // Update Cider
- "settings.option.general.updateCider": "æ´æ° Cider", // Button
-
- // Settings - Audio
+ "settings.option.general.updateCider": "æ´æ° Cider",
"settings.header.audio": "éŗč¨",
"settings.header.audio.description": "čĒŋæ´Ciderå
éŗč¨č¨åŽ",
- "settings.option.audio.quality": "éŗčŗĒ", // Dropdown
+ "settings.option.audio.quality": "éŗčŗĒ",
"settings.header.audio.quality.high": "čŗĒį´ åĒå
",
"settings.header.audio.quality.low": "æĩæĸåēĻåĒå
",
"settings.header.audio.quality.auto": "čĒå",
- "settings.option.audio.seamlessTransition": "įĄį¸Ģææž", // Toggle
- "settings.option.audio.enableAdvancedFunctionality": "é˛éåčŊ", // Toggle
+ "settings.option.audio.seamlessTransition": "įĄį¸Ģææž",
+ "settings.option.audio.enableAdvancedFunctionality": "é˛éåčŊ",
"settings.option.audio.enableAdvancedFunctionality.description": "åį¨AudioContextīŧč§ŖééĄäŧŧéŗéåšŗčĄĄåå襥å¨å
é˛éåčŊīŧäŊäŋæåēé¨åéģč
Ļé æéŗæ¨LagæŠã",
- "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗéåšŗčĄĄ", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŗéåšŗčĄĄ",
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "åšŗčĄĄčŧæåéŋäēŽå
ææ˛īŧäģ¤äŊ æįĩąä¸å
ččŊéĢéŠã",
- "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēééŗč¨", // Toggle
+ "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēééŗč¨",
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "įŠēéåéŗč¨īŧčŖŊé ä¸åæ´įĢéĢå
ččŊéĢéŠīŧæŗ¨æīŧåĸååčŊåäŋåŽæšå
ææ¯å
¨æ¯č˛īŧ",
-
- // Settings - Visual
"settings.header.visual": "å¤č§",
"settings.header.visual.description": "čĒŋæ´Ciderå
å¤č§",
- "settings.option.visual.windowBackgroundStyle": "čĻįĒčæ¯æ¨Ŗåŧ", // Toggle
+ "settings.option.visual.windowBackgroundStyle": "čĻįĒčæ¯æ¨Ŗåŧ",
"settings.header.visual.windowBackgroundStyle.none": "įŠēįŊ",
"settings.header.visual.windowBackgroundStyle.artwork": "å°čŧ¯å°éĸ",
"settings.header.visual.windowBackgroundStyle.image": "åį",
- "settings.option.visual.animatedArtwork": "åæ
å°čŧ¯å°éĸ", // Dropdown
+ "settings.option.visual.animatedArtwork": "åæ
å°čŧ¯å°éĸ",
"settings.header.visual.animatedArtwork.always": "į¸Ŋæ¯éĄ¯į¤ē",
"settings.header.visual.animatedArtwork.limited": "æˇ¨äŋåēčäēēé éĸåå°čŧ¯å°éĸéĄ¯į¤ē",
"settings.header.visual.animatedArtwork.disable": "įåˇĻäŊĸ",
- "settings.option.visual.animatedArtworkQuality": "åæ
å°čŧ¯å°éĸåčŗĒ", // Dropdown
+ "settings.option.visual.animatedArtworkQuality": "åæ
å°čŧ¯å°éĸåčŗĒ",
"settings.header.visual.animatedArtworkQuality.low": "äŊ",
"settings.header.visual.animatedArtworkQuality.medium": "ä¸",
"settings.header.visual.animatedArtworkQuality.high": "éĢ",
"settings.header.visual.animatedArtworkQuality.veryHigh": "é常éĢ",
"settings.header.visual.animatedArtworkQuality.extreme": "æĨĩéĢ",
- "settings.option.visual.animatedWindowBackground": "åæ
čĻįĒ违", // Toggle
- "settings.option.visual.hardwareAcceleration": "įĄŦéĢå é", // Dropdown
+ "settings.option.visual.animatedWindowBackground": "åæ
čĻįĒ违",
+ "settings.option.visual.hardwareAcceleration": "įĄŦéĢå é",
"settings.option.visual.hardwareAcceleration.description": "éčĻééCiderå
æįæ",
"settings.header.visual.hardwareAcceleration.default": "é č¨",
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
"settings.header.visual.theme": "ä¸ģéĄ",
-
- // Settings - Visual - Theme name
"settings.option.visual.theme.default": "é č¨",
"settings.option.visual.theme.dark": "éģč˛",
- // Refer to term.disabled for the disabled option
- "settings.option.visual.showPersonalInfo": "éĄ¯į¤ēåäēēæĒæĄ", // Toggle
-
- // Settings - Lyrics
+ "settings.option.visual.showPersonalInfo": "éĄ¯į¤ēåäēēæĒæĄ",
"settings.header.lyrics": "æčŠ",
"settings.header.lyrics.description": "čĒŋæ´Ciderå
æčŠč¨åŽ",
- "settings.option.lyrics.enableMusixmatch": "å፠Musixmatch æčŠ", // Toggle
- "settings.option.lyrics.enableMusixmatchKaraoke": "éååąKæ¨Ąåŧīŧå
éMusixmatch)", // Toggle
- "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æčŠčĒč¨ååĨŊ", // Dropdown
- "settings.option.lyrics.enableYoutubeLyrics": "ææžMVå
æåį¨YouTubeååš", // Toggle
-
- // Settings - Connectivity
+ "settings.option.lyrics.enableMusixmatch": "å፠Musixmatch æčŠ",
+ "settings.option.lyrics.enableMusixmatchKaraoke": "éååąKæ¨Ąåŧīŧå
éMusixmatch)",
+ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æčŠčĒč¨ååĨŊ",
+ "settings.option.lyrics.enableYoutubeLyrics": "ææžMVå
æåį¨YouTubeååš",
"settings.header.connectivity": "å¤é¨éŖįĩ",
"settings.header.connectivity.description": "čĒŋæ´Cideråå¤é¨å
éŖįĩ",
- "settings.option.connectivity.discordRPC": "Discord įæ
", // Dropdown
- "settings.option.connectivity.playbackNotifications": "åēææå
æåéįĨäŊ ", // Toggle
- // Refer to term.disabled for the disabled option
+ "settings.option.connectivity.discordRPC": "Discord įæ
",
+ "settings.option.connectivity.playbackNotifications": "åēææå
æåéįĨäŊ ",
"settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēįē'Cider'",
"settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēįē'Apple Music'",
- "settings.option.connectivity.discordRPC.clearOnPause": "æĢåææ¸
é¤ Discord įæ
", // Toggle
- "settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling č¨é", // Option to Connect
+ "settings.option.connectivity.discordRPC.clearOnPause": "æĢåææ¸
é¤ Discord įæ
",
+ "settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling č¨é",
"settings.option.connectivity.lastfmScrobble.delay": "Last.FM Scrobble åģļé˛ (%)",
"settings.option.connectivity.lastfmScrobble.nowPlaying": "å፠Last.FM æŖå¨ææž",
"settings.option.connectivity.lastfmScrobble.removeFeatured": "åžæåä¸į§ģé¤čäē翍čĻ (Last.FM)",
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.FM)",
- // Refer to term.connect for the connect button
-
- // Settings - Experimental
"settings.header.experimental": "å¯ĻéŠæ§åčŊ",
"settings.header.experimental.description": "čĒŋæ´Ciderå
å¯ĻéŠæ§åčŊ",
- "settings.option.experimental.compactUI": "éŧ垿ĸ UI", // Toggle
- "settings.option.experimental.close_button_hide": "ãŠäē¤ååļåéąč Cider",
+ "settings.option.experimental.compactUI": "éŧ垿ĸ UI",
+ "settings.option.window.close_button_hide": "ãŠäē¤ååļåéąč Cider",
"settings.option.experimental.copy_log": "å°logč¤čŖŊåēåĒč˛ŧį°ŋ",
- //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
-
- // Refer to term.disabled & term.enabled
- // Spatialization Menu
"spatial.notTurnedOn": "å芲åēč¨åŽå
Ĩéĸåį¨åˇĻįŠēééŗč¨å
ã",
"spatial.spatialProperties": "įŠēééŗč¨åąŦæ§",
"spatial.width": "åšžé",
@@ -329,14 +283,8 @@
"spatial.down": "ä¸éĸ",
"spatial.listener": "č§įž",
"spatial.audioSource": "éŗæē",
-
- // Settings - Unfinished
"settings.header.unfinished": "æĒææ",
-
- // Web Remote
"remote.web.title": "é莿§åļ Cider",
"remote.web.description": "Scan åĸå QR Code åģæ§åļ Cider",
-
- // About
"about.thanks": "å¤čŦ Cider Collective ååææåäŊäēēäŊåēå
č˛ĸįģã"
-}
\ No newline at end of file
+}
diff --git a/src/main/base/app.ts b/src/main/base/app.ts
index 7aae7e89..243f04c8 100644
--- a/src/main/base/app.ts
+++ b/src/main/base/app.ts
@@ -4,6 +4,12 @@ import * as path from 'path';
import * as log from 'electron-log';
import {utils} from './utils';
+/**
+ * @file Creates App instance
+ * @author CiderCollective
+ */
+
+/** @namespace */
export class AppEvents {
private protocols: string[] = [
"ame",
@@ -17,6 +23,7 @@ export class AppEvents {
private tray: any = undefined;
private i18n: any = undefined;
+ /** @constructor */
constructor() {
this.start();
}
@@ -90,6 +97,7 @@ export class AppEvents {
/***********************************************************************************************************************
* Protocols
**********************************************************************************************************************/
+ /** */
if (process.defaultApp) {
if (process.argv.length >= 2) {
this.protocols.forEach((protocol: string) => {
@@ -112,6 +120,8 @@ export class AppEvents {
public ready(plug: any) {
this.plugin = plug
console.log('[AppEvents] App ready');
+
+ AppEvents.setLoginSettings()
}
public bwCreated() {
@@ -123,8 +133,17 @@ export class AppEvents {
}
})
+ if (process.platform === "darwin") {
+ app.setUserActivity('8R23J2835D.com.ciderapp.webremote.play', {
+ title: 'Web Remote',
+ description: 'Connect to your Web Remote',
+ }, "https://webremote.cider.sh")
+ }
+
this.InstanceHandler()
- this.InitTray()
+ if (process.platform !== "darwin") {
+ this.InitTray()
+ }
}
/***********************************************************************************************************************
@@ -212,6 +231,7 @@ export class AppEvents {
app.quit()
} else if (utils.getWindow()) {
if (utils.getWindow().isMinimized()) utils.getWindow().restore()
+ utils.getWindow().show()
utils.getWindow().focus()
}
})
@@ -307,10 +327,34 @@ export class AppEvents {
private static initLogging() {
log.transports.console.format = '[{h}:{i}:{s}.{ms}] [{level}] {text}';
Object.assign(console, log.functions);
+ console.debug = function(...args: any[]) {
+ if (!app.isPackaged) {
+ log.debug(...args)
+ }
+ };
ipcMain.on('fetch-log', (_event) => {
const data = readFileSync(log.transports.file.getFile().path, {encoding: 'utf8', flag: 'r'});
clipboard.writeText(data)
})
}
+
+ /**
+ * Set login settings
+ * @private
+ */
+ private static setLoginSettings() {
+ if (utils.getStoreValue('general.onStartup.enabled')) {
+ app.setLoginItemSettings({
+ openAtLogin: true,
+ path: app.getPath('exe'),
+ args: [`${utils.getStoreValue('general.onStartup.hidden') ? '--hidden' : ''}`]
+ })
+ } else {
+ app.setLoginItemSettings({
+ openAtLogin: false,
+ path: app.getPath('exe')
+ })
+ }
+ }
}
diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts
index 991ccbdf..fd8a61df 100644
--- a/src/main/base/browserwindow.ts
+++ b/src/main/base/browserwindow.ts
@@ -4,22 +4,33 @@ import * as windowStateKeeper from "electron-window-state";
import * as express from "express";
import * as getPort from "get-port";
import {search} from "youtube-search-without-api-key";
-import {existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync} from "fs";
+import {existsSync, rmSync, mkdirSync, readdirSync, readFileSync, writeFileSync, statSync} from "fs";
import {Stream} from "stream";
import {networkInterfaces} from "os";
import * as mm from 'music-metadata';
import fetch from 'electron-fetch'
import {wsapi} from "./wsapi";
-import {jsonc} from "jsonc";
-import {AppImageUpdater, NsisUpdater} from "electron-updater";
import {utils} from './utils';
+import {Plugins} from "./plugins";
+import {watch} from "chokidar";
+const wallpaper = require('wallpaper');
+// @ts-ignore
+import * as AdmZip from "adm-zip";
+/**
+ * @file Creates the BrowserWindow
+ * @author CiderCollective
+ */
+
+/** @namespace */
export class BrowserWindow {
public static win: any | undefined = null;
private devMode: boolean = !app.isPackaged;
private audioStream: any = new Stream.PassThrough();
+ private headerSent: any = false;
+ private chromecastIP: any = [];
private clientPort: number = 0;
private remotePort: number = 6942;
private EnvironmentVariables: object = {
@@ -30,6 +41,7 @@ export class BrowserWindow {
"pages/podcasts",
"pages/apple-account-settings",
"pages/library-songs",
+ "pages/library-albums",
"pages/browse",
"pages/settings",
"pages/listen_now",
@@ -44,12 +56,21 @@ export class BrowserWindow {
"pages/search",
"pages/about",
"pages/library-videos",
+ "pages/remote-pair",
+ "pages/themes-github",
+ "pages/plugins-github",
+ "pages/replay",
+ "pages/audiolabs",
+ "pages/zoo",
+ "pages/plugin-renderer",
"components/mediaitem-artwork",
"components/artwork-material",
"components/menu-panel",
"components/sidebar-playlist",
"components/spatial-properties",
"components/audio-settings",
+ "components/plugin-menu",
+ "components/audio-controls",
"components/qrcode-modal",
"components/equalizer",
"components/add-to-playlist",
@@ -66,9 +87,130 @@ export class BrowserWindow {
"components/listennow-child",
"components/mediaitem-mvview-sp",
"components/animatedartwork-view",
+ "components/listitem-horizontal",
"components/lyrics-view",
"components/fullscreen",
"components/miniplayer",
+ "components/castmenu",
+ "components/artist-chip",
+ "components/hello-world",
+ ],
+ appRoutes: [
+ {
+ page: "plugin-renderer",
+ component: ` `,
+ condition: "page == 'plugin-renderer'"
+ },
+ {
+ page: "zoo",
+ component: " ",
+ condition: "page == 'zoo'"
+ },
+ {
+ page: "podcasts",
+ component: ` `,
+ condition: `page == 'podcasts'`
+ }, {
+ page: "library-videos",
+ component: ` `,
+ condition: `page == 'library-videos'`
+ }, {
+ page: "apple-account-settings",
+ component: ` `,
+ condition: `page == 'apple-account-settings'`
+ }, {
+ page: "about",
+ component: ` `,
+ condition: `page == 'about'`
+ }, {
+ page: "cider-artist",
+ component: ` `,
+ condition: `page == 'artist-page' && artistPage.data.attributes`
+ }, {
+ page: "collection-list",
+ component: ` `,
+ condition: `page == 'collection-list'`
+ }, {
+ page: "home",
+ component: ` `,
+ condition: `page == 'home'`
+ }, {
+ page: "artist-feed",
+ component: ` `,
+ condition: `page == 'artist-feed'`
+ }, {
+ page: "playlist-inline",
+ component: ` `,
+ condition: `modals.showPlaylist`
+ }, {
+ page: "playlist_",
+ component: ` `,
+ condition: `page.includes('playlist_')`
+ }, {
+ page: "album_",
+ component: ` `,
+ condition: `page.includes('album_')`
+ }, {
+ page: "recordLabel_",
+ component: ` `,
+ condition: `page.includes('recordLabel_')`
+ }, {
+ page: "curator_",
+ component: ` `,
+ condition: `page.includes('curator_')`
+ }, {
+ page: "browsepage",
+ component: ` `,
+ condition: `page == 'browse'`,
+ onEnter: `getBrowsePage();`
+ }, {
+ page: "listen_now",
+ component: ` `,
+ condition: `page == 'listen_now'`,
+ onEnter: `getListenNow()`
+ }, {
+ page: "settings",
+ component: ` `,
+ condition: `page == 'settings'`
+ }, {
+ page: "search",
+ component: ` `,
+ condition: `page == 'search'`
+ }, {
+ page: "library-songs",
+ component: ` `,
+ condition: `page == 'library-songs'`,
+ onEnter: `getLibrarySongsFull()`
+ }, {
+ page: "library-albums",
+ component: ` `,
+ condition: `page == 'library-albums'`,
+ onEnter: `getLibraryAlbumsFull(null, 1); getAlbumSort(); searchLibraryAlbums(1); getLibrarySongsFull() ;searchLibraryAlbums(1);`
+ }, {
+ page: "appleCurator",
+ component: ` `,
+ condition: `page.includes('appleCurator')`
+ }, {
+ page: "themes-github",
+ component: ` `,
+ condition: `page == 'themes-github'`
+ }, {
+ page: "plugins-github",
+ component: ` `,
+ condition: `page == 'plugins-github'`
+ }, {
+ page: "remote-pair",
+ component: ` `,
+ condition: `page == 'remote-pair'`
+ }, {
+ page: "audiolabs",
+ component: ` `,
+ condition: `page == 'audiolabs'`
+ }, {
+ page: "replay",
+ component: ` `,
+ condition: `page == 'replay'`
+ }
]
},
};
@@ -85,14 +227,12 @@ export class BrowserWindow {
minHeight: 390,
frame: false,
title: "Cider",
- vibrancy: "fullscreen-ui",
- transparent: process.platform === "darwin",
- hasShadow: false,
show: false,
- backgroundColor: "#1E1E1E",
+ // backgroundColor: "#1E1E1E",
titleBarStyle: 'hidden',
trafficLightPosition: {x: 15, y: 20},
webPreferences: {
+ experimentalFeatures: true,
nodeIntegration: true,
sandbox: true,
allowRunningInsecureContent: true,
@@ -105,26 +245,96 @@ export class BrowserWindow {
},
};
+ StartWatcher(path: string) {
+ const watcher = watch(path, {
+ ignored: /[\/\\]\./,
+ persistent: true
+ });
+
+ function onWatcherReady() {
+ console.info('From here can you check for real changes, the initial scan has been completed.');
+ }
+
+ // Declare the listeners of the watcher
+ watcher
+ .on('add', function (path: string) {
+ // console.log('File', path, 'has been added');
+ })
+ .on('addDir', function (path: string) {
+ // console.log('Directory', path, 'has been added');
+ })
+ .on('change', function (path: string) {
+ console.log('File', path, 'has been changed');
+ BrowserWindow.win.webContents.send("theme-update", "")
+ })
+ .on('unlink', function (path: string) {
+ // console.log('File', path, 'has been removed');
+ })
+ .on('unlinkDir', function (path: string) {
+ // console.log('Directory', path, 'has been removed');
+ })
+ .on('error', function (error: string) {
+ // console.log('Error happened', error);
+ })
+ .on('ready', onWatcherReady)
+ .on('raw', function (event: any, path: any, details: any) {
+ // This event should be triggered everytime something happens.
+ // console.log('Raw event info:', event, path, details);
+ });
+ }
+
/**
* Creates the browser window
+ * @generator
+ * @function createWindow
+ * @yields {object} Electron browser window
*/
async createWindow(): Promise {
this.clientPort = await getPort({port: 9000});
BrowserWindow.verifyFiles();
+ this.StartWatcher(utils.getPath('themes'));
// Load the previous state with fallback to defaults
const windowState = windowStateKeeper({
defaultWidth: 1024,
defaultHeight: 600,
+ fullScreen: false
});
this.options.width = windowState.width;
this.options.height = windowState.height;
+ switch (process.platform) {
+ default:
+
+ break;
+ case "win32":
+ if (!(utils.getStoreValue('visual.transparent') ?? false)){
+ this.options.backgroundColor = "#1E1E1E";} else {
+ this.options.transparent = true;}
+ break;
+ case "linux":
+ this.options.backgroundColor = "#1E1E1E";
+ this.options.autoHideMenuBar = true
+ this.options.frame = true
+ break;
+ case "darwin":
+ this.options.transparent = true;
+ this.options.vibrancy = "dark";
+ this.options.hasShadow = true;
+ break;
+ }
+
// Start the webserver for the browser window to load
this.startWebServer();
BrowserWindow.win = new bw(this.options);
+ // cant be built in CI
+ // if (process.platform === "win32" && (utils.getStoreValue('visual.transparent') ?? false)) {
+ // var electronVibrancy = require('electron-vibrancy-updated');
+ // electronVibrancy.SetVibrancy(BrowserWindow.win, 0);
+
+ // }
const ws = new wsapi(BrowserWindow.win)
ws.InitWebSockets()
// and load the renderer.
@@ -183,7 +393,7 @@ export class BrowserWindow {
console.error('Req not defined')
return
}
- if (req.url.includes("audio.webm") || (req.headers.host.includes("localhost") && (this.devMode || req.headers["user-agent"].includes("Electron")))) {
+ if (req.url.includes("audio.wav") || (req.headers.host.includes("localhost") && (this.devMode || req.headers["user-agent"].includes("Electron")))) {
next();
} else {
res.redirect("https://discord.gg/applemusic");
@@ -214,11 +424,11 @@ export class BrowserWindow {
res.send("Stopped")
break;
case "next":
- BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToNextItem()")
+ BrowserWindow.win.webContents.executeJavaScript("if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}")
res.send("Next")
break;
case "previous":
- BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToPreviousItem()")
+ BrowserWindow.win.webContents.executeJavaScript("if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex);}")
res.send("Previous")
break;
default: {
@@ -228,7 +438,7 @@ export class BrowserWindow {
})
app.get("/themes/:theme", (req, res) => {
- const theme = req.params.theme.toLowerCase();
+ const theme = req.params.theme;
const themePath = join(utils.getPath('srcPath'), "./renderer/themes/", theme);
const userThemePath = join(utils.getPath('themes'), theme);
if (existsSync(userThemePath)) {
@@ -238,19 +448,53 @@ export class BrowserWindow {
} else {
res.send(`// Theme not found - ${userThemePath}`);
}
-
});
- app.get("/audio.webm", (req, res) => {
+ app.get("/themes/:theme/*", (req: {params: {theme: string, 0: string}}, res) => {
+ const theme = req.params.theme;
+ const file = req.params[0];
+ const themePath = join(utils.getPath('srcPath'), "./renderer/themes/", theme);
+ const userThemePath = join(utils.getPath('themes'), theme);
+ if (existsSync(userThemePath)) {
+ res.sendFile(join(userThemePath, file));
+ } else if (existsSync(themePath)) {
+ res.sendFile(join(themePath, file));
+ } else {
+ res.send(`// File not found - ${userThemePath}`);
+ }
+ });
+
+ app.get("/plugins/:plugin/*", (req: {params: {plugin: string, 0: string}}, res) => {
+ let plugin = req.params.plugin;
+ if(Plugins.getPluginFromMap(plugin)) {
+ plugin = Plugins.getPluginFromMap(plugin)
+ }
+ const file = req.params[0];
+ const pluginPath = join(utils.getPath('plugins'), plugin);
+ console.log(pluginPath)
+ if (existsSync(pluginPath)) {
+ res.sendFile(join(pluginPath, file));
+ } else {
+ res.send(`// Plugin not found - ${pluginPath}`);
+ }
+ });
+
+ app.get("/audio.wav", (req, res) => {
try {
+ const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
+ if (!this.chromecastIP.includes(ip)) {
+ this.headerSent = false;
+ this.chromecastIP.push(ip)
+ }
req.socket.setTimeout(Number.MAX_SAFE_INTEGER);
// CiderBase.requests.push({req: req, res: res});
// var pos = CiderBase.requests.length - 1;
- // req.on("close", () => {
- // console.info("CLOSED", CiderBase.requests.length);
- // requests.splice(pos, 1);
- // console.info("CLOSED", CiderBase.requests.length);
- // });
+ req.on("close", () => {
+ console.log('disconnected')
+ this.headerSent = false
+ this.chromecastIP = this.chromecastIP.filter((item: any) => item !== ip);
+ });
+
this.audioStream.on("data", (data: any) => {
try {
res.write(data);
@@ -351,32 +595,210 @@ export class BrowserWindow {
/**********************************************************************************************************************
* ipcMain Events
****************************************************************************************************************** */
+
+ ipcMain.on("get-wallpaper", async (event) => {
+ const wpPath:string = await wallpaper.get();
+ // get the wallpaper and encode it to base64 then return
+ const wpBase64:string = await readFileSync(wpPath, 'base64')
+ // add the data:image properties
+ const wpData:string = `data:image/png;base64,${wpBase64}`
+ event.returnValue = wpData;
+ })
+
ipcMain.on("cider-platform", (event) => {
event.returnValue = process.platform;
});
+ ipcMain.handle("reinstall-widevine-cdm", ()=>{
+ // remove WidevineCDM from appdata folder
+ const widevineCdmPath = join(app.getPath("userData"), "./WidevineCdm");
+ if(existsSync(widevineCdmPath)) {
+ rmSync(widevineCdmPath, { recursive: true, force: true })
+ }
+ // reinstall WidevineCDM
+ app.relaunch()
+ app.exit()
+ })
+
+ ipcMain.handle("get-github-plugin", async (event, url) => {
+ const returnVal = {
+ success: true,
+ theme: null,
+ message: ""
+ }
+ try {
+ if (!existsSync(utils.getPath("plugins"))) {
+ mkdirSync(utils.getPath("plugins"));
+ }
+ if (url.endsWith("/")) url = url.slice(0, -1);
+ let response = await fetch(
+ `${url}/archive/refs/heads/main.zip`
+ );
+ let repo = url.split("/").slice(-2).join("/");
+ let apiRepo = await fetch(
+ `https://api.github.com/repos/${repo}`
+ ).then((res) => res.json());
+ console.debug(`REPO ID: ${apiRepo.id}`);
+ // extract the files from the first folder in the zip response
+ let zip = new AdmZip(await response.buffer());
+ let entry = zip.getEntries()[0];
+ if (!existsSync(join(utils.getPath("plugins"), "gh_" + apiRepo.id))) {
+ mkdirSync(join(utils.getPath("plugins"), "gh_" + apiRepo.id));
+ }
+ console.log(join(utils.getPath("plugins"), "gh_" + apiRepo.id))
+ zip.extractEntryTo(entry, join(utils.getPath("plugins"), "gh_" + apiRepo.id), false, true);
+ let commit = await fetch(
+ `https://api.github.com/repos/${repo}/commits`
+ ).then((res) => res.json());
+ console.debug(`COMMIT SHA: ${commit[0].sha}`);
+ let theme = JSON.parse(
+ readFileSync(join(utils.getPath("plugins"), "gh_" + apiRepo.id, "package.json"), "utf8")
+ );
+ theme.id = apiRepo.id
+ theme.commit = commit[0].sha
+ writeFileSync(
+ join(utils.getPath("plugins"), "gh_" + apiRepo.id, "package.json"),
+ JSON.stringify(theme, null, 4),
+ "utf8"
+ );
+ } catch (e) {
+ returnVal.success = false;
+ }
+ BrowserWindow.win.webContents.send("plugin-installed", returnVal);
+ });
+
+ ipcMain.handle("get-github-theme", async (event, url) => {
+ const returnVal = {
+ success: true,
+ theme: null,
+ message: ""
+ }
+ try {
+ if (!existsSync(utils.getPath("themes"))) {
+ mkdirSync(utils.getPath("themes"));
+ }
+ if (url.endsWith("/")) url = url.slice(0, -1);
+ let response = await fetch(
+ `${url}/archive/refs/heads/main.zip`
+ );
+ let repo = url.split("/").slice(-2).join("/");
+ let apiRepo = await fetch(
+ `https://api.github.com/repos/${repo}`
+ ).then((res) => res.json());
+ console.debug(`REPO ID: ${apiRepo.id}`);
+ // extract the files from the first folder in the zip response
+ let zip = new AdmZip(await response.buffer());
+ let entry = zip.getEntries()[0];
+ if (!existsSync(join(utils.getPath("themes"), "gh_" + apiRepo.id))) {
+ mkdirSync(join(utils.getPath("themes"), "gh_" + apiRepo.id));
+ }
+ console.log(join(utils.getPath("themes"), "gh_" + apiRepo.id))
+ zip.extractEntryTo(entry, join(utils.getPath("themes"), "gh_" + apiRepo.id), false, true);
+ let commit = await fetch(
+ `https://api.github.com/repos/${repo}/commits`
+ ).then((res) => res.json());
+ console.debug(`COMMIT SHA: ${commit[0].sha}`);
+ let theme = JSON.parse(
+ readFileSync(join(utils.getPath("themes"), "gh_" + apiRepo.id, "theme.json"), "utf8")
+ );
+ theme.id = apiRepo.id
+ theme.commit = commit[0].sha;
+ writeFileSync(
+ join(utils.getPath("themes"), "gh_" + apiRepo.id, "theme.json"),
+ JSON.stringify(theme, null, 4),
+ "utf8"
+ );
+ } catch (e) {
+ returnVal.success = false;
+ }
+ BrowserWindow.win.webContents.send("theme-installed", returnVal);
+ });
+
ipcMain.on("get-themes", (event, _key) => {
if (existsSync(utils.getPath("themes"))) {
- event.returnValue = readdirSync(utils.getPath("themes"));
+ let files = readdirSync(utils.getPath("themes"));
+ let themes = [];
+ for (let file of files) {
+ if (file.endsWith(".less")) {
+ themes.push(file);
+ } else if (statSync(join(utils.getPath("themes"), file)).isDirectory()) {
+ let subFiles = readdirSync(join(utils.getPath("themes"), file));
+ for (let subFile of subFiles) {
+ if (subFile.endsWith(".less")) {
+ themes.push(join(file, subFile));
+ }
+ }
+ }
+ }
+ let themeObjects = [];
+ for (let theme of themes) {
+ let themePath = join(utils.getPath("themes"), theme);
+ let themeName = theme;
+ let themeDescription = "";
+ if (theme.includes("/")) {
+ themeName = theme.split("/")[1];
+ themeDescription = theme.split("/")[0];
+ }
+ if (themePath.endsWith("index.less")) {
+ themePath = themePath.slice(0, -10);
+ }
+ if (existsSync(join(themePath, "theme.json"))) {
+ let themeJson = JSON.parse(readFileSync(join(themePath, "theme.json"), "utf8"));
+ themeObjects.push({
+ name: themeJson.name || themeName,
+ description: themeJson.description || themeDescription,
+ path: themePath,
+ file: theme,
+ github_repo: themeJson.github_repo || "",
+ commit: themeJson.commit || ""
+ });
+ } else {
+ themeObjects.push({
+ name: themeName,
+ description: themeDescription,
+ path: themePath,
+ file: theme,
+ github_repo: "",
+ commit: ""
+ });
+ }
+ }
+ event.returnValue = themeObjects;
+
} else {
event.returnValue = [];
}
});
+ ipcMain.handle("open-path", async (event, path) => {
+ switch(path) {
+ default:
+ case "plugins":
+ shell.openPath(utils.getPath("plugins"));
+ break;
+ case "userdata":
+ shell.openPath(app.getPath("userData"));
+ break;
+ case "themes":
+ shell.openPath(utils.getPath("themes"));
+ break;
+ }
+ });
+
ipcMain.on("get-i18n", (event, key) => {
event.returnValue = utils.getLocale(key);
});
ipcMain.on("get-i18n-listing", event => {
- let i18nFiles = readdirSync(join(__dirname, "../../src/i18n")).filter(file => file.endsWith(".jsonc"));
+ let i18nFiles = readdirSync(join(__dirname, "../../src/i18n")).filter(file => file.endsWith(".json"));
// read all the files and parse them
let i18nListing = []
for (let i = 0; i < i18nFiles.length; i++) {
- const i18n: { [index: string]: Object } = jsonc.parse(readFileSync(join(__dirname, `../../src/i18n/${i18nFiles[i]}`), "utf8"));
+ const i18n: { [index: string]: Object } = JSON.parse(readFileSync(join(__dirname, `../../src/i18n/${i18nFiles[i]}`), "utf8"));
i18nListing.push({
- "code": i18nFiles[i].replace(".jsonc", ""),
- "nameNative": i18n["i18n.languageName"] ?? i18nFiles[i].replace(".jsonc", ""),
- "nameEnglish": i18n["i18n.languageNameEnglish"] ?? i18nFiles[i].replace(".jsonc", ""),
+ "code": i18nFiles[i].replace(".json", ""),
+ "nameNative": i18n["i18n.languageName"] ?? i18nFiles[i].replace(".json", ""),
+ "nameEnglish": i18n["i18n.languageNameEnglish"] ?? i18nFiles[i].replace(".json", ""),
"category": i18n["i18n.category"] ?? "",
"authors": i18n["i18n.authors"] ?? ""
})
@@ -392,79 +814,22 @@ export class BrowserWindow {
event.returnValue = this.devMode;
});
- ipcMain.on("put-library-songs", (_event, arg) => {
+ ipcMain.handle("put-cache", (_event, arg) => {
writeFileSync(
- join(utils.getPath('ciderCache'), "library-songs.json"),
- JSON.stringify(arg)
+ join(utils.getPath('ciderCache'), `${arg.file}.json`),
+ arg.data
);
});
- ipcMain.on("put-library-artists", (_event, arg) => {
- writeFileSync(
- join(utils.getPath('ciderCache'), "library-artists.json"),
- JSON.stringify(arg)
- );
- });
-
- ipcMain.on("put-library-albums", (_event, arg) => {
- writeFileSync(
- join(utils.getPath('ciderCache'), "library-albums.json"),
- JSON.stringify(arg)
- );
- });
-
- ipcMain.on("put-library-playlists", (_event, arg) => {
- writeFileSync(
- join(utils.getPath('ciderCache'), "library-playlists.json"),
- JSON.stringify(arg)
- );
- });
-
- ipcMain.on("put-library-recentlyAdded", (_event, arg) => {
- writeFileSync(
- join(utils.getPath('ciderCache'), "library-recentlyAdded.json"),
- JSON.stringify(arg)
- );
- });
-
- ipcMain.on("get-library-songs", (event) => {
- let librarySongs = readFileSync(
- join(utils.getPath('ciderCache'), "library-songs.json"),
- "utf8"
- );
- event.returnValue = JSON.parse(librarySongs);
- });
-
- ipcMain.on("get-library-artists", (event) => {
- let libraryArtists = readFileSync(
- join(utils.getPath('ciderCache'), "library-artists.json"),
- "utf8"
- );
- event.returnValue = JSON.parse(libraryArtists);
- });
-
- ipcMain.on("get-library-albums", (event) => {
- let libraryAlbums = readFileSync(
- join(utils.getPath('ciderCache'), "library-albums.json"),
- "utf8"
- );
- event.returnValue = JSON.parse(libraryAlbums);
- });
-
- ipcMain.on("get-library-playlists", (event) => {
- let libraryPlaylists = readFileSync(
- join(utils.getPath('ciderCache'), "library-playlists.json"),
- "utf8"
- );
- event.returnValue = JSON.parse(libraryPlaylists);
- });
-
- ipcMain.on("get-library-recentlyAdded", (event) => {
- let libraryRecentlyAdded = readFileSync(
- join(utils.getPath('ciderCache'), "library-recentlyAdded.json"),
- "utf8"
- );
- event.returnValue = JSON.parse(libraryRecentlyAdded);
+ ipcMain.on("get-cache", (event, arg) => {
+ let read = ""
+ if (existsSync(join(utils.getPath('ciderCache'), `${arg}.json`))) {
+ read = readFileSync(
+ join(utils.getPath('ciderCache'), `${arg}.json`),
+ "utf8"
+ );
+ }
+ event.returnValue = read;
});
ipcMain.handle("getYTLyrics", async (_event, track, artist) => {
@@ -517,20 +882,162 @@ export class BrowserWindow {
ipcMain.on('setFullScreen', (_event, flag) => {
BrowserWindow.win.setFullScreen(flag)
})
+
//Fullscreen
ipcMain.on('detachDT', (_event, _) => {
BrowserWindow.win.webContents.openDevTools({mode: 'detach'});
+ })
+
+ ipcMain.handle('relaunchApp',(_event, _) => {
+ app.relaunch()
+ app.exit()
+ })
+
+ app.on('before-quit', () => {
+
})
ipcMain.on('play', (_event, type, id) => {
BrowserWindow.win.webContents.executeJavaScript(`
- MusicKit.getInstance().setQueue({ ${type}: '${id}'}).then(function(queue) {
+ MusicKit.getInstance().setQueue({ ${type}: '${id}', parameters : {l : app.mklang}}).then(function(queue) {
MusicKit.getInstance().play();
});
`)
});
+ ipcMain.on('writeWAV', (event, leftpcm, rightpcm, bufferlength) => {
+
+ function interleave16(leftChannel: any, rightChannel: any) {
+ var length = leftChannel.length + rightChannel.length;
+ var result = new Int16Array(length);
+
+ var inputIndex = 0;
+
+ for (var index = 0; index < length;) {
+ result[index++] = leftChannel[inputIndex];
+ result[index++] = rightChannel[inputIndex];
+ inputIndex++;
+ }
+ return result;
+ }
+
+ //https://github.com/HSU-ANT/jsdafx
+
+ function quantization(audiobufferleft: any, audiobufferright: any) {
+
+ let h = Float32Array.from([1]);
+ let nsState = new Array(0);
+ let ditherstate = new Float32Array(0);
+ let qt = Math.pow(2, 1 - 16);
+
+ //noise shifting order 3
+ h = Float32Array.from([1.623, -0.982, 0.109]);
+ for (let i = 0; i < nsState.length; i++) {
+ nsState[i] = new Float32Array(h.length);
+ }
+
+
+ function setChannelCount(nc: any) {
+ if (ditherstate.length !== nc) {
+ ditherstate = new Float32Array(nc);
+ }
+ if (nsState.length !== nc) {
+ nsState = new Array(nc);
+ for (let i = 0; i < nsState.length; i++) {
+ nsState[i] = new Float32Array(h.length);
+ }
+ }
+ }
+
+ function hpDither(channel: any) {
+ const rnd = Math.random() - 0.5;
+ const d = rnd - ditherstate[channel];
+ ditherstate[channel] = rnd;
+ return d;
+ }
+
+
+ setChannelCount(2);
+ const inputs = [audiobufferleft, audiobufferright];
+ const outputs = [audiobufferleft, audiobufferright];
+
+ for (let channel = 0; channel < inputs.length; channel++) {
+ const inputData = inputs[channel];
+ const outputData = outputs[channel];
+ for (let sample = 0; sample < bufferlength; sample++) {
+ let input = inputData[sample];
+ // console.log('a2',inputData.length);
+ for (let i = 0; i < h.length; i++) {
+ input -= h[i] * nsState[channel][i];
+ }
+ // console.log('a3',input);
+ let d_rand = 0.0;
+ // ditherstate = new Float32Array(h.length);
+ // d_rand = hpDither(channel);
+ const tmpOutput = qt * Math.round(input / qt + d_rand);
+ for (let i = h.length - 1; i >= 0; i--) {
+ nsState[channel][i] = nsState[channel][i - 1];
+ }
+ nsState[channel][0] = tmpOutput - input;
+ outputData[sample] = tmpOutput;
+ }
+ }
+ return outputs;
+ }
+
+
+ function convert(n: any) {
+ var v = n < 0 ? n * 32768 : n * 32767; // convert in range [-32768, 32767]
+ return Math.max(-32768, Math.min(32768, v)); // clamp
+ }
+
+ function bitratechange(e: any){
+ var t = e.length;
+ let sampleRate = 96.0;
+ let outputSampleRate = 48.0;
+ var s = 0,
+ o = sampleRate / outputSampleRate,
+ u = Math.ceil(t * outputSampleRate / sampleRate),
+ a = new Int16Array(u);
+ for (let i = 0; i < u; i++) {
+ a[i] = e[Math.floor(s)];
+ s += o;
+ }
+
+ return a;
+ }
+
+ let newaudio = quantization(leftpcm, rightpcm);
+ //let newaudio = [leftpcm, rightpcm];
+ // console.log(newaudio.length);
+
+ let pcmData = Buffer.from(new Int8Array(interleave16(bitratechange(Int16Array.from(newaudio[0], x => convert(x))), bitratechange(Int16Array.from(newaudio[1], x => convert(x)))).buffer));
+
+ if (!this.headerSent) {
+ console.log('new header')
+ const header = Buffer.alloc(44)
+ header.write('RIFF', 0)
+ header.writeUInt32LE(2147483600, 4)
+ header.write('WAVE', 8)
+ header.write('fmt ', 12)
+ header.writeUInt8(16, 16)
+ header.writeUInt8(1, 20)
+ header.writeUInt8(2, 22)
+ header.writeUInt32LE(48000, 24)
+ header.writeUInt32LE(16, 28)
+ header.writeUInt8(4, 32)
+ header.writeUInt8(16, 34)
+ header.write('data', 36)
+ header.writeUInt32LE(2147483600 + 44 - 8, 40)
+ this.audioStream.write(Buffer.concat([header, pcmData]));
+ this.headerSent = true;
+ } else {
+ this.audioStream.write(pcmData);
+ }
+
+ });
+
//QR Code
ipcMain.handle('showQR', async (_event, _) => {
let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
@@ -539,7 +1046,12 @@ export class BrowserWindow {
ipcMain.on('get-remote-pair-url', (_event, _) => {
let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
- BrowserWindow.win.webContents.send('send-remote-pair-url', url);
+ //if (app.isPackaged) {
+ BrowserWindow.win.webContents.send('send-remote-pair-url', (`https://cider.sh/pair-remote?url=${Buffer.from(encodeURI(url)).toString('base64')}`).toString());
+ //} else {
+ // BrowserWindow.win.webContents.send('send-remote-pair-url', (`http://127.0.0.1:5500/pair-remote.html?url=${Buffer.from(encodeURI(url)).toString('base64')}`).toString());
+ //}
+
});
if (process.platform === "darwin") {
app.setUserActivity('com.CiderCollective.remote.pair', {
@@ -557,35 +1069,22 @@ export class BrowserWindow {
console.log('sc', SoundCheckTag)
BrowserWindow.win.webContents.send('SoundCheckTag', SoundCheckTag)
}).catch(err => {
- console.log(err)
- });
+ console.log(err)
+ });
});
ipcMain.on('check-for-update', async (_event) => {
- const branch = utils.getStoreValue('general.update_branch')
- let latestbranch = await fetch(`https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=${branch}&filter=successful`)
- if (latestbranch.status != 200) {
- console.log(`Error fetching latest artifact from the **${branch}** branch`)
- return
- }
-
- let latestbranchjson = await latestbranch.json()
- let base_url = latestbranchjson[0].url
- base_url = base_url.substr(0, base_url.lastIndexOf('/'))
-
- const options: any = {
- provider: 'generic',
- url: `${base_url}`
- }
- /*
- * Have to handle the auto updaters seperatly until we can support macOS. electron-builder limitation -q
- */
- const win_autoUpdater = new NsisUpdater(options) //Windows
- const linux_autoUpdater = new AppImageUpdater(options) //Linux
- await win_autoUpdater.checkForUpdatesAndNotify()
- await linux_autoUpdater.checkForUpdatesAndNotify()
+ await utils.checkForUpdate();
});
+
+ ipcMain.on('disable-update', (event) => {
+ // Check if using app store builds so people don't get pissy wen button go bonk
+ event.returnValue = !(app.isPackaged && !process.mas || !process.windowsStore);
+ })
+
+
+
ipcMain.on('share-menu', async (_event, url) => {
if (process.platform != 'darwin') return;
//https://www.electronjs.org/docs/latest/api/share-menu
@@ -594,12 +1093,21 @@ export class BrowserWindow {
title: 'Share',
urls: [url]
};
- // @ts-ignore
const shareMenu = new ShareMenu(options);
shareMenu.popup();
})
+ ipcMain.on('get-version', (_event) => {
+ if (app.isPackaged) {
+ _event.returnValue = app.getVersion()
+ } else {
+ _event.returnValue = `Experimental running on Electron ${app.getVersion()}`
+ }
+ });
+ ipcMain.on('open-appdata', (_event) => {
+ shell.openPath(app.getPath('userData'));
+ });
/* *********************************************************************************************
* Window Events
* **********************************************************************************************/
@@ -640,6 +1148,11 @@ export class BrowserWindow {
event.preventDefault();
BrowserWindow.win.hide();
} else {
+ BrowserWindow.win.webContents.executeJavaScript(`
+ window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem));
+ window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime));
+ window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue.items));
+ ipcRenderer.send('stopGCast','');`)
BrowserWindow.win.destroy();
}
})
@@ -648,8 +1161,18 @@ export class BrowserWindow {
isQuiting = true
});
+ app.on('activate', function(){
+ BrowserWindow.win.show()
+ BrowserWindow.win.focus()
+ });
+
+ // Quit when all windows are closed.
app.on('window-all-closed', () => {
- app.quit()
+ // On macOS it is common for applications and their menu bar
+ // to stay active until the user quits explicitly with Cmd + Q
+ if (process.platform !== 'darwin') {
+ app.quit()
+ }
})
BrowserWindow.win.on("closed", () => {
@@ -672,17 +1195,22 @@ export class BrowserWindow {
*/
private static getIP(): string {
let ip: string = '';
+ let ip2: any = [];
let alias = 0;
const ifaces: any = networkInterfaces();
for (let dev in ifaces) {
ifaces[dev].forEach((details: any) => {
- if (details.family === 'IPv4') {
+ if (details.family === 'IPv4' && !details.internal) {
if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) {
if (details.address.substring(0, 8) === '192.168.' ||
details.address.substring(0, 7) === '172.16.' ||
details.address.substring(0, 3) === '10.'
) {
- ip = details.address;
+ if (!ip.startsWith('192.168.') ||
+ (ip2.startsWith('192.168.') && !ip.startsWith('192.168.')) &&
+ (ip2.startsWith('172.16.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.')) ||
+ (ip2.startsWith('10.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.') && !ip.startsWith('10.'))
+ ){ip = details.address;}
++alias;
}
}
@@ -699,7 +1227,7 @@ export class BrowserWindow {
private async broadcastRemote() {
const myString = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
const mdns = require('mdns-js');
- const encoded = new Buffer(myString).toString('base64');
+ const encoded = Buffer.from(myString).toString('base64');
const x = mdns.tcp('cider-remote');
const txt_record = {
"Ver": "131077",
diff --git a/src/main/base/castcontroller.js b/src/main/base/castcontroller.js
new file mode 100644
index 00000000..21339ff4
--- /dev/null
+++ b/src/main/base/castcontroller.js
@@ -0,0 +1,32 @@
+var util = require('util');
+var castv2Cli = require('castv2-client');
+var RequestResponseController = castv2Cli.RequestResponseController;
+
+function CiderCastController(client, sourceId, destinationId) {
+ RequestResponseController.call(this, client, sourceId, destinationId, 'urn:x-cast:com.ciderapp.customdata');
+ this.once('close', onclose);
+ var self = this;
+ function onclose() {
+ self.stop();
+ }
+}
+
+util.inherits(CiderCastController, RequestResponseController);
+
+CiderCastController.prototype.sendIp = function(ip) {
+ // TODO: Implement Callback
+ let data = {
+ ip : ip
+ }
+ this.request(data);
+};
+
+CiderCastController.prototype.kill = function() {
+ // TODO: Implement Callback
+ let data = {
+ action : "stop"
+ }
+ this.request(data);
+};
+
+module.exports = CiderCastController;
\ No newline at end of file
diff --git a/src/main/base/castreceiver.js b/src/main/base/castreceiver.js
new file mode 100644
index 00000000..60676bfa
--- /dev/null
+++ b/src/main/base/castreceiver.js
@@ -0,0 +1,81 @@
+//@ts-nocheck
+var util = require('util');
+// var debug = require('debug')('castv2-client');
+var Application = require('castv2-client').Application;
+var MediaController = require('castv2-client').MediaController;
+var CiderCastController = require('./castcontroller');
+
+function CiderReceiver(client, session) {
+ Application.apply(this, arguments);
+
+ this.media = this.createController(MediaController);
+ this.mediaReceiver = this.createController(CiderCastController);
+
+ this.media.on('status', onstatus);
+
+ var self = this;
+
+ function onstatus(status) {
+ self.emit('status', status);
+ }
+
+}
+// FE96A351
+// 27E1334F
+CiderReceiver.APP_ID = 'FE96A351';
+
+util.inherits(CiderReceiver, Application);
+
+CiderReceiver.prototype.getStatus = function(callback) {
+ this.media.getStatus.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.load = function(media, options, callback) {
+ this.media.load.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.play = function(callback) {
+ this.media.play.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.pause = function(callback) {
+ this.media.pause.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.stop = function(callback) {
+ this.media.stop.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.seek = function(currentTime, callback) {
+ this.media.seek.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.queueLoad = function(items, options, callback) {
+ this.media.queueLoad.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.queueInsert = function(items, options, callback) {
+ this.media.queueInsert.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.queueRemove = function(itemIds, options, callback) {
+ this.media.queueRemove.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.queueReorder = function(itemIds, options, callback) {
+ this.media.queueReorder.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.queueUpdate = function(items, callback) {
+ this.media.queueUpdate.apply(this.media, arguments);
+};
+
+CiderReceiver.prototype.sendIp = function(opts){
+ this.mediaReceiver.sendIp.apply(this.mediaReceiver, arguments);
+};
+
+CiderReceiver.prototype.kill = function(opts){
+ this.mediaReceiver.kill.apply(this.mediaReceiver, arguments);
+};
+
+module.exports = CiderReceiver;
diff --git a/src/main/base/plugins.ts b/src/main/base/plugins.ts
index 4ffb1042..1f501cd2 100644
--- a/src/main/base/plugins.ts
+++ b/src/main/base/plugins.ts
@@ -3,15 +3,36 @@ import * as path from 'path';
import * as electron from 'electron'
import {utils} from './utils';
+//
+// Hello, this our loader for the various plugins that the Cider Development Team built for our
+// numerous plugins internally and ones made by the community
+//
+// To learn how to make your own, visit https://github.com/ciderapp/Cider/wiki/Plugins
+//
+/**
+ * @class
+ * Plugin Loading
+ * @author booploops#7139
+ * @see {@link https://github.com/ciderapp/Cider/wiki/Plugins|Documentation}
+ */
export class Plugins {
private basePluginsPath = path.join(__dirname, '../plugins');
- private userPluginsPath = path.join(electron.app.getPath('userData'), 'plugins');
+ private userPluginsPath = path.join(electron.app.getPath('userData'), 'Plugins');
private readonly pluginsList: any = {};
+ private static PluginMap: any = {};
constructor() {
this.pluginsList = this.getPlugins();
}
+ public static getPluginFromMap(plugin: string): any {
+ if(Plugins.PluginMap[plugin]) {
+ return Plugins.PluginMap[plugin];
+ }else{
+ return plugin;
+ }
+ }
+
public getPlugins(): any {
let plugins: any = {};
@@ -23,7 +44,7 @@ export class Plugins {
if (plugins[file] || plugin.name in plugins) {
console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
} else {
- plugins[file] = new plugin(electron.app, utils.getStore());
+ plugins[file] = new plugin(utils);
}
}
});
@@ -32,13 +53,46 @@ export class Plugins {
if (fs.existsSync(this.userPluginsPath)) {
fs.readdirSync(this.userPluginsPath).forEach(file => {
+ // Plugins V1
if (file.endsWith('.ts') || file.endsWith('.js')) {
- const plugin = require(path.join(this.userPluginsPath, file)).default;
- file = file.replace('.ts', '').replace('.js', '');
- if (plugins[file] || plugin in plugins) {
- console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
+ if (!electron.app.isPackaged) {
+ const plugin = require(path.join(this.userPluginsPath, file)).default;
+ file = file.replace('.ts', '').replace('.js', '');
+ if (plugins[file] || plugin in plugins) {
+ console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
+ } else {
+ plugins[file] = new plugin(utils);
+ }
} else {
- plugins[file] = new plugin(electron.app, utils.getStore());
+ const plugin = require(path.join(this.userPluginsPath, file));
+ file = file.replace('.ts', '').replace('.js', '');
+ if (plugins[file] || plugin in plugins) {
+ console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
+ } else {
+ plugins[file] = new plugin(utils);
+ }
+ }
+ }
+ // Plugins V2
+ else if (fs.lstatSync(path.join(this.userPluginsPath, file)).isDirectory()) {
+ const pluginPath = path.join(this.userPluginsPath, file);
+ if (fs.existsSync(path.join(pluginPath, 'package.json'))) {
+ const pluginPackage = require(path.join(pluginPath, "package.json"));
+ const plugin = require(path.join(pluginPath, pluginPackage.main));
+ if (plugins[plugin.name] || plugin.name in plugins) {
+ console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
+ } else {
+ Plugins.PluginMap[pluginPackage.name] = file;
+ const pluginEnv = {
+ app: electron.app,
+ store: utils.getStore(),
+ utils: utils,
+ win: utils.getWindow(),
+ dir: pluginPath,
+ dirName: file
+ }
+ plugins[plugin.name] = new plugin(pluginEnv);
+ }
}
}
});
@@ -50,7 +104,11 @@ export class Plugins {
public callPlugins(event: string, ...args: any[]) {
for (const plugin in this.pluginsList) {
if (this.pluginsList[plugin][event]) {
- this.pluginsList[plugin][event](...args);
+ try{
+ this.pluginsList[plugin][event](...args);
+ }catch(e) {
+ console.log(`[${plugin}] Plugin error: ${e}`);
+ }
}
}
}
diff --git a/src/main/base/store.ts b/src/main/base/store.ts
index da89a70a..7e2aa3b2 100644
--- a/src/main/base/store.ts
+++ b/src/main/base/store.ts
@@ -7,12 +7,26 @@ export class Store {
private defaults: any = {
"general": {
"close_button_hide": false,
- "open_on_startup": false,
"discord_rpc": 1, // 0 = disabled, 1 = enabled as Cider, 2 = enabled as Apple Music
"discord_rpc_clear_on_pause": true,
"language": "en_US", // electron.app.getLocale().replace('-', '_') this can be used in future
"playbackNotifications": true,
- "update_branch": "main"
+ "update_branch": "main",
+ "resumeOnStartupBehavior": "local",
+ "privateEnabled": false,
+ "themeUpdateNotification": true,
+ "sidebarItems": {
+ "recentlyAdded": true,
+ "songs": true,
+ "albums": true,
+ "artists": true,
+ "videos": true,
+ "podcasts": true
+ },
+ "onStartup": {
+ "enabled": false,
+ "hidden": false,
+ }
},
"home": {
"followedArtists": [],
@@ -23,7 +37,12 @@ export class Store {
"sort": "name",
"sortOrder": "asc",
"size": "normal"
- }
+ },
+ "albums": {
+ "sort": "name",
+ "sortOrder": "asc",
+ "viewAs": "covers"
+ },
},
"audio": {
"volume": 1,
@@ -34,8 +53,19 @@ export class Store {
"quality": "HIGH",
"seamless_audio": true,
"normalization": false,
- "ciderPPE": false,
- "ciderPPE_value": 0.5,
+ "maikiwiAudio": {
+ "ciderPPE": false,
+ "ciderPPE_value": "NATURAL",
+ "analogWarmth": false,
+ "analogWarmth_value": "SMOOTH",
+ "spatial": false,
+ "spatialProfile": "420signature-B",
+ "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts
+ 'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109],
+ 'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40],
+ 'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28]
+ }
+ },
"spatial": false,
"spatial_properties": {
"presets": [],
@@ -66,12 +96,6 @@ export class Store {
'presets': [],
'userGenerated': false
},
- "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts
- 'multiplier': 0,
- 'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109],
- 'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40],
- 'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28]
- }
},
"visual": {
"theme": "",
@@ -83,7 +107,11 @@ export class Store {
"bg_artwork_rotation": false,
"hw_acceleration": "default", // default, webgpu, disabled
"showuserinfo": true,
- "miniplayer_top_toggle": true
+ "transparent": false,
+ "miniplayer_top_toggle": true,
+ "directives": {
+ "windowLayout": "default"
+ }
},
"lyrics": {
"enable_mxm": false,
@@ -101,7 +129,8 @@ export class Store {
},
"advanced": {
"AudioContext": false,
- "experiments": []
+ "experiments": [],
+ "playlistTrackMapping": true
}
}
private migrations: any = {}
diff --git a/src/main/base/utils.ts b/src/main/base/utils.ts
index 96b937d0..337e6f79 100644
--- a/src/main/base/utils.ts
+++ b/src/main/base/utils.ts
@@ -1,9 +1,11 @@
import * as fs from "fs";
import * as path from "path";
-import {jsonc} from "jsonc";
import {Store} from "./store";
import {BrowserWindow as bw} from "./browserwindow";
-import {app} from "electron";
+import {app, dialog, ipcMain, Notification, shell } from "electron";
+import fetch from "electron-fetch";
+import {AppImageUpdater, NsisUpdater} from "electron-updater";
+import * as log from "electron-log";
export class utils {
@@ -16,6 +18,7 @@ export class utils {
mainPath: path.join(__dirname, "../../src/main"),
resourcePath: path.join(__dirname, "../../resources"),
i18nPath: path.join(__dirname, "../../src/i18n"),
+ i18nPathSrc: path.join(__dirname, "../../src/il8n/source"),
ciderCache: path.resolve(app.getPath("userData"), "CiderCache"),
themes: path.resolve(app.getPath("userData"), "Themes"),
plugins: path.resolve(app.getPath("userData"), "Plugins"),
@@ -30,6 +33,14 @@ export class utils {
return this.paths[name];
}
+ /**
+ * Get the app
+ * @returns {Electron.App}
+ */
+ static getApp(): Electron.App {
+ return app;
+ }
+
/**
* Fetches the i18n locale for the given language.
* @param language {string} The language to fetch the locale for.
@@ -37,10 +48,10 @@ export class utils {
* @returns {string | Object} The locale value.
*/
static getLocale(language: string, key?: string): string | object {
- let i18n: { [index: string]: Object } = jsonc.parse(fs.readFileSync(path.join(this.paths.i18nPath, "en_US.jsonc"), "utf8"));
+ let i18n: { [index: string]: Object } = JSON.parse(fs.readFileSync(path.join(this.paths.i18nPath, "en_US.json"), "utf8"));
- if (language !== "en_US" && fs.existsSync(path.join(this.paths.i18nPath, `${language}.jsonc`))) {
- i18n = Object.assign(i18n, jsonc.parse(fs.readFileSync(path.join(this.paths.i18nPath, `${language}.jsonc`), "utf8")));
+ if (language !== "en_US" && fs.existsSync(path.join(this.paths.i18nPath, `${language}.json`))) {
+ i18n = Object.assign(i18n, JSON.parse(fs.readFileSync(path.join(this.paths.i18nPath, `${language}.json`), "utf8")));
}
if (key) {
@@ -83,6 +94,14 @@ export class utils {
return bw.win
}
+ static loadPluginFrontend(path: string): void {
+
+ }
+
+ static loadJSFrontend(path: string): void {
+ bw.win.webContents.executeJavaScript(fs.readFileSync(path, "utf8"));
+ }
+
/**
* Playback Functions
*/
@@ -103,4 +122,70 @@ export class utils {
bw.win.webContents.executeJavaScript("MusicKitInterop.previous()")
}
}
-}
\ No newline at end of file
+
+ /**
+ * Checks the application for updates
+ */
+ static async checkForUpdate(): Promise {
+ if (!app.isPackaged) {
+ new Notification({ title: "Application Update", body: "Can't update as app is in DEV mode. Please build or grab a copy by clicking me"})
+ .on('click', () => {shell.openExternal('https://download.cider.sh/?utm_source=app&utm_medium=dev-mode-warning')})
+ .show()
+ bw.win.webContents.send('update-response', "update-error")
+ return;
+ }
+ const options: any = {
+ provider: 'github',
+ protocol: 'https',
+ owner: 'ciderapp',
+ repo: 'cider-releases',
+ allowDowngrade: true,
+ }
+ let autoUpdater: any = null
+ if (process.platform === 'win32') { //Windows
+ autoUpdater = await new NsisUpdater(options)
+ } else {
+ autoUpdater = await new AppImageUpdater(options) //Linux and Mac (AppImages work on macOS btw)
+ }
+
+ autoUpdater.on('checking-for-update', () => {
+ new Notification({ title: "Cider Update", body: "Cider is currently checking for updates."}).show()
+ })
+
+ autoUpdater.on('error', (error: any) => {
+ console.error(`[AutoUpdater] Error: ${error}`)
+ bw.win.webContents.send('update-response', "update-error")
+ })
+
+ autoUpdater.on('update-not-available', () => {
+ console.log('[AutoUpdater] Update not available.')
+ bw.win.webContents.send('update-response', "update-not-available");
+ })
+ autoUpdater.on('download-progress', (event: any, progress: any) => {
+ bw.win.setProgressBar(progress.percent / 100)
+ })
+
+ autoUpdater.on('update-downloaded', (info: any) => {
+ console.log('[AutoUpdater] Update downloaded.')
+ bw.win.webContents.send('update-response', "update-downloaded");
+ const dialogOpts = {
+ type: 'info',
+ buttons: ['Restart', 'Later'],
+ title: 'Application Update',
+ message: info,
+ detail: 'A new version has been downloaded. Restart the application to apply the updates.'
+ }
+
+ dialog.showMessageBox(dialogOpts).then((returnValue) => {
+ if (returnValue.response === 0) autoUpdater.quitAndInstall()
+ })
+ new Notification({ title: "Application Update", body: info}).on('click', () => {
+ bw.win.show()
+ }).show()
+ })
+
+ log.transports.file.level = "debug"
+ autoUpdater.logger = log
+ await autoUpdater.checkForUpdatesAndNotify()
+ }
+}
diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts
index bfd62c9f..bb48d86a 100644
--- a/src/main/base/wsapi.ts
+++ b/src/main/base/wsapi.ts
@@ -61,6 +61,9 @@ export class wsapi {
electron.ipcMain.on('wsapi-returnLyrics', (_event: any, arg: any) => {
this.returnLyrics(JSON.parse(arg));
});
+ electron.ipcMain.on('wsapi-returnvolumeMax', (_event: any, arg: any) => {
+ this.returnmaxVolume(JSON.parse(arg));
+ });
this.wss = new WebSocketServer({
port: this.port,
perMessageDeflate: {
@@ -162,6 +165,10 @@ export class wsapi {
this._win.webContents.executeJavaScript(`MusicKit.getInstance().stop()`);
response.message = "Stopped";
break;
+ case "volumeMax":
+ this._win.webContents.executeJavaScript(`wsapi.getmaxVolume()`);
+ response.message = "maxVolume";
+ break;
case "volume":
this._win.webContents.executeJavaScript(`MusicKit.getInstance().volume = ${parseFloat(data.volume)}`);
response.message = "Volume";
@@ -175,11 +182,15 @@ export class wsapi {
response.message = "Unmuted";
break;
case "next":
- this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToNextItem()`);
+ this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) {
+ try {
+ app.prevButtonBackIndicator = false;
+ } catch (e) { }
+ MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`);
response.message = "Next";
break;
case "previous":
- this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToPreviousItem()`);
+ this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex)}`);
response.message = "Previous";
break;
case "musickit-api":
@@ -295,4 +306,11 @@ export class wsapi {
client.send(JSON.stringify(response));
});
}
+
+ returnmaxVolume(vol: any) {
+ const response: standardResponse = {status: 0, data: vol, message: "OK", type: "maxVolume"};
+ this.clients.forEach(function each(client: any) {
+ client.send(JSON.stringify(response));
+ });
+ }
}
\ No newline at end of file
diff --git a/src/main/index.ts b/src/main/index.ts
index e5ca6772..acf11155 100644
--- a/src/main/index.ts
+++ b/src/main/index.ts
@@ -1,6 +1,6 @@
require('v8-compile-cache');
-import {app, components, ipcMain} from 'electron';
+const {app, components, ipcMain} = require('electron');
import {join} from 'path';
if (!app.isPackaged) {
@@ -45,10 +45,17 @@ app.on('ready', () => {
const bw = new BrowserWindow()
const win = await bw.createWindow()
+ app.getGPUInfo("complete").then(gpuInfo => {
+ console.log(gpuInfo)
+ })
+
+ console.log('[Cider][Widevine] Status:', components.status());
+ win.show();
+
win.on("ready-to-show", () => {
Cider.bwCreated();
+ console.debug('[Cider] Window is Ready.')
CiderPlug.callPlugins('onReady', win);
- win.show();
});
});
@@ -58,6 +65,10 @@ app.on('ready', () => {
* Renderer Event Handlers
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+ipcMain.handle("renderer-ready", (event) => {
+ CiderPlug.callPlugins("onRendererReady", event);
+})
+
ipcMain.on('playbackStateDidChange', (_event, attributes) => {
CiderPlug.callPlugins('onPlaybackStateDidChange', attributes);
});
@@ -66,6 +77,10 @@ ipcMain.on('nowPlayingItemDidChange', (_event, attributes) => {
CiderPlug.callPlugins('onNowPlayingItemDidChange', attributes);
});
+ipcMain.on('nowPlayingItemDidChangeLastFM', (_event, attributes) => {
+ CiderPlug.callPlugin('lastfm.js', 'nowPlayingItemDidChangeLastFM', attributes);
+})
+
app.on('before-quit', () => {
CiderPlug.callPlugins('onBeforeQuit');
console.warn(`${app.getName()} exited.`);
diff --git a/src/main/plugins/chromecast.ts b/src/main/plugins/chromecast.ts
new file mode 100644
index 00000000..d42c3c98
--- /dev/null
+++ b/src/main/plugins/chromecast.ts
@@ -0,0 +1,362 @@
+import * as electron from 'electron';
+import * as os from 'os';
+import {resolve} from 'path';
+import * as CiderReceiver from '../base/castreceiver';
+
+export default class ChromecastPlugin {
+
+ /**
+ * Private variables for interaction in plugins
+ */
+ private _win: any;
+ private _app: any;
+ private _lastfm: any;
+ private _store: any;
+ private _timer: any;
+ private audioClient = require('castv2-client').Client;
+ private mdns = require('mdns-js');
+
+ private devices: any = [];
+ private castDevices: any = [];
+
+ // private GCRunning = false;
+ // private GCBuffer: any;
+ // private expectedConnections = 0;
+ // private currentConnections = 0;
+ private activeConnections: any = [];
+ // private requests = [];
+ // private GCstream = new Stream.PassThrough(),
+ private connectedHosts: any = {};
+ private connectedPlayer: any;
+ // private port = false;
+ // private server = false;
+ // private bufcount = 0;
+ // private bufcount2 = 0;
+ // private headerSent = false;
+
+
+ private searchForGCDevices() {
+ try {
+
+ let browser = this.mdns.createBrowser(this.mdns.tcp('googlecast'));
+ browser.on('ready', browser.discover);
+
+ browser.on('update', (service: any) => {
+ if (service.addresses && service.fullname && service.fullname.includes('_googlecast._tcp')) {
+ this.ondeviceup(service.addresses[0], service.fullname.substring(0, service.fullname.indexOf("._googlecast")) + " " + (service.type[0].description ?? ""), '', 'googlecast');
+ }
+ });
+ const Client = require('node-ssdp').Client;
+ // also do a SSDP/UPnP search
+ let ssdpBrowser = new Client();
+ ssdpBrowser.on('response', (headers: any, statusCode: any, rinfo: any) => {
+ var location = getLocation(headers);
+ if (location != null) {
+ this.getServiceDescription(location, rinfo.address);
+ }
+
+ });
+
+ function getLocation(headers: any) {
+ let location = null;
+ if (headers["LOCATION"] != null) {
+ location = headers["LOCATION"]
+ } else if (headers["Location"] != null) {
+ location = headers["Location"]
+ }
+ return location;
+ }
+
+ ssdpBrowser.search('urn:dial-multiscreen-org:device:dial:1');
+
+ // // actual upnp devices
+ // if (app.cfg.get("audio.enableDLNA")) {
+ // let ssdpBrowser2 = new Client();
+ // ssdpBrowser2.on('response', (headers, statusCode, rinfo) => {
+ // var location = getLocation(headers);
+ // if (location != null) {
+ // this.getServiceDescription(location, rinfo.address);
+ // }
+
+ // });
+ // ssdpBrowser2.search('urn:schemas-upnp-org:device:MediaRenderer:1');
+
+ // }
+
+
+ } catch (e) {
+ console.log('Search GC err', e);
+ }
+ }
+
+ private getServiceDescription(url: any, address: any) {
+ const request = require('request');
+ request.get(url, (error: any, response: any, body: any) => {
+ if (!error && response.statusCode === 200) {
+ this.parseServiceDescription(body, address, url);
+ }
+ });
+ }
+
+ private ondeviceup(host: any, name: any, location: any, type: any) {
+ if (this.castDevices.findIndex((item: any) => item.host === host && item.name === name && item.location === location && item.type === type) === -1) {
+ this.castDevices.push({
+ name: name,
+ host: host,
+ location: location,
+ type: type
+ });
+ if (this.devices.indexOf(host) === -1) {
+ this.devices.push(host);
+ }
+ if (name) {
+ this._win.webContents.executeJavaScript(`console.log('deviceFound','ip: ${host} name:${name}')`).catch((err: any) => console.error(err));
+ console.log("deviceFound", host, name);
+ }
+ } else {
+ this._win.webContents.executeJavaScript(`console.log('deviceFound (added)','ip: ${host} name:${name}')`).catch((err: any) => console.error(err));
+ console.log("deviceFound (added)", host, name);
+ }
+ }
+
+ private parseServiceDescription(body: any, address: any, url: any) {
+ const parseString = require('xml2js').parseString;
+ parseString(body, (err: any, result: any) => {
+ if (!err && result && result.root && result.root.device) {
+ const device = result.root.device[0];
+ console.log('device', device);
+ let devicetype = 'googlecast';
+ console.log()
+ if (device.deviceType && device.deviceType.toString() === 'urn:schemas-upnp-org:device:MediaRenderer:1') {
+ devicetype = 'upnp';
+ }
+ this.ondeviceup(address, device.friendlyName.toString(), url, devicetype);
+ }
+ });
+ }
+
+
+ private loadMedia(client: any, song: any, artist: any, album: any, albumart: any, cb?: any) {
+ // const u = 'http://' + this.getIp() + ':' + server.address().port + '/';
+ // const DefaultMediaReceiver : any = require('castv2-client').DefaultMediaReceiver;
+ client.launch(CiderReceiver, (err: any, player: any) => {
+ if (err) {
+ console.log(err);
+ return;
+ }
+ let media = {
+ // Here you can plug an URL to any mp4, webm, mp3 or jpg file with the proper contentType.
+ contentId: 'http://' + this.getIp() + ':9000/audio.wav',
+ contentType: 'audio/wav',
+ streamType: 'LIVE', // or LIVE
+
+ // Title and cover displayed while buffering
+ metadata: {
+ type: 0,
+ metadataType: 3,
+ title: song ?? "",
+ albumName: album ?? "",
+ artist: artist ?? "",
+ images: [
+ {url: albumart ?? ""}]
+ }
+ };
+
+ player.on('status', (status: any) => {
+ console.log('status broadcast playerState=%s', status);
+ });
+
+ console.log('app "%s" launched, loading media %s ...', player, media);
+
+ player.load(media, {
+ autoplay: true
+ }, (err: any, status: any) => {
+ console.log('media loaded playerState=%s', status);
+ });
+
+
+ client.getStatus((x: any, status: any) => {
+ if (status && status.volume) {
+ client.volume = status.volume.level;
+ client.muted = status.volume.muted;
+ client.stepInterval = status.volume.stepInterval;
+ }
+ })
+
+ // send websocket ip
+
+ player.sendIp("ws://" + this.getIp() + ":26369");
+ electron.ipcMain.on('stopGCast', (_event) => {
+ player.kill();
+ })
+ electron.app.on('before-quit', (_event) => {
+ player.kill();
+ })
+
+
+ });
+ }
+
+ private getIp(){
+ let ip: string = '';
+ let ip2: any = [];
+ let alias = 0;
+ const ifaces: any = os.networkInterfaces();
+ for (let dev in ifaces) {
+ ifaces[dev].forEach((details: any) => {
+ if (details.family === 'IPv4' && !details.internal) {
+ if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) {
+ if (details.address.substring(0, 8) === '192.168.' ||
+ details.address.substring(0, 7) === '172.16.' ||
+ details.address.substring(0, 3) === '10.'
+ ) {
+ if (!ip.startsWith('192.168.') ||
+ (ip2.startsWith('192.168.') && !ip.startsWith('192.168.')) &&
+ (ip2.startsWith('172.16.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.')) ||
+ (ip2.startsWith('10.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.') && !ip.startsWith('10.'))
+ ){ip = details.address;}
+ ++alias;
+ }
+ }
+ }
+ });
+ }
+ return ip;
+ }
+
+ private stream(device: any, song: any, artist: any, album: any, albumart: any) {
+ let castMode = 'googlecast';
+ let UPNPDesc = '';
+ castMode = device.type;
+ UPNPDesc = device.location;
+
+ let client;
+ if (castMode === 'googlecast') {
+ let client = new this.audioClient();
+ client.volume = 100;
+ client.stepInterval = 0.5;
+ client.muted = false;
+
+ client.connect(device.host, () => {
+ // console.log('connected, launching app ...', 'http://' + this.getIp() + ':' + server.address().port + '/');
+ if (!this.connectedHosts[device.host]) {
+ this.connectedHosts[device.host] = client;
+ this.activeConnections.push(client);
+ }
+ this.loadMedia(client, song, artist, album, albumart);
+ });
+
+ client.on('close', () => {
+ console.info("Client Closed");
+ for (let i = this.activeConnections.length - 1; i >= 0; i--) {
+ if (this.activeConnections[i] === client) {
+ this.activeConnections.splice(i, 1);
+ return;
+ }
+ }
+ });
+
+ client.on('error', (err: any) => {
+ console.log('Error: %s', err.message);
+ client.close();
+ delete this.connectedHosts[device.host];
+ });
+
+ } else {
+ // upnp devices
+ //try {
+ // client = new MediaRendererClient(UPNPDesc);
+ // const options = {
+ // autoplay: true,
+ // contentType: 'audio/x-wav',
+ // dlnaFeatures: 'DLNA.ORG_PN=-;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01700000000000000000000000000000',
+ // metadata: {
+ // title: 'Apple Music Electron',
+ // creator: 'Streaming ...',
+ // type: 'audio', // can be 'video', 'audio' or 'image'
+ // // url: 'http://' + getIp() + ':' + server.address().port + '/',
+ // // protocolInfo: 'DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000;
+ // }
+ // };
+
+ // client.load('http://' + getIp() + ':' + server.address().port + '/a.wav', options, function (err, _result) {
+ // if (err) throw err;
+ // console.log('playing ...');
+ // });
+
+ // } catch (e) {
+ // }
+ }
+ }
+
+ private async setupGCServer() {
+ return ''
+ }
+
+
+ /**
+ * Base Plugin Details (Eventually implemented into a GUI in settings)
+ */
+ public name: string = 'Chromecast';
+ public description: string = 'LastFM plugin for Cider';
+ public version: string = '0.0.1';
+ public author: string = 'vapormusic / Cider Collective';
+
+ /**
+ * Runs on plugin load (Currently run on application start)
+ */
+ constructor(utils: { getApp: () => any; getStore: () => any; }) {
+ this._app = utils.getApp();
+ this._store = utils.getStore()
+ }
+
+ /**
+ * Runs on app ready
+ */
+ onReady(win: any): void {
+ this._win = win;
+ electron.ipcMain.on('getKnownCastDevices', (event) => {
+ event.returnValue = this.castDevices
+ });
+
+ electron.ipcMain.on('performGCCast', (event, device, song, artist, album, albumart) => {
+ // this.setupGCServer().then( () => {
+ this._win.webContents.setAudioMuted(true);
+ console.log(device);
+ this.stream(device, song, artist, album, albumart);
+ // })
+ });
+
+ electron.ipcMain.on('getChromeCastDevices', (_event, _data) => {
+ this.searchForGCDevices();
+ });
+
+ electron.ipcMain.on('stopGCast', (_event) => {
+ this._win.webContents.setAudioMuted(false);
+ this.activeConnections.forEach((client: any) => {
+ try{
+ client.stop();
+ } catch(e){}
+ })
+ this.activeConnections = [];
+ this.connectedHosts = {};
+
+ })
+ }
+
+ /**
+ * Runs on app stop
+ */
+ onBeforeQuit(): void {
+
+ }
+
+ /**
+ * Runs on song change
+ * @param attributes Music Attributes
+ */
+ onNowPlayingItemDidChange(attributes: any): void {
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts
index f30c68c8..0a994ae2 100644
--- a/src/main/plugins/discordrpc.ts
+++ b/src/main/plugins/discordrpc.ts
@@ -1,4 +1,6 @@
import * as RPC from 'discord-rpc'
+import {ipcMain} from "electron";
+import fetch from 'electron-fetch'
export default class DiscordRichPresence {
@@ -6,6 +8,8 @@ export default class DiscordRichPresence {
* Private variables for interaction in plugins
*/
private static _store: any;
+ private _app: any;
+ private _attributes: any;
private static _connection: boolean = false;
/**
@@ -29,6 +33,7 @@ export default class DiscordRichPresence {
smallImageText: '',
instance: false
};
+
private _activityCache: RPC.Presence = {
details: '',
state: '',
@@ -58,7 +63,6 @@ export default class DiscordRichPresence {
// Create the client
this._client = new RPC.Client({transport: "ipc"});
-
// Runs on Ready
this._client.on('ready', () => {
console.info(`[DiscordRPC][connect] Successfully Connected to Discord. Authed for user: ${this._client.user.id}.`);
@@ -70,70 +74,87 @@ export default class DiscordRichPresence {
this.disconnect()
});
+ // If Discord is closed, allow reconnecting
+ this._client.transport.once('close', () => {
+ console.info(`[DiscordRichPresence] Connection closed`);
+ this.disconnect()
+ });
+
// Login to Discord
this._client.login({clientId})
- .then(() => {
- DiscordRichPresence._connection = true;
- })
- .catch((e: any) => console.error(`[DiscordRichPresence][connect] ${e}`));
+ .then(() => {
+ DiscordRichPresence._connection = true;
+ })
+ .catch((e: any) => console.error(`[DiscordRichPresence][connect] ${e}`));
}
/**
* Disconnects from Discord RPC
*/
private disconnect() {
- if (!this._client) return;
+ if (!this._client) {
+ return
+ }
this._client.destroy().then(() => {
DiscordRichPresence._connection = false;
console.log('[DiscordRPC][disconnect] Disconnected from discord.')
}).catch((e: any) => console.error(`[DiscordRPC][disconnect] ${e}`));
+
+ // Clean up, allow creating a new connection
+ this._client = null;
}
- /**
- * Filter the Discord activity object
- */
- private filterActivity(activity: any, attributes: any): Object {
-
- // Checks if the name is greater than 128 because some songs can be that long
+ /**
+ * Filter the Discord activity object
+ */
+ private filterActivity(activity: any, attributes: any): Object {
+
+ // Checks if the name is greater than 128 because some songs can be that long
if (activity.details && activity.details.length > 128) {
activity.details = activity.details.substring(0, 125) + '...'
}
- // Check large image
- if (activity.largeImageKey === null || activity.largeImageKey === ""){
+ // Check large image
+ if (activity.largeImageKey == null || activity.largeImageKey === "" || activity.largeImageKey.length > 256) {
activity.largeImageKey = "cider";
}
- // Timestamp
- if (new Date(attributes.endTime).getTime() < 0) {
- delete activity.startTime
- delete activity.endTime
- }
+ // Timestamp
+ if (new Date(attributes.endTime).getTime() < 0) {
+ delete activity.startTime
+ delete activity.endTime
+ }
- // not sure
- if (!attributes.artistName) {
- delete activity.state;
- }
+ // not sure
+ if (!attributes.artistName) {
+ delete activity.state;
+ }
- if (!activity.largeImageText || activity.largeImageText.length < 2) {
+ if (!activity.largeImageText || activity.largeImageText.length < 2) {
delete activity.largeImageText
}
- activity.buttons.forEach((key: {label: string, url: string}, _v: Number) => {
- if (key.url.includes('undefined') || key.url.includes('no-id-found')) {
+ activity.buttons.forEach((key: { label: string, url: string }, _v: Number) => {
+ if (key.url.includes('undefined') || key.url.includes('no-id-found')) {
activity.buttons.splice(key, 1);
- }
- })
- return activity
- }
+ }
+ })
+ return activity
+ }
/**
* Sets the activity of the client
* @param {object} attributes
*/
private updateActivity(attributes: any) {
- if (!this._client) return;
+ if (DiscordRichPresence._store.general.discord_rpc == 0) {
+ return
+ }
+
+ if (!this._client) {
+ this.connect(DiscordRichPresence._store.general.discord_rpc == 1 ? '911790844204437504' : '886578863147192350')
+ }
if (!DiscordRichPresence._connection) {
this._client.clearActivity().catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`));
@@ -143,33 +164,32 @@ export default class DiscordRichPresence {
this._activity = {
details: attributes.name,
state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`,
- startTimestamp: attributes.startTime,
+ startTimestamp: Date.now() - (attributes?.durationInMillis - attributes?.remainingTime),
endTimestamp: attributes.endTime,
- largeImageKey: attributes.artwork.url.replace('{w}', '1024').replace('{h}', '1024'),
+ largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'),
largeImageText: attributes.albumName,
instance: false, // Whether the activity is in a game session
buttons: [
{label: "Listen on Cider", url: attributes.url.cider},
{label: "View on Apple Music", url: attributes.url.appleMusic},
- ]
+ ] //To change attributes.url => preload/cider-preload.js
};
- this._activity = this.filterActivity(this._activity, attributes)
+ this._activity = this.filterActivity(this._activity, attributes)
// Check if its pausing (false) or playing (true)
if (!attributes.status) {
if (DiscordRichPresence._store.general.discord_rpc_clear_on_pause) {
this._client.clearActivity()
- .catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`));
+ .catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`));
} else {
this._activity.smallImageKey = 'pause';
this._activity.smallImageText = 'Paused';
delete this._activity.endTimestamp;
delete this._activity.startTimestamp;
this._client.setActivity(this._activity)
- .catch((e: any) => console.error(`[DiscordRichPresence][setActivity] ${e}`));
+ .catch((e: any) => console.error(`[DiscordRichPresence][setActivity] ${e}`));
}
-
} else if (this._activity && this._activityCache !== this._activity && this._activity.details) {
if (!DiscordRichPresence._store.general.discord_rpc_clear_on_pause) {
this._activity.smallImageKey = 'play';
@@ -177,7 +197,7 @@ export default class DiscordRichPresence {
}
this._client.setActivity(this._activity)
- .catch((e: any) => console.error(`[DiscordRichPresence][updateActivity] ${e}`));
+ .catch((e: any) => console.error(`[DiscordRichPresence][updateActivity] ${e}`));
this._activityCache = this._activity;
}
@@ -190,17 +210,37 @@ export default class DiscordRichPresence {
/**
* Runs on plugin load (Currently run on application start)
*/
- constructor(_app: any, store: any) {
- DiscordRichPresence._store = store
+ constructor(utils: { getStore: () => any; getApp: () => any; }) {
+ DiscordRichPresence._store = utils.getStore();
console.debug(`[Plugin][${this.name}] Loading Complete.`);
+ this._app = utils.getApp();
}
/**
* Runs on app ready
*/
onReady(_win: any): void {
+ let self = this
this.connect((DiscordRichPresence._store.general.discord_rpc == 1) ? '911790844204437504' : '886578863147192350');
console.debug(`[Plugin][${this.name}] Ready.`);
+ ipcMain.on('updateRPCImage', (_event, imageurl) => {
+ if (!DiscordRichPresence._store.general.privateEnabled) {
+ fetch('https://api.cider.sh/v1/images', {
+
+ method: 'POST',
+ body: JSON.stringify({url: imageurl}),
+ headers: {
+ 'Content-Type': 'application/json',
+ 'User-Agent': _win.webContents.getUserAgent()
+ },
+ })
+ .then(res => res.json())
+ .then(function (json) {
+ self._attributes["artwork"]["url"] = json.url
+ self.updateActivity(self._attributes)
+ })
+ }
+ })
}
/**
@@ -215,7 +255,10 @@ export default class DiscordRichPresence {
* @param attributes Music Attributes (attributes.status = current state)
*/
onPlaybackStateDidChange(attributes: object): void {
- this.updateActivity(attributes)
+ if (!DiscordRichPresence._store.general.privateEnabled) {
+ this._attributes = attributes
+ this.updateActivity(attributes)
+ }
}
/**
@@ -223,6 +266,9 @@ export default class DiscordRichPresence {
* @param attributes Music Attributes
*/
onNowPlayingItemDidChange(attributes: object): void {
- this.updateActivity(attributes)
+ if (!DiscordRichPresence._store.general.privateEnabled) {
+ this._attributes = attributes
+ this.updateActivity(attributes)
+ }
}
}
diff --git a/src/main/plugins/lastfm.ts b/src/main/plugins/lastfm.ts
index 5d9adf66..5018c01b 100644
--- a/src/main/plugins/lastfm.ts
+++ b/src/main/plugins/lastfm.ts
@@ -15,6 +15,7 @@ export default class LastFMPlugin {
private _app: any;
private _lastfm: any;
private _store: any;
+ private _timer: any;
private authenticateFromFile() {
let sessionData = require(this.sessionPath)
@@ -77,64 +78,52 @@ export default class LastFMPlugin {
}
}
- private async scrobbleSong(attributes: any) {
- await new Promise(resolve => setTimeout(resolve, Math.round(attributes.durationInMillis * (this._store.lastfm.scrobble_after / 100))));
- const currentAttributes = attributes;
+ private scrobbleSong(attributes: any) {
+ if (this._timer) clearTimeout(this._timer);
+ var self = this;
+ this._timer = setTimeout(async () => {
+ const currentAttributes = attributes;
- if (!this._lastfm || this._lastfm.cachedAttributes === attributes) {
- return
- }
+ if (!self._lastfm || self._lastfm.cachedAttributes === attributes) {
+ return
+ }
- if (this._lastfm.cachedAttributes) {
- if (this._lastfm.cachedAttributes.playParams.id === attributes.playParams.id) return;
- }
+ if (self._lastfm.cachedAttributes) {
+ if (self._lastfm.cachedAttributes.playParams.id === attributes.playParams.id) return;
+ }
- if (currentAttributes.status && currentAttributes === attributes) {
- if (fs.existsSync(this.sessionPath)) {
- // Scrobble playing song.
- if (attributes.status === true) {
- this._lastfm.track.scrobble({
- 'artist': this.filterArtistName(attributes.artistName),
- 'track': attributes.name,
- 'album': attributes.albumName,
- 'albumArtist': this.filterArtistName(attributes.artistName),
- 'timestamp': new Date().getTime() / 1000
- }, function (err: any, scrobbled: any) {
- if (err) {
- return console.error('[LastFM] An error occurred while scrobbling', err);
- }
+ const artist = await this.getPrimaryArtist(attributes)
+ const album = this.getAlbumName(attributes)
- console.log('[LastFM] Successfully scrobbled: ', scrobbled);
- });
- this._lastfm.cachedAttributes = attributes
+ if (currentAttributes.status && currentAttributes === attributes) {
+ if (fs.existsSync(this.sessionPath)) {
+ // Scrobble playing song.
+ if (attributes.status === true) {
+ self._lastfm.track.scrobble({
+ 'artist': artist,
+ 'track': attributes.name,
+ 'album': album,
+ 'albumArtist': artist,
+ 'timestamp': new Date().getTime() / 1000
+ }, function (err: any, scrobbled: any) {
+ if (err) {
+ return console.error('[LastFM] An error occurred while scrobbling', err);
+ }
+
+ console.log('[LastFM] Successfully scrobbled: ', scrobbled);
+ });
+ self._lastfm.cachedAttributes = attributes
+ }
+ } else {
+ self.authenticate();
}
} else {
- this.authenticate();
+ return console.log('[LastFM] Did not add ', attributes.name, 'â', artist, 'because now playing a other song.');
}
- } else {
- return console.log('[LastFM] Did not add ', attributes.name, 'â', this.filterArtistName(attributes.artistName), 'because now playing a other song.');
- }
+ }, Math.round(attributes.durationInMillis * Math.min((self._store.lastfm.scrobble_after / 100), 0.8)));
}
- private filterArtistName(artist: any) {
- if (!this._store.lastfm.enabledRemoveFeaturingArtists) return artist;
-
- artist = artist.split(' ');
- if (artist.includes('&')) {
- artist.length = artist.indexOf('&');
- }
- if (artist.includes('and')) {
- artist.length = artist.indexOf('and');
- }
- artist = artist.join(' ');
- if (artist.includes(',')) {
- artist = artist.split(',')
- artist = artist[0]
- }
- return artist.charAt(0).toUpperCase() + artist.slice(1);
- }
-
- private updateNowPlayingSong(attributes: any) {
+ private async updateNowPlayingSong(attributes: any) {
if (!this._lastfm || this._lastfm.cachedNowPlayingAttributes === attributes || !this._store.lastfm.NowPlaying) {
return
}
@@ -144,13 +133,16 @@ export default class LastFMPlugin {
}
if (fs.existsSync(this.sessionPath)) {
+ const artist = await this.getPrimaryArtist(attributes)
+ const album = this.getAlbumName(attributes)
+
// update Now Playing
if (attributes.status === true) {
this._lastfm.track.updateNowPlaying({
- 'artist': this.filterArtistName(attributes.artistName),
+ 'artist': artist,
'track': attributes.name,
- 'album': attributes.albumName,
- 'albumArtist': this.filterArtistName(attributes.artistName)
+ 'album': album,
+ 'albumArtist': artist
}, function (err: any, nowPlaying: any) {
if (err) {
return console.error('[LastFM] An error occurred while updating nowPlayingSong', err);
@@ -166,6 +158,44 @@ export default class LastFMPlugin {
}
}
+ private getAlbumName(attributes: any): string {
+ return attributes.albumName.replace(/ - Single| - EP/g, '');
+ }
+
+ private async getPrimaryArtist(attributes: any) {
+ const songId = attributes.playParams.catalogId || attributes.playParams.id
+
+ if (!this._store.lastfm.enabledRemoveFeaturingArtists || !songId) return attributes.artistName;
+
+ const res = await this._win.webContents.executeJavaScript(`
+ (async () => {
+ const subMk = await MusicKit.getInstance().api.v3.music("/v1/catalog/" + MusicKit.getInstance().storefrontId + "/songs/${songId}", {
+ include: {
+ songs: ["artists"]
+ }
+ })
+ if (!subMk) console.error('[LastFM] Request failed: /v1/catalog/us/songs/${songId}')
+ return subMk.data
+ })()
+ `).catch(console.error)
+ if (!res) return attributes.artistName
+
+ const data = res.data
+ if (!data.length) {
+ console.error(`[LastFM] Unable to locate song with id of ${songId}`)
+ return attributes.artistName;
+ }
+
+ const artists = res.data[0].relationships.artists.data
+ if (!artists.length) {
+ console.error(`[LastFM] Unable to find artists related to the song with id of ${songId}`)
+ return attributes.artistName;
+ }
+
+ const primaryArtist = artists[0]
+ return primaryArtist.attributes.name
+ }
+
/**
* Base Plugin Details (Eventually implemented into a GUI in settings)
*/
@@ -177,10 +207,10 @@ export default class LastFMPlugin {
/**
* Runs on plugin load (Currently run on application start)
*/
- constructor(app: any, store: any) {
- this._app = app;
- this._store = store
- electron.app.on('second-instance', (_e: any, argv: any) => {
+ constructor(utils: { getApp: () => any; getStore: () => any; }) {
+ this._app = utils.getApp();
+ this._store = utils.getStore()
+ utils.getApp().on('second-instance', (_e: any, argv: any) => {
// Checks if first instance is authorized and if second instance has protocol args
argv.forEach((value: any) => {
if (value.includes('auth')) {
@@ -229,25 +259,20 @@ export default class LastFMPlugin {
console.log('Example plugin stopped');
}
- /**
- * Runs on playback State Change
- * @param attributes Music Attributes (attributes.status = current state)
- */
- onPlaybackStateDidChange(attributes: object): void {
- this.scrobbleSong(attributes)
- this.updateNowPlayingSong(attributes)
- }
-
/**
* Runs on song change
* @param attributes Music Attributes
*/
- onNowPlayingItemDidChange(attributes: object): void {
- if (!this._store.lastfm.filterLoop){
- this._lastfm.cachedNowPlayingAttributes = false;
- this._lastfm.cachedAttributes = false}
- this.scrobbleSong(attributes)
- this.updateNowPlayingSong(attributes)
+ nowPlayingItemDidChangeLastFM(attributes: any): void {
+ if (!this._store.general.privateEnabled) {
+ attributes.status = true
+ if (!this._store.lastfm.filterLoop) {
+ this._lastfm.cachedNowPlayingAttributes = false;
+ this._lastfm.cachedAttributes = false
+ }
+ this.updateNowPlayingSong(attributes)
+ this.scrobbleSong(attributes)
+ }
}
-}
\ No newline at end of file
+}
diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts
index ec484b40..857d9461 100644
--- a/src/main/plugins/menubar.ts
+++ b/src/main/plugins/menubar.ts
@@ -1,4 +1,5 @@
import {app, Menu, shell} from "electron";
+import {utils} from "../base/utils";
export default class Thumbar {
/**
@@ -14,7 +15,7 @@ export default class Thumbar {
public name: string = 'Menubar Plugin';
public description: string = 'Creates the menubar';
public version: string = '1.0.0';
- public author: string = 'Core / Quack';
+ public author: string = 'Core / Quacksire';
/**
* Thumbnail Toolbar Assets
@@ -34,19 +35,28 @@ export default class Thumbar {
* @private
*/
private isMac: boolean = process.platform === 'darwin';
- private menubarTemplate: any = [
+ private _menuTemplate: any = [
{
label: app.getName(),
submenu: [
- { role: 'about' },
- { type: 'separator' },
- { role: 'services' },
- { type: 'separator' },
- { role: 'hide' },
- { role: 'hideOthers' },
- { role: 'unhide' },
- { type: 'separator' },
- { role: 'quit' }
+ {
+ label: 'About',
+ click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`)
+ },
+ {type: 'separator'},
+ {
+ label: 'Settings',
+ accelerator: 'CommandOrControl+,',
+ click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`)
+ },
+ {type: 'separator'},
+ {role: 'services'},
+ {type: 'separator'},
+ {role: 'hide'},
+ {role: 'hideOthers'},
+ {role: 'unhide'},
+ {type: 'separator'},
+ {role: 'quit'}
]
},
{
@@ -67,15 +77,30 @@ export default class Thumbar {
label: 'Window',
submenu: [
{role: 'minimize'},
+ {
+ label: 'Show',
+ click: () => utils.getWindow().show()
+ },
{role: 'zoom'},
...(this.isMac ? [
{type: 'separator'},
{role: 'front'},
- {type: 'separator'},
- {role: 'window'}
+ {role: 'close'},
] : [
- {role: 'close'}
+ {role: 'close'},
]),
+
+ {
+ label: 'Edit',
+ submenu: [
+ {role: 'undo'},
+ {role: 'redo'},
+ {type: 'separator'},
+ {role: 'cut'},
+ {role: 'copy'},
+ {role: 'paste'},
+ ]
+ },
{type: 'separator'},
{
label: 'Web Remote',
@@ -89,10 +114,11 @@ export default class Thumbar {
click: () => this._win.webContents.executeJavaScript(`app.modals.audioSettings = true`)
},
{
- label: 'Settings',
- accelerator: 'CommandOrControl+,',
- click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`)
+ label: 'Plug-in Menu',
+ accelerator: 'CommandOrControl+Shift+P',
+ click: () => this._win.webContents.executeJavaScript(`app.modals.pluginMenu = true`)
}
+
]
},
{
@@ -101,7 +127,7 @@ export default class Thumbar {
{
label: 'Pause / Play',
accelerator: 'Space',
- click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.playPause()`)
+ click: () => this._win.webContents.executeJavaScript(`app.SpacePause()`)
},
{
label: 'Next',
@@ -113,7 +139,7 @@ export default class Thumbar {
accelerator: 'CommandOrControl+Left',
click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`)
},
- { type: 'separator' },
+ {type: 'separator'},
{
label: 'Volume Up',
accelerator: 'CommandOrControl+Up',
@@ -123,6 +149,12 @@ export default class Thumbar {
label: 'Volume Down',
accelerator: 'CommandOrControl+Down',
click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`)
+ },
+ {type: 'separator'},
+ {
+ label: 'Cast To Devices',
+ accelerator: 'CommandOrControl+Shift+C',
+ click: () => this._win.webContents.executeJavaScript(`app.modals.castMenu = true`)
}
]
},
@@ -151,10 +183,6 @@ export default class Thumbar {
label: 'GitHub Wiki',
click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error)
},
- {
- label: 'About',
- click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`)
- },
{type: 'separator'},
{
label: 'Report a...',
@@ -199,9 +227,9 @@ export default class Thumbar {
/**
* Runs on plugin load (Currently run on application start)
*/
- constructor(app: any, store: any) {
- this._app = app;
- this._store = store
+ constructor(utils: { getApp: () => any; getStore: () => any; }) {
+ this._app = utils.getApp();
+ this._store = utils.getStore();
console.debug(`[Plugin][${this.name}] Loading Complete.`);
}
@@ -210,7 +238,8 @@ export default class Thumbar {
*/
onReady(win: Electron.BrowserWindow): void {
this._win = win;
- Menu.setApplicationMenu(Menu.buildFromTemplate(this.menubarTemplate))
+ const menu = Menu.buildFromTemplate(this._menuTemplate);
+ Menu.setApplicationMenu(menu)
}
/**
diff --git a/src/main/plugins/mpris.ts b/src/main/plugins/mpris.ts
index 31504a09..25730ee9 100644
--- a/src/main/plugins/mpris.ts
+++ b/src/main/plugins/mpris.ts
@@ -1,12 +1,11 @@
// @ts-ignore
import * as Player from 'mpris-service';
-export default class MPRIS {
+export default class mpris {
/**
* Private variables for interaction in plugins
*/
- private _win: any;
- private _app: any;
+ private static utils: any;
/**
* Base Plugin Details (Eventually implemented into a GUI in settings)
@@ -19,8 +18,8 @@ export default class MPRIS {
/**
* MPRIS Service
*/
- private mpris: any;
- private mprisEvents: Object = {
+ private static player: Player.Player;
+ private static mprisEvents: Object = {
"playpause": "playPause",
"play": "play",
"pause": "pause",
@@ -34,13 +33,12 @@ export default class MPRIS {
/**
* Runs a media event
- * @param type - pausePlay, nextTrack, PreviousTrack
+ * @param type - pausePlay, next, previous
* @private
*/
- private runMediaEvent(type: string) {
- if (this._win) {
- this._win.webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error)
- }
+ private static runMediaEvent(type: string) {
+ console.debug(`[Plugin][${this.name}] ${type}.`);
+ mpris.utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error)
}
/**
@@ -60,91 +58,89 @@ export default class MPRIS {
/**
* Connects to MPRIS Service
*/
- @MPRIS.linuxOnly
- private connect() {
- this.mpris = Player({
- name: 'Cider',
+ private static connect() {
+
+ const player = Player({
+ name: 'cider',
identity: 'Cider',
supportedUriSchemes: [],
supportedMimeTypes: [],
supportedInterfaces: ['player']
});
- this.mpris = Object.assign(this.mpris, {
- canQuit: true,
- canControl: true,
- canPause: true,
- canPlay: true,
- canGoNext: true,
- active: true
- })
+ console.debug(`[Plugin][${mpris.name}] Successfully connected.`);
const pos_atr = {durationInMillis: 0};
- this.mpris.getPosition = function () {
+ player.getPosition = function () {
const durationInMicro = pos_atr.durationInMillis * 1000;
const percentage = parseFloat("0") || 0;
return durationInMicro * percentage;
}
- for (const [key, value] of Object.entries(this.mprisEvents)) {
- this.mpris.on(key, () => {
- this.runMediaEvent(value)
+ for (const [key, value] of Object.entries(mpris.mprisEvents)) {
+ player.on(key, function () {
+ mpris.runMediaEvent(value)
});
}
+
+ player.on('quit', function () {
+ process.exit();
+ });
+
+ mpris.player = player;
}
/**
- * Update MPRIS Player Attributes
+ * Update M.P.R.I.S Player Attributes
*/
- @MPRIS.linuxOnly
- private updatePlayer(attributes: any) {
+ private static updatePlayer(attributes: any) {
const MetaData = {
- 'mpris:trackid': this.mpris.objectPath(`track/${attributes.playParams.id.replace(/[.]+/g, "")}`),
+ 'mpris:trackid': mpris.player.objectPath(`track/${attributes.playParams.id.replace(/[.]+/g, "")}`),
'mpris:length': attributes.durationInMillis * 1000, // In microseconds
'mpris:artUrl': (attributes.artwork.url.replace('/{w}x{h}bb', '/512x512bb')).replace('/2000x2000bb', '/35x35bb'),
'xesam:title': `${attributes.name}`,
'xesam:album': `${attributes.albumName}`,
- 'xesam:artist': [`${attributes.artistName}`,],
+ 'xesam:artist': [`${attributes.artistName}`],
'xesam:genre': attributes.genreNames
}
- if (this.mpris.metadata["mpris:trackid"] === MetaData["mpris:trackid"]) {
+ if (mpris.player.metadata["mpris:trackid"] === MetaData["mpris:trackid"]) {
return
}
- this.mpris.metadata = MetaData
-
+ mpris.player.metadata = MetaData;
}
/**
- * Update MPRIS Player State
+ * Update M.P.R.I.S Player State
* @private
* @param attributes
*/
- @MPRIS.linuxOnly
- private updatePlayerState(attributes: any) {
-
- let status = 'Stopped';
- if (attributes.status) {
- status = 'Playing';
- } else if (attributes.status === false) {
- status = 'Paused';
+ private static updatePlayerState(attributes: any) {
+ switch (attributes.status) {
+ case true: // Playing
+ mpris.player.playbackStatus = Player.PLAYBACK_STATUS_PLAYING;
+ break;
+ case false: // Paused
+ mpris.player.playbackStatus = Player.PLAYBACK_STATUS_PAUSED;
+ break;
+ default:
+ mpris.player.playbackStatus = Player.PLAYBACK_STATUS_STOPPED;
+ break
}
-
- if (this.mpris.playbackStatus === status) {
- return
- }
- this.mpris.playbackStatus = status;
}
/**
* Clear state
* @private
*/
- private clearState() {
- this.mpris.metadata = {'mpris:trackid': '/org/mpris/MediaPlayer2/TrackList/NoTrack'}
- this.mpris.playbackStatus = 'Stopped';
+ private static clearState() {
+ if (!mpris.player) {
+ return
+ }
+ mpris.player.metadata = {'mpris:trackid': '/org/mpris/MediaPlayer2/TrackList/NoTrack'}
+ mpris.player.playbackStatus = Player.PLAYBACK_STATUS_STOPPED;
}
@@ -155,42 +151,55 @@ export default class MPRIS {
/**
* Runs on plugin load (Currently run on application start)
*/
- constructor(app: any, _store: any) {
- this._app = app;
- console.debug(`[Plugin][${this.name}] Loading Complete.`);
+ constructor(utils: any) {
+ mpris.utils = utils
+
+ console.debug(`[Plugin][${mpris.name}] Loading Complete.`);
}
/**
* Runs on app ready
*/
- onReady(win: any): void {
- this._win = win;
- console.debug(`[Plugin][${this.name}] Ready.`);
- this.connect()
+ @mpris.linuxOnly
+ onReady(_: any): void {
+ console.debug(`[Plugin][${mpris.name}] Ready.`);
+ }
+
+ /**
+ * Renderer ready
+ */
+ @mpris.linuxOnly
+ onRendererReady(): void {
+ mpris.connect()
}
/**
* Runs on app stop
*/
+ @mpris.linuxOnly
onBeforeQuit(): void {
- console.debug(`[Plugin][${this.name}] Stopped.`);
- this.clearState()
+ console.debug(`[Plugin][${mpris.name}] Stopped.`);
+ mpris.clearState()
}
/**
* Runs on playback State Change
* @param attributes Music Attributes (attributes.status = current state)
*/
+ @mpris.linuxOnly
onPlaybackStateDidChange(attributes: object): void {
- this.updatePlayerState(attributes)
+ console.debug(`[Plugin][${mpris.name}] onPlaybackStateDidChange.`);
+ mpris.updatePlayerState(attributes)
}
/**
* Runs on song change
* @param attributes Music Attributes
*/
+ @mpris.linuxOnly
onNowPlayingItemDidChange(attributes: object): void {
- this.updatePlayer(attributes);
+ console.debug(`[Plugin][${mpris.name}] onMetadataDidChange.`);
+ mpris.updatePlayer(attributes);
}
}
diff --git a/src/main/plugins/thumbar.ts b/src/main/plugins/thumbar.ts
index 2ba1f1a9..5f504878 100644
--- a/src/main/plugins/thumbar.ts
+++ b/src/main/plugins/thumbar.ts
@@ -47,7 +47,6 @@ export default class Thumbar {
/**
* Update the thumbnail toolbar
*/
- @Thumbar.windowsOnly
private updateButtons(attributes: any) {
console.log(attributes)
@@ -94,14 +93,15 @@ export default class Thumbar {
/**
* Runs on plugin load (Currently run on application start)
*/
- constructor(app: any, _store: any) {
- this._app = app;
+ constructor(utils: { getApp: () => any; }) {
+ this._app = utils.getApp();
console.debug(`[Plugin][${this.name}] Loading Complete.`);
}
/**
* Runs on app ready
*/
+ @Thumbar.windowsOnly
onReady(win: Electron.BrowserWindow): void {
this._win = win;
console.debug(`[Plugin][${this.name}] Ready.`);
@@ -110,6 +110,7 @@ export default class Thumbar {
/**
* Runs on app stop
*/
+ @Thumbar.windowsOnly
onBeforeQuit(): void {
console.debug(`[Plugin][${this.name}] Stopped.`);
}
@@ -118,6 +119,7 @@ export default class Thumbar {
* Runs on playback State Change
* @param attributes Music Attributes (attributes.status = current state)
*/
+ @Thumbar.windowsOnly
onPlaybackStateDidChange(attributes: object): void {
this.updateButtons(attributes)
}
@@ -126,6 +128,7 @@ export default class Thumbar {
* Runs on song change
* @param attributes Music Attributes
*/
+ @Thumbar.windowsOnly
onNowPlayingItemDidChange(attributes: object): void {
this.updateButtons(attributes)
}
diff --git a/src/main/plugins/webNowPlaying.ts b/src/main/plugins/webNowPlaying.ts
new file mode 100644
index 00000000..b477d649
--- /dev/null
+++ b/src/main/plugins/webNowPlaying.ts
@@ -0,0 +1,244 @@
+import * as WebSocket from 'ws';
+
+/**
+ * 0-pad a number.
+ * @param {Number} number
+ * @param {Number} length
+ * @returns String
+ */
+const pad = (number: number, length: number) => String(number).padStart(length, '0');
+
+/**
+ * Convert seconds to a time string acceptable to Rainmeter
+ * https://github.com/tjhrulz/WebNowPlaying-BrowserExtension/blob/master/WebNowPlaying.js#L50-L59
+ * @param {Number} timeInSeconds
+ * @returns String
+ */
+const convertTimeToString = (timeInSeconds: number) => {
+ const timeInMinutes = Math.floor(timeInSeconds / 60);
+ if (timeInMinutes < 60) {
+ return timeInMinutes + ":" + pad(Math.floor(timeInSeconds % 60), 2);
+ }
+ return Math.floor(timeInMinutes / 60) + ":" + pad(Math.floor(timeInMinutes % 60), 2) + ":" + pad(Math.floor(timeInSeconds % 60), 2);
+}
+
+export default class WebNowPlaying {
+ /**
+ * Base Plugin Details (Eventually implemented into a GUI in settings)
+ */
+ public name: string = 'WebNowPlaying';
+ public description: string = 'Song info and playback control for the Rainmeter WebNowPlaying plugin.';
+ public version: string = '1.0.1';
+ public author: string = 'Zennn ';
+
+ private _win: any;
+ private ws?: WebSocket;
+ private wsapiConn?: WebSocket;
+ private playerName: string = 'Cider';
+
+ constructor() {
+ console.debug(`[Plugin][${this.name}] Loading Complete.`);
+ }
+
+ /**
+ * Blocks non-windows systems from running this plugin
+ * @private
+ * @decorator
+ */
+ private static windowsOnly(_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {
+ if (process.platform !== 'win32') {
+ descriptor.value = () => void 0;
+ }
+ }
+
+ private sendSongInfo(attributes: any) {
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return;
+
+ const fields = ['STATE', 'TITLE', 'ARTIST', 'ALBUM', 'COVER', 'DURATION', 'POSITION', 'VOLUME', 'REPEAT', 'SHUFFLE'];
+ fields.forEach((field) => {
+ try {
+ let value: any = '';
+ switch (field) {
+ case 'STATE':
+ value = attributes.status ? 1 : 2;
+ break;
+ case 'TITLE':
+ value = attributes.name;
+ break;
+ case 'ARTIST':
+ value = attributes.artistName;
+ break;
+ case 'ALBUM':
+ value = attributes.albumName;
+ break;
+ case 'COVER':
+ value = attributes.artwork.url.replace('{w}', attributes.artwork.width).replace('{h}', attributes.artwork.height);
+ break;
+ case 'DURATION':
+ value = convertTimeToString(attributes.durationInMillis / 1000);
+ break;
+ case 'POSITION':
+ value = convertTimeToString((attributes.durationInMillis - attributes.remainingTime) / 1000);
+ break;
+ case 'VOLUME':
+ value = attributes.volume * 100;
+ break;
+ case 'REPEAT':
+ value = attributes.repeatMode;
+ break;
+ case 'SHUFFLE':
+ value = attributes.shuffleMode;
+ break;
+ }
+ this.ws?.send(`${field}:${value}`);
+ } catch (error) {
+ if (this.ws?.readyState === WebSocket.OPEN) {
+ this.ws.send(`Error:Error updating ${field} for ${this.playerName}`);
+ this.ws.send(`ErrorD:${error}`);
+ }
+ }
+ });
+ }
+
+ private fireEvent(evt: WebSocket.MessageEvent) {
+ if (!evt.data) return;
+ const data = evt.data;
+
+ let value: string = '';
+ if (data.split(/ (.+)/).length > 1) {
+ value = data.split(/ (.+)/)[1];
+ }
+ const eventName = data.split(' ')[0].toLowerCase();
+
+ try {
+ switch (eventName) {
+ case 'playpause':
+ this._win.webContents.executeJavaScript('MusicKitInterop.playPause()').catch(console.error);
+ break;
+ case 'next':
+ this._win.webContents.executeJavaScript('MusicKitInterop.next()').catch(console.error);
+ break;
+ case 'previous':
+ this._win.webContents.executeJavaScript('MusicKitInterop.previous()').catch(console.error);
+ break;
+ case 'setposition':
+ this._win.webContents.executeJavaScript(`MusicKit.getInstance().seekToTime(${parseFloat(value)})`);
+ break;
+ case 'setvolume':
+ this._win.webContents.executeJavaScript(`MusicKit.getInstance().volume = ${parseFloat(value) / 100}`);
+ break;
+ case 'repeat':
+ this._win.webContents.executeJavaScript('wsapi.toggleRepeat()').catch(console.error);
+ break;
+ case 'shuffle':
+ this._win.webContents.executeJavaScript('wsapi.toggleShuffle()').catch(console.error);
+ break;
+ case 'togglethumbsup':
+ // not implemented
+ break;
+ case 'togglethumbsdown':
+ // not implemented
+ break;
+ case 'rating':
+ // not implemented
+ break;
+ }
+ } catch (error) {
+ console.debug(error);
+ if (this.ws?.readyState === WebSocket.OPEN) {
+ this.ws.send(`Error:Error sending event to ${this.playerName}`);
+ this.ws.send(`ErrorD:${error}`);
+ }
+ }
+ }
+
+ /**
+ * Runs on app ready
+ */
+ @WebNowPlaying.windowsOnly
+ public onReady(win: any) {
+ this._win = win;
+
+ // Connect to Rainmeter plugin and retry on disconnect.
+ const init = () => {
+ try {
+ this.ws = new WebSocket('ws://127.0.0.1:8974/');
+ let retry: NodeJS.Timeout;
+ this.ws.onopen = () => {
+ console.info('[WebNowPlaying] Connected to Rainmeter');
+ this.ws?.send(`PLAYER:${this.playerName}`);
+ };
+
+ this.ws.onclose = () => {
+ clearTimeout(retry);
+ retry = setTimeout(init, 2000);
+ };
+
+ this.ws.onerror = () => {
+ clearTimeout(retry);
+ this.ws?.close();
+ };
+
+ this.ws.onmessage = this.fireEvent?.bind(this);
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ init();
+
+ // Connect to wsapi. Only used to update progress.
+ try {
+ this.wsapiConn = new WebSocket('ws://127.0.0.1:26369/');
+
+ this.wsapiConn.onopen = () => {
+ console.info('[WebNowPlaying] Connected to wsapi');
+ };
+
+ this.wsapiConn.onmessage = (evt: WebSocket.MessageEvent) => {
+ const response = JSON.parse(evt.data);
+ if (response.type === 'playbackStateUpdate') {
+ this.sendSongInfo(response.data);
+ }
+ };
+ } catch (error) {
+ console.error(error);
+ }
+
+ console.debug(`[Plugin][${this.name}] Ready.`);
+ }
+
+ /**
+ * Runs on app stop
+ */
+ @WebNowPlaying.windowsOnly
+ public onBeforeQuit() {
+ if (this.ws) {
+ this.ws.send('STATE:0');
+ this.ws.onclose = () => void 0; // disable onclose handler first to stop it from retrying
+ this.ws.close();
+ }
+ if (this.wsapiConn) {
+ this.wsapiConn.close();
+ }
+ console.debug(`[Plugin][${this.name}] Stopped.`);
+ }
+
+ /**
+ * Runs on playback State Change
+ * @param attributes Music Attributes (attributes.status = current state)
+ */
+ @WebNowPlaying.windowsOnly
+ public onPlaybackStateDidChange(attributes: any) {
+ this.sendSongInfo(attributes);
+ }
+
+ /**
+ * Runs on song change
+ * @param attributes Music Attributes
+ */
+ @WebNowPlaying.windowsOnly
+ public onNowPlayingItemDidChange(attributes: any) {
+ this.sendSongInfo(attributes);
+ }
+}
diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js
index 31b6f662..9074ffe1 100644
--- a/src/preload/cider-preload.js
+++ b/src/preload/cider-preload.js
@@ -7,9 +7,10 @@ let cache = {playParams: {id: 0}, status: null, remainingTime: 0},
const MusicKitInterop = {
init: function () {
MusicKit.getInstance().addEventListener(MusicKit.Events.playbackStateDidChange, () => {
- if (MusicKitInterop.filterTrack(MusicKitInterop.getAttributes(), true, false)) {
- global.ipcRenderer.send('playbackStateDidChange', MusicKitInterop.getAttributes())
- ipcRenderer.send('wsapi-updatePlaybackState', MusicKitInterop.getAttributes());
+ const attributes = MusicKitInterop.getAttributes()
+ if (MusicKitInterop.filterTrack(attributes, true, false)) {
+ global.ipcRenderer.send('playbackStateDidChange', attributes)
+ global.ipcRenderer.send('wsapi-updatePlaybackState', attributes);
// if (typeof _plugins != "undefined") {
// _plugins.execute("OnPlaybackStateChanged", {Attributes: MusicKitInterop.getAttributes()})
// }
@@ -22,9 +23,19 @@ const MusicKitInterop = {
});
/** wsapi */
- MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, () => {
- if (MusicKitInterop.filterTrack(MusicKitInterop.getAttributes(), false, true) || !app.cfg.lastfm.filterLoop) {
- global.ipcRenderer.send('nowPlayingItemDidChange', MusicKitInterop.getAttributes());
+ MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => {
+ console.log('nowPlayingItemDidChange')
+ const attributes = MusicKitInterop.getAttributes()
+ const trackFilter = MusicKitInterop.filterTrack(attributes, false, true)
+
+ if (trackFilter) {
+ global.ipcRenderer.send('nowPlayingItemDidChange', attributes);
+ }
+
+ // LastFM's Custom Call
+ await MusicKitInterop.modifyNamesOnLocale();
+ if (trackFilter || !app.cfg.lastfm.filterLoop) {
+ global.ipcRenderer.send('nowPlayingItemDidChangeLastFM', attributes);
}
});
@@ -36,7 +47,28 @@ const MusicKitInterop = {
console.warn(`[mediaPlaybackError] ${e}`);
})
},
+ async modifyNamesOnLocale() {
+ if (app.mklang === '' || app.mklang == null) {
+ return;
+ }
+ const mk = MusicKit.getInstance()
+ const nowPlayingItem = mk.nowPlayingItem;
+ if ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) == null){
+ return;
+ }
+ const id = nowPlayingItem?._songId ?? (nowPlayingItem?.songId ?? nowPlayingItem?.id)
+ if (id != null && id !== -1) {
+ try{
+ const query = await mk.api.v3.music(`/v1${(((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != null) && ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) !== -1)) ? `/catalog/${mk.storefrontId}/` : `/me/library/`}songs/${id}?l=${app.mklang}`);
+ if (query?.data?.data[0]){
+ let attrs = query?.data?.data[0]?.attributes;
+ if (attrs?.name) { nowPlayingItem.attributes.name = attrs?.name ?? ''}
+ if (attrs?.albumName) { nowPlayingItem.attributes.albumName = attrs?.albumName ?? ''}
+ if (attrs?.artistName) { nowPlayingItem.attributes.artistName = attrs?.artistName ?? ''}
+ }} catch (e) { }
+ } else {}
+ },
getAttributes: function () {
const mk = MusicKit.getInstance()
const nowPlayingItem = mk.nowPlayingItem;
@@ -44,15 +76,15 @@ const MusicKitInterop = {
const remainingTimeExport = mk.currentPlaybackTimeRemaining;
const attributes = (nowPlayingItem != null ? nowPlayingItem.attributes : {});
- attributes.status = isPlayingExport ?? false;
- attributes.name = attributes?.name ?? 'No Title Found';
+ attributes.status = isPlayingExport ?? null;
+ attributes.name = attributes?.name ?? 'no-title-found';
attributes.artwork = attributes?.artwork ?? {url: ''};
attributes.artwork.url = (attributes?.artwork?.url ?? '').replace(`{f}`, "png");
attributes.playParams = attributes?.playParams ?? {id: 'no-id-found'};
attributes.playParams.id = attributes?.playParams?.id ?? 'no-id-found';
attributes.url = {
- cider: `cider://play/s/${nowPlayingItem?._songId ?? 'no-id-found'}`,
- appleMusic: attributes.websiteUrl ? attributes.websiteUrl : `https://music.apple.com/${mk.storefrontId}/song/${nowPlayingItem?._songId ?? 'no-id-found'}`
+ cider: `https://cider.sh/link?play/s/${nowPlayingItem?._songId ?? (nowPlayingItem?.songId ??'no-id-found')}`,
+ appleMusic: attributes.websiteUrl ? attributes.websiteUrl : `https://music.apple.com/${mk.storefrontId}/song/${nowPlayingItem?._songId ?? (nowPlayingItem?.songId ??'no-id-found')}`
}
if (attributes.playParams.id === 'no-id-found') {
attributes.playParams.id = nowPlayingItem?.id ?? 'no-id-found';
@@ -69,12 +101,12 @@ const MusicKitInterop = {
attributes?.playParams?.id === cache.playParams.id
? Date.now() + attributes?.remainingTime
: attributes?.startTime + attributes?.durationInMillis
- );
+ );
return attributes;
},
filterTrack: function (a, playbackCheck, mediaCheck) {
- if (a.title === "No Title Found" || a.playParams.id === "no-id-found") {
+ if (a.name === 'no-title-found' || a.playParams.id === "no-id-found") {
return;
} else if (mediaCheck && a.playParams.id === cache.playParams.id) {
return;
@@ -89,7 +121,7 @@ const MusicKitInterop = {
},
play: () => {
- MusicKit.getInstance().play().then(r => console.log(`[MusicKitInterop.play] ${r}`));
+ MusicKit.getInstance().play().catch(console.error);
},
pause: () => {
@@ -100,15 +132,22 @@ const MusicKitInterop = {
if (MusicKit.getInstance().isPlaying) {
MusicKit.getInstance().pause();
} else if (MusicKit.getInstance().nowPlayingItem != null) {
- MusicKit.getInstance().play().then(r => console.log(`[MusicKitInterop.playPause] Playing ${r}`));
+ MusicKit.getInstance().play().catch(console.error);
}
},
next: () => {
+ // try {
+ // app.prevButtonBackIndicator = false;
+ // } catch (e) { }
+ // if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null)
+ // MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);
MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`));
},
previous: () => {
+ // if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null)
+ // MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex);
MusicKit.getInstance().skipToPreviousItem().then(r => console.log(`[MusicKitInterop.previous] Skipping to Previous ${r}`));
}
diff --git a/src/renderer/assets/audiolabs/classic.png b/src/renderer/assets/audiolabs/classic.png
new file mode 100644
index 00000000..18d4808c
Binary files /dev/null and b/src/renderer/assets/audiolabs/classic.png differ
diff --git a/src/renderer/assets/audiolabs/expansive.png b/src/renderer/assets/audiolabs/expansive.png
new file mode 100644
index 00000000..ff20768d
Binary files /dev/null and b/src/renderer/assets/audiolabs/expansive.png differ
diff --git a/src/renderer/assets/audiolabs/focused.png b/src/renderer/assets/audiolabs/focused.png
new file mode 100644
index 00000000..dce2836f
Binary files /dev/null and b/src/renderer/assets/audiolabs/focused.png differ
diff --git a/src/renderer/assets/audiolabs/minimal.png b/src/renderer/assets/audiolabs/minimal.png
new file mode 100644
index 00000000..62dea0cd
Binary files /dev/null and b/src/renderer/assets/audiolabs/minimal.png differ
diff --git a/src/renderer/assets/cider-round.svg b/src/renderer/assets/cider-round.svg
new file mode 100644
index 00000000..f27dc45d
--- /dev/null
+++ b/src/renderer/assets/cider-round.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/renderer/assets/feather/external-link.svg b/src/renderer/assets/feather/external-link.svg
new file mode 100644
index 00000000..6236df3e
--- /dev/null
+++ b/src/renderer/assets/feather/external-link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/renderer/assets/github.svg b/src/renderer/assets/github.svg
new file mode 100644
index 00000000..2180f759
--- /dev/null
+++ b/src/renderer/assets/github.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/src/renderer/assets/music.svg b/src/renderer/assets/music.svg
new file mode 100644
index 00000000..7bee2f7e
--- /dev/null
+++ b/src/renderer/assets/music.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js
index c22ef29c..07e6b89b 100644
--- a/src/renderer/audio/audio.js
+++ b/src/renderer/audio/audio.js
@@ -1,196 +1,944 @@
-var CiderAudio = {
- context : null,
- source : null,
- audioNodes : {
- gainNode : null,
- spatialNode : null,
+const CiderAudio = {
+ context: null,
+ source: null,
+ audioNodes: {
+ gainNode: null,
+ spatialNode: null,
spatialInput: null,
- audioBands : null,
- preampNode : null,
+ audioBands: null,
vibrantbassNode: null,
llpw: null,
- llpwEnabled: null
+ analogWarmth: null,
+ recorderNode: null,
},
+ ccON: false,
+ mediaRecorder: null,
init: function (cb = function () { }) {
//AudioOutputs.fInit = true;
- searchInt = setInterval(function () {
- if (document.getElementById("apple-music-player")) {
- //AudioOutputs.eqReady = true;
- document.getElementById("apple-music-player").crossOrigin = "anonymous";
- CiderAudio.connectContext(document.getElementById("apple-music-player"), 0);
-
- cb();
- clearInterval(searchInt);
- }
+ let searchInt = setInterval(function () {
+ if (document.getElementById("apple-music-player")) {
+ //AudioOutputs.eqReady = true;
+ document.getElementById("apple-music-player").crossOrigin = "anonymous";
+ CiderAudio.connectContext(document.getElementById("apple-music-player"), 0);
+
+ cb();
+ clearInterval(searchInt);
+ }
}, 1000);
},
- off: function(){
- try{
- try{
- CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){}
- try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
- try{
- CiderAudio.audioNodes.preampNode.disconnect();
- for (var i of CiderAudio.audioNodes.llpw){
- i.disconnect();
- }
- for (var i of CiderAudio.audioNodes.vibrantbassNode){
- i.disconnect();
- }
- for (var i of CiderAudio.audioNodes.audioBands){
- i.disconnect();
- }
- } catch(e){}
- try{
- CiderAudio.audioNodes = {
- gainNode : null,
- spatialNode : null,
- spatialInput: null,
- audioBands : null,
- preampNode : null,
- vibrantbassNode: null,
- }
- } catch (e) {}
- CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
+ off: function () {
+ try {
+ CiderAudio.hierarchical_unloading();
+ try {
+ CiderAudio.audioNodes = {
+ gainNode: null,
+ spatialNode: null,
+ spatialInput: null,
+ audioBands: null,
+ vibrantbassNode: null,
+ llpw: null,
+ analogWarmth: null
+ }
+ } catch (e) { }
+ CiderAudio.source.connect(CiderAudio.context.destination);
+ } catch (e) { }
},
- connectContext: function (mediaElem){
- if (!CiderAudio.context){
- CiderAudio.context = new (window.AudioContext || window.webkitAudioContext);
+ connectContext: function (mediaElem) {
+ if (!CiderAudio.context) {
+ CiderAudio.context = new window.AudioContext({sampleRate: 96000}); // Don't ever remove the sample rate arg. Ask Maikiwi.
}
- if (!CiderAudio.source){
- CiderAudio.source = CiderAudio.context.createMediaElementSource(mediaElem);
- } else {try{CiderAudio.source.disconnect(CiderAudio.context.destination)}catch(e){}}
+ if (!CiderAudio.source) {
+ CiderAudio.source = CiderAudio.context.createMediaElementSource(mediaElem);
+ } else { try { CiderAudio.source.disconnect(CiderAudio.context.destination) } catch (e) { } }
CiderAudio.audioNodes.gainNode = CiderAudio.context.createGain()
CiderAudio.source.connect(CiderAudio.audioNodes.gainNode);
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
- if(app.cfg.audio.normalization){
+ if (app.cfg.audio.normalization) {
CiderAudio.normalizerOn()
}
- if (app.cfg.audio.spatial){
- CiderAudio.spatialOn()
- }
- CiderAudio.equalizer()
- },
- normalizerOn: function (){},
- normalizerOff: function (){
- CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5);
- },
- spatialOn: function (){
- try{
- CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){}
- CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
- CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination);
- let roomDimensions = {
- width: 32,
- height: 12,
- depth: 32,
- };
- let roomMaterials = {
- // Room wall materials
- left: 'metal',
- right: 'metal',
- front: 'brick-bare',
- back: 'brick-bare',
- down: 'acoustic-ceiling-tiles',
- up: 'acoustic-ceiling-tiles',
- };
- CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);
- CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
- },
- spatialOff: function (){
- try{
- CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination);
- CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.audioNodes.spatialInput.input);} catch(e){}
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
- },
- sendAudio: function (){
- var options = {
- mimeType : 'audio/webm; codecs=opus'
- };
- var destnode = CiderAudio.context.createMediaStreamDestination();
- CiderAudio.audioNodes.gainNode.connect(destnode)
- var mediaRecorder = new MediaRecorder(destnode.stream,options);
- mediaRecorder.start(1);
- mediaRecorder.ondataavailable = function(e) {
- e.data.arrayBuffer().then(buffer => {
- ipcRenderer.send('writeAudio',buffer)
- }
- );
- }
- },
- equalizer: function (){
- let BANDS = app.cfg.audio.equalizer.frequencies;
- let GAIN = app.cfg.audio.equalizer.gain;
- let Q = app.cfg.audio.equalizer.Q;
- let VIBRANTBASSBANDS = app.cfg.audio.vibrantBass.frequencies;
- let VIBRANTBASSGAIN = app.cfg.audio.vibrantBass.gain;
- let VIBRANTBASSQ = app.cfg.audio.vibrantBass.Q;
- let LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856];
- let LLPW_GAIN = [0.38, -1.81, -0.23, -0.51, 0.4, 0.84, 0.36, -0.34, 0.27, -1.2, -0.42, -0.67, 0.81, 1.31, -0.71, 0.68, -1.04, 0.79, -0.73, -1.33, 1.17, 0.57, 0.35, 6.33];
- let LLPW_FREQUENCIES = [16.452, 24.636, 37.134, 74.483, 159.54, 308.18, 670.21, 915.81, 1200.7, 2766.4, 2930.6, 4050.6, 4409.1, 5395.2, 5901.6, 6455.5, 7164.1, 7724.1, 8449, 10573, 12368, 14198, 17910, 18916];
- CiderAudio.audioNodes.audioBands = []; CiderAudio.audioNodes.vibrantbassNode = []; CiderAudio.audioNodes.llpw = [];
-
- for (i = 0; i < BANDS.length; i++) {
- CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter();
- CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking';
- CiderAudio.audioNodes.audioBands[i].frequency.value = BANDS[i];
- CiderAudio.audioNodes.audioBands[i].Q.value = Q[i];
- CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix;
- }
-
- for (i = 0; i < LLPW_FREQUENCIES.length; i++) {
- CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
- CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
- CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i];
- CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
- CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i] * app.cfg.audio.ciderPPE_value * CiderAudio.audioNodes.llpwEnabled;
- }
-
- CiderAudio.audioNodes.preampNode = CiderAudio.context.createBiquadFilter();
- CiderAudio.audioNodes.preampNode.type = 'highshelf';
- CiderAudio.audioNodes.preampNode.frequency.value = 0; // Passthrough
- if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));}
- else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));}
-
- for (i = 0; i < VIBRANTBASSBANDS.length; i++) {
- CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter();
- CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking';
- CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i];
- CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i];
- CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.vibrantBass.multiplier;}
-
-
if (app.cfg.audio.spatial) {
- try{
- CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination); } catch(e){}
- CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.preampNode);
+ CiderAudio.spatialOn()
+ }
+ CiderAudio.hierarchical_loading();
+ },
+ normalizerOn: function () {
+ },
+ normalizerOff: function () {
+ CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime + 1, 0.5);
+ },
+ spatialProfiles: [
+ {
+ "id": "420signature",
+ "file": './audio/impulses/CiderSpatial_v69.420_Audiophile.wav',
+ "name": "Signature (Classic)",
+ "description": "",
+ "img": "./assets/audiolabs/classic.png",
+ },
+ {
+ "id": "420signature-B",
+ "file": './audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav',
+ "name": "Signature (Focused)",
+ "description": "",
+ "img": "./assets/audiolabs/focused.png",
+ },
+ {
+ "id": "standard",
+ "file": './audio/impulses/CiderSpatial_v69_Standard.wav',
+ "name": "Minimal",
+ "description": "",
+ "img": "./assets/audiolabs/minimal.png",
+ },
+ {
+ "id": "audiophile",
+ "file": './audio/impulses/CiderSpatial_v69_Audiophile.wav',
+ "name": "Expansive",
+ "description": "",
+ "img": "./assets/audiolabs/expansive.png",
+ }
+ ],
+ spatialOn: function () {
+ CiderAudio.audioNodes.spatialNode = null;
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
+ CiderAudio.audioNodes.spatialNode.normalize = false;
+
+ let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
+ return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
+ });
+
+ if (spatialProfile === undefined) {
+ spatialProfile = CiderAudio.spatialProfiles[0];
+ }
+ fetch(spatialProfile.file).then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
+
+ }
+ else {
+ CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
+ let roomDimensions = {
+ width: 32,
+ height: 12,
+ depth: 32,
+ };
+ let roomMaterials = {
+ // Room wall materials
+ left: 'metal',
+ right: 'metal',
+ front: 'brick-bare',
+ back: 'brick-bare',
+ down: 'acoustic-ceiling-tiles',
+ up: 'acoustic-ceiling-tiles',
+ };
+ CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);
+ CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();
+ }
+ },
+ spatialOff: function () {
+ CiderAudio.hierarchical_loading();
+ },
+ sendAudio: function () {
+ if (!CiderAudio.ccON) {
+ CiderAudio.ccON = true
+ let searchInt = setInterval(async function () {
+ if (CiderAudio.context != null && CiderAudio.audioNodes.gainNode != null) {
+ // var options = {
+ // mimeType: 'audio/webm; codecs=opus'
+ // };
+ // var destnode = CiderAudio.context.createMediaStreamDestination();
+ // CiderAudio.audioNodes.gainNode.connect(destnode)
+ // CiderAudio.mediaRecorder = new MediaRecorder(destnode.stream, options);
+ // CiderAudio.mediaRecorder.start(1);
+ // CiderAudio.mediaRecorder.ondataavailable = function (e) {
+ // e.data.arrayBuffer().then(buffer => {
+ // ipcRenderer.send('writeAudio', buffer)
+ // }
+ // );
+ // }
+ const worklet = `class RecorderWorkletProcessor extends AudioWorkletProcessor {
+ static get parameterDescriptors() {
+ return [{
+ name: 'isRecording',
+ defaultValue: 0
+ },
+ {
+ name: 'numberOfChannels',
+ defaultValue: 2
+ }
+ ];
+ }
+
+ constructor() {
+ super();
+ this._bufferSize = 1024;
+ this._buffers = null;
+ this._initBuffer();
+ }
+ _initBuffers(numberOfChannels) {
+ this._buffers = [];
+ for (let channel=0; channel < numberOfChannels; channel++) {
+ this._buffers.push(new Float32Array(this._bufferSize));
+ }
+ }
+
+ _initBuffer() {
+ this._bytesWritten = 0;
+ }
+
+ _isBufferEmpty() {
+ return this._bytesWritten === 0;
+ }
+
+ _isBufferFull() {
+ return this._bytesWritten === this._bufferSize;
+ }
+ _pushToBuffers(audioRawData, numberOfChannels) {
+ if (this._isBufferFull()) {
+ this._flush();
+ }
+ let dataLength = audioRawData[0].length;
+ for (let idx=0; idx {
+ if (this._bytesWritten < this._bufferSize) {
+ buffer = buffer.slice(0, this._bytesWritten);
+ }
+ buffers[channel] = buffer;
+ });
+ this.port.postMessage({
+ eventType: 'data',
+ audioBuffer: buffers,
+ bufferSize: this._bufferSize
+ });
+ this._initBuffer();
+ }
+
+ _recordingStopped() {
+ this.port.postMessage({
+ eventType: 'stop'
+ });
+ }
+
+ process(inputs, outputs, parameters) {
+ const isRecordingValues = parameters.isRecording;
+ const numberOfChannels = parameters.numberOfChannels[0];
+ if (this._buffers === null) {
+ this._initBuffers(numberOfChannels);
+ }
+
+ for (let dataIndex = 0; dataIndex < isRecordingValues.length; dataIndex++)
+ {
+ const shouldRecord = isRecordingValues[dataIndex] === 1;
+ if (!shouldRecord && !this._isBufferEmpty()) {
+ this._flush();
+ this._recordingStopped();
+ }
+
+ if (shouldRecord) {
+ let audioRawData = inputs[0];
+ this._pushToBuffers(audioRawData, numberOfChannels);
+ }
+ }
+ return true;
+ }
+
+ }
+
+ registerProcessor('recorder-worklet', RecorderWorkletProcessor);`
+ let blob = new Blob([worklet], { type: 'application/javascript' });
+ await CiderAudio.context.audioWorklet.addModule(URL.createObjectURL(blob))
+ .then(() => {
+
+ const channels = 2;
+ CiderAudio.audioNodes.recorderNode = new window.AudioWorkletNode(CiderAudio.context,
+ 'recorder-worklet',
+ { parameterData: { numberOfChannels: channels } });
+ CiderAudio.audioNodes.recorderNode.port.onmessage = (e) => {
+ const data = e.data;
+ switch (data.eventType) {
+ case "data":
+ const audioData = data.audioBuffer;
+ const bufferSize = data.bufferSize;
+ if ((audioData[0]).some(item => item !== 0) || (audioData[0]).some(item => item !== 0)) {
+ ipcRenderer.send('writeWAV', audioData[0], audioData[1], bufferSize);
+ }
+ break;
+ case "stop":
+ break;
+ }
+ }
+ CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime);
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.recorderNode);
+
+ });
+ clearInterval(searchInt);
+ }
+ }, 1000);
} else {
- try{
- CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){}
- CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.preampNode);
+ if (CiderAudio.audioNodes.recorderNode != null && CiderAudio.context != null) {
+ CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime);
+ // CiderAudio.audioNodes.recorderNode = null;
+ // CiderAudio.ccON = false;
+ }
}
- CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.llpw[0]);
+ },
+ stopAudio() {
+ if (CiderAudio.audioNodes.recorderNode != null && CiderAudio.context != null) {
+ CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(0, CiderAudio.context.currentTime);
+ // CiderAudio.audioNodes.recorderNode = null;
+ // CiderAudio.ccON = false;
+ }
+ },
+ analogWarmth_h2_3: function (status, hierarchy) {
+ if (status === true) { // 23 Band Adjustment
+ let WARMTH_FREQUENCIES = [10.513, 15.756, 224.01, 677.77, 1245.4, 2326.8, 2847.3, 4215.3, 11057, 12793, 16235, 16235, 17838, 18112, 18112, 19326, 19372, 19372, 20061, 20280, 20280, 20853, 22276];
+ let WARMTH_GAIN = [-4.81, 0.74, 0.55, -0.84, -1.52, 0.84, 0.66, -0.29, 0.29, 0.94, 1.67, 1.62, -0.53, -0.81, -4.98, 1.43, 0.86, 1.13, -1.06, -0.95, -1.13, 1.78, -3.86];
+ let WARMTH_Q = [0.442, 3.536, 2.102, 8.409, 0.625, 16.82, 5, 2.973, 3.536, 2.5, 2.5, 11.89, 0.625, 1.487, 1.153, 5, 5.453, 5, 2.973, 3.386, 3.386, 14.14, 8.409];
+ CiderAudio.audioNodes.analogWarmth = []
+
+ switch (app.cfg.audio.maikiwiAudio.analogWarmth_value) {
+ case "SMOOTH":
+ for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ;
+ CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
+ CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
+ }
+ break;
+
+ case "WARM":
+ for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ;
+ CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
+ CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75;
+ }
+ break;
+
+ default:
+ for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ;
+ CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
+ CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
+ }
+ app.cfg.audio.maikiwiAudio.analogWarmth_value = "SMOOTH";
+ break;
+ }
+
+
+ for (let i = 1; i < WARMTH_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.analogWarmth[i - 1].connect(CiderAudio.audioNodes.analogWarmth[i]);
+ }
+
+ switch (hierarchy) {
+ case 3:
+ try {
+ CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.llpw[0]);
+ } catch (e) { }
+ break;
+ case 2:
+ try {
+ CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ } catch (e) { }
+ break;
+ case 1:
+ try {
+ CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]);
+ } catch (e) { }
+ break;
+ case 0:
+ try { CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { }
+ break;
+ }
- for (i = 1; i < LLPW_FREQUENCIES.length; i ++) {
- CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
- }
- CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
- for (i = 1; i < VIBRANTBASSBANDS.length; i ++) {
- CiderAudio.audioNodes.vibrantbassNode[i-1].connect(CiderAudio.audioNodes.vibrantbassNode[i]);
- }
- CiderAudio.audioNodes.vibrantbassNode[VIBRANTBASSBANDS.length-1].connect(CiderAudio.audioNodes.audioBands[0]);
-
- for (i = 1; i < BANDS.length; i ++) {
- CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]);
}
- CiderAudio.audioNodes.audioBands[BANDS.length-1].connect(CiderAudio.context.destination);
+ },
+ llpw_h2_2: function (status, hierarchy) {
+ if (status === true) {
+ let c_LLPW_Q = [1.250, 0.131, 10, 2.5, 2.293, 0.110, 14.14, 1.552, 28.28, 7.071, 2.847, 5, 0.625, 7.071, 3.856, 3.856, 20, 28.28, 20, 14.14, 2.102, 6.698, 3.536, 10];
+ let c_LLPW_GAIN = [-0.11, 0.27, -0.8, 0.57, 1.84, -0.38, 0.47, -1.56, 0.83, 1.58, -1.79, -0.45, 0.48, 1.22, -1.58, -1.59, -2.03, 2.56, -2.2, -2.48, 4.75, 10.5, 1.43, 3.76];
+ let c_LLPW_FREQUENCIES = [400.83, 5812.8, 8360, 10413, 10658, 12079, 12899, 13205, 14848, 15591, 15778, 15783, 16716, 16891, 17255, 17496, 18555, 18622, 19219, 19448, 19664, 21341, 21353, 22595];
+ let LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856];
+ let LLPW_GAIN = [0.38, -1.81, -0.23, -0.51, 0.4, 0.84, 0.36, -0.34, 0.27, -1.2, -0.42, -0.67, 0.81, 1.31, -0.71, 0.68, -1.04, 0.79, -0.73, -1.33, 1.17, 0.57, 0.35, 6.33];
+ let LLPW_FREQUENCIES = [16.452, 24.636, 37.134, 74.483, 159.54, 308.18, 670.21, 915.81, 1200.7, 2766.4, 2930.6, 4050.6, 4409.1, 5395.2, 5901.6, 6455.5, 7164.1, 7724.1, 8449, 10573, 12368, 14198, 17910, 18916];
+ CiderAudio.audioNodes.llpw = []
+
+ switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) {
+ case "NATURAL":
+ CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
+ CiderAudio.audioNodes.llpw[0].normalize = false;
+ fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
+
+ switch (hierarchy) {
+ case 2:
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
+ break;
+ case 1:
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ break;
+ case 0:
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
+ break;
+
+ }
+
+ console.debug("[Cider][Audio] CAP - Natural Mode");
+ break;
+
+ case "STANDARD": // Standard
+ for (let i = 0; i < LLPW_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i] ;
+ CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
+ CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i];
+ }
+ for (let i = 1; i < LLPW_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.llpw[i - 1].connect(CiderAudio.audioNodes.llpw[i]);
+ }
+
+ switch (hierarchy) {
+ case 2:
+ try { CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
+ break;
+ case 1:
+ try { CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ break;
+ case 0:
+ try { CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { }
+ break;
+
+ }
+
+ console.debug("[Cider][Audio] CAP - Classic Mode");
+ break;
+
+ case "AGGRESSIVE": // Aggressive
+ for (let i = 0; i < c_LLPW_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.llpw[i].frequency.value = c_LLPW_FREQUENCIES[i] ;
+ CiderAudio.audioNodes.llpw[i].Q.value = c_LLPW_Q[i];
+ CiderAudio.audioNodes.llpw[i].gain.value = c_LLPW_GAIN[i];
+ }
+ for (let i = 1; i < c_LLPW_FREQUENCIES.length; i++) {
+ CiderAudio.audioNodes.llpw[i - 1].connect(CiderAudio.audioNodes.llpw[i]);
+ }
+
+ switch (hierarchy) {
+ case 2:
+ try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
+ break;
+ case 1:
+ try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ break;
+ case 0:
+ try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { }
+ break;
+
+ }
+
+ console.debug("[Cider][Audio] CAP - Clarity Mode");
+ break;
+
+ default:
+ CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
+ CiderAudio.audioNodes.llpw[0].normalize = false;
+ fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => {
+ let bufferedImpulse = await impulseData.arrayBuffer();
+ CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
+ });
+
+ switch (hierarchy) {
+ case 2:
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
+ break;
+ case 1:
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ break;
+ case 0:
+ try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
+ break;
+
+ }
+ app.cfg.audio.maikiwiAudio.ciderPPE_value = "NATURAL";
+ console.debug("[Cider][Audio] CAP - Natural Mode (Defaulted from broki config)");
+ break;
+ }
+ }
+
+ },
+ vibrantbass_h2_1: function (status, hierarchy) {
+ if (status === true) {
+ let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies;
+ let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain;
+ let VIBRANTBASSQ = app.cfg.audio.maikiwiAudio.vibrantBass.Q;
+ CiderAudio.audioNodes.vibrantbassNode = []
+
+ for (let i = 0; i < VIBRANTBASSBANDS.length; i++) {
+ CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i] ;
+ CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i];
+ CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * (app.cfg.audio.equalizer.vibrantBass / 10);
+ }
+
+ for (let i = 1; i < VIBRANTBASSBANDS.length; i++) {
+ CiderAudio.audioNodes.vibrantbassNode[i - 1].connect(CiderAudio.audioNodes.vibrantbassNode[i]);
+ }
+
+ switch (hierarchy) {
+ case 0:
+ try {
+ CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination);
+ } catch (e) { }
+ break;
+ case 1:
+ try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
+ break;
+
+ }
+ }
+ },
+ hierarchical_unloading: function () {
+ try { CiderAudio.audioNodes.spatialNode.output.disconnect(); } catch (e) { }
+ try { CiderAudio.audioNodes.spatialNode.disconnect(); } catch (e) { }
+ try { CiderAudio.audioNodes.gainNode.disconnect(); } catch (e) { }
+ try { for (var i of CiderAudio.audioNodes.analogWarmth) { i.disconnect(); } CiderAudio.audioNodes.analogWarmth = null } catch (e) { }
+ try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { }
+ try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { }
+ try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.audioBands = null } catch (e) { }
+
+ console.debug("[Cider][Audio] Finished hierarchical unloading");
+
+ },
+ hierarchical_loading: function () {
+ CiderAudio.hierarchical_unloading();
+
+ if (Math.max(...app.cfg.audio.equalizer.gain) != 0) {
+ CiderAudio.equalizer(true, 0);
+
+ if (app.cfg.audio.equalizer.vibrantBass !== '0') {
+ CiderAudio.vibrantbass_h2_1(true, 1);
+
+ if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP
+ CiderAudio.llpw_h2_2(true, 2);
+
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth
+ CiderAudio.analogWarmth_h2_3(true, 3);
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial')
+ }
+ else { // Vibrant Bass, CAP, Analog Warmth, Spatial
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth')
+ }
+ }
+ else {
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
+ app.cfg.audio.normalization = true
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP')
+ }
+ }
+ }
+ else {
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
+ CiderAudio.analogWarmth_h2_3(true, 2);
+ app.cfg.audio.normalization = true;
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth')
+ }
+ }
+ else {
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug('[Cider][Audio] Equalizer, Vibrant Bass')
+ }
+ }
+ }
+ }
+ // Vibrant Bass ends here
+ else { // if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier) === 0
+ if (app.cfg.audio.maikiwiAudio.ciderPPE === true) {
+ CiderAudio.llpw_h2_2(true, 1);
+
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
+ CiderAudio.analogWarmth_h2_3(true, 3);
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, CAP and Analog Warmth')
+ }
+ }
+ else {
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] Equalizer, CAP, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] Equalizer, CAP, Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] Equalizer, CAP')
+ }
+ }
+ } // CAP ends here
+ else {
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
+ CiderAudio.analogWarmth_h2_3(true, 1);
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] Equalizer, Analog Warmth, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Analog Warmth, Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Equalizer, Analog Warmth')
+ }
+ }
+ else {
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] Equalizer, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]);
+ console.debug('[Cider][Audio] Equalizer, Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
+ console.debug('[Cider][Audio] Equalizer')
+ }
+ }
+ }
+ }
+ }
+ else { //if (Math.max(...app.cfg.audio.equalizer.gain) == 0)
+ if (app.cfg.audio.equalizer.vibrantBass !== '0') { // Vibrant Bass
+ CiderAudio.vibrantbass_h2_1(true, 0)
+
+ if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP
+ CiderAudio.llpw_h2_2(true, 2);
+
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth
+ CiderAudio.analogWarmth_h2_3(true, 3);
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial')
+ }
+ else { // Vibrant Bass, CAP, Analog Warmth, Spatial
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth')
+ }
+ }
+ else { // if (app.cfg.audio.maikiwiAudio.analogWarmth) !== true
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
+ app.cfg.audio.normalization = true
+ console.debug('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, CAP, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, CAP')
+ }
+ }
+ }
+ else {
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
+ CiderAudio.analogWarmth_h2_3(true, 2);
+ app.cfg.audio.normalization = true;
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth')
+ }
+ }
+ else {
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug('[Cider][Audio] Vibrant Bass, Spatial')
+ }
+ }
+ else {
+ app.cfg.audio.normalization = true;
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
+ console.debug('[Cider][Audio] Vibrant Bass')
+ }
+ }
+ }
+ }
+ // Vibrant Bass ends here
+ else {
+ if (app.cfg.audio.maikiwiAudio.ciderPPE === true) {
+ CiderAudio.llpw_h2_2(true, 0);
+
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
+ CiderAudio.analogWarmth_h2_3(true, 3);
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] CAP, Analog Warmth, Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] CAP and Analog Warmth')
+ }
+ }
+ else {
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] CAP, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] CAP, Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
+ console.debug('[Cider][Audio] CAP')
+ }
+ }
+ } // CAP ends here
+ else {
+ if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
+ CiderAudio.analogWarmth_h2_3(true, 0);
+
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] Analog Warmth, Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Analog Warmth, Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
+ console.debug('[Cider][Audio] Analog Warmth')
+ }
+ }
+ else {
+ if (app.cfg.audio.spatial === true) {
+ if (app.cfg.audio.maikiwiAudio.spatial === true) {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
+ CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination);
+ app.cfg.audio.normalization = true;
+ console.debug('[Cider][Audio] Maikiwi Spatial')
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
+ CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination);
+ console.debug('[Cider][Audio] Spatial')
+ }
+ }
+ else {
+ CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
+ console.debug('[Cider][Audio] Literal Nothing')
+ }
+ }
+ }
+ }
+ }
+ console.debug("[Cider][Audio] Finished hierarchical loading");
+
+ },
+
+ equalizer: function (status, hierarchy) { // h1_1
+ if (status === true) {
+ let BANDS = app.cfg.audio.equalizer.frequencies;
+ let GAIN = app.cfg.audio.equalizer.gain;
+ let Q = app.cfg.audio.equalizer.Q;
+
+ CiderAudio.audioNodes.audioBands = [];
+ for (let i = 0; i < BANDS.length; i++) {
+ CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter();
+ CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking';
+ CiderAudio.audioNodes.audioBands[i].frequency.value = BANDS[i];
+ CiderAudio.audioNodes.audioBands[i].Q.value = Q[i];
+ CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix;
+ }
+
+ for (let i = 1; i < BANDS.length; i++) {
+ CiderAudio.audioNodes.audioBands[i - 1].connect(CiderAudio.audioNodes.audioBands[i]);
+ }
+
+ switch (hierarchy) {
+ case 0:
+ try {
+ CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination);
+ } catch (e) { }
+ break;
+ }
+
+ }
}
-
}
-if (app.cfg.advanced.AudioContext){
- CiderAudio.init()
-
-}
\ No newline at end of file
+export { CiderAudio }
\ No newline at end of file
diff --git a/src/renderer/audio/impulses/CAP_Natural.wav b/src/renderer/audio/impulses/CAP_Natural.wav
new file mode 100644
index 00000000..349fbaac
Binary files /dev/null and b/src/renderer/audio/impulses/CAP_Natural.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav
new file mode 100644
index 00000000..59fc21a7
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav
new file mode 100644
index 00000000..9ddb6127
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_v69_Audiophile.wav b/src/renderer/audio/impulses/CiderSpatial_v69_Audiophile.wav
new file mode 100644
index 00000000..982d9d46
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69_Audiophile.wav differ
diff --git a/src/renderer/audio/impulses/CiderSpatial_v69_Standard.wav b/src/renderer/audio/impulses/CiderSpatial_v69_Standard.wav
new file mode 100644
index 00000000..947d6f65
Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69_Standard.wav differ
diff --git a/src/renderer/index.js b/src/renderer/index.js
index 5e58911c..879b017a 100644
--- a/src/renderer/index.js
+++ b/src/renderer/index.js
@@ -1,4 +1,3 @@
-Vue.use(VueObserveVisibility);
var notyf = new Notyf();
const MusicKitObjects = {
@@ -14,3567 +13,15 @@ const MusicKitObjects = {
}
}
-const MusicKitTools = {
- getHeader() {
- return new Headers({
- Authorization: 'Bearer ' + MusicKit.getInstance().developerToken,
- Accept: 'application/json',
- 'Content-Type': 'application/json',
- 'Music-User-Token': '' + MusicKit.getInstance().musicUserToken
- });
- }
-}
-
// limit an array to a certain number of items
Array.prototype.limit = function (n) {
return this.slice(0, n);
};
-const store = new Vuex.Store({
- state: {
- library: {
- songs: ipcRenderer.sendSync("get-library-songs"),
- albums: ipcRenderer.sendSync("get-library-albums"),
- recentlyAdded: ipcRenderer.sendSync("get-library-recentlyAdded"),
- playlists: ipcRenderer.sendSync("get-library-playlists")
- },
- artwork: {
- playerLCD: ""
- }
- },
- mutations: {
- setLCDArtwork(state, artwork) {
- state.artwork.playerLCD = artwork
- }
- }
-})
-
-const app = new Vue({
- el: "#app",
- store: store,
- data: {
- appMode: "player",
- ipcRenderer: ipcRenderer,
- cfg: ipcRenderer.sendSync("getStore"),
- isDev: ipcRenderer.sendSync("is-dev"),
- drawertest: false,
- platform: "",
- mk: {},
- quickPlayQuery: "",
- lz: ipcRenderer.sendSync("get-i18n", "en_US"),
- lzListing: ipcRenderer.sendSync("get-i18n-listing"),
- search: {
- term: "",
- hints: [],
- showHints: false,
- results: {},
- resultsSocial: {},
- limit: 10
- },
- fullscreenLyrics: false,
- playerLCD: {
- playbackDuration: 0,
- desiredDuration: 0,
- userInteraction: false
- },
- drawer: {
- open: false,
- panel: ""
- },
- browsepage: [],
- listennow: [],
- madeforyou: [],
- radio: {
- personal: []
- },
- webview: {
- url: "",
- title: "",
- loading: false
- },
- showingPlaylist: [],
- appleCurator: [],
- artistPage: {
- data: {},
- },
- library: {
- backgroundNotification: {
- show: false,
- message: "",
- total: 0,
- progress: 0
- },
- songs: {
- sortingOptions: {
- "albumName": "0",
- "artistName": "0",
- "name": "0",
- "genre": "0",
- "releaseDate": "0",
- "durationInMillis": "0"
- },
- sorting: "name",
- sortOrder: "asc",
- listing: [],
- meta: {total: 0, progress: 0},
- search: "",
- displayListing: [],
- downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library
- },
- albums: {
- sortingOptions: {
- "albumName": "0",
- "artistName": "0",
- "name": "0",
- "genre": "0"
- },
- viewAs: 'covers',
- sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page
- sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page
- listing: [],
- meta: {total: 0, progress: 0},
- search: "",
- displayListing: [],
- downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library
- },
- artists: {
- sortingOptions: {
- "artistName": "0",
- "name": "0",
- "genre": "0",
- "releaseDate": "0"
- },
- viewAs: 'covers',
- sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page
- sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page
- listing: [],
- meta: {total: 0, progress: 0},
- search: "",
- displayListing: [],
- downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library
- },
- },
- playlists: {
- listing: [],
- details: {},
- loadingState: 0, // 0 loading, 1 loaded, 2 error
- id: ""
- },
- webremoteurl: "",
- webremoteqr: "",
- mxmtoken: "",
- mkIsReady: false,
- playerReady: false,
- animateBackground: false,
- currentArtUrl: '',
- lyricon: false,
- currentTrackID: '',
- currentTrackIDBG: '',
- lyrics: [],
- currentLyricsLine: 0,
- lyriccurrenttime: 0,
- richlyrics: [],
- lyricsMediaItem: {},
- lyricsDebug: {
- current: 0,
- start: 0,
- end: 0
- },
- v3: {
- requestBody: {
- platform: "web"
- }
- },
- tmpHeight: '',
- tmpWidth: '',
- tmpVar: [],
- notification: false,
- chrome: {
- hideUserInfo: ipcRenderer.sendSync("is-dev") || false,
- artworkReady: false,
- userinfo: {
- "id": "",
- "attributes": {
- "name": "Cider User",
- "handle": "CiderUser",
- "artwork": {"url": "./assets/logocut.png"}
- }
- },
- menuOpened: false,
- maximized: false,
- drawerOpened: false,
- drawerState: "queue",
- topChromeVisible: true,
- progresshover: false,
- windowControlPosition: "right",
- contentAreaScrolling: true
- },
- collectionList: {
- response: {},
- title: "",
- type: ""
- },
- prevButtonBackIndicator: false,
- currentSongInfo: {},
- page: "",
- pageHistory: [],
- songstest: false,
- hangtimer: null,
- selectedMediaItems: [],
- routes: ["browse", "listen_now", "radio"],
- musicBaseUrl: "https://api.music.apple.com/",
- modals: {
- addToPlaylist: false,
- spatialProperties: false,
- qrcode: false,
- equalizer: false,
- audioSettings: false,
- showPlaylist: false,
- },
- socialBadges: {
- badgeMap: {},
- version: "",
- mediaItems: [],
- mediaItemDLState: 0 // 0 = not started, 1 = in progress, 2 = complete
- },
- menuPanel: {
- visible: false,
- event: null,
- content: {
- name: "",
- items: {},
- headerItems: {}
- }
- }
- },
- watch: {
- cfg: {
- handler: function (val, oldVal) {
- console.log(`cfg changed from ${oldVal} to ${val}`);
- ipcRenderer.send("setStore", val);
- },
- deep: true
- },
- page: () => {
- document.getElementById("app-content").scrollTo(0, 0);
- app.resetState()
- },
- showingPlaylist: () => {
- if (!app.modals.showPlaylist) {
- document.getElementById("app-content").scrollTo(0, 0);
- app.resetState()
- }
- },
- artistPage: () => {
- document.getElementById("app-content").scrollTo(0, 0);
- app.resetState()
- },
- },
- methods: {
- songLinkShare(amUrl) {
- notyf.open({type: "info", message: "Getting song.link share URL..."})
- let self = this
- httpRequest = new XMLHttpRequest();
- httpRequest.open('GET', `https://api.song.link/v1-alpha.1/links?url=${amUrl}&userCountry=US`, true);
- httpRequest.send();
- httpRequest.onreadystatechange = function () {
- if (httpRequest.readyState === 4) {
- if (httpRequest.status === 200) {
- let response = JSON.parse(httpRequest.responseText);
- console.log(response);
- self.copyToClipboard(response.pageUrl)
- } else {
- console.log('There was a problem with the request.');
- notyf.error("There was a problem with the request.")
- }
- }
- }
- },
- mainMenuVisibility(val) {
- if (val) {
- (this.chrome.userinfo.id) ? this.chrome.menuOpened = !this.chrome.menuOpened : false
- } else {
- setTimeout(() => {
- this.chrome.menuOpened = false
- }, 100)
- }
- },
- stringTemplateParser(expression, valueObj) {
- const templateMatcher = /{{\s?([^{}\s]*)\s?}}/g;
- let text = expression.replace(templateMatcher, (substring, value, index) => {
- value = valueObj[value];
- return value;
- });
- return text
- // stringTemplateParser('my name is {{name}} and age is {{age}}', {name: 'Tom', age:100})
- },
- setLz(lang) {
- if (lang == "") {
- lang = this.cfg.general.language
- }
- this.lz = ipcRenderer.sendSync("get-i18n", lang)
- },
- getLz(message) {
- if (this.lz[message]) {
- return this.lz[message]
- } else {
- return message
- }
- },
- setLzManual() {
- app.$data.library.songs.sortingOptions = {
- "albumName": app.getLz('term.sortBy.album'),
- "artistName": app.getLz('term.sortBy.artist'),
- "name": app.getLz('term.sortBy.name'),
- "genre": app.getLz('term.sortBy.genre'),
- "releaseDate": app.getLz('term.sortBy.releaseDate'),
- "durationInMillis": app.getLz('term.sortBy.duration')
- }
-
- app.$data.library.albums.sortingOptions = {
- "albumName": app.getLz('term.sortBy.album'),
- "artistName": app.getLz('term.sortBy.artist'),
- "name": app.getLz('term.sortBy.name'),
- "genre": app.getLz('term.sortBy.genre')
- }
-
- app.$data.library.artists.sortingOptions = {
- "artistName": app.getLz('term.sortBy.artist'),
- "name": app.getLz('term.sortBy.name'),
- "genre": app.getLz('term.sortBy.genre'),
- "releaseDate": app.getLz('term.sortBy.releaseDate')
- }
- },
- async showSocialListeningTo() {
- let contentIds = Object.keys(app.socialBadges.badgeMap)
- app.showCollection({data: this.socialBadges.mediaItems}, "Friends Listening To", "albums")
- if (this.socialBadges.mediaItemDLState == 1 || this.socialBadges.mediaItemDLState == 2) {
- return
- }
- this.socialBadges.mediaItemDLState = 2
- await asyncForEach(contentIds, async (item) => {
- try {
- let type = "albums"
- if (item.includes("pl.")) {
- type = "playlists"
- }
- if (item.includes("ra.")) {
- type = "stations"
- }
- let found = await app.mk.api.v3.music(`/v1/catalog/us/${type}/${item}`)
- this.socialBadges.mediaItems.push(found.data.data[0])
- } catch (e) {
-
- }
- })
- },
- async openAppleMusicURL(url) {
- let properties = MusicKit.formattedMediaURL(url)
- let item = {
- id: properties.contentId,
- attributes: {
- playParams: {
- id: properties.contentId,
- kind: properties.kind,
- }
- },
- type: properties.kind,
- kind: properties.kind
- }
- app.routeView(item)
- },
- async showMenuPanel(data, event) {
- app.menuPanel.visible = true;
- app.menuPanel.content.name = data.name ?? "";
- app.menuPanel.content.items = data.items ?? {};
- app.menuPanel.content.headerItems = data.headerItems ?? {};
- if (event) {
- app.menuPanel.event = event;
- }
- },
- async getSvgIcon(url) {
- let response = await fetch(url);
- let data = await response.text();
- return data;
- },
- getSocialBadges(cb = () => {
- }) {
- let self = this
- try {
- app.mk.api.v3.music("/v1/social/badging-map").then(data => {
- self.socialBadges.badgeMap = data.data.results.badgingMap
- cb(data.data.results.badgingMap)
- })
- } catch (ex) {
- this.socialBadges.badgeMap = {}
- }
- },
- addFavorite(id, type) {
- this.cfg.home.favoriteItems.push({
- id: id,
- type: type
- });
- },
- modularUITest(val = false) {
- this.fullscreenLyrics = val;
- if (val) {
- document.querySelector("#app-main").classList.add("modular-fs")
- } else {
- document.querySelector("#app-main").classList.remove("modular-fs")
- }
- },
- navigateBack() {
- history.back()
- },
- navigateForward() {
- history.forward()
- },
- getHTMLStyle() {
- document.querySelector("html").style.background = "#222";
- document.querySelector("body").classList.add("notransparency")
- },
- resetState() {
- this.menuPanel.visible = false;
- app.selectedMediaItems = [];
- this.chrome.contentAreaScrolling = true
- for (let key in app.modals) {
- app.modals[key] = false;
- }
- },
- promptAddToPlaylist() {
- app.modals.addToPlaylist = true;
- },
- async addSelectedToNewPlaylist() {
- let self = this
- let pl_items = []
- for (let i = 0; i < self.selectedMediaItems.length; i++) {
- if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") {
- self.selectedMediaItems[i].kind = "songs"
- pl_items.push({
- id: self.selectedMediaItems[i].id,
- type: self.selectedMediaItems[i].kind
- })
- } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) {
- self.selectedMediaItems[i].kind = "albums"
- let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`);
- let ids = res.data.data.map(function (i) {
- return {id: i.id, type: i.type}
- })
- pl_items = pl_items.concat(ids)
- } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") {
- self.selectedMediaItems[i].kind = "library-songs"
- pl_items.push({
- id: self.selectedMediaItems[i].id,
- type: self.selectedMediaItems[i].kind
- })
- } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) {
- self.selectedMediaItems[i].kind = "library-albums"
- let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`);
- let ids = res.data.data.map(function (i) {
- return {id: i.id, type: i.type}
- })
- pl_items = pl_items.concat(ids)
- } else {
- pl_items.push({
- id: self.selectedMediaItems[i].id,
- type: self.selectedMediaItems[i].kind
- })
- }
- }
- this.modals.addToPlaylist = false
- app.newPlaylist(app.getLz('term.newPlaylist'), pl_items)
- },
- async addSelectedToPlaylist(playlist_id) {
- let self = this
- let pl_items = []
- for (let i = 0; i < self.selectedMediaItems.length; i++) {
- if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") {
- self.selectedMediaItems[i].kind = "songs"
- pl_items.push({
- id: self.selectedMediaItems[i].id,
- type: self.selectedMediaItems[i].kind
- })
- } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) {
- self.selectedMediaItems[i].kind = "albums"
- let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`);
- let ids = res.data.data.map(function (i) {
- return {id: i.id, type: i.type}
- })
- pl_items = pl_items.concat(ids)
- } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") {
- self.selectedMediaItems[i].kind = "library-songs"
- pl_items.push({
- id: self.selectedMediaItems[i].id,
- type: self.selectedMediaItems[i].kind
- })
- } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) {
- self.selectedMediaItems[i].kind = "library-albums"
- let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`);
- let ids = res.data.data.map(function (i) {
- return {id: i.id, type: i.type}
- })
- pl_items = pl_items.concat(ids)
- } else {
- pl_items.push({
- id: self.selectedMediaItems[i].id,
- type: self.selectedMediaItems[i].kind
- })
- }
-
- }
- this.modals.addToPlaylist = false
- await app.mk.api.v3.music(
- `/v1/me/library/playlists/${playlist_id}/tracks`, {}, {
- fetchOptions: {
- method: "POST",
- body: JSON.stringify({
- data: pl_items
- })
- }
- }
- ).then(() => {
- if (this.page == 'playlist_' + this.showingPlaylist.id) {
- this.getPlaylistFromID(this.showingPlaylist.id)
- }
- })
- },
- async init() {
- let self = this
- if (this.cfg.visual.theme != "default.less" && this.cfg.visual.theme != "") {
- this.setTheme(this.cfg.visual.theme)
- }
- this.setLz(this.cfg.general.language)
- this.setLzManual()
- clearTimeout(this.hangtimer)
- this.mk = MusicKit.getInstance()
- let needsReload = (typeof localStorage["music.ampwebplay.media-user-token"] == "undefined")
- this.mk.authorize().then(() => {
- self.mkIsReady = true
- if (needsReload) {
- document.location.reload()
- }
- })
- this.$forceUpdate()
- if (this.isDev) {
- this.mk.privateEnabled = true
- // Hide UserInfo if Dev mode
- } else {
- // Get Hide User from Settings
- this.chrome.hideUserInfo = !this.cfg.visual.showuserinfo
- }
- if (this.cfg.visual.hw_acceleration == "disabled") {
- document.body.classList.add("no-gpu")
- }
- this.mk._services.timing.mode = 0
- this.platform = ipcRenderer.sendSync('cider-platform');
-
- try {
- // Set profile name
- this.chrome.userinfo = (await app.mk.api.v3.music(`/v1/me/social-profile`)).data.data[0]
- } catch (err) {
- }
-
- // API Fallback
- if (!this.chrome.userinfo) {
- this.chrome.userinfo = {
- "id": "",
- "attributes": {
- "name": "Cider User",
- "handle": "CiderUser",
- "artwork": {"url": "./assets/logocut.png"}
- }
- }
- }
- MusicKitInterop.init()
- // Set the volume
-
- // Check the value of this.cfg.audio.muted
- if (!this.cfg.audio.muted) {
- // Set the mk.volume to the last stored volume data
- this.mk.volume = this.cfg.audio.volume
- } else if (this.cfg.audio.muted) {
- // Set mk.volume to -1 (setting to 0 wont work, so temp solution setting to -1)
- this.mk.volume = -1;
- }
- // ipcRenderer.invoke('getStoreValue', 'audio.volume').then((value) => {
- // self.mk.volume = value
- // })
-
- // load cached library
- if (localStorage.getItem("librarySongs") != null) {
- this.library.songs.listing = JSON.parse(localStorage.getItem("librarySongs"))
- this.library.songs.displayListing = this.library.songs.listing
- }
- if (localStorage.getItem("libraryAlbums") != null) {
- this.library.albums.listing = JSON.parse(localStorage.getItem("libraryAlbums"))
- this.library.albums.displayListing = this.library.albums.listing
- }
-
- window.onbeforeunload = function (e) {
- window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem))
- window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime))
- window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue.items))
- };
-
- if (typeof MusicKit.PlaybackBitrate[app.cfg.audio.quality] !== "string") {
- app.mk.bitrate = MusicKit.PlaybackBitrate[app.cfg.audio.quality]
- } else {
- app.mk.bitrate = 256
- app.cfg.audio.quality = "HIGH"
- }
-
- // load last played track
- try {
- let lastItem = window.localStorage.getItem("currentTrack")
- let time = window.localStorage.getItem("currentTime")
- let queue = window.localStorage.getItem("currentQueue")
- if (lastItem != null) {
- lastItem = JSON.parse(lastItem)
- let kind = lastItem.attributes.playParams.kind;
- let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
- app.mk.setQueue({
- [truekind]: [lastItem.attributes.playParams.id]
- })
- app.mk.mute()
- setTimeout(() => {
- app.mk.play().then(() => {
- app.mk.pause().then(() => {
- if (time != null) {
- app.mk.seekToTime(time)
- }
- app.mk.unmute()
- if (queue != null) {
- queue = JSON.parse(queue)
- if (queue && queue.length > 0) {
- let ids = queue.map(e => (e.playParams ? e.playParams.id : (e.attributes.playParams ? e.attributes.playParams.id : '')))
- let i = 0;
- if (ids.length > 0) {
- for (id of ids) {
- if (!(i == 0 && ids[0] == lastItem.attributes.playParams.id)) {
- try {
- app.mk.playLater({songs: [id]})
- } catch (err) {
- }
- }
- i++;
- }
- }
- }
- }
-
- })
-
- })
- }, 1500)
-
- }
-
- } catch (e) {
- console.log(e)
- }
-
- MusicKit.getInstance().videoContainerElement = document.getElementById("apple-music-video-player")
-
- ipcRenderer.on('SoundCheckTag', (event, tag) => {
- let replaygain = self.parseSCTagToRG(tag)
- try {
- CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak)))
- } catch (e) {
-
- }
- })
-
- ipcRenderer.on('play', function(_event, mode, id) {
- if (mode !== 'url'){
- self.mk.setQueue({[mode]: id}).then(() => {
- app.mk.play()
- })
-
- } else {
- app.openAppleMusicURL(id)
- }
- });
-
- this.mk.addEventListener(MusicKit.Events.playbackStateDidChange, () => {
- ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes());
- })
-
- this.mk.addEventListener(MusicKit.Events.playbackTimeDidChange, (a) => {
- self.lyriccurrenttime = self.mk.currentPlaybackTime
- this.currentSongInfo = a
- self.playerLCD.playbackDuration = (self.mk.currentPlaybackTime)
- // wsapi
- ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes());
- })
-
- this.mk.addEventListener(MusicKit.Events.nowPlayingItemDidChange, (a) => {
- if (self.$refs.queue) {
- self.$refs.queue.updateQueue();
- }
- this.currentSongInfo = a
-
-
- if (app.cfg.audio.normalization) {
- // get unencrypted audio previews to get SoundCheck's normalization tag
- try {
- let previewURL = null
- try {
- previewURL = app.mk.nowPlayingItem.previewURL
- } catch (e) {
- }
- if (!previewURL) {
- app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/songs/${app.mk.nowPlayingItem._songId ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id}`).then((response) => {
- previewURL = response.data.data[0].attributes.previews[0].url
- if (previewURL)
- ipcRenderer.send('getPreviewURL', previewURL)
- })
- } else {
- if (previewURL)
- ipcRenderer.send('getPreviewURL', previewURL)
- }
-
- } catch (e) {
- }
- }
-
-
- try {
- a = a.item.attributes;
- } catch (_) {
- }
- let type = (self.mk.nowPlayingItem != null) ? self.mk.nowPlayingItem["type"] ?? '' : '';
-
- if (type.includes("musicVideo") || type.includes("uploadedVideo") || type.includes("music-movie")) {
- document.getElementById("apple-music-video-container").style.display = "block";
- // app.chrome.topChromeVisible = false
- } else {
- document.getElementById("apple-music-video-container").style.display = "none";
- // app.chrome.topChromeVisible = true
- }
- self.chrome.artworkReady = false
- self.lyrics = []
- self.richlyrics = []
- app.getCurrentArtURL();
- // app.getNowPlayingArtwork(42);
- app.getNowPlayingArtworkBG(32);
- app.loadLyrics();
- app.losslessBadge();
-
- // Playback Notifications
- if (this.cfg.general.playbackNotifications && !document.hasFocus() && a.artistName && a.artwork && a.name) {
- if (this.notification) {
- this.notification.close()
- }
- this.notification = new Notification(a.name, {
- body: a.artistName,
- icon: a.artwork.url.replace('/{w}x{h}bb', '/512x512bb').replace('/2000x2000bb', '/35x35bb'),
- silent: true,
- });
- }
-
- })
-
-
- this.mk.addEventListener(MusicKit.Events.playbackVolumeDidChange, (_a) => {
- this.cfg.audio.volume = this.mk.volume
- })
-
- this.refreshPlaylists()
- document.body.removeAttribute("loading")
- if (window.location.hash != "") {
- this.appRoute(window.location.hash)
- } else {
- this.page = "home"
- }
-
- setTimeout(() => {
- this.getSocialBadges()
- this.getBrowsePage();
- this.$forceUpdate()
- }, 500)
- },
- setTheme(theme = "") {
- console.log(theme)
- if (this.cfg.visual.theme == "") {
- this.cfg.visual.theme = "default.less"
- }
- if (theme == "") {
- theme = this.cfg.visual.theme
- } else {
- this.cfg.visual.theme = theme
- }
- document.querySelector("#userTheme").href = `themes/${this.cfg.visual.theme}`
- document.querySelectorAll(`[id*='less']`).forEach(el => {
- el.remove()
- });
- less.refresh()
- },
- unauthorize() {
- this.mk.unauthorize()
- document.location.reload()
- },
- getAppClasses() {
- let classes = {}
- if (this.cfg.advanced.experiments.includes('compactui')) {
- classes.compact = true
- }
- if (this.cfg.visual.window_background_style == "none") {
- classes.simplebg = true
- }
- return classes
- },
- invokeDrawer(panel) {
- if (this.drawer.panel == panel && this.drawer.open) {
- if (panel == "lyrics") {
- this.lyricon = false
- }
- this.drawer.panel = ""
- this.drawer.open = false
- } else {
- if (panel == "lyrics") {
- this.lyricon = true
- } else {
- this.lyricon = false
- }
- this.drawer.open = true
- this.drawer.panel = panel
- }
- },
- select_removeMediaItem(id) {
- this.selectedMediaItems.filter(item => item.guid == id).forEach(item => {
- this.selectedMediaItems.splice(this.selectedMediaItems.indexOf(item), 1)
- })
- },
- select_hasMediaItem(id) {
- let found = this.selectedMediaItems.find(item => item.guid == id)
- if (found) {
- return true
- } else {
- return false
- }
- },
- select_selectMediaItem(id, kind, index, guid, library) {
- if (!this.select_hasMediaItem(guid)) {
- this.selectedMediaItems.push({
- id: id,
- kind: kind,
- index: index,
- guid: guid,
- isLibrary: library
- })
- }
- },
- getPlaylistFolderChildren(id) {
- return this.playlists.listing.filter(playlist => {
- if (playlist.parent == id) {
- return playlist
- }
- })
- },
- async refreshPlaylists() {
- let self = this
- this.apiCall('https://api.music.apple.com/v1/me/library/playlist-folders/p.playlistsroot/children/', res => {
- self.playlists.listing = res.data
- self.playlists.listing.forEach(playlist => {
- playlist.parent = "p.playlistsroot"
- })
- self.sortPlaylists()
- })
- },
- sortPlaylists() {
- this.playlists.listing.sort((a, b) => {
- if (a.type === "library-playlist-folders" && b.type !== "library-playlist-folders") {
- return -1
- } else if (a.type !== "library-playlist-folders" && b.type === "library-playlist-folders") {
- return 1
- } else {
- return 0
- }
- })
- },
- playlistHeaderContextMenu(event) {
- let menu = {
- items: [{
- name: app.getLz('term.createNewPlaylist'),
- action: () => {
- this.newPlaylist()
- }
- },
- {
- name: app.getLz('term.createNewPlaylistFolder'),
- action: () => {
- this.newPlaylistFolder()
- }
- }
- ]
- }
- this.showMenuPanel(menu, event)
- },
- async editPlaylistFolder(id, name = app.getLz('term.newPlaylist')) {
- let self = this
- this.mk.api.v3.music(
- `/v1/me/library/playlist-folders/${id}`, {}, {
- fetchOptions: {
- method: "PATCH",
- body: JSON.stringify({
- attributes: {name: name}
- })
- }
- }
- ).then(res => {
- self.refreshPlaylists()
- })
- },
- async editPlaylist(id, name = app.getLz('term.newPlaylist')) {
- let self = this
- this.mk.api.v3.music(
- `/v1/me/library/playlists/${id}`, {}, {
- fetchOptions: {
- method: "PATCH",
- body: JSON.stringify({
- attributes: {name: name}
- })
- }
- }
- ).then(res => {
- self.refreshPlaylists()
- })
- },
- copyToClipboard(str) {
- if (navigator.userAgent.includes('Darwin') || navigator.appVersion.indexOf("Mac")!=-1) {
- this.darwinShare(str)
- } else {
- notyf.success(app.getLz('term.share.success'))
- navigator.clipboard.writeText(str).then(r => console.log("Copied to clipboard."))
- }
- },
- newPlaylist(name = app.getLz('term.newPlaylist'), tracks = []) {
- let self = this
- let request = {
- name: name
- }
- if (tracks.length > 0) {
- request.tracks = tracks
- }
- app.mk.api.v3.music(`/v1/me/library/playlists`, {}, {
- fetchOptions: {
- method: "POST",
- body: JSON.stringify({
- "attributes": {"name": name},
- "relationships": {
- "tracks": {"data": tracks},
- }
- })
- }
- }).then(res => {
- res = res.data.data[0]
- console.log(res)
- self.appRoute(`playlist_` + res.id);
- self.showingPlaylist = [];
- self.getPlaylistFromID(app.page.substring(9))
- self.playlists.listing.push({
- id: res.id,
- attributes: {
- name: name
- },
- parent: "p.playlistsroot"
- })
- self.sortPlaylists()
- setTimeout(() => {
- app.refreshPlaylists()
- }, 8000)
- })
- },
- deletePlaylist(id) {
- let self = this
- if (confirm(app.getLz('term.deletePlaylist'))) {
- app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, {}, {
- fetchOptions: {
- method: "DELETE"
- }
- }).then(res => {
- // remove this playlist from playlists.listing if it exists
- let found = self.playlists.listing.find(item => item.id == id)
- if (found) {
- self.playlists.listing.splice(self.playlists.listing.indexOf(found), 1)
- }
- })
- }
- },
- async showCollection(response, title, type, requestBody = {}) {
- let self = this
- console.log(response)
- this.collectionList.requestBody = {}
- this.collectionList.response = response
- this.collectionList.title = title
- this.collectionList.type = type
- this.collectionList.requestBody = requestBody
- app.appRoute("collection-list")
- },
- async showArtistView(artist, title, view) {
- let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artist}/view/${view}`, {}, {includeResponseMeta: !0})).data
- console.log(response)
- await this.showCollection(response, title, "artists")
- },
- async showRecordLabelView(label, title, view) {
- let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/record-labels/${label}/view/${view}`)).data
- await this.showCollection(response, title, "record-labels")
- },
- async showSearchView(term, group, title) {
-
- let requestBody = {
- platform: "web",
- groups: group,
- types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels",
- limit: 25,
- relate: {
- editorialItems: ["contents"]
- },
- include: {
- albums: ["artists"],
- songs: ["artists"],
- "music-videos": ["artists"]
- },
- extend: "artistUrl",
- fields: {
- artists: "url,name,artwork,hero",
- albums: "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url"
- },
- with: "serverBubbles,lyricHighlights",
- art: {
- "url": "cf"
- },
- omit: {
- resource: ["autos"]
- },
- groups: group
- }
- let response = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${term}`, requestBody, {
- includeResponseMeta: !0
- })
-
- console.log('searchres', response)
- let responseFormat = {
- data: response.data.results[group].data,
- next: response.data.results[group].next,
- groups: group
- }
- await this.showCollection(responseFormat, title, "search", requestBody)
- },
- async getPlaylistContinuous(response, transient = false) {
- response = response.data.data[0]
- let self = this
- let playlistId = response.id
- if (!transient) this.playlists.loadingState = 0
- this.showingPlaylist = response
- if (!response.relationships.tracks.next) {
- this.playlists.loadingState = 1
- return
- }
-
- function getPlaylistTracks(next) {
- app.apiCall(app.musicBaseUrl + next, res => {
- if (self.showingPlaylist.id != playlistId) {
- return
- }
- self.showingPlaylist.relationships.tracks.data = self.showingPlaylist.relationships.tracks.data.concat(res.data)
- if (res.next) {
- getPlaylistTracks(res.next)
- } else {
- self.playlists.loadingState = 1
- }
- })
- }
-
- getPlaylistTracks(response.relationships.tracks.next)
-
- },
- async getPlaylistFromID(id, transient = false) {
- let self = this
- const params = {
- include: "tracks",
- platform: "web",
- "include[library-playlists]": "catalog,tracks",
- "fields[playlists]": "curatorName,playlistType,name,artwork,url,playParams",
- "include[library-songs]": "catalog,artists,albums,playParams,name,artwork,url",
- "fields[catalog]": "artistUrl,albumUrl,url",
- "fields[songs]": "artistUrl,albumUrl,playParams,name,artwork,url,artistName,albumName,durationInMillis"
- }
- if (!transient) {
- this.playlists.loadingState = 0;
- }
- app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, params).then(res => {
- self.getPlaylistContinuous(res, transient)
- }).catch((e) => {
- console.log(e);
- try {
- app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`, params).then(res => {
- self.getPlaylistContinuous(res, transient)
- })
- } catch (err) {
- console.log(err)
- }
- })
-
- },
- async getArtistFromID(id) {
- this.page = ""
- const artistData = await this.mkapi("artists", false, id, {
- "views": "featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see",
- "extend": "artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero",
- "extend[playlists]": "trackCount",
- "include[songs]": "albums",
- "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount",
- "limit[artists:top-songs]": 20,
- "art[url]": "f"
- }, {includeResponseMeta: !0})
- console.log(artistData.data.data[0])
- this.artistPage.data = artistData.data.data[0]
- this.page = "artist-page"
- },
- progressBarStyle() {
- let val = this.playerLCD.playbackDuration
- if (this.playerLCD.desiredDuration > 0) {
- val = this.playerLCD.desiredDuration
- }
- let min = 0
- let max = this.mk.currentPlaybackDuration
- let value = (val - min) / (max - min) * 100
- return {
- 'background': ('linear-gradient(to right, var(--keyColor) 0%, var(--keyColor) ' + value + '%, #333 ' + value + '%, #333 100%)')
- }
- },
- async getRecursive(response) {
- // if response has a .next() property run it and keep running until .next is null or undefined
- // and then return the response concatenated with the results of the next() call
- function executeRequest() {
- if (response.next) {
- return response.next().then(executeRequest)
- } else {
- return response
- }
- }
-
- return executeRequest()
- },
- async getRecursive2(response, sendTo) {
- let returnData = {
- "data": [],
- "meta": {}
- }
- if (response.next) {
- console.log("has next")
- returnData.data.concat(response.data)
- returnData.meta = response.meta
- return await this.getRecursive(await response.next())
- } else {
- console.log("no next")
- returnData.data.concat(response.data)
- return returnData
- }
- },
- async getSearchHints() {
- if (this.search.term == "") {
- this.search.hints = []
- return
- }
- let hints = await (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search/hints?term=${this.search.term}`)).data.results
- this.search.hints = hints ? hints.terms : []
- },
- getSongProgress() {
- if (this.playerLCD.userInteraction) {
- return this.playerLCD.desiredDuration
- } else {
- return this.playerLCD.playbackDuration
- }
- },
- convertTime(time) {
- if (typeof time !== "number") {
- time = parseInt(time)
- }
-
- const timeGates = {
- 600: 15,
- 3600: 14,
- 36000: 12,
- }
-
- for (let key in timeGates) {
- if (time < key) {
- return new Date(time * 1000).toISOString().substring(timeGates[key], 19)
- }
- }
-
- return new Date(time * 1000).toISOString().substring(11, 19)
- },
- hashCode(str) {
- let hash = 0,
- i, chr;
- if (str.length === 0) return hash;
- for (i = 0; i < str.length; i++) {
- chr = str.charCodeAt(i);
- hash = ((hash << 5) - hash) + chr;
- hash |= 0; // Convert to 32bit integer
- }
- return hash;
- },
- appRoute(route) {
- console.log(route)
- if (route == "" || route == "#" || route == "/") {
- return;
- }
- route = route.replace(/#/g, "")
- // if the route contains does not include a / then route to the page directly
- if (route.indexOf("/") == -1) {
- this.page = route
- window.location.hash = this.page
- return
- }
- let hash = route.split("/")
- let page = hash[0]
- let id = hash[1]
- let isLibrary = hash[2] ?? false
- console.log(`page: ${page} id: ${id} isLibrary: ${isLibrary}`)
- this.routeView({
- kind: page,
- id: id,
- attributes: {
- playParams: {kind: page, id: id, isLibrary: isLibrary}
- }
- })
- },
- routeView(item) {
- let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? ''));
- let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? ''));
- ;
- let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false;
- console.log(kind, id, isLibrary)
- if (kind.includes("playlist") || kind.includes("album")) {
- app.showingPlaylist = [];
- }
- if (kind.toString().includes("apple-curator")) {
- kind = "appleCurator"
- app.getTypeFromID("appleCurator", (id), false, {
- platform: "web",
- include: "grouping,playlists",
- extend: "editorialArtwork",
- "art[url]": "f"
- });
- window.location.hash = `${kind}/${id}`
- document.querySelector("#app-content").scrollTop = 0
- } else if (kind.toString().includes("artist")) {
- app.getArtistInfo(id, isLibrary)
- window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}`
- document.querySelector("#app-content").scrollTop = 0
-
- } else if (kind.toString().includes("record-label") || kind.toString().includes("curator")) {
- if (kind.toString().includes("record-label")) {
- kind = "recordLabel"
- } else {
- kind = "curator"
- }
- app.page = (kind) + "_" + (id);
- app.getTypeFromID((kind), (id), (isLibrary), {
- extend: "editorialVideo",
- include: 'grouping,playlists',
- views: 'top-releases,latest-releases,top-artists'
- });
- window.location.hash = `${kind}/${id}`
- document.querySelector("#app-content").scrollTop = 0
- } else if (!kind.toString().includes("radioStation") && !kind.toString().includes("song") && !kind.toString().includes("musicVideo") && !kind.toString().includes("uploadedVideo") && !kind.toString().includes("music-movie")) {
- let params = {
- extend: "offers,editorialVideo",
- "views": "appears-on,more-by-artist,related-videos,other-versions,you-might-also-like,video-extras,audio-extras",
- }
-
- if (this.cfg.advanced.experiments.includes('inline-playlists')) {
- let showModal = kind.toString().includes("album") || kind.toString().includes("playlist")
- if (app.page.includes("playlist") || app.page.includes("album")) {
- showModal = false
- }
- if (showModal) {
- app.modals.showPlaylist = true
- app.chrome.contentAreaScrolling = false
- } else {
- app.page = (kind) + "_" + (id);
- window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}`
- }
- } else {
- app.page = (kind) + "_" + (id);
- window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}`
- }
-
-
- app.getTypeFromID((kind), (id), (isLibrary), params);
- // document.querySelector("#app-content").scrollTop = 0
- } else {
- app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '')
- }
- },
- prevButton() {
- if (!app.prevButtonBackIndicator && app.mk.nowPlayingItem && app.mk.currentPlaybackTime > 2) {
- app.prevButtonBackIndicator = true;
- app.mk.seekToTime(0);
- } else {
- app.prevButtonBackIndicator = false;
- app.mk.skipToPreviousItem()
- }
- },
- async getNowPlayingItemDetailed(target) {
- let u = await app.mkapi(app.mk.nowPlayingItem.playParams.kind, (app.mk.nowPlayingItem.songId == -1), (app.mk.nowPlayingItem.songId != -1) ? app.mk.nowPlayingItem.songId : app.mk.nowPlayingItem["id"], {"include[songs]": "albums,artists"});
- app.searchAndNavigate(u.data.data[0], target)
- },
- async searchAndNavigate(item, target) {
- let self = this
- app.tmpVar = item;
- switch (target) {
- case "artist":
- let artistId = '';
- try {
- if (item.relationships.artists && item.relationships.artists.data.length > 0 && !item.relationships.artists.data[0].type.includes("library")) {
- if (item.relationships.artists.data[0].type === "artist" || item.relationships.artists.data[0].type === "artists") {
- artistId = item.relationships.artists.data[0].id
- }
- }
- if (artistId == '') {
- const url = (item.relationships.catalog.data[0].attributes.artistUrl);
- artistId = (url).substring(url.lastIndexOf('/') + 1)
- if (artistId.includes('viewCollaboration')) {
- artistId = artistId.substring(artistId.lastIndexOf('ids=') + 4, artistId.lastIndexOf('-'))
- }
- }
- } catch (_) {
- }
-
- if (artistId == "") {
- let artistQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.artistName}`, {
- limit: 1,
- types: 'artists'
- })).data.results;
- try {
- if (artistQuery.artists.data.length > 0) {
- artistId = artistQuery.artists.data[0].id;
- console.log(artistId)
- }
- } catch (e) {
- }
- }
- console.log(artistId);
- if (artistId != "")
- self.appRoute(`artist/${artistId}`)
- break;
- case "album":
- let albumId = '';
- try {
- if ((item.type ?? item.playParams?.kind ?? "") == "albums") {
- albumId = item.id ?? ""
- } else if (item.relationships.albums && item.relationships.albums.data.length > 0 && !item.relationships.albums.data[0].type.includes("library")) {
- if (item.relationships.albums.data[0].type === "album" || item.relationships.albums.data[0].type === "albums") {
- albumId = item.relationships.albums.data[0].id
- }
- }
- if (albumId == '') {
- const url = (item.relationships.catalog.data[0].attributes.url);
- albumId = (url).substring(url.lastIndexOf('/') + 1)
- if (albumId.includes("?i=")) {
- albumId = albumId.substring(0, albumId.indexOf("?i="))
- }
- }
- } catch (_) {
- }
-
- if (albumId == "") {
- try {
- let albumQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${(item.attributes.albumName ?? item.attributes.name ?? "") + " " + (item.attributes.artistName ?? "")}`, {
- limit: 1,
- types: 'albums'
- })).data.results;
- if (albumQuery.albums.data.length > 0) {
- albumId = albumQuery.albums.data[0].id;
- console.log(albumId)
- }
- } catch (e) {
- }
- }
- if (albumId != "") {
- self.appRoute(`album/${albumId}`)
- }
- break;
- case "recordLabel":
- let labelId = '';
- try {
- labelId = item.relationships['record-labels'].data[0].id
- } catch (_) {
- }
-
- if (labelId == "") {
- try {
- let labelQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.recordLabel}`, {
- limit: 1,
- types: 'record-labels'
- })).data.results;
- if (labelQuery["record-labels"].data.length > 0) {
- labelId = labelQuery["record-labels"].data[0].id;
- console.log(labelId)
- }
- } catch (e) {
- }
- }
- if (labelId != "") {
- app.showingPlaylist = []
- await app.getTypeFromID("recordLabel", labelId, false, {views: 'top-releases,latest-releases,top-artists'});
- app.page = "recordLabel_" + labelId;
- }
-
- break;
- }
- },
- exitMV() {
- MusicKit.getInstance().stop()
- document.getElementById("apple-music-video-container").style.display = "none";
- },
- getArtistInfo(id, isLibrary) {
- this.getArtistFromID(id)
- //this.getTypeFromID("artist",id,isLibrary,query)
- },
- playMediaItem(item) {
- let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? ''));
- let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? ''));
- ;
- let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false;
- let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
- console.log(kind, id, isLibrary)
- app.mk.stop().then(() => {
- if (kind.includes("artist")) {
- app.mk.setStationQueue({artist: 'a-' + id}).then(() => {
- app.mk.play()
- })
- }
- // else if (kind.includes("playlist") && (id.startsWith("p.") || id.startsWith("pl."))){
- // /* Randomize array in-place using Durstenfeld shuffle algorithm */
- // function shuffleArray(array) {
- // for (var i = array.length - 1; i > 0; i--) {
- // var j = Math.floor(Math.random() * (i + 1));
- // var temp = array[i];
- // array[i] = array[j];
- // array[j] = temp;
- // }
- // }
- // app.mk.clearQueue().then(function () { {
- // app.mk.setQueue({[truekind]: [item.attributes.playParams.id ?? item.id]}).then(function () {
- // app.mk.play().then(function (){
- // app.mk.clearQueue().then(function (){
- // var playlistId = id
- // const params = {
- // include: "tracks",
- // platform: "web",
- // "include[library-playlists]": "catalog,tracks",
- // "fields[playlists]": "curatorName,playlistType,name,artwork,url",
- // "include[library-songs]": "catalog,artists,albums",
- // "fields[catalog]": "artistUrl,albumUrl",
- // "fields[songs]": "artistUrl,albumUrl"
- // }
- // var playlistId = ''
-
- // try {
- // function getPlaylist(id, params, isLibrary){
- // if (isLibrary){
- // return app.mk.api.library.playlist(id, params)
- // } else { return app.mk.api.playlist(id, params)}
- // }
- // getPlaylist(id, params, isLibrary).then(res => {
- // let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
- // if (app.mk.shuffleMode == 1){shuffleArray(query); console.log('shf')}
- // app.mk.queue.append(query)
- // if (!res.relationships.tracks.next) {
- // return
- // } else {
- // getPlaylistTracks(res.relationships.tracks.next)
- // }
-
- // function getPlaylistTracks(next) {
- // app.apiCall(app.musicBaseUrl + next, res => {
- // if (res.id != playlistId) {
- // return
- // }
- // let query = res.data.map(item => new MusicKit.MediaItem(item))
- // if (app.mk.shuffleMode == 1){shuffleArray(query); console.log('shf')}
- // app.mk.queue.append(query)
-
- // if (res.next) {
- // getPlaylistTracks(res.next)
- // }
- // })
- // }
- // })
- // } catch (e) {}
-
-
- // })
- // })
- // })
- // }
- // })
- // }
- else {
- app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '')
- }
- })
- },
- async getTypeFromID(kind, id, isLibrary = false, params = {}, params2 = {}) {
- let a;
- if (kind == "album" | kind == "albums") {
- params["include"] = "tracks,artists,record-labels,catalog";
- }
- try {
- a = await this.mkapi(kind.toString(), isLibrary, id.toString(), params, params2);
- } catch (e) {
- console.log(e);
- try {
- a = await this.mkapi(kind.toString(), !isLibrary, id.toString(), params, params2);
- } catch (err) {
- console.log(err);
- a = []
- } finally {
- if (kind == "appleCurator") {
- app.appleCurator = a.data.data[0]
- } else {
- this.getPlaylistContinuous(a)
- }
- }
- } finally {
- if (kind == "appleCurator") {
- app.appleCurator = a.data.data[0]
- } else {
- this.getPlaylistContinuous(a)
- }
- }
- ;
- },
- searchLibrarySongs() {
- let self = this
- let prefs = this.cfg.libraryPrefs.songs
-
- function sortSongs() {
- // sort this.library.songs.displayListing by song.attributes[self.library.songs.sorting] in descending or ascending order based on alphabetical order and numeric order
- // check if song.attributes[self.library.songs.sorting] is a number and if so, sort by number if not, sort by alphabetical order ignoring case
- self.library.songs.displayListing.sort((a, b) => {
- let aa = a.attributes[prefs.sort]
- let bb = b.attributes[prefs.sort]
- if (self.library.songs.sorting == "genre") {
- aa = a.attributes.genreNames[0]
- bb = b.attributes.genreNames[0]
- }
- if (aa == null) {
- aa = ""
- }
- if (bb == null) {
- bb = ""
- }
- if (prefs.sortOrder == "asc") {
- if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
- return aa - bb
- } else {
- return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase())
- }
- } else if (prefs.sortOrder == "desc") {
- if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
- return bb - aa
- } else {
- return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase())
- }
- }
- })
- }
-
- if (this.library.songs.search == "") {
- this.library.songs.displayListing = this.library.songs.listing
- sortSongs()
- } else {
- this.library.songs.displayListing = this.library.songs.listing.filter(item => {
- let itemName = item.attributes.name.toLowerCase()
- let searchTerm = this.library.songs.search.toLowerCase()
- let artistName = ""
- let albumName = ""
- if (item.attributes.artistName != null) {
- artistName = item.attributes.artistName.toLowerCase()
- }
- if (item.attributes.albumName != null) {
- albumName = item.attributes.albumName.toLowerCase()
- }
-
- // remove any non-alphanumeric characters and spaces from search term and item name
- searchTerm = searchTerm.replace(/[^a-z0-9 ]/gi, "")
- itemName = itemName.replace(/[^a-z0-9 ]/gi, "")
- artistName = artistName.replace(/[^a-z0-9 ]/gi, "")
- albumName = albumName.replace(/[^a-z0-9 ]/gi, "")
-
- if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) {
- return item
- }
- })
- sortSongs()
- }
- },
- // make a copy of searchLibrarySongs except use Albums instead of Songs
- searchLibraryAlbums(index) {
- let self = this
-
- function sortAlbums() {
- // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order
- // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case
- self.library.albums.displayListing.sort((a, b) => {
- let aa = a.attributes[self.library.albums.sorting[index]]
- let bb = b.attributes[self.library.albums.sorting[index]]
- if (self.library.albums.sorting[index] == "genre") {
- aa = a.attributes.genreNames[0]
- bb = b.attributes.genreNames[0]
- }
- if (aa == null) {
- aa = ""
- }
- if (bb == null) {
- bb = ""
- }
- if (self.library.albums.sortOrder[index] == "asc") {
- if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
- return aa - bb
- } else {
- return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase())
- }
- } else if (self.library.albums.sortOrder[index] == "desc") {
- if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
- return bb - aa
- } else {
- return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase())
- }
- }
- })
- }
-
- if (this.library.albums.search == "") {
- this.library.albums.displayListing = this.library.albums.listing
- sortAlbums()
- } else {
- this.library.albums.displayListing = this.library.albums.listing.filter(item => {
- let itemName = item.attributes.name.toLowerCase()
- let searchTerm = this.library.albums.search.toLowerCase()
- let artistName = ""
- let albumName = ""
- if (item.attributes.artistName != null) {
- artistName = item.attributes.artistName.toLowerCase()
- }
- if (item.attributes.albumName != null) {
- albumName = item.attributes.albumName.toLowerCase()
- }
-
- // remove any non-alphanumeric characters and spaces from search term and item name
- searchTerm = searchTerm.replace(/[^a-z0-9 ]/gi, "")
- itemName = itemName.replace(/[^a-z0-9 ]/gi, "")
- artistName = artistName.replace(/[^a-z0-9 ]/gi, "")
- albumName = albumName.replace(/[^a-z0-9 ]/gi, "")
-
- if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) {
- return item
- }
- })
- sortAlbums()
- }
- },
- // make a copy of searchLibrarySongs except use Albums instead of Songs
- searchLibraryArtists(index) {
- let self = this
-
- function sortArtists() {
- // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order
- // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case
- self.library.artists.displayListing.sort((a, b) => {
- let aa = a.attributes[self.library.artists.sorting[index]]
- let bb = b.attributes[self.library.artists.sorting[index]]
- if (self.library.artists.sorting[index] == "genre") {
- aa = a.attributes.genreNames[0]
- bb = b.attributes.genreNames[0]
- }
- if (aa == null) {
- aa = ""
- }
- if (bb == null) {
- bb = ""
- }
- if (self.library.artists.sortOrder[index] == "asc") {
- if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
- return aa - bb
- } else {
- return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase())
- }
- } else if (self.library.artists.sortOrder[index] == "desc") {
- if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
- return bb - aa
- } else {
- return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase())
- }
- }
- })
- }
-
- if (this.library.artists.search == "") {
- this.library.artists.displayListing = this.library.artists.listing
- sortArtists()
- } else {
- this.library.artists.displayListing = this.library.artists.listing.filter(item => {
- let itemName = item.attributes.name.toLowerCase()
- let searchTerm = this.library.artists.search.toLowerCase()
- let artistName = ""
- let albumName = ""
- // if (item.attributes.artistName != null) {
- // artistName = item.attributes.artistName.toLowerCase()
- // }
- // if (item.attributes.albumName != null) {
- // albumName = item.attributes.albumName.toLowerCase()
- // }
-
- // remove any non-alphanumeric characters and spaces from search term and item name
- searchTerm = searchTerm.replace(/[^a-z0-9 ]/gi, "")
- itemName = itemName.replace(/[^a-z0-9 ]/gi, "")
-
-
- if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) {
- return item
- }
- })
- sortArtists()
- }
- },
- getSidebarItemClass(page) {
- if (this.page == page) {
- return ["active"]
- } else {
- return []
- }
- },
- async mkapi(method, library = false, term, params = {}, params2 = {}, attempts = 0) {
- if (method.includes(`recordLabel`)) {
- method = `record-labels`
- }
- if (method.includes(`appleCurator`)) {
- method = `apple-curators`
- }
- if (attempts > 3) {
- return
- }
- let truemethod = (!method.endsWith("s")) ? (method + "s") : method;
- try {
- if (library) {
- return await this.mk.api.v3.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2)
- } else {
- return await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2)
- }
- } catch (e) {
- console.log(e)
- return await this.mkapi(method, library, term, params, params2, attempts + 1)
- }
- },
- getLibraryGenres() {
- let genres = []
- genres = []
- this.library.songs.listing.forEach((item) => {
- item.attributes.genreNames.forEach((genre) => {
- if (!genres.includes(genre)) {
- genres.push(genre)
- }
- })
- })
- return genres
- },
- async getLibrarySongsFull(force = false) {
- let self = this
- let library = []
- let downloaded = null;
- if ((this.library.songs.downloadState == 2) && !force) {
- return
- }
- if (this.library.songs.downloadState == 1) {
- return
- }
- if (localStorage.getItem("librarySongs") != null) {
- this.library.songs.listing = JSON.parse(localStorage.getItem("librarySongs"))
- this.searchLibrarySongs()
- }
- if (this.songstest) {
- return
- }
- this.library.songs.downloadState = 1
- this.library.backgroundNotification.show = true
- this.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs')
-
- function downloadChunk() {
- const params = {
- "include[library-songs]": "catalog,artists,albums",
- "fields[artists]": "name,url,id",
- "fields[albums]": "name,url,id",
- platform: "web",
- "fields[catalog]": "artistUrl,albumUrl",
- "fields[songs]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
- limit: 100,
- }
- const safeparams = {
- "platform": "web",
- "limit": 80,
- }
- self.library.songs.downloadState = 1
- if (downloaded == null) {
- app.mk.api.v3.music(`/v1/me/library/songs/`, params).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading');
- app.mk.api.v3.music(`/v1/me/library/songs/`, safeparams).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading failed', error)
- app.library.songs.downloadState = 2
- app.library.backgroundNotification.show = false
- })
- })
- } else {
- if (downloaded.next != null) {
- app.mk.api.v3.music(downloaded.next, params).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading');
- app.mk.api.v3.music(downloaded.next, safeparams).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading failed', error)
- app.library.songs.downloadState = 2
- app.library.backgroundNotification.show = false
- })
- })
- } else {
- console.log("Download next", downloaded.next)
- }
- }
- }
-
- function processChunk(response) {
- downloaded = response
- library = library.concat(downloaded.data)
- self.library.backgroundNotification.show = true
- self.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs')
- self.library.backgroundNotification.total = downloaded.meta.total
- self.library.backgroundNotification.progress = library.length
-
- if (downloaded.meta.total == 0) {
- self.library.songs.downloadState = 3
- return
- }
- if (typeof downloaded.next == "undefined") {
- console.log("downloaded.next is undefined")
- self.library.songs.listing = library
- self.library.songs.downloadState = 2
- self.library.backgroundNotification.show = false
- self.searchLibrarySongs()
- localStorage.setItem("librarySongs", JSON.stringify(library))
- }
- if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") {
- console.log(`downloading next chunk - ${library.length} songs so far`)
- downloadChunk()
- } else {
- self.library.songs.listing = library
- self.library.songs.downloadState = 2
- self.library.backgroundNotification.show = false
- self.searchLibrarySongs()
- localStorage.setItem("librarySongs", JSON.stringify(library))
- // console.log(library)
- }
- }
-
- downloadChunk()
- },
- // copy the getLibrarySongsFull function except change Songs to Albums
- async getLibraryAlbumsFull(force = false, index) {
- let self = this
- let library = []
- let downloaded = null;
- if ((this.library.albums.downloadState == 2 || this.library.albums.downloadState == 1) && !force) {
- return
- }
- if (localStorage.getItem("libraryAlbums") != null) {
- this.library.albums.listing = JSON.parse(localStorage.getItem("libraryAlbums"))
- this.searchLibraryAlbums(index)
- }
- if (this.songstest) {
- return
- }
- this.library.albums.downloadState = 1
- this.library.backgroundNotification.show = true
- this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums')
-
- function downloadChunk() {
- self.library.albums.downloadState = 1
- const params = {
- "include[library-albums]": "catalog,artists,albums",
- "fields[artists]": "name,url,id",
- "fields[albums]": "name,url,id",
- platform: "web",
- "fields[catalog]": "artistUrl,albumUrl",
- "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
- limit: 100,
- }
- const safeparams = {
- platform: "web",
- limit: "60",
- "include[library-albums]": "artists",
- "include[library-artists]": "catalog",
- "include[albums]": "artists",
- "fields[artists]": "name,url",
- "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
- "includeOnly": "catalog,artists"
- }
- if (downloaded == null) {
- app.mk.api.v3.music(`/v1/me/library/albums/`, params).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading');
- app.mk.api.v3.music(`/v1/me/library/albums/`, safeparams).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading failed', error)
- app.library.albums.downloadState = 2
- app.library.backgroundNotification.show = false
- })
- })
- } else {
- if (downloaded.next != null) {
- app.mk.api.v3.music(downloaded.next, params).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading');
- app.mk.api.v3.music(downloaded.next, safeparams).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading failed', error);
- app.library.albums.downloadState = 2
- app.library.backgroundNotification.show = false
- })
- })
- } else {
- console.log("Download next", downloaded.next)
- }
- }
- }
-
- function processChunk(response) {
- downloaded = response
- library = library.concat(downloaded.data)
- self.library.backgroundNotification.show = true
- self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums')
- self.library.backgroundNotification.total = downloaded.meta.total
- self.library.backgroundNotification.progress = library.length
- if (downloaded.meta.total == 0) {
- self.library.albums.downloadState = 3
- return
- }
- if (typeof downloaded.next == "undefined") {
- console.log("downloaded.next is undefined")
- self.library.albums.listing = library
- self.library.albums.downloadState = 2
- self.library.backgroundNotification.show = false
- localStorage.setItem("libraryAlbums", JSON.stringify(library))
- self.searchLibraryAlbums(index)
- }
- if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") {
- console.log(`downloading next chunk - ${library.length
- } albums so far`)
- downloadChunk()
- } else {
- self.library.albums.listing = library
- self.library.albums.downloadState = 2
- self.library.backgroundNotification.show = false
- localStorage.setItem("libraryAlbums", JSON.stringify(library))
- self.searchLibraryAlbums(index)
- // console.log(library)
- }
- }
-
- downloadChunk()
- },
- // copy the getLibrarySongsFull function except change Songs to Albums
- async getLibraryArtistsFull(force = false, index) {
- let self = this
- let library = []
- let downloaded = null;
- if ((this.library.artists.downloadState == 2 || this.library.artists.downloadState == 1) && !force) {
- return
- }
- if (localStorage.getItem("libraryArtists") != null) {
- this.library.artists.listing = JSON.parse(localStorage.getItem("libraryArtists"))
- this.searchLibraryArtists(index)
- }
- if (this.songstest) {
- return
- }
- this.library.artists.downloadState = 1
- this.library.backgroundNotification.show = true
- this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists')
-
- function downloadChunk() {
- self.library.artists.downloadState = 1
- const params = {
- include: "catalog",
- // "include[library-artists]": "catalog,artists,albums",
- // "fields[artists]": "name,url,id",
- // "fields[albums]": "name,url,id",
- platform: "web",
- // "fields[catalog]": "artistUrl,albumUrl",
- // "fields[artists]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
- limit: 100,
- }
- const safeparams = {
- include: "catalog",
- platform: "web",
- limit: 50,
- }
- if (downloaded == null) {
- app.mk.api.v3.music(`/v1/me/library/artists/`, params).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading');
- app.mk.api.v3.music(`/v1/me/library/artists/`, safeparams).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading failed', error)
- app.library.artists.downloadState = 2
- app.library.backgroundNotification.show = false
- })
- })
-
- } else {
- if (downloaded.next != null) {
- app.mk.api.v3.music(downloaded.next, params).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading');
- app.mk.api.v3.music(downloaded.next, safeparams).then((response) => {
- processChunk(response.data)
- }).catch((error) => {
- console.log('safe loading failed', error)
- app.library.artists.downloadState = 2
- app.library.backgroundNotification.show = false
- })
- })
- } else {
- console.log("Download next", downloaded.next)
- }
-
- }
- }
-
- function processChunk(response) {
- downloaded = response
- library = library.concat(downloaded.data)
- self.library.backgroundNotification.show = true
- self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists')
- self.library.backgroundNotification.total = downloaded.meta.total
- self.library.backgroundNotification.progress = library.length
- if (downloaded.meta.total == 0) {
- self.library.albums.downloadState = 3
- return
- }
- if (typeof downloaded.next == "undefined") {
- console.log("downloaded.next is undefined")
- self.library.artists.listing = library
- self.library.artists.downloadState = 2
- self.library.artists.show = false
- localStorage.setItem("libraryArtists", JSON.stringify(library))
- self.searchLibraryArtists(index)
- }
- if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") {
- console.log(`downloading next chunk - ${library.length
- } artists so far`)
- downloadChunk()
- } else {
- self.library.artists.listing = library
- self.library.artists.downloadState = 2
- self.library.backgroundNotification.show = false
- localStorage.setItem("libraryArtists", JSON.stringify(library))
- self.searchLibraryArtists(index)
- // console.log(library)
- }
- }
-
- downloadChunk()
- },
- getTotalTime() {
- try {
- if (app.showingPlaylist.relationships.tracks.data.length > 0) {
- let time = Math.round([].concat(...app.showingPlaylist.relationships.tracks.data).reduce((a, {attributes: {durationInMillis}}) => a + durationInMillis, 0) / 1000);
- let hours = Math.floor(time / 3600)
- let mins = Math.floor(time / 60) % 60
- let secs = time % 60
- return app.showingPlaylist.relationships.tracks.data.length + " " + app.getLz('term.tracks') + ", " + ((hours > 0) ? (hours + (" " + ((hours > 1) ? app.getLz('term.time.hours') + ", " : app.getLz('term.time.hour') + ", "))) : "") + ((mins > 0) ? (mins + ((mins > 1) ? " " + app.getLz('term.time.minutes') + ", " : " " + app.getLz('term.time.minute') + ", ")) : "") + secs + ((secs > 1) ? " " + app.getLz('term.time.seconds') + "." : " " + app.getLz('term.time.second') + ".");
- } else return ""
- } catch (err) {
- return ""
- }
- },
- async getLibrarySongs() {
- let response = await this.mkapi("songs", true, "", {limit: 100}, {includeResponseMeta: !0})
- this.library.songs.listing = response.data.data
- this.library.songs.meta = response.data.meta
- },
- async getLibraryAlbums() {
- let response = await this.mkapi("albums", true, "", {limit: 100}, {includeResponseMeta: !0})
- this.library.albums.listing = response.data.data
- this.library.albums.meta = response.data.meta
- },
- async getListenNow(attempt = 0) {
- if (this.listennow.timestamp > Date.now() - 120000) {
- return
- }
-
- if (attempt > 3) {
- return
- }
- try {
- this.listennow = (await this.mk.api.v3.music(`v1/me/recommendations?timezone=${encodeURIComponent(this.formatTimezoneOffset())}`, {
- name: "listen-now",
- with: "friendsMix,library,social",
- "art[social-profiles:url]": "c",
- "art[url]": "c,f",
- "omit[resource]": "autos",
- "relate[editorial-items]": "contents",
- extend: ["editorialCard", "editorialVideo"],
- "extend[albums]": ["artistUrl"],
- "extend[library-albums]": ["artistUrl", "editorialVideo"],
- "extend[playlists]": ["artistNames", "editorialArtwork", "editorialVideo"],
- "extend[library-playlists]": ["artistNames", "editorialArtwork", "editorialVideo"],
- "extend[social-profiles]": "topGenreNames",
- "include[albums]": "artists",
- "include[songs]": "artists",
- "include[music-videos]": "artists",
- "fields[albums]": ["artistName", "artistUrl", "artwork", "contentRating", "editorialArtwork", "editorialVideo", "name", "playParams", "releaseDate", "url"],
- "fields[artists]": ["name", "url"],
- "extend[stations]": ["airDate", "supportsAirTimeUpdates"],
- "meta[stations]": "inflectionPoints",
- types: "artists,albums,editorial-items,library-albums,library-playlists,music-movies,music-videos,playlists,stations,uploaded-audios,uploaded-videos,activities,apple-curators,curators,tv-shows,social-upsells",
- platform: "web"
- }, {
- includeResponseMeta: !0,
- reload: !0
- })).data;
- this.listennow.timestamp = Date.now()
- console.log(this.listennow)
- } catch (e) {
- console.log(e)
- this.getListenNow(attempt + 1)
- }
- },
- async getBrowsePage(attempt = 0) {
- if (this.browsepage.timestamp > Date.now() - 120000) {
- return
- }
- if (attempt > 3) {
- return
- }
- try {
- let browse = await app.mk.api.v3.music(`/v1/editorial/${app.mk.storefrontId}/groupings`, {
- platform: "web",
- name: "music",
- "omit[resource:artists]": "relationships",
- "include[albums]": "artists",
- "include[songs]": "artists",
- "include[music-videos]": "artists",
- extend: "editorialArtwork,artistUrl",
- "fields[artists]": "name,url,artwork,editorialArtwork,genreNames,editorialNotes",
- "art[url]": "f"
- });
- this.browsepage = browse.data.data[0];
- this.browsepage.timestamp = Date.now()
- console.log(this.browsepage)
- } catch (e) {
- console.log(e)
- this.getBrowsePage(attempt + 1)
- }
- },
- async getRadioStations(attempt = 0) {
- if (attempt > 3) {
- return
- }
- try {
- this.radio.personal = (await app.mk.api.v3.music(`/v1/me/recent/radio-stations`, {
- "platform": "web",
- "art[url]": "f"
- })).data.data;
- } catch (e) {
- console.log(e)
- this.getRadioStations(attempt + 1)
- }
- },
- async getMadeForYou(attempt = 0) {
- if (attempt > 3) {
- return
- }
- try {
- mfu = await app.mk.api.v3.music("/v1/me/library/playlists?platform=web&extend=editorialVideo&fields%5Bplaylists%5D=lastModifiedDate&filter%5Bfeatured%5D=made-for-you&include%5Blibrary-playlists%5D=catalog&fields%5Blibrary-playlists%5D=artwork%2Cname%2CplayParams%2CdateAdded")
- this.madeforyou = mfu.data
- } catch (e) {
- console.log(e)
- this.getMadeForYou(attempt + 1)
- }
- },
- newPlaylistFolder(name = app.getLz('term.newPlaylistFolder')) {
- let self = this
- this.mk.api.v3.music(
- "/v1/me/library/playlist-folders/", {}, {
- fetchOptions: {
- method: "POST",
- body: JSON.stringify({
- attributes: {name: name}
- })
- }
- }
- ).then((res) => {
- let playlist = (res.data.data[0])
- self.playlists.listing.push({
- id: playlist.id,
- attributes: {
- name: playlist.attributes.name
- },
- type: "library-playlist-folders",
- parent: "p.playlistsroot"
- })
- self.sortPlaylists()
- setTimeout(() => {
- app.refreshPlaylists()
- }, 13000)
- })
- },
- unauthorize() {
- this.mk.unauthorize()
- },
- showSearch() {
- this.page = "search"
- },
- loadLyrics() {
- const musicType = (MusicKit.getInstance().nowPlayingItem != null) ? MusicKit.getInstance().nowPlayingItem["type"] ?? '' : '';
- console.log("mt", musicType)
- if (musicType === "musicVideo") {
- this.loadYTLyrics();
- } else {
- if (app.cfg.lyrics.enable_mxm) {
- this.loadMXM();
- } else {
- this.loadAMLyrics();
- }
- }
- },
- loadAMLyrics() {
- const songID = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem["_songId"] ?? -1 : -1;
- // this.getMXM( trackName, artistName, 'en', duration);
- if (songID != -1) {
- MusicKit.getInstance().api.lyric(songID)
- .then((response) => {
- this.lyricsMediaItem = response.attributes["ttml"]
- this.parseTTML()
- })
- }
- },
- addToLibrary(id) {
- let self = this
- this.mk.addToLibrary(id).then((data) => {
- self.getLibrarySongsFull(true)
- })
- notyf.success('Added to library.');
- },
- removeFromLibrary(kind, id) {
- let self = this
- let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
- app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`, {}, {
- fetchOptions: {
- method: "DELETE"
- }
- }).then((data) => {
- self.getLibrarySongsFull(true)
- })
- notyf.success('Removed from library.')
- },
-
- async losslessBadge() {
- const songID = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem["_songId"] ?? -1 : -1;
- if (app.cfg.advanced.ciderPPE && songID != -1) {
- /**let extendedAssets = await app.mk.api.song(songID, {extend : 'extendedAssetUrls'})
- if (extendedAssets.attributes.audioTraits.includes('lossless')) {*/
- app.mk.nowPlayingItem['attributes']['lossless'] = true
- CiderAudio.audioNodes.llpwEnabled = 1
- console.log("[Cider][Enhanced] Audio being processed by PPE")
- /**}
- else {
- CiderAudio.audioNodes.llpwEnabled = 0
- } */
- }
-
- else {
- CiderAudio.audioNodes.llpwEnabled = 0
- }
- },
- async loadYTLyrics() {
- const track = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : '';
- const artist = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : '';
- const time = (this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1;
- ipcRenderer.invoke('getYTLyrics', track, artist).then((result) => {
- if (result.length > 0) {
- let ytid = result[0]['id']['videoId'];
- if (app.cfg.lyrics.enable_yt) {
- loadYT(ytid, app.cfg.lyrics.mxm_language ?? "en")
- } else {
- app.loadMXM()
- }
- } else {
- app.loadMXM()
- }
-
- function loadYT(id, lang) {
- let req = new XMLHttpRequest();
- let url = `https://www.youtube.com/watch?&v=${id}`;
- req.open('GET', url, true);
- req.onerror = function (e) {
- this.loadMXM();
- }
- req.onload = function () {
- // console.log(this.responseText);
- res = this.responseText;
- let captionurl1 = res.substring(res.indexOf(`{"playerCaptionsRenderer":{"baseUrl":"`) + (`{"playerCaptionsRenderer":{"baseUrl":"`).length);
- let captionurl = captionurl1.substring(0, captionurl1.indexOf(`"`));
- if (captionurl.includes("timedtext")) {
- let json = JSON.parse(`{"url": "${captionurl}"}`);
- let newurl = json.url + `&lang=${lang}&format=ttml`
-
- let req2 = new XMLHttpRequest();
-
- req2.open('GET', newurl, true);
- req2.onerror = function (e) {
- app.loadMXM();
- }
- req2.onload = function () {
- try {
- const ttmlLyrics = this.responseText;
- if (ttmlLyrics) {
- this.lyricsMediaItem = ttmlLyrics
- this.parseTTML()
- }
- } catch (e) {
- app.loadMXM();
- }
-
- }
- req2.send();
- } else {
-
- app.loadMXM();
-
- }
- }
- req.send();
- }
-
- })
-
- },
- loadMXM() {
- let attempt = 0;
- const track = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : '');
- const artist = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : '');
- const time = encodeURIComponent((this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1);
- const id = encodeURIComponent((this.mk.nowPlayingItem != null) ? app.mk.nowPlayingItem._songId ?? '' : '');
- let lrcfile = "";
- let richsync = [];
- const lang = app.cfg.lyrics.mxm_language // translation language
- function revisedRandId() {
- return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10);
- }
-
- /* get token */
- function getToken(mode, track, artist, songid, lang, time, id) {
- if (attempt > 2) {
- app.loadAMLyrics();
- } else {
- attempt = attempt + 1;
- let url = "https://apic-desktop.musixmatch.com/ws/1.1/token.get?app_id=web-desktop-app-v1.0&t=" + revisedRandId();
- let req = new XMLHttpRequest();
- req.overrideMimeType("application/json");
- req.open('GET', url, true);
- req.setRequestHeader("authority", "apic-desktop.musixmatch.com");
- req.onload = function () {
- let jsonResponse = JSON.parse(this.responseText);
- let status2 = jsonResponse["message"]["header"]["status_code"];
- if (status2 == 200) {
- let token = jsonResponse["message"]["body"]["user_token"] ?? '';
- if (token != "" && token != "UpgradeOnlyUpgradeOnlyUpgradeOnlyUpgradeOnly") {
- console.log('200 token', mode);
- // token good
- app.mxmtoken = token;
-
- if (mode == 1) {
- getMXMSubs(track, artist, app.mxmtoken, lang, time, id);
- } else {
- getMXMTrans(songid, lang, app.mxmtoken);
- }
- } else {
- console.log('fake 200 token');
- getToken(mode, track, artist, songid, lang, time)
- }
- } else {
- console.log('token 4xx');
- getToken(mode, track, artist, songid, lang, time)
- }
-
- };
- req.onerror = function () {
- console.log('error');
- app.loadAMLyrics();
- };
- req.send();
- }
- }
-
- function getMXMSubs(track, artist, token, lang, time, id) {
- let usertoken = encodeURIComponent(token);
- let richsyncQuery = (app.cfg.lyrics.mxm_karaoke) ? "&optional_calls=track.richsync" : ""
- let timecustom = (!time || (time && time < 0)) ? '' : `&f_subtitle_length=${time}&q_duration=${time}&f_subtitle_length_max_deviation=40`;
- let itunesid = (id && id != "") ? `&track_itunes_id=${id}` : '';
- let url = "https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get?format=json&namespace=lyrics_richsynched" + richsyncQuery + "&subtitle_format=lrc&q_artist=" + artist + "&q_track=" + track + itunesid + "&usertoken=" + usertoken + timecustom + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId();
- let req = new XMLHttpRequest();
- req.overrideMimeType("application/json");
- req.open('GET', url, true);
- req.setRequestHeader("authority", "apic-desktop.musixmatch.com");
- req.onload = function () {
- let jsonResponse = JSON.parse(this.responseText);
- console.log(jsonResponse);
- let status1 = jsonResponse["message"]["header"]["status_code"];
-
- if (status1 == 200) {
- let id = '';
- try {
- if (jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["header"]["status_code"] == 200 && jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["header"]["status_code"] == 200) {
- id = jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["body"]["track"]["track_id"] ?? '';
- lrcfile = jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["body"]["subtitle_list"][0]["subtitle"]["subtitle_body"];
-
- try {
- lrcrich = jsonResponse["message"]["body"]["macro_calls"]["track.richsync.get"]["message"]["body"]["richsync"]["richsync_body"];
- richsync = JSON.parse(lrcrich);
- app.richlyrics = richsync;
- } catch (_) {
- }
- }
-
- if (lrcfile == "") {
- app.loadAMLyrics()
- } else {
- if (richsync == [] || richsync.length == 0) {
- console.log("ok");
- // process lrcfile to json here
- app.lyricsMediaItem = lrcfile
- let u = app.lyricsMediaItem.split(/[\r\n]/);
- let preLrc = []
- for (var i = u.length - 1; i >= 0; i--) {
- let xline = (/(\[[0-9.:\[\]]*\])+(.*)/).exec(u[i])
- let end = (preLrc.length > 0) ? ((preLrc[preLrc.length - 1].startTime) ?? 99999) : 99999
- preLrc.push({
- startTime: app.toMS(xline[1].substring(1, xline[1].length - 2)) ?? 0,
- endTime: end,
- line: xline[2],
- translation: ''
- })
- }
- if (preLrc.length > 0)
- preLrc.push({
- startTime: 0,
- endTime: preLrc[preLrc.length - 1].startTime,
- line: "lrcInstrumental",
- translation: ''
- });
- app.lyrics = preLrc.reverse();
- } else {
- preLrc = richsync.map(function (item) {
- return {
- startTime: item.ts,
- endTime: item.te,
- line: item.x,
- translation: ''
- }
- })
- if (preLrc.length > 0)
- preLrc.unshift({
- startTime: 0,
- endTime: preLrc[0].startTime,
- line: "lrcInstrumental",
- translation: ''
- });
- app.lyrics = preLrc;
- }
- if (lrcfile != null && lrcfile != '' && lang != "disabled") {
- // load translation
- getMXMTrans(id, lang, token);
- } else {
- app.loadAMLyrics()
- }
- }
- } catch (e) {
- console.log(e);
- app.loadAMLyrics()
- }
- } else { //4xx rejected
- getToken(1, track, artist, '', lang, time);
- }
- }
- req.send();
- }
-
- function getMXMTrans(id, lang, token) {
- if (lang != "disabled" && id != '') {
- let usertoken = encodeURIComponent(token);
- let url2 = "https://apic-desktop.musixmatch.com/ws/1.1/crowd.track.translations.get?translation_fields_set=minimal&selected_language=" + lang + "&track_id=" + id + "&comment_format=text&part=user&format=json&usertoken=" + usertoken + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId();
- let req2 = new XMLHttpRequest();
- req2.overrideMimeType("application/json");
- req2.open('GET', url2, true);
- req2.setRequestHeader("authority", "apic-desktop.musixmatch.com");
- req2.onload = function () {
- let jsonResponse2 = JSON.parse(this.responseText);
- console.log(jsonResponse2);
- let status2 = jsonResponse2["message"]["header"]["status_code"];
- if (status2 == 200) {
- try {
- let preTrans = []
- let u = app.lyrics;
- let translation_list = jsonResponse2["message"]["body"]["translations_list"];
- if (translation_list.length > 0) {
- for (var i = 0; i < u.length - 1; i++) {
- preTrans[i] = ""
- for (var trans_line of translation_list) {
- if (u[i].line == " " + trans_line["translation"]["matched_line"] || u[i].line == trans_line["translation"]["matched_line"]) {
- u[i].translation = trans_line["translation"]["description"];
- break;
- }
- }
- }
- app.lyrics = u;
- }
- } catch (e) {
- /// not found trans -> ignore
- }
- } else { //4xx rejected
- getToken(2, '', '', id, lang, '');
- }
- }
- req2.send();
- }
-
- }
-
- if (track != "" & track != "No Title Found") {
- if (app.mxmtoken != null && app.mxmtoken != '') {
- getMXMSubs(track, artist, app.mxmtoken, lang, time, id)
- } else {
- getToken(1, track, artist, '', lang, time);
- }
- }
- },
- toMS(str) {
- let rawTime = str.match(/(\d+:)?(\d+:)?(\d+)(\.\d+)?/);
- let hours = (rawTime[2] != null) ? (rawTime[1].replace(":", "")) : 0;
- let minutes = (rawTime[2] != null) ? (hours * 60 + rawTime[2].replace(":", "") * 1) : ((rawTime[1] != null) ? rawTime[1].replace(":", "") : 0);
- let seconds = (rawTime[3] != null) ? (rawTime[3]) : 0;
- let milliseconds = (rawTime[4] != null) ? (rawTime[4].replace(".", "")) : 0
- return parseFloat(`${minutes * 60 + seconds * 1}.${milliseconds * 1}`);
- },
- parseTTML() {
- this.lyrics = [];
- let preLrc = [];
- let xml = this.stringToXml(this.lyricsMediaItem);
- let lyricsLines = xml.getElementsByTagName('p');
- let synced = true;
- let endTimes = [];
- if (xml.getElementsByTagName('tt')[0].getAttribute("itunes:timing") === "None") {
- synced = false;
- }
- endTimes.push(0);
- if (synced) {
- for (element of lyricsLines) {
- start = this.toMS(element.getAttribute('begin'))
- end = this.toMS(element.getAttribute('end'))
- if (start - endTimes[endTimes.length - 1] > 5 && endTimes[endTimes.length - 1] != 0) {
- preLrc.push({
- startTime: endTimes[endTimes.length - 1],
- endTime: start,
- line: "lrcInstrumental"
- });
- }
- preLrc.push({startTime: start, endTime: end, line: element.textContent});
- endTimes.push(end);
- }
- // first line dot
- if (preLrc.length > 0)
- preLrc.unshift({startTime: 0, endTime: preLrc[0].startTime, line: "lrcInstrumental"});
- } else {
- for (element of lyricsLines) {
- preLrc.push({startTime: 9999999, endTime: 9999999, line: element.textContent});
- }
- }
- this.lyrics = preLrc;
-
- },
- parseLyrics() {
- let xml = this.stringToXml(this.lyricsMediaItem)
- let json = xmlToJson(xml);
- this.lyrics = json
- },
- stringToXml(st) {
- // string to xml
- let xml = (new DOMParser()).parseFromString(st, "text/xml");
- return xml;
-
- },
- getCurrentTime() {
- return parseFloat(this.hmsToSecondsOnly(this.parseTime(this.mk.nowPlayingItem.attributes.durationInMillis - app.mk.currentPlaybackTimeRemaining * 1000)));
- },
- seekTo(time) {
- this.mk.seekToTime(time);
- },
- parseTime(value) {
- let minutes = Math.floor(value / 60000);
- let seconds = ((value % 60000) / 1000).toFixed(0);
- return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
- },
- parseTimeDecimal(value) {
- let minutes = Math.floor(value / 60000);
- let seconds = ((value % 60000) / 1000).toFixed(0);
- return minutes + "." + (seconds < 10 ? '0' : '') + seconds;
- },
- hmsToSecondsOnly(str) {
- let p = str.split(':'),
- s = 0,
- m = 1;
-
- while (p.length > 0) {
- s += m * parseInt(p.pop(), 10);
- m *= 60;
- }
-
- return s;
- },
- getLyricBGStyle(start, end) {
- let currentTime = this.getCurrentTime();
- // let duration = this.mk.nowPlayingItem.attributes.durationInMillis
- let start2 = this.hmsToSecondsOnly(start)
- let end2 = this.hmsToSecondsOnly(end)
- // let currentProgress = ((100 * (currentTime)) / (end2))
- // check if currenttime is between start and end
- this.player.lyricsDebug.start = start2
- this.player.lyricsDebug.end = end2
- this.player.lyricsDebug.current = currentTime
- if (currentTime >= start2 && currentTime <= end2) {
- return {
- "--bgSpeed": `${(end2 - start2)}s`
- }
- } else {
- return {}
- }
- },
- playMediaItemById(id, kind, isLibrary, raurl = "") {
- let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
- console.log(id, truekind, isLibrary)
- try {
- if (truekind.includes("artist")) {
- app.mk.setStationQueue({artist: 'a-' + id}).then(() => {
- app.mk.play()
- })
- } else if (truekind == "radioStations") {
- this.mk.setStationQueue({url: raurl}).then(function (queue) {
- MusicKit.getInstance().play()
- });
- } else {
- this.mk.setQueue({
- [truekind]: [id]
- }).then(function (queue) {
- MusicKit.getInstance().play()
- })
- }
- } catch (err) {
- console.log(err)
- this.playMediaItemById(id, kind, isLibrary, raurl)
- }
- },
- queueParentandplayChild(parent, childIndex, item) {
-
- /* Randomize array in-place using Durstenfeld shuffle algorithm */
- function shuffleArray(array) {
- for (var i = array.length - 1; i > 0; i--) {
- var j = Math.floor(Math.random() * (i + 1));
- var temp = array[i];
- array[i] = array[j];
- array[j] = temp;
- }
- }
-
- let kind = parent.substring(0, parent.indexOf(":"))
- let id = parent.substring(parent.indexOf(":") + 1, parent.length)
- let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
- console.log(truekind, id)
-
- try {
- if (app.library.songs.displayListing.length > childIndex && parent == "librarysongs") {
- console.log(item)
- if (item && ((app.library.songs.displayListing[childIndex].id != item.id))) {
- childIndex = app.library.songs.displayListing.indexOf(item)
- }
-
- let query = app.library.songs.displayListing.map(item => new MusicKit.MediaItem(item));
-
-
- app.mk.stop().then(() => {
- if (item) {
- app.mk.setQueue({
- [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id
- }).then(function () {
- app.mk.play().then(() => {
- if (app.mk.shuffleMode == 1) {
- shuffleArray(query)
- } else {
- for (let i = 0; i < query.length; i++) {
- if (query[i].id == item.id) {
- query.splice(0, i + 1);
- break;
- }
- }
- }
- app.mk.queue.append(query)
- })
- })
- } else {
- this.mk.clearQueue().then(function (_) {
- if (app.mk.shuffleMode == 1) {
- shuffleArray(query)
- }
- app.mk.queue.append(query)
- if (childIndex != -1) {
- app.mk.changeToMediaAtIndex(childIndex)
- } else {
- app.mk.play()
- }
- })
- }
- })
- } else {
- app.mk.stop().then(() => {
- if (truekind == "playlists" && (id.startsWith("p.") || id.startsWith("pl.u"))) {
- app.mk.setQueue({
- [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id
- }).then(function () {
- app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1).then(function () {
- if ((app.showingPlaylist && app.showingPlaylist.id == id)) {
- let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
- let u = query;
- if (app.mk.shuffleMode == 1) {
- shuffleArray(u)
- } else {
- for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) {
- if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) {
- u.splice(0, i + 1);
- break;
- }
- }
- }
- app.mk.queue.append(u)
- } else {
- app.getPlaylistFromID(id, true).then(function () {
- let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
- let u = query;
- if (app.mk.shuffleMode == 1) {
- shuffleArray(u)
- } else {
- for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) {
- if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) {
- u.splice(0, i + 1);
- break;
- }
- }
- }
- app.mk.queue.append(u)
- })
- }
- })
-
- })
- } else {
- this.mk.setQueue({
- [truekind]: [id]
- }).then(function (queue) {
- if (item && ((queue._itemIDs[childIndex] != item.id))) {
- childIndex = queue._itemIDs.indexOf(item.id)
- }
- if (childIndex != -1) {
- app.mk.changeToMediaAtIndex(childIndex)
- } else if (item) {
- app.mk.playNext({
- [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id
- }).then(function () {
- app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1)
- app.mk.play()
- })
- } else {
- app.mk.play()
- }
- })
- }
- })
- }
- } catch (err) {
- console.log(err)
- try {
- app.mk.stop()
- } catch (e) {
- }
- this.playMediaItemById(item.attributes.playParams.id ?? item.id, item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.url)
- }
-
- },
- friendlyTypes(type) {
- // use switch statement to return friendly name for media types "songs,artists,albums,playlists,music-videos,stations,apple-curators,curators"
- switch (type) {
- case "song":
- return app.getLz('term.songs')
- break;
- case "artist":
- return app.getLz('term.artists')
- break;
- case "album":
- return app.getLz('term.albums')
- break;
- case "playlist":
- return app.getLz('term.playlists')
- break;
- case "music_video":
- return app.getLz('term.musicVideos')
- break;
- case "station":
- return app.getLz('term.stations')
- break;
- case "apple-curator":
- return app.getLz('term.appleCurators')
- break;
- case "radio_show":
- return app.getLz('term.radioShows')
- break;
- case "record_label":
- return app.getLz('term.recordLabels')
- break;
- case "radio_episode":
- return app.getLz('podcast.episodes')
- break;
- case "video_extra":
- return app.getLz('term.videoExtras')
- break;
- case "curator":
- return app.getLz('term.curators')
- break;
- case "top":
- return app.getLz('term.top')
- break;
- default:
- return type
- break;
- }
- },
- async searchQuery(term = this.search.term) {
- let self = this
- if (term == "") {
- return
- }
- //this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}`
- this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}`, {
- types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels",
- "relate[editorial-items]": "contents",
- "include[editorial-items]": "contents",
- "include[albums]": "artists",
- "include[artists]": "artists",
- "include[songs]": "artists,albums",
- "include[music-videos]": "artists",
- "extend": "artistUrl",
- "fields[artists]": "url,name,artwork,hero",
- "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
- "with": "serverBubbles,lyricHighlights",
- "art[url]": "c,f",
- "omit[resource]": "autos",
- "platform": "web",
- limit: 25
- }).then(function (results) {
- results.data.results["meta"] = results.data.meta
- self.search.results = results.data.results
- })
-
- await app.mk.api.v3.music(`v1/social/${app.mk.storefrontId}/search?term=${app.search.term}`, {
- types: ["playlists", "social-profiles"],
- limit: 25,
- with: ["serverBubbles", "lyricSnippet"],
- "art[url]": "f",
- "art[social-profiles:url]": "c"
- }, {includeResponseMeta: !0}).then(function (results) {
- results.data.results["meta"] = results.data.meta
- self.search.resultsSocial = results.data.results
- })
- },
- async inLibrary(items = []) {
- let types = []
-
- for (let item of items) {
- let type = item.type
- if (type.slice(-1) != "s") {
- type += "s"
- }
- type = type.replace("library-", "")
- let id = item.attributes.playParams.catalogId ?? item.id
-
- let index = types.findIndex(function (type) {
- return type.type == this
- }, type)
- if (index == -1) {
- types.push({type: type, id: [id]})
- } else {
- types[index].id.push(id)
- }
- }
- types2 = types.map(function (item) {
- return {
- [`ids[${item.type}]`]: [item.id]
- }
- })
- types2 = types2.reduce(function (result, item) {
- var key = Object.keys(item)[0]; //first property: a, b, c
- result[key] = item[key];
- return result;
- }, {});
- return (await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}`, {
- ...{
- "omit[resource]": "autos",
- relate: "library",
- fields: "inLibrary"
- },
- ...types2
- })).data.data
- },
- isInLibrary(playParams) {
- let self = this
- let id = ""
- // ugly code to check if current playback item is in library
- if (typeof playParams == "undefined") {
- return true
- }
- if (playParams["isLibrary"]) {
- return true
- } else if (playParams["catalogId"]) {
- id = playParams["catalogId"]
- } else if (playParams["id"]) {
- id = playParams["id"]
- }
- let found = this.library.songs.listing.filter((item) => {
- if (item["attributes"]) {
- if (item["attributes"]["playParams"] && (item["attributes"]["playParams"]["catalogId"] == id)) {
- return item;
- }
- }
- })
- if (found.length != 0) {
- return true
- } else {
- return false
- }
- },
- mkReady() {
- if (this.mk["nowPlayingItem"]) {
- return true
- } else {
- return false
- }
- },
- getMediaItemArtwork(url, height = 64, width) {
- if (typeof url == "undefined" || url == "") {
- return "https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"
- }
- let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900) ? "sr" : "cc"))}`;
-
- if (newurl.includes("900x516")) {
- newurl = newurl.replace("900x516cc", "900x516sr").replace("900x516bb", "900x516sr");
- }
- return newurl
- },
- _rgbToRgb(rgb = [0, 0, 0]) {
- // if rgb
- return `rgb(${rgb[0]},${rgb[1]},${rgb[2]})`
- },
- getNowPlayingArtworkBG(size = 32, force = false) {
- let self = this
- if (typeof this.mk.nowPlayingItem === "undefined") return;
- let bginterval = setInterval(() => {
- if (!this.mkReady()) {
- return ""
- }
-
- try {
- if ((this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] != this.currentTrackID && document.querySelector('.bg-artwork')) || force) {
- if (document.querySelector('.bg-artwork')) {
- clearInterval(bginterval);
- }
- this.currentTrackID = this.mk.nowPlayingItem["id"];
- document.querySelector('.bg-artwork').src = "";
- if (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"]) {
- getBase64FromUrl(this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"].replace('{w}', size).replace('{h}', size)).then(img => {
- document.querySelectorAll('.bg-artwork').forEach(artwork => {
- artwork.src = img;
- })
- self.$store.commit("setLCDArtwork", img)
- })
- try {
- clearInterval(bginterval);
- } catch (err) {
- }
- } else {
- this.setLibraryArtBG()
- }
- } else if (this.mk.nowPlayingItem["id"] == this.currentTrackID) {
- try {
- clearInterval(bginterval);
- } catch (err) {
- }
- }
- } catch (e) {
- if (this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] && document.querySelector('.bg-artwork')) {
- this.setLibraryArtBG()
- try {
- clearInterval(bginterval);
- } catch (err) {
- }
- }
- }
- }, 200)
- },
- async getCurrentArtURL() {
- try {
- this.currentArtUrl = '';
- if (app.mk.nowPlayingItem != null && app.mk.nowPlayingItem.attributes != null && app.mk.nowPlayingItem.attributes.artwork != null && app.mk.nowPlayingItem.attributes.artwork.url != null && app.mk.nowPlayingItem.attributes.artwork.url != '') {
- this.currentArtUrl = (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50);
- try {
- document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
- } catch (e) {
- }
- } else {
- let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`);
- data = data.data.data[0];
- if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) {
- this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50);
- try {
- document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
- } catch (e) {
- }
- } else {
- this.currentArtUrl = '';
- try {
- document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
- } catch (e) {
- }
- }
- }
- } catch (e) {
-
- }
- },
- async setLibraryArt() {
- if (typeof this.mk.nowPlayingItem === "undefined") return;
- try {
- const data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`);
- data = data.data.data[0];
-
- if (data != null && data !== "") {
- document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', 'url("' + (data["attributes"]["artwork"]["url"]).toString() + '")');
- } else {
- document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("")`);
- }
- } catch (e) {
- }
- },
- async setLibraryArtBG() {
- if (typeof this.mk.nowPlayingItem === "undefined") return;
- try {
- const data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`);
- data = data.data.data[0];
-
- if (data != null && data !== "") {
- getBase64FromUrl((data["attributes"]["artwork"]["url"]).toString()).then(img => {
- document.querySelector('.bg-artwork').forEach(artwork => {
- artwork.src = img;
- })
- self.$store.commit("setLCDArtwork", img)
- })
- }
- } catch (e) {
- }
-
- },
- quickPlay(query) {
- let self = this
- MusicKit.getInstance().api.search(query, {limit: 2, types: 'songs'}).then(function (data) {
- MusicKit.getInstance().setQueue({song: data["songs"]['data'][0]["id"]}).then(function (queue) {
- MusicKit.getInstance().play()
- setTimeout(() => {
- self.$forceUpdate()
- }, 1000)
- })
- })
- },
- async getRating(item) {
- let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
- let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id
- if (item.id.startsWith("i.")) {
- if (!type.startsWith("library-")) {
- type = "library-" + type
- }
- id = item.id
- }
- let response = await this.mk.api.v3.music(`/v1/me/ratings/${type}?platform=web&ids=${type.includes('library') ? item.id : id}`)
- if (response.data.data.length != 0) {
- let value = response.data.data[0].attributes.value
- return value
- } else {
- return 0
- }
- },
- love(item) {
- let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
- let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id
- if (item.id.startsWith("i.")) {
- if (!type.startsWith("library-")) {
- type = "library-" + type
- }
- id = item.id
- }
- this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, {
- fetchOptions: {
- method: "PUT",
- body: JSON.stringify({
- "type": "rating",
- "attributes": {
- "value": 1
- }
- })
- }
- })
- },
- dislike(item) {
- let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
- let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id
- if (item.id.startsWith("i.")) {
- if (!type.startsWith("library-")) {
- type = "library-" + type
- }
- id = item.id
- }
- this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, {
- fetchOptions: {
- method: "PUT",
- body: JSON.stringify({
- "type": "rating",
- "attributes": {
- "value": -1
- }
- })
- }
- })
- },
- unlove(item) {
- let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
- let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id
- if (item.id.startsWith("i.")) {
- if (!type.startsWith("library-")) {
- type = "library-" + type
- }
- id = item.id
- }
- this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, {
- fetchOptions: {
- method: "DELETE",
- }
- })
- },
- checkScrollDirectionIsUp(event) {
- if (event.wheelDelta) {
- return event.wheelDelta > 0;
- }
- return event.deltaY < 0;
- },
- volumeUp() {
- if ((app.mk.volume + app.cfg.audio.volumeStep) > 1) {
- app.mk.volume = app.cfg.audio.maxVolume;
- console.log('setting max volume')
- } else {
- console.log('volume up')
- app.mk.volume += app.cfg.audio.volumeStep;
- }
- },
- volumeDown() {
- if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) {
- app.mk.volume = 0;
- console.log('setting volume to 0')
- } else {
- console.log('volume down')
- app.mk.volume -= app.cfg.audio.volumeStep;
- }
- },
- volumeWheel(event) {
- app.checkScrollDirectionIsUp(event) ? app.volumeUp() : app.volumeDown()
- },
- muteButtonPressed() {
- if (this.cfg.audio.muted) {
- this.mk.volume = this.cfg.audio.lastVolume;
- this.cfg.audio.muted = false;
- } else {
- this.cfg.audio.lastVolume = this.cfg.audio.volume;
- this.mk.volume = 0;
- this.cfg.audio.muted = true;
- }
- },
- checkMuteChange() {
- if (this.cfg.audio.muted) {
- this.cfg.audio.muted = false;
- }
- },
- async apiCall(url, callback) {
- const xmlHttp = new XMLHttpRequest();
-
- xmlHttp.onreadystatechange = (e) => {
- if (xmlHttp.readyState !== 4) {
- return;
- }
-
- if (xmlHttp.status === 200) {
- // console.log('SUCCESS', xmlHttp.responseText);
- callback(JSON.parse(xmlHttp.responseText));
- } else {
- console.warn('request_error');
- }
- };
-
- xmlHttp.open("GET", url);
- xmlHttp.setRequestHeader("Authorization", "Bearer " + MusicKit.getInstance().developerToken);
- xmlHttp.setRequestHeader("Music-User-Token", "" + MusicKit.getInstance().musicUserToken);
- xmlHttp.setRequestHeader("Accept", "application/json");
- xmlHttp.setRequestHeader("Content-Type", "application/json");
- xmlHttp.responseType = "text";
- xmlHttp.send();
- },
- fetchPlaylist(id, callback) {
- // id can be found in playlist.attributes.playParams.globalId
- // this.mk.api.
- this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`).then(res => {
- callback(res.data.data[0])
- })
-
- // tracks are found in relationship.data
- },
- windowFocus(val) {
- if (val) {
- document.querySelectorAll(".animated-artwork-video").forEach(el => {
- el.play()
- })
- document.querySelector("body").classList.remove("stopanimation")
- this.animateBackground = true
- } else {
- document.querySelectorAll(".animated-artwork-video").forEach(el => {
- el.pause()
- })
- document.querySelector("body").classList.add("stopanimation")
- this.animateBackground = false
- }
- },
- async nowPlayingContextMenu(event) {
- let self = this
- let data_type = this.mk.nowPlayingItem.playParams.kind
- let item_id = this.mk.nowPlayingItem.attributes.playParams.id ?? this.mk.nowPlayingItem.id
- let isLibrary = this.mk.nowPlayingItem.attributes.playParams.isLibrary ?? false
- let params = {"fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "t": "1"}
- app.selectedMediaItems = []
- app.select_selectMediaItem(item_id, data_type, 0, '12344', isLibrary)
- let useMenu = "normal"
- let menus = {
- multiple: {
- items: []
- },
- normal: {
- headerItems: [{
- "icon": "./assets/feather/heart.svg",
- "id": "love",
- "name": app.getLz('action.love'),
- "hidden": false,
- "disabled": true,
- "action": function () {
- app.love(app.mk.nowPlayingItem)
- }
- },
- {
- "icon": "./assets/feather/heart.svg",
- "id": "unlove",
- "active": true,
- "name": app.getLz('action.unlove'),
- "hidden": true,
- "action": function () {
- app.unlove(app.mk.nowPlayingItem)
- }
- },
- {
- "icon": "./assets/feather/thumbs-down.svg",
- "id": "dislike",
- "name": app.getLz('action.dislike'),
- "hidden": false,
- "disabled": true,
- "action": function () {
- app.dislike(app.mk.nowPlayingItem)
- }
- },
- {
- "icon": "./assets/feather/thumbs-down.svg",
- "id": "undo_dislike",
- "name": app.getLz('action.undoDislike'),
- "active": true,
- "hidden": true,
- "action": function () {
- app.unlove(app.mk.nowPlayingItem)
- }
- },
- ],
- items: [{
- "icon": "./assets/feather/list.svg",
- "name": app.getLz('action.addToPlaylist') + " ...",
- "action": function () {
- app.promptAddToPlaylist()
- }
- },
- {
- "icon": "./assets/feather/plus.svg",
- "id": "addToLibrary",
- "name": app.getLz('action.addToLibrary') + " ...",
- "disabled": false,
- "action": function () {
- app.addToLibrary(app.mk.nowPlayingItem.id);
- }
- },
- {
- "icon": "./assets/feather/radio.svg",
- "name": app.getLz('action.startRadio'),
- "action": function () {
- app.mk.setStationQueue({song: app.mk.nowPlayingItem.id}).then(() => {
- app.mk.play()
- app.selectedMediaItems = []
- })
- }
- },
- {
- "icon": "./assets/feather/share.svg",
- "name": app.getLz('action.share'),
- "action": function () {
- app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? app.mk.nowPlayingItem.id ?? '').then(u => {
- app.copyToClipboard((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
- })
- }
- },
- {
- "icon": "./assets/feather/share.svg",
- "name": `${app.getLz('action.share')} (song.link)`,
- "action": function () {
- app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? app.mk.nowPlayingItem.id ?? '').then(u => {
- app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
- })
- }
- }
- ]
- }
- }
- if (this.contextExt) {
- if (this.contextExt.normal) {
- menus.normal.items = menus.normal.items.concat(this.contextExt.normal)
- }
- }
- this.showMenuPanel(menus[useMenu], event)
-
- try {
- let rating = await app.getRating(app.mk.nowPlayingItem)
- if (rating == 0) {
- menus.normal.headerItems.find(x => x.id == 'love').disabled = false
- menus.normal.headerItems.find(x => x.id == 'dislike').disabled = false
- } else if (rating == 1) {
- menus.normal.headerItems.find(x => x.id == 'unlove').hidden = false
- menus.normal.headerItems.find(x => x.id == 'love').hidden = true
- } else if (rating == -1) {
- menus.normal.headerItems.find(x => x.id == 'undo_dislike').hidden = false
- menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true
- }
- } catch (err) {
-
- }
- },
- LastFMDeauthorize() {
- ipcRenderer.invoke('setStoreValue', 'lastfm.enabled', false).catch((e) => console.error(e));
- ipcRenderer.invoke('setStoreValue', 'lastfm.auth_token', '').catch((e) => console.error(e));
- app.cfg.lastfm.auth_token = "";
- app.cfg.lastfm.enabled = false;
- const element = document.getElementById('lfmConnect');
- element.innerHTML = getLz('term.connect');
- element.onclick = app.LastFMAuthenticate;
- },
- LastFMAuthenticate() {
- console.log("[LastFM] Received LastFM authentication callback")
- const element = document.getElementById('lfmConnect');
- // new key : f9986d12aab5a0fe66193c559435ede3
- window.open('https://www.last.fm/api/auth?api_key=f9986d12aab5a0fe66193c559435ede3&cb=cider://auth/lastfm');
- element.innerText = app.getLz('term.connecting') + '...';
-
- /* Just a timeout for the button */
- setTimeout(() => {
- if (element.innerText === app.getLz('term.connecting') + '...') {
- element.innerText = app.getLz('term.connect');
- console.warn('[LastFM] Attempted connection timed out.');
- }
- }, 20000);
-
- ipcRenderer.on('LastfmAuthenticated', function (_event, lfmAuthKey) {
- app.cfg.lastfm.auth_token = lfmAuthKey;
- app.cfg.lastfm.enabled = true;
- element.innerHTML = `${app.getLz('term.disconnect')}\n(${app.getLz('term.authed')}: ${lfmAuthKey})
`;
- element.onclick = app.LastFMDeauthorize;
- });
- },
- parseSCTagToRG: function (tag) {
- let soundcheck = tag.split(" ")
- let numbers = []
- for (item of soundcheck) {
- numbers.push(parseInt(item, 16))
-
- }
- numbers.shift()
- let gain = Math.log10((Math.max(numbers[0], numbers[1]) ?? 1000) / 1000.0) * -10
- let peak = Math.max(numbers[6], numbers[7]) / 32768.0
- return {
- gain: gain,
- peak: peak
- }
- },
- fullscreen(flag) {
- if (flag) {
- ipcRenderer.send('setFullScreen', true);
- if (app.mk.nowPlayingItem.type && app.mk.nowPlayingItem.type.toLowerCase().includes("video")) {
- document.querySelector('video#apple-music-video-player').requestFullscreen()
- } else {
- app.appMode = 'fullscreen';
- }
- document.addEventListener('keydown', event => {
- if (event.key === 'Escape' && app.appMode === 'fullscreen') {
- this.fullscreen(false);
- }
- });
- } else {
- ipcRenderer.send('setFullScreen', false);
- app.appMode = 'player';
- }
- },
- miniPlayer(flag) {
- if (flag) {
- this.tmpWidth = window.innerWidth;
- this.tmpHeight = window.innerHeight;
- ipcRenderer.send('unmaximize');
- ipcRenderer.send('windowmin', 250, 250)
- ipcRenderer.send('windowresize', 300, 300, false)
- app.appMode = 'mini';
- } else {
- ipcRenderer.send('windowmin', 844, 410)
- ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false)
- ipcRenderer.send('windowontop', false)
- this.cfg.visual.miniplayer_top_toggle = true;
- app.appMode = 'player';
- }
- },
- pinMiniPlayer() {
- if (this.cfg.visual.miniplayer_top_toggle) {
- ipcRenderer.send('windowontop', true)
- this.cfg.visual.miniplayer_top_toggle = false
- } else {
- ipcRenderer.send('windowontop', false)
- this.cfg.visual.miniplayer_top_toggle = true;
- }
- },
- formatTimezoneOffset: (e = new Date) => {
- let leadingZeros = (e, s = 2) => {
- let n = "" + e;
- for (; n.length < s;)
- n = "0" + n;
- return n
- }
-
- const s = e.getTimezoneOffset(),
- n = Math.floor(Math.abs(s) / 60),
- d = Math.round(Math.abs(s) % 60);
- let h = "+";
- return 0 !== s && (h = s > 0 ? "-" : "+"),
- `${h}${leadingZeros(n, 2)}:${leadingZeros(d, 2)}`
- },
- toggleHideUserInfo() {
- if (this.chrome.hideUserInfo) {
- this.cfg.visual.showuserinfo = true
- this.chrome.hideUserInfo = false
- } else {
- this.cfg.visual.showuserinfo = false
- this.chrome.hideUserInfo = true
- }
- },
- isElementOverflowing(selector) {
- try {
- let element = document.querySelector(selector);
- var overflowX = element.offsetWidth < element.scrollWidth,
- overflowY = element.offsetHeight < element.scrollHeight;
- element.setAttribute('data-value', '\xa0\xa0\xa0\xa0' + element.textContent);
-
- return (overflowX || overflowY);
- } catch (e) {
- return false
- }
- },
- async showWebRemoteQR() {
- //this.webremoteqr = await ipcRenderer.invoke('setRemoteQR','')
- this.webremoteurl = await ipcRenderer.invoke('showQR', '')
- //this.modals.qrcode = true;
- },
- checkMarquee() {
- if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-artist') == true) {
- document.getElementsByClassName('song-artist')[0].classList.add('marquee');
- document.getElementsByClassName('song-artist')[1].classList.add('marquee-after');
- }
- if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-name') == true) {
- document.getElementsByClassName('song-name')[0].classList.add('marquee');
- document.getElementsByClassName('song-name')[1].classList.add('marquee-after');
- }
- },
- closeWindow() {
- ipcRenderer.send('close');
- },
- checkForUpdate() {
- ipcRenderer.send('check-for-update')
- },
- darwinShare(url) {
- ipcRenderer.send('share-menu', url)
- },
- }
-})
-
Vue.component('animated-number', {
template: "{{ displayNumber }}
",
- props: {'number': {default: 0}},
+ props: { 'number': { default: 0 } },
data() {
return {
@@ -3641,27 +88,6 @@ Vue.component('sidebar-library-item', {
methods: {}
});
-// Key binds
-document.addEventListener('keydown', function (e) {
- if (e.keyCode === 70 && e.ctrlKey) {
- app.$refs.searchInput.focus()
- app.$refs.searchInput.select()
- }
-});
-
-// Hang Timer
-app.hangtimer = setTimeout(() => {
- if (confirm("Cider is not responding. Reload the app?")) {
- window.location.reload()
- }
-}, 10000)
-
-// add event listener for when window.location.hash changes
-window.addEventListener("hashchange", function () {
- app.appRoute(window.location.hash)
-});
-
-
function fallbackinitMusicKit() {
const request = new XMLHttpRequest();
@@ -3676,9 +102,12 @@ function fallbackinitMusicKit() {
},
sourceType: 24,
suppressErrorDialog: true
- });
+ })
setTimeout(() => {
app.init()
+ if(app.cfg.visual.window_background_style == "mica" && !app.isDev) {
+ app.spawnMica()
+ }
}, 1000)
}
@@ -3688,11 +117,12 @@ function fallbackinitMusicKit() {
}
document.addEventListener('musickitloaded', function () {
+ console.log('MusicKit loaded')
// MusicKit global is now defined
function initMusicKit() {
let parsedJson = JSON.parse(this.responseText)
MusicKit.configure({
- developerToken: parsedJson.Key,
+ developerToken: parsedJson.token,
app: {
name: 'Apple Music',
build: '1978.4.1',
@@ -3700,10 +130,20 @@ document.addEventListener('musickitloaded', function () {
},
sourceType: 24,
suppressErrorDialog: true
- });
- setTimeout(() => {
- app.init()
- }, 1000)
+ }).then(() => {
+ function waitForApp() {
+ if (typeof app.init !== "undefined") {
+ app.init()
+ if(app.cfg.visual.window_background_style == "mica" && !app.isDev) {
+ app.spawnMica()
+ }
+ }
+ else {
+ setTimeout(waitForApp, 250);
+ }
+ }
+ waitForApp()
+ })
}
@@ -3716,7 +156,7 @@ document.addEventListener('musickitloaded', function () {
fallbackinitMusicKit()
}
};
- request.open("GET", "https://api.cider.sh/");
+ request.open("GET", "https://api.cider.sh/v1/");
request.send();
// check for widevine failure and reconfigure the instance.
@@ -3725,6 +165,9 @@ document.addEventListener('musickitloaded', function () {
});
});
+
+
+
if ('serviceWorker' in navigator) {
// Use the window load event to keep the page load performant
window.addEventListener('load', () => {
@@ -3755,19 +198,6 @@ function uuidv4() {
);
}
-function refreshFocus() {
- if (document.hasFocus() == false) {
- app.windowFocus(false)
- } else {
- app.windowFocus(true)
- }
- setTimeout(refreshFocus, 200);
-}
-
-app.getHTMLStyle()
-
-refreshFocus();
-
function xmlToJson(xml) {
// Create the return object
@@ -3835,30 +265,30 @@ async function webGPU() {
}
}
+function isJson(item) {
+ item = typeof item !== "string"
+ ? JSON.stringify(item)
+ : item;
+
+ try {
+ item = JSON.parse(item);
+ } catch (e) {
+ return false;
+ }
+
+ if (typeof item === "object" && item !== null) {
+ return true;
+ }
+
+ return false;
+}
+
webGPU().then()
let screenWidth = screen.width;
let screenHeight = screen.height;
-// Key bind to unjam MusicKit in case it fails: CTRL+F10
-document.addEventListener('keydown', function (event) {
- if (event.ctrlKey && event.keyCode == 121) {
- try {
- app.mk._services.mediaItemPlayback._currentPlayer.stop()
- } catch (e) {
- }
- try {
- app.mk._services.mediaItemPlayback._currentPlayer.destroy()
- } catch (e) {
- }
- }
-});
-
-document.addEventListener('keydown', function (event) {
- if (event.ctrlKey && event.keyCode == 122) {
- try {
- ipcRenderer.send('detachDT', '')
- } catch (e) {
- }
- }
-});
+window.onerror = function (error) {
+ console.log(error)
+ bootbox.alert("Error occured: " + error)
+};
diff --git a/src/renderer/less/bootstrap-vue.min.css b/src/renderer/less/bootstrap-vue.min.css
new file mode 100644
index 00000000..cedacd32
--- /dev/null
+++ b/src/renderer/less/bootstrap-vue.min.css
@@ -0,0 +1,2780 @@
+@charset "UTF-8";
+/*!
+ * BootstrapVue Custom CSS (https://bootstrap-vue.org)
+ */
+.bv-no-focus-ring:focus {
+ outline: none;
+}
+@media (max-width: 575.98px) {
+ .bv-d-xs-down-none {
+ display: none !important;
+ }
+}
+@media (max-width: 767.98px) {
+ .bv-d-sm-down-none {
+ display: none !important;
+ }
+}
+@media (max-width: 991.98px) {
+ .bv-d-md-down-none {
+ display: none !important;
+ }
+}
+@media (max-width: 1199.98px) {
+ .bv-d-lg-down-none {
+ display: none !important;
+ }
+}
+.bv-d-xl-down-none {
+ display: none !important;
+}
+.form-control.focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.form-control.focus.is-valid {
+ border-color: #28a745;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+.form-control.focus.is-invalid {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+.b-avatar {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ vertical-align: middle;
+ flex-shrink: 0;
+ width: 2.5rem;
+ height: 2.5rem;
+ font-size: inherit;
+ font-weight: 400;
+ line-height: 1;
+ max-width: 100%;
+ max-height: auto;
+ text-align: center;
+ overflow: visible;
+ position: relative;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+.b-avatar:focus {
+ outline: 0;
+}
+.b-avatar.btn,
+.b-avatar[href] {
+ padding: 0;
+ border: 0;
+}
+.b-avatar.btn .b-avatar-img img,
+.b-avatar[href] .b-avatar-img img {
+ transition: -webkit-transform 0.15s ease-in-out;
+ transition: transform 0.15s ease-in-out;
+ transition: transform 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
+}
+.b-avatar.btn:not(:disabled):not(.disabled),
+.b-avatar[href]:not(:disabled):not(.disabled) {
+ cursor: pointer;
+}
+.b-avatar.btn:not(:disabled):not(.disabled):hover .b-avatar-img img,
+.b-avatar[href]:not(:disabled):not(.disabled):hover .b-avatar-img img {
+ -webkit-transform: scale(1.15);
+ transform: scale(1.15);
+}
+.b-avatar.disabled,
+.b-avatar:disabled,
+.b-avatar[disabled] {
+ opacity: 0.65;
+ pointer-events: none;
+}
+.b-avatar .b-avatar-custom,
+.b-avatar .b-avatar-text,
+.b-avatar .b-avatar-img {
+ border-radius: inherit;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-mask-image: radial-gradient(white, black);
+ mask-image: radial-gradient(white, black);
+}
+.b-avatar .b-avatar-text {
+ text-transform: uppercase;
+ white-space: nowrap;
+}
+.b-avatar[href] {
+ text-decoration: none;
+}
+.b-avatar > .b-icon {
+ width: 60%;
+ height: auto;
+ max-width: 100%;
+}
+.b-avatar .b-avatar-img img {
+ width: 100%;
+ height: 100%;
+ max-height: auto;
+ border-radius: inherit;
+ -o-object-fit: cover;
+ object-fit: cover;
+}
+.b-avatar .b-avatar-badge {
+ position: absolute;
+ min-height: 1.5em;
+ min-width: 1.5em;
+ padding: 0.25em;
+ line-height: 1;
+ border-radius: 10em;
+ font-size: 70%;
+ font-weight: 700;
+ z-index: 1;
+}
+.b-avatar-sm {
+ width: 1.5rem;
+ height: 1.5rem;
+}
+.b-avatar-sm .b-avatar-text {
+ font-size: calc(0.6rem);
+}
+.b-avatar-sm .b-avatar-badge {
+ font-size: calc(0.42rem);
+}
+.b-avatar-lg {
+ width: 3.5rem;
+ height: 3.5rem;
+}
+.b-avatar-lg .b-avatar-text {
+ font-size: calc(1.4rem);
+}
+.b-avatar-lg .b-avatar-badge {
+ font-size: calc(0.98rem);
+}
+.b-avatar-group .b-avatar-group-inner {
+ display: flex;
+ flex-wrap: wrap;
+}
+.b-avatar-group .b-avatar {
+ border: 1px solid #dee2e6;
+}
+.b-avatar-group a.b-avatar:hover:not(.disabled):not(disabled),
+.b-avatar-group .btn.b-avatar:hover:not(.disabled):not(disabled) {
+ z-index: 1;
+}
+.b-calendar {
+ display: inline-flex;
+}
+.b-calendar .b-calendar-inner {
+ min-width: 250px;
+}
+.b-calendar .b-calendar-header,
+.b-calendar .b-calendar-nav {
+ margin-bottom: 0.25rem;
+}
+.b-calendar .b-calendar-nav .btn {
+ padding: 0.25rem;
+}
+.b-calendar output {
+ padding: 0.25rem;
+ font-size: 80%;
+}
+.b-calendar output.readonly {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+.b-calendar .b-calendar-footer {
+ margin-top: 0.5rem;
+}
+.b-calendar .b-calendar-grid {
+ padding: 0;
+ margin: 0;
+ overflow: hidden;
+}
+.b-calendar .b-calendar-grid .row {
+ flex-wrap: nowrap;
+}
+.b-calendar .b-calendar-grid-caption {
+ padding: 0.25rem;
+}
+.b-calendar .b-calendar-grid-body .col[data-date] .btn {
+ width: 32px;
+ height: 32px;
+ font-size: 14px;
+ line-height: 1;
+ margin: 3px auto;
+ padding: 9px 0;
+}
+.b-calendar .btn:disabled,
+.b-calendar .btn.disabled,
+.b-calendar .btn[aria-disabled=true] {
+ cursor: default;
+ pointer-events: none;
+}
+.card-img-left {
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px);
+}
+.card-img-right {
+ border-top-right-radius: calc(0.25rem - 1px);
+ border-bottom-right-radius: calc(0.25rem - 1px);
+}
+.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret::after {
+ display: none !important;
+}
+.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret::before {
+ display: none !important;
+}
+.dropdown .dropdown-menu:focus {
+ outline: none;
+}
+.b-dropdown-form {
+ display: inline-block;
+ padding: 0.25rem 1.5rem;
+ width: 100%;
+ clear: both;
+ font-weight: 400;
+}
+.b-dropdown-form:focus {
+ outline: 1px dotted !important;
+ outline: 5px auto -webkit-focus-ring-color !important;
+}
+.b-dropdown-form.disabled,
+.b-dropdown-form:disabled {
+ outline: 0 !important;
+ color: #6c757d;
+ pointer-events: none;
+}
+.b-dropdown-text {
+ display: inline-block;
+ padding: 0.25rem 1.5rem;
+ margin-bottom: 0;
+ width: 100%;
+ clear: both;
+ font-weight: lighter;
+}
+.custom-checkbox.b-custom-control-lg,
+.input-group-lg .custom-checkbox {
+ font-size: 1.25rem;
+ line-height: 1.5;
+ padding-left: 1.875rem;
+}
+.custom-checkbox.b-custom-control-lg .custom-control-label::before,
+.input-group-lg .custom-checkbox .custom-control-label::before {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ border-radius: 0.3rem;
+}
+.custom-checkbox.b-custom-control-lg .custom-control-label::after,
+.input-group-lg .custom-checkbox .custom-control-label::after {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ background-size: 50% 50%;
+}
+.custom-checkbox.b-custom-control-sm,
+.input-group-sm .custom-checkbox {
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding-left: 1.3125rem;
+}
+.custom-checkbox.b-custom-control-sm .custom-control-label::before,
+.input-group-sm .custom-checkbox .custom-control-label::before {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ border-radius: 0.2rem;
+}
+.custom-checkbox.b-custom-control-sm .custom-control-label::after,
+.input-group-sm .custom-checkbox .custom-control-label::after {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ background-size: 50% 50%;
+}
+.custom-switch.b-custom-control-lg,
+.input-group-lg .custom-switch {
+ padding-left: 2.8125rem;
+}
+.custom-switch.b-custom-control-lg .custom-control-label,
+.input-group-lg .custom-switch .custom-control-label {
+ font-size: 1.25rem;
+ line-height: 1.5;
+}
+.custom-switch.b-custom-control-lg .custom-control-label::before,
+.input-group-lg .custom-switch .custom-control-label::before {
+ top: 0.3125rem;
+ height: 1.25rem;
+ left: -2.8125rem;
+ width: 2.1875rem;
+ border-radius: 0.625rem;
+}
+.custom-switch.b-custom-control-lg .custom-control-label::after,
+.input-group-lg .custom-switch .custom-control-label::after {
+ top: calc(0.3125rem + 2px);
+ left: calc(-2.8125rem + 2px);
+ width: calc(1.25rem - 4px);
+ height: calc(1.25rem - 4px);
+ border-radius: 0.625rem;
+ background-size: 50% 50%;
+}
+.custom-switch.b-custom-control-lg .custom-control-input:checked ~ .custom-control-label::after,
+.input-group-lg .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
+ -webkit-transform: translateX(0.9375rem);
+ transform: translateX(0.9375rem);
+}
+.custom-switch.b-custom-control-sm,
+.input-group-sm .custom-switch {
+ padding-left: 1.96875rem;
+}
+.custom-switch.b-custom-control-sm .custom-control-label,
+.input-group-sm .custom-switch .custom-control-label {
+ font-size: 0.875rem;
+ line-height: 1.5;
+}
+.custom-switch.b-custom-control-sm .custom-control-label::before,
+.input-group-sm .custom-switch .custom-control-label::before {
+ top: 0.21875rem;
+ left: -1.96875rem;
+ width: 1.53125rem;
+ height: 0.875rem;
+ border-radius: 0.4375rem;
+}
+.custom-switch.b-custom-control-sm .custom-control-label::after,
+.input-group-sm .custom-switch .custom-control-label::after {
+ top: calc(0.21875rem + 2px);
+ left: calc(-1.96875rem + 2px);
+ width: calc(0.875rem - 4px);
+ height: calc(0.875rem - 4px);
+ border-radius: 0.4375rem;
+ background-size: 50% 50%;
+}
+.custom-switch.b-custom-control-sm .custom-control-input:checked ~ .custom-control-label::after,
+.input-group-sm .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
+ -webkit-transform: translateX(0.65625rem);
+ transform: translateX(0.65625rem);
+}
+.input-group > .input-group-prepend > .btn-group > .btn,
+.input-group > .input-group-append:not(:last-child) > .btn-group > .btn,
+.input-group > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.input-group > .input-group-append > .btn-group > .btn,
+.input-group > .input-group-prepend:not(:first-child) > .btn-group > .btn,
+.input-group > .input-group-prepend:first-child > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.b-form-btn-label-control.form-control {
+ display: flex;
+ align-items: stretch;
+ height: auto;
+ padding: 0;
+ background-image: none;
+}
+.input-group .b-form-btn-label-control.form-control {
+ padding: 0;
+}
+[dir=rtl] .b-form-btn-label-control.form-control,
+.b-form-btn-label-control.form-control[dir=rtl] {
+ flex-direction: row-reverse;
+}
+[dir=rtl] .b-form-btn-label-control.form-control > label,
+.b-form-btn-label-control.form-control[dir=rtl] > label {
+ text-align: right;
+}
+.b-form-btn-label-control.form-control > .btn {
+ line-height: 1;
+ font-size: inherit;
+ box-shadow: none !important;
+ border: 0;
+}
+.b-form-btn-label-control.form-control > .btn:disabled {
+ pointer-events: none;
+}
+.b-form-btn-label-control.form-control.is-valid > .btn {
+ color: #28a745;
+}
+.b-form-btn-label-control.form-control.is-invalid > .btn {
+ color: #dc3545;
+}
+.b-form-btn-label-control.form-control > .dropdown-menu {
+ padding: 0.5rem;
+}
+.b-form-btn-label-control.form-control > .form-control {
+ height: auto;
+ min-height: calc(calc(1.5em + 0.75rem + 2px) - 2px);
+ padding-left: 0.25rem;
+ margin: 0;
+ border: 0;
+ outline: 0;
+ background: transparent;
+ word-break: break-word;
+ font-size: inherit;
+ white-space: normal;
+ cursor: pointer;
+}
+.b-form-btn-label-control.form-control > .form-control.form-control-sm {
+ min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px);
+}
+.b-form-btn-label-control.form-control > .form-control.form-control-lg {
+ min-height: calc(calc(1.5em + 1rem + 2px) - 2px);
+}
+.input-group.input-group-sm .b-form-btn-label-control.form-control > .form-control {
+ min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px);
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+}
+.input-group.input-group-lg .b-form-btn-label-control.form-control > .form-control {
+ min-height: calc(calc(1.5em + 1rem + 2px) - 2px);
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+.b-form-btn-label-control.form-control[aria-disabled=true],
+.b-form-btn-label-control.form-control[aria-readonly=true] {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+.b-form-btn-label-control.form-control[aria-disabled=true] {
+ pointer-events: none;
+}
+.b-form-btn-label-control.form-control[aria-disabled=true] > label {
+ cursor: default;
+}
+.b-form-btn-label-control.btn-group > .dropdown-menu {
+ padding: 0.5rem;
+}
+.custom-file-label {
+ white-space: nowrap;
+ overflow-x: hidden;
+}
+.b-custom-control-lg.custom-file,
+.b-custom-control-lg .custom-file-input,
+.b-custom-control-lg .custom-file-label,
+.input-group-lg.custom-file,
+.input-group-lg .custom-file-input,
+.input-group-lg .custom-file-label {
+ font-size: 1.25rem;
+ height: calc(1.5em + 1rem + 2px);
+}
+.b-custom-control-lg .custom-file-label,
+.b-custom-control-lg .custom-file-label:after,
+.input-group-lg .custom-file-label,
+.input-group-lg .custom-file-label:after {
+ padding: 0.5rem 1rem;
+ line-height: 1.5;
+}
+.b-custom-control-lg .custom-file-label,
+.input-group-lg .custom-file-label {
+ border-radius: 0.3rem;
+}
+.b-custom-control-lg .custom-file-label::after,
+.input-group-lg .custom-file-label::after {
+ font-size: inherit;
+ height: calc(1.5em + 1rem);
+ border-radius: 0 0.3rem 0.3rem 0;
+}
+.b-custom-control-sm.custom-file,
+.b-custom-control-sm .custom-file-input,
+.b-custom-control-sm .custom-file-label,
+.input-group-sm.custom-file,
+.input-group-sm .custom-file-input,
+.input-group-sm .custom-file-label {
+ font-size: 0.875rem;
+ height: calc(1.5em + 0.5rem + 2px);
+}
+.b-custom-control-sm .custom-file-label,
+.b-custom-control-sm .custom-file-label:after,
+.input-group-sm .custom-file-label,
+.input-group-sm .custom-file-label:after {
+ padding: 0.25rem 0.5rem;
+ line-height: 1.5;
+}
+.b-custom-control-sm .custom-file-label,
+.input-group-sm .custom-file-label {
+ border-radius: 0.2rem;
+}
+.b-custom-control-sm .custom-file-label::after,
+.input-group-sm .custom-file-label::after {
+ font-size: inherit;
+ height: calc(1.5em + 0.5rem);
+ border-radius: 0 0.2rem 0.2rem 0;
+}
+.was-validated .form-control:invalid,
+.was-validated .form-control:valid,
+.form-control.is-invalid,
+.form-control.is-valid {
+ background-position: right calc(0.375em + 0.1875rem) center;
+}
+input[type=color].form-control {
+ height: calc(1.5em + 0.75rem + 2px);
+ padding: 0.125rem 0.25rem;
+}
+input[type=color].form-control.form-control-sm,
+.input-group-sm input[type=color].form-control {
+ height: calc(1.5em + 0.5rem + 2px);
+ padding: 0.125rem 0.25rem;
+}
+input[type=color].form-control.form-control-lg,
+.input-group-lg input[type=color].form-control {
+ height: calc(1.5em + 1rem + 2px);
+ padding: 0.125rem 0.25rem;
+}
+input[type=color].form-control:disabled {
+ background-color: #adb5bd;
+ opacity: 0.65;
+}
+.input-group > .custom-range {
+ position: relative;
+ flex: 1 1 auto;
+ width: 1%;
+ margin-bottom: 0;
+}
+.input-group > .custom-range + .form-control,
+.input-group > .custom-range + .form-control-plaintext,
+.input-group > .custom-range + .custom-select,
+.input-group > .custom-range + .custom-range,
+.input-group > .custom-range + .custom-file {
+ margin-left: -1px;
+}
+.input-group > .form-control + .custom-range,
+.input-group > .form-control-plaintext + .custom-range,
+.input-group > .custom-select + .custom-range,
+.input-group > .custom-range + .custom-range,
+.input-group > .custom-file + .custom-range {
+ margin-left: -1px;
+}
+.input-group > .custom-range:focus {
+ z-index: 3;
+}
+.input-group > .custom-range:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.input-group > .custom-range:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.input-group > .custom-range {
+ padding: 0 0.75rem;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ced4da;
+ height: calc(1.5em + 0.75rem + 2px);
+ border-radius: 0.25rem;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .input-group > .custom-range {
+ transition: none;
+ }
+}
+.input-group > .custom-range:focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.input-group > .custom-range:disabled,
+.input-group > .custom-range[readonly] {
+ background-color: #e9ecef;
+}
+.input-group-lg > .custom-range {
+ height: calc(1.5em + 1rem + 2px);
+ padding: 0 1rem;
+ border-radius: 0.3rem;
+}
+.input-group-sm > .custom-range {
+ height: calc(1.5em + 0.5rem + 2px);
+ padding: 0 0.5rem;
+ border-radius: 0.2rem;
+}
+.was-validated .input-group .custom-range:valid,
+.input-group .custom-range.is-valid {
+ border-color: #28a745;
+}
+.was-validated .input-group .custom-range:valid:focus,
+.input-group .custom-range.is-valid:focus {
+ border-color: #28a745;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+.was-validated .custom-range:valid:focus::-webkit-slider-thumb,
+.custom-range.is-valid:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;
+}
+.was-validated .custom-range:valid:focus::-moz-range-thumb,
+.custom-range.is-valid:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;
+}
+.was-validated .custom-range:valid:focus::-ms-thumb,
+.custom-range.is-valid:focus::-ms-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;
+}
+.was-validated .custom-range:valid::-webkit-slider-thumb,
+.custom-range.is-valid::-webkit-slider-thumb {
+ background-color: #28a745;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-webkit-slider-thumb:active,
+.custom-range.is-valid::-webkit-slider-thumb:active {
+ background-color: #9be7ac;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-webkit-slider-runnable-track,
+.custom-range.is-valid::-webkit-slider-runnable-track {
+ background-color: rgba(40, 167, 69, 0.35);
+}
+.was-validated .custom-range:valid::-moz-range-thumb,
+.custom-range.is-valid::-moz-range-thumb {
+ background-color: #28a745;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-moz-range-thumb:active,
+.custom-range.is-valid::-moz-range-thumb:active {
+ background-color: #9be7ac;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-moz-range-track,
+.custom-range.is-valid::-moz-range-track {
+ background: rgba(40, 167, 69, 0.35);
+}
+.was-validated .custom-range:valid ~ .valid-feedback,
+.was-validated .custom-range:valid ~ .valid-tooltip,
+.custom-range.is-valid ~ .valid-feedback,
+.custom-range.is-valid ~ .valid-tooltip {
+ display: block;
+}
+.was-validated .custom-range:valid::-ms-thumb,
+.custom-range.is-valid::-ms-thumb {
+ background-color: #28a745;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-ms-thumb:active,
+.custom-range.is-valid::-ms-thumb:active {
+ background-color: #9be7ac;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-ms-track-lower,
+.custom-range.is-valid::-ms-track-lower {
+ background: rgba(40, 167, 69, 0.35);
+}
+.was-validated .custom-range:valid::-ms-track-upper,
+.custom-range.is-valid::-ms-track-upper {
+ background: rgba(40, 167, 69, 0.35);
+}
+.was-validated .input-group .custom-range:invalid,
+.input-group .custom-range.is-invalid {
+ border-color: #dc3545;
+}
+.was-validated .input-group .custom-range:invalid:focus,
+.input-group .custom-range.is-invalid:focus {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+.was-validated .custom-range:invalid:focus::-webkit-slider-thumb,
+.custom-range.is-invalid:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;
+}
+.was-validated .custom-range:invalid:focus::-moz-range-thumb,
+.custom-range.is-invalid:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;
+}
+.was-validated .custom-range:invalid:focus::-ms-thumb,
+.custom-range.is-invalid:focus::-ms-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;
+}
+.was-validated .custom-range:invalid::-webkit-slider-thumb,
+.custom-range.is-invalid::-webkit-slider-thumb {
+ background-color: #dc3545;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-webkit-slider-thumb:active,
+.custom-range.is-invalid::-webkit-slider-thumb:active {
+ background-color: #f6cdd1;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-webkit-slider-runnable-track,
+.custom-range.is-invalid::-webkit-slider-runnable-track {
+ background-color: rgba(220, 53, 69, 0.35);
+}
+.was-validated .custom-range:invalid::-moz-range-thumb,
+.custom-range.is-invalid::-moz-range-thumb {
+ background-color: #dc3545;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-moz-range-thumb:active,
+.custom-range.is-invalid::-moz-range-thumb:active {
+ background-color: #f6cdd1;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-moz-range-track,
+.custom-range.is-invalid::-moz-range-track {
+ background: rgba(220, 53, 69, 0.35);
+}
+.was-validated .custom-range:invalid ~ .invalid-feedback,
+.was-validated .custom-range:invalid ~ .invalid-tooltip,
+.custom-range.is-invalid ~ .invalid-feedback,
+.custom-range.is-invalid ~ .invalid-tooltip {
+ display: block;
+}
+.was-validated .custom-range:invalid::-ms-thumb,
+.custom-range.is-invalid::-ms-thumb {
+ background-color: #dc3545;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-ms-thumb:active,
+.custom-range.is-invalid::-ms-thumb:active {
+ background-color: #f6cdd1;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-ms-track-lower,
+.custom-range.is-invalid::-ms-track-lower {
+ background: rgba(220, 53, 69, 0.35);
+}
+.was-validated .custom-range:invalid::-ms-track-upper,
+.custom-range.is-invalid::-ms-track-upper {
+ background: rgba(220, 53, 69, 0.35);
+}
+.custom-radio.b-custom-control-lg,
+.input-group-lg .custom-radio {
+ font-size: 1.25rem;
+ line-height: 1.5;
+ padding-left: 1.875rem;
+}
+.custom-radio.b-custom-control-lg .custom-control-label::before,
+.input-group-lg .custom-radio .custom-control-label::before {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ border-radius: 50%;
+}
+.custom-radio.b-custom-control-lg .custom-control-label::after,
+.input-group-lg .custom-radio .custom-control-label::after {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ background: no-repeat 50%/50% 50%;
+}
+.custom-radio.b-custom-control-sm,
+.input-group-sm .custom-radio {
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding-left: 1.3125rem;
+}
+.custom-radio.b-custom-control-sm .custom-control-label::before,
+.input-group-sm .custom-radio .custom-control-label::before {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ border-radius: 50%;
+}
+.custom-radio.b-custom-control-sm .custom-control-label::after,
+.input-group-sm .custom-radio .custom-control-label::after {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ background: no-repeat 50%/50% 50%;
+}
+.b-rating {
+ text-align: center;
+}
+.b-rating.d-inline-flex {
+ width: auto;
+}
+.b-rating .b-rating-star,
+.b-rating .b-rating-value {
+ padding: 0 0.25em;
+}
+.b-rating .b-rating-value {
+ min-width: 2.5em;
+}
+.b-rating .b-rating-star {
+ display: inline-flex;
+ justify-content: center;
+ outline: 0;
+}
+.b-rating .b-rating-star .b-rating-icon {
+ display: inline-flex;
+ transition: all 0.15s ease-in-out;
+}
+.b-rating.disabled,
+.b-rating:disabled {
+ background-color: #e9ecef;
+ color: #6c757d;
+}
+.b-rating:not(.disabled):not(.readonly) .b-rating-star {
+ cursor: pointer;
+}
+.b-rating:not(.disabled):not(.readonly):focus:not(:hover) .b-rating-star.focused .b-rating-icon,
+.b-rating:not(.disabled):not(.readonly) .b-rating-star:hover .b-rating-icon {
+ -webkit-transform: scale(1.5);
+ transform: scale(1.5);
+}
+.b-rating[dir=rtl] .b-rating-star-half {
+ -webkit-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.b-form-spinbutton {
+ text-align: center;
+ overflow: hidden;
+ background-image: none;
+ padding: 0;
+}
+[dir=rtl] .b-form-spinbutton:not(.flex-column),
+.b-form-spinbutton[dir=rtl]:not(.flex-column) {
+ flex-direction: row-reverse;
+}
+.b-form-spinbutton output {
+ font-size: inherit;
+ outline: 0;
+ border: 0;
+ background-color: transparent;
+ width: auto;
+ margin: 0;
+ padding: 0 0.25rem;
+}
+.b-form-spinbutton output > div,
+.b-form-spinbutton output > bdi {
+ display: block;
+ min-width: 2.25em;
+ height: 1.5em;
+}
+.b-form-spinbutton.flex-column {
+ height: auto;
+ width: auto;
+}
+.b-form-spinbutton.flex-column output {
+ margin: 0 0.25rem;
+ padding: 0.25rem 0;
+}
+.b-form-spinbutton:not(.d-inline-flex):not(.flex-column) {
+ output-width: 100%;
+}
+.b-form-spinbutton.d-inline-flex:not(.flex-column) {
+ width: auto;
+}
+.b-form-spinbutton .btn {
+ line-height: 1;
+ box-shadow: none !important;
+}
+.b-form-spinbutton .btn:disabled {
+ pointer-events: none;
+}
+.b-form-spinbutton .btn:hover:not(:disabled) > div > .b-icon {
+ -webkit-transform: scale(1.25);
+ transform: scale(1.25);
+}
+.b-form-spinbutton.disabled,
+.b-form-spinbutton.readonly {
+ background-color: #e9ecef;
+}
+.b-form-spinbutton.disabled {
+ pointer-events: none;
+}
+.b-form-tags .b-form-tags-list {
+ margin-top: -0.25rem;
+}
+.b-form-tags .b-form-tags-list .b-from-tags-field,
+.b-form-tags .b-form-tags-list .b-form-tag {
+ margin-top: 0.25rem;
+}
+.b-form-tags.focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.b-form-tags.focus.is-valid {
+ border-color: #28a745;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+.b-form-tags.focus.is-invalid {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+.b-form-tags.disabled {
+ background-color: #e9ecef;
+}
+.b-form-tag {
+ font-size: 75%;
+ font-weight: normal;
+ line-height: 1.5;
+ margin-right: 0.25rem;
+}
+.b-form-tag.disabled {
+ opacity: 0.75;
+}
+.b-form-tag > button.b-form-tag-remove {
+ color: inherit;
+ font-size: 125%;
+ line-height: 1;
+ float: none;
+ margin-left: 0.25rem;
+}
+.form-control-sm .b-form-tag {
+ line-height: 1.5;
+}
+.form-control-lg .b-form-tag {
+ line-height: 1.5;
+}
+.media-aside {
+ display: flex;
+ margin-right: 1rem;
+}
+.media-aside-right {
+ margin-right: 0;
+ margin-left: 1rem;
+}
+.modal-backdrop {
+ opacity: 0.5;
+}
+.b-pagination-pills .page-item .page-link {
+ border-radius: 50rem !important;
+ margin-left: 0.25rem;
+ line-height: 1;
+}
+.b-pagination-pills .page-item:first-child .page-link {
+ margin-left: 0;
+}
+.popover.b-popover {
+ display: block;
+ opacity: 1;
+ outline: 0;
+}
+.popover.b-popover.fade:not(.show) {
+ opacity: 0;
+}
+.popover.b-popover.show {
+ opacity: 1;
+}
+.b-popover-primary.popover {
+ background-color: #cce5ff;
+ border-color: #b8daff;
+}
+.b-popover-primary.bs-popover-top > .arrow::before,
+.b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #b8daff;
+}
+.b-popover-primary.bs-popover-top > .arrow::after,
+.b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #cce5ff;
+}
+.b-popover-primary.bs-popover-right > .arrow::before,
+.b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #b8daff;
+}
+.b-popover-primary.bs-popover-right > .arrow::after,
+.b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #cce5ff;
+}
+.b-popover-primary.bs-popover-bottom > .arrow::before,
+.b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #b8daff;
+}
+.b-popover-primary.bs-popover-bottom > .arrow::after,
+.b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #bdddff;
+}
+.b-popover-primary.bs-popover-bottom .popover-header::before,
+.b-popover-primary.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #bdddff;
+}
+.b-popover-primary.bs-popover-left > .arrow::before,
+.b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #b8daff;
+}
+.b-popover-primary.bs-popover-left > .arrow::after,
+.b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #cce5ff;
+}
+.b-popover-primary .popover-header {
+ color: #212529;
+ background-color: #bdddff;
+ border-bottom-color: #a3d0ff;
+}
+.b-popover-primary .popover-body {
+ color: #004085;
+}
+.b-popover-secondary.popover {
+ background-color: #e2e3e5;
+ border-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-top > .arrow::before,
+.b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-top > .arrow::after,
+.b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #e2e3e5;
+}
+.b-popover-secondary.bs-popover-right > .arrow::before,
+.b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-right > .arrow::after,
+.b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #e2e3e5;
+}
+.b-popover-secondary.bs-popover-bottom > .arrow::before,
+.b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-bottom > .arrow::after,
+.b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #dadbde;
+}
+.b-popover-secondary.bs-popover-bottom .popover-header::before,
+.b-popover-secondary.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #dadbde;
+}
+.b-popover-secondary.bs-popover-left > .arrow::before,
+.b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-left > .arrow::after,
+.b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #e2e3e5;
+}
+.b-popover-secondary .popover-header {
+ color: #212529;
+ background-color: #dadbde;
+ border-bottom-color: #ccced2;
+}
+.b-popover-secondary .popover-body {
+ color: #383d41;
+}
+.b-popover-success.popover {
+ background-color: #d4edda;
+ border-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-top > .arrow::before,
+.b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-top > .arrow::after,
+.b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #d4edda;
+}
+.b-popover-success.bs-popover-right > .arrow::before,
+.b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-right > .arrow::after,
+.b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #d4edda;
+}
+.b-popover-success.bs-popover-bottom > .arrow::before,
+.b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-bottom > .arrow::after,
+.b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #c9e8d1;
+}
+.b-popover-success.bs-popover-bottom .popover-header::before,
+.b-popover-success.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #c9e8d1;
+}
+.b-popover-success.bs-popover-left > .arrow::before,
+.b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-left > .arrow::after,
+.b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #d4edda;
+}
+.b-popover-success .popover-header {
+ color: #212529;
+ background-color: #c9e8d1;
+ border-bottom-color: #b7e1c1;
+}
+.b-popover-success .popover-body {
+ color: #155724;
+}
+.b-popover-info.popover {
+ background-color: #d1ecf1;
+ border-color: #bee5eb;
+}
+.b-popover-info.bs-popover-top > .arrow::before,
+.b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #bee5eb;
+}
+.b-popover-info.bs-popover-top > .arrow::after,
+.b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #d1ecf1;
+}
+.b-popover-info.bs-popover-right > .arrow::before,
+.b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #bee5eb;
+}
+.b-popover-info.bs-popover-right > .arrow::after,
+.b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #d1ecf1;
+}
+.b-popover-info.bs-popover-bottom > .arrow::before,
+.b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #bee5eb;
+}
+.b-popover-info.bs-popover-bottom > .arrow::after,
+.b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #c5e7ed;
+}
+.b-popover-info.bs-popover-bottom .popover-header::before,
+.b-popover-info.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #c5e7ed;
+}
+.b-popover-info.bs-popover-left > .arrow::before,
+.b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #bee5eb;
+}
+.b-popover-info.bs-popover-left > .arrow::after,
+.b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #d1ecf1;
+}
+.b-popover-info .popover-header {
+ color: #212529;
+ background-color: #c5e7ed;
+ border-bottom-color: #b2dfe7;
+}
+.b-popover-info .popover-body {
+ color: #0c5460;
+}
+.b-popover-warning.popover {
+ background-color: #fff3cd;
+ border-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-top > .arrow::before,
+.b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-top > .arrow::after,
+.b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #fff3cd;
+}
+.b-popover-warning.bs-popover-right > .arrow::before,
+.b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-right > .arrow::after,
+.b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #fff3cd;
+}
+.b-popover-warning.bs-popover-bottom > .arrow::before,
+.b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-bottom > .arrow::after,
+.b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #ffefbe;
+}
+.b-popover-warning.bs-popover-bottom .popover-header::before,
+.b-popover-warning.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #ffefbe;
+}
+.b-popover-warning.bs-popover-left > .arrow::before,
+.b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-left > .arrow::after,
+.b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #fff3cd;
+}
+.b-popover-warning .popover-header {
+ color: #212529;
+ background-color: #ffefbe;
+ border-bottom-color: #ffe9a4;
+}
+.b-popover-warning .popover-body {
+ color: #856404;
+}
+.b-popover-danger.popover {
+ background-color: #f8d7da;
+ border-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-top > .arrow::before,
+.b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-top > .arrow::after,
+.b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #f8d7da;
+}
+.b-popover-danger.bs-popover-right > .arrow::before,
+.b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-right > .arrow::after,
+.b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #f8d7da;
+}
+.b-popover-danger.bs-popover-bottom > .arrow::before,
+.b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-bottom > .arrow::after,
+.b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #f6cace;
+}
+.b-popover-danger.bs-popover-bottom .popover-header::before,
+.b-popover-danger.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #f6cace;
+}
+.b-popover-danger.bs-popover-left > .arrow::before,
+.b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-left > .arrow::after,
+.b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #f8d7da;
+}
+.b-popover-danger .popover-header {
+ color: #212529;
+ background-color: #f6cace;
+ border-bottom-color: #f2b4ba;
+}
+.b-popover-danger .popover-body {
+ color: #721c24;
+}
+.b-popover-light.popover {
+ background-color: #fefefe;
+ border-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-top > .arrow::before,
+.b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-top > .arrow::after,
+.b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #fefefe;
+}
+.b-popover-light.bs-popover-right > .arrow::before,
+.b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-right > .arrow::after,
+.b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #fefefe;
+}
+.b-popover-light.bs-popover-bottom > .arrow::before,
+.b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-bottom > .arrow::after,
+.b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #f6f6f6;
+}
+.b-popover-light.bs-popover-bottom .popover-header::before,
+.b-popover-light.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #f6f6f6;
+}
+.b-popover-light.bs-popover-left > .arrow::before,
+.b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-left > .arrow::after,
+.b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #fefefe;
+}
+.b-popover-light .popover-header {
+ color: #212529;
+ background-color: #f6f6f6;
+ border-bottom-color: #eaeaea;
+}
+.b-popover-light .popover-body {
+ color: #818182;
+}
+.b-popover-dark.popover {
+ background-color: #d6d8d9;
+ border-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-top > .arrow::before,
+.b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-top > .arrow::after,
+.b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #d6d8d9;
+}
+.b-popover-dark.bs-popover-right > .arrow::before,
+.b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-right > .arrow::after,
+.b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #d6d8d9;
+}
+.b-popover-dark.bs-popover-bottom > .arrow::before,
+.b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-bottom > .arrow::after,
+.b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #ced0d2;
+}
+.b-popover-dark.bs-popover-bottom .popover-header::before,
+.b-popover-dark.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #ced0d2;
+}
+.b-popover-dark.bs-popover-left > .arrow::before,
+.b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-left > .arrow::after,
+.b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #d6d8d9;
+}
+.b-popover-dark .popover-header {
+ color: #212529;
+ background-color: #ced0d2;
+ border-bottom-color: #c1c4c5;
+}
+.b-popover-dark .popover-body {
+ color: #1b1e21;
+}
+.b-sidebar-outer {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 0;
+ overflow: visible;
+ z-index: calc(1030 + 5);
+}
+.b-sidebar-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ width: 100vw;
+ height: 100vh;
+ opacity: 0.6;
+}
+.b-sidebar {
+ display: flex;
+ flex-direction: column;
+ position: fixed;
+ top: 0;
+ width: 320px;
+ max-width: 100%;
+ height: 100vh;
+ max-height: 100%;
+ margin: 0;
+ outline: 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+}
+.b-sidebar.slide {
+ transition: -webkit-transform 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-sidebar.slide {
+ transition: none;
+ }
+}
+.b-sidebar:not(.b-sidebar-right) {
+ left: 0;
+ right: auto;
+}
+.b-sidebar:not(.b-sidebar-right).slide:not(.show) {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+}
+.b-sidebar:not(.b-sidebar-right) > .b-sidebar-header .close {
+ margin-left: auto;
+}
+.b-sidebar.b-sidebar-right {
+ left: auto;
+ right: 0;
+}
+.b-sidebar.b-sidebar-right.slide:not(.show) {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+}
+.b-sidebar.b-sidebar-right > .b-sidebar-header .close {
+ margin-right: auto;
+}
+.b-sidebar > .b-sidebar-header {
+ font-size: 1.5rem;
+ padding: 0.5rem 1rem;
+ display: flex;
+ flex-direction: row;
+ flex-grow: 0;
+ align-items: center;
+}
+[dir=rtl] .b-sidebar > .b-sidebar-header {
+ flex-direction: row-reverse;
+}
+.b-sidebar > .b-sidebar-header .close {
+ float: none;
+ font-size: 1.5rem;
+}
+.b-sidebar > .b-sidebar-body {
+ flex-grow: 1;
+ height: 100%;
+ overflow-y: auto;
+}
+.b-sidebar > .b-sidebar-footer {
+ flex-grow: 0;
+}
+.b-skeleton-wrapper {
+ cursor: wait;
+}
+.b-skeleton {
+ position: relative;
+ overflow: hidden;
+ background-color: rgba(0, 0, 0, 0.12);
+ cursor: wait;
+ -webkit-mask-image: radial-gradient(white, black);
+ mask-image: radial-gradient(white, black);
+}
+.b-skeleton::before {
+ content: " ";
+}
+.b-skeleton-text {
+ height: 1rem;
+ margin-bottom: 0.25rem;
+ border-radius: 0.25rem;
+}
+.b-skeleton-button {
+ width: 75px;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ line-height: 1.5;
+ border-radius: 0.25rem;
+}
+.b-skeleton-avatar {
+ width: 2.5em;
+ height: 2.5em;
+ border-radius: 50%;
+}
+.b-skeleton-input {
+ height: calc(1.5em + 0.75rem + 2px);
+ padding: 0.375rem 0.75rem;
+ line-height: 1.5;
+ border: #ced4da solid 1px;
+ border-radius: 0.25rem;
+}
+.b-skeleton-icon-wrapper svg {
+ color: rgba(0, 0, 0, 0.12);
+}
+.b-skeleton-img {
+ height: 100%;
+ width: 100%;
+}
+.b-skeleton-animate-wave::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 0;
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
+ -webkit-animation: b-skeleton-animate-wave 1.75s linear infinite;
+ animation: b-skeleton-animate-wave 1.75s linear infinite;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-skeleton-animate-wave::after {
+ background: none;
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+@-webkit-keyframes b-skeleton-animate-wave {
+ from {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+ to {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+}
+@keyframes b-skeleton-animate-wave {
+ from {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+ to {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+}
+.b-skeleton-animate-fade {
+ -webkit-animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite;
+ animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-skeleton-animate-fade {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+@-webkit-keyframes b-skeleton-animate-fade {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0.4;
+ }
+}
+@keyframes b-skeleton-animate-fade {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0.4;
+ }
+}
+.b-skeleton-animate-throb {
+ -webkit-animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite;
+ animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-skeleton-animate-throb {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+@-webkit-keyframes b-skeleton-animate-throb {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+ 100% {
+ -webkit-transform: scale(0.975);
+ transform: scale(0.975);
+ }
+}
+@keyframes b-skeleton-animate-throb {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+ 100% {
+ -webkit-transform: scale(0.975);
+ transform: scale(0.975);
+ }
+}
+.table.b-table.b-table-fixed {
+ table-layout: fixed;
+}
+.table.b-table.b-table-no-border-collapse {
+ border-collapse: separate;
+ border-spacing: 0;
+}
+.table.b-table[aria-busy=true] {
+ opacity: 0.55;
+}
+.table.b-table > tbody > tr.b-table-details > td {
+ border-top: none !important;
+}
+.table.b-table > caption {
+ caption-side: bottom;
+}
+.table.b-table.b-table-caption-top > caption {
+ caption-side: top !important;
+}
+.table.b-table > tbody > .table-active,
+.table.b-table > tbody > .table-active > th,
+.table.b-table > tbody > .table-active > td {
+ background-color: rgba(0, 0, 0, 0.075);
+}
+.table.b-table.table-hover > tbody > tr.table-active:hover td,
+.table.b-table.table-hover > tbody > tr.table-active:hover th {
+ color: #212529;
+ background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075));
+ background-repeat: no-repeat;
+}
+.table.b-table > tbody > .bg-active,
+.table.b-table > tbody > .bg-active > th,
+.table.b-table > tbody > .bg-active > td {
+ background-color: rgba(255, 255, 255, 0.075) !important;
+}
+.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover td,
+.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover th {
+ color: #fff;
+ background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075));
+ background-repeat: no-repeat;
+}
+.b-table-sticky-header,
+.table-responsive,
+[class*=table-responsive-] {
+ margin-bottom: 1rem;
+}
+.b-table-sticky-header > .table,
+.table-responsive > .table,
+[class*=table-responsive-] > .table {
+ margin-bottom: 0;
+}
+.b-table-sticky-header {
+ overflow-y: auto;
+ max-height: 300px;
+}
+@media print {
+ .b-table-sticky-header {
+ overflow-y: visible !important;
+ max-height: none !important;
+ }
+}
+@supports ((position: -webkit-sticky) or (position: sticky)) {
+ .b-table-sticky-header > .table.b-table > thead > tr > th {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 2;
+ }
+ .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column,
+ .b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column,
+ .b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column,
+ .table-responsive > .table.b-table > thead > tr > .b-table-sticky-column,
+ .table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column,
+ .table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column,
+ [class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column,
+ [class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column,
+ [class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column {
+ position: -webkit-sticky;
+ position: sticky;
+ left: 0;
+ }
+ .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column,
+ .table-responsive > .table.b-table > thead > tr > .b-table-sticky-column,
+ [class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column {
+ z-index: 5;
+ }
+ .b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column,
+ .b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column,
+ .table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column,
+ .table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column,
+ [class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column,
+ [class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column {
+ z-index: 2;
+ }
+ .table.b-table > thead > tr > .table-b-table-default,
+ .table.b-table > tbody > tr > .table-b-table-default,
+ .table.b-table > tfoot > tr > .table-b-table-default {
+ color: #212529;
+ background-color: #fff;
+ }
+ .table.b-table.table-dark > thead > tr > .bg-b-table-default,
+ .table.b-table.table-dark > tbody > tr > .bg-b-table-default,
+ .table.b-table.table-dark > tfoot > tr > .bg-b-table-default {
+ color: #fff;
+ background-color: #343a40;
+ }
+ .table.b-table.table-striped > tbody > tr:nth-of-type(odd) > .table-b-table-default {
+ background-image: linear-gradient(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05));
+ background-repeat: no-repeat;
+ }
+ .table.b-table.table-striped.table-dark > tbody > tr:nth-of-type(odd) > .bg-b-table-default {
+ background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05));
+ background-repeat: no-repeat;
+ }
+ .table.b-table.table-hover > tbody > tr:hover > .table-b-table-default {
+ color: #212529;
+ background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075));
+ background-repeat: no-repeat;
+ }
+ .table.b-table.table-hover.table-dark > tbody > tr:hover > .bg-b-table-default {
+ color: #fff;
+ background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075));
+ background-repeat: no-repeat;
+ }
+}
+.table.b-table > thead > tr > [aria-sort],
+.table.b-table > tfoot > tr > [aria-sort] {
+ cursor: pointer;
+ background-image: none;
+ background-repeat: no-repeat;
+ background-size: 0.65em 1em;
+}
+.table.b-table > thead > tr > [aria-sort]:not(.b-table-sort-icon-left),
+.table.b-table > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) {
+ background-position: right calc(0.75rem / 2) center;
+ padding-right: calc(0.75rem + 0.65em);
+}
+.table.b-table > thead > tr > [aria-sort].b-table-sort-icon-left,
+.table.b-table > tfoot > tr > [aria-sort].b-table-sort-icon-left {
+ background-position: left calc(0.75rem / 2) center;
+ padding-left: calc(0.75rem + 0.65em);
+}
+.table.b-table > thead > tr > [aria-sort=none],
+.table.b-table > tfoot > tr > [aria-sort=none] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > [aria-sort=ascending],
+.table.b-table > tfoot > tr > [aria-sort=ascending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > [aria-sort=descending],
+.table.b-table > tfoot > tr > [aria-sort=descending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-dark > thead > tr > [aria-sort=none],
+.table.b-table.table-dark > tfoot > tr > [aria-sort=none],
+.table.b-table > .thead-dark > tr > [aria-sort=none] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-dark > thead > tr > [aria-sort=ascending],
+.table.b-table.table-dark > tfoot > tr > [aria-sort=ascending],
+.table.b-table > .thead-dark > tr > [aria-sort=ascending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-dark > thead > tr > [aria-sort=descending],
+.table.b-table.table-dark > tfoot > tr > [aria-sort=descending],
+.table.b-table > .thead-dark > tr > [aria-sort=descending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > .table-dark[aria-sort=none],
+.table.b-table > tfoot > tr > .table-dark[aria-sort=none] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > .table-dark[aria-sort=ascending],
+.table.b-table > tfoot > tr > .table-dark[aria-sort=ascending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > .table-dark[aria-sort=descending],
+.table.b-table > tfoot > tr > .table-dark[aria-sort=descending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-sm > thead > tr > [aria-sort]:not(.b-table-sort-icon-left),
+.table.b-table.table-sm > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) {
+ background-position: right calc(0.3rem / 2) center;
+ padding-right: calc(0.3rem + 0.65em);
+}
+.table.b-table.table-sm > thead > tr > [aria-sort].b-table-sort-icon-left,
+.table.b-table.table-sm > tfoot > tr > [aria-sort].b-table-sort-icon-left {
+ background-position: left calc(0.3rem / 2) center;
+ padding-left: calc(0.3rem + 0.65em);
+}
+.table.b-table.b-table-selectable:not(.b-table-selectable-no-click) > tbody > tr {
+ cursor: pointer;
+}
+.table.b-table.b-table-selectable:not(.b-table-selectable-no-click).b-table-selecting.b-table-select-range > tbody > tr {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+@media (max-width: 575.98px) {
+ .table.b-table.b-table-stacked-sm {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-sm > caption,
+ .table.b-table.b-table-stacked-sm > tbody,
+ .table.b-table.b-table-stacked-sm > tbody > tr,
+ .table.b-table.b-table-stacked-sm > tbody > tr > td,
+ .table.b-table.b-table-stacked-sm > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-sm > thead,
+ .table.b-table.b-table-stacked-sm > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-sm > thead > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-sm > thead > tr.b-table-bottom-row,
+ .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-sm > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr.top-row,
+ .table.b-table.b-table-stacked-sm > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + td,
+ .table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+@media (max-width: 767.98px) {
+ .table.b-table.b-table-stacked-md {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-md > caption,
+ .table.b-table.b-table-stacked-md > tbody,
+ .table.b-table.b-table-stacked-md > tbody > tr,
+ .table.b-table.b-table-stacked-md > tbody > tr > td,
+ .table.b-table.b-table-stacked-md > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-md > thead,
+ .table.b-table.b-table-stacked-md > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-md > thead > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-md > thead > tr.b-table-bottom-row,
+ .table.b-table.b-table-stacked-md > tfoot > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-md > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-md > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr.top-row,
+ .table.b-table.b-table-stacked-md > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + td,
+ .table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+@media (max-width: 991.98px) {
+ .table.b-table.b-table-stacked-lg {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-lg > caption,
+ .table.b-table.b-table-stacked-lg > tbody,
+ .table.b-table.b-table-stacked-lg > tbody > tr,
+ .table.b-table.b-table-stacked-lg > tbody > tr > td,
+ .table.b-table.b-table-stacked-lg > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-lg > thead,
+ .table.b-table.b-table-stacked-lg > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-lg > thead > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-lg > thead > tr.b-table-bottom-row,
+ .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-lg > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr.top-row,
+ .table.b-table.b-table-stacked-lg > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + td,
+ .table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+@media (max-width: 1199.98px) {
+ .table.b-table.b-table-stacked-xl {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-xl > caption,
+ .table.b-table.b-table-stacked-xl > tbody,
+ .table.b-table.b-table-stacked-xl > tbody > tr,
+ .table.b-table.b-table-stacked-xl > tbody > tr > td,
+ .table.b-table.b-table-stacked-xl > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-xl > thead,
+ .table.b-table.b-table-stacked-xl > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-xl > thead > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-xl > thead > tr.b-table-bottom-row,
+ .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-top-row,
+ .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-xl > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr.top-row,
+ .table.b-table.b-table-stacked-xl > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + td,
+ .table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+.table.b-table.b-table-stacked {
+ display: block;
+ width: 100%;
+}
+.table.b-table.b-table-stacked > caption,
+.table.b-table.b-table-stacked > tbody,
+.table.b-table.b-table-stacked > tbody > tr,
+.table.b-table.b-table-stacked > tbody > tr > td,
+.table.b-table.b-table-stacked > tbody > tr > th {
+ display: block;
+}
+.table.b-table.b-table-stacked > thead,
+.table.b-table.b-table-stacked > tfoot {
+ display: none;
+}
+.table.b-table.b-table-stacked > thead > tr.b-table-top-row,
+.table.b-table.b-table-stacked > thead > tr.b-table-bottom-row,
+.table.b-table.b-table-stacked > tfoot > tr.b-table-top-row,
+.table.b-table.b-table-stacked > tfoot > tr.b-table-bottom-row {
+ display: none;
+}
+.table.b-table.b-table-stacked > caption {
+ caption-side: top !important;
+}
+.table.b-table.b-table-stacked > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+}
+.table.b-table.b-table-stacked > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+}
+.table.b-table.b-table-stacked > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+}
+.table.b-table.b-table-stacked > tbody > tr.top-row,
+.table.b-table.b-table-stacked > tbody > tr.bottom-row {
+ display: none;
+}
+.table.b-table.b-table-stacked > tbody > tr > :first-child {
+ border-top-width: 3px;
+}
+.table.b-table.b-table-stacked > tbody > tr > [rowspan] + td,
+.table.b-table.b-table-stacked > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+}
+.b-time {
+ min-width: 150px;
+}
+.b-time[aria-disabled=true] output,
+.b-time[aria-readonly=true] output,
+.b-time output.disabled {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+.b-time[aria-disabled=true] output {
+ pointer-events: none;
+}
+[dir=rtl] .b-time > .d-flex:not(.flex-column) {
+ flex-direction: row-reverse;
+}
+.b-time .b-time-header {
+ margin-bottom: 0.5rem;
+}
+.b-time .b-time-header output {
+ padding: 0.25rem;
+ font-size: 80%;
+}
+.b-time .b-time-footer {
+ margin-top: 0.5rem;
+}
+.b-time .b-time-ampm {
+ margin-left: 0.5rem;
+}
+.b-toast {
+ display: block;
+ position: relative;
+ max-width: 350px;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ background-clip: padding-box;
+ z-index: 1;
+ border-radius: 0.25rem;
+}
+.b-toast .toast {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+.b-toast:not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.b-toast.b-toast-solid .toast {
+ background-color: white;
+}
+.b-toast .toast {
+ opacity: 1;
+}
+.b-toast .toast.fade:not(.show) {
+ opacity: 0;
+}
+.b-toast .toast .toast-body {
+ display: block;
+}
+.b-toast-primary .toast {
+ background-color: rgba(230, 242, 255, 0.85);
+ border-color: rgba(184, 218, 255, 0.85);
+ color: #004085;
+}
+.b-toast-primary .toast .toast-header {
+ color: #004085;
+ background-color: rgba(204, 229, 255, 0.85);
+ border-bottom-color: rgba(184, 218, 255, 0.85);
+}
+.b-toast-primary.b-toast-solid .toast {
+ background-color: #e6f2ff;
+}
+.b-toast-secondary .toast {
+ background-color: rgba(239, 240, 241, 0.85);
+ border-color: rgba(214, 216, 219, 0.85);
+ color: #383d41;
+}
+.b-toast-secondary .toast .toast-header {
+ color: #383d41;
+ background-color: rgba(226, 227, 229, 0.85);
+ border-bottom-color: rgba(214, 216, 219, 0.85);
+}
+.b-toast-secondary.b-toast-solid .toast {
+ background-color: #eff0f1;
+}
+.b-toast-success .toast {
+ background-color: rgba(230, 245, 233, 0.85);
+ border-color: rgba(195, 230, 203, 0.85);
+ color: #155724;
+}
+.b-toast-success .toast .toast-header {
+ color: #155724;
+ background-color: rgba(212, 237, 218, 0.85);
+ border-bottom-color: rgba(195, 230, 203, 0.85);
+}
+.b-toast-success.b-toast-solid .toast {
+ background-color: #e6f5e9;
+}
+.b-toast-info .toast {
+ background-color: rgba(229, 244, 247, 0.85);
+ border-color: rgba(190, 229, 235, 0.85);
+ color: #0c5460;
+}
+.b-toast-info .toast .toast-header {
+ color: #0c5460;
+ background-color: rgba(209, 236, 241, 0.85);
+ border-bottom-color: rgba(190, 229, 235, 0.85);
+}
+.b-toast-info.b-toast-solid .toast {
+ background-color: #e5f4f7;
+}
+.b-toast-warning .toast {
+ background-color: rgba(255, 249, 231, 0.85);
+ border-color: rgba(255, 238, 186, 0.85);
+ color: #856404;
+}
+.b-toast-warning .toast .toast-header {
+ color: #856404;
+ background-color: rgba(255, 243, 205, 0.85);
+ border-bottom-color: rgba(255, 238, 186, 0.85);
+}
+.b-toast-warning.b-toast-solid .toast {
+ background-color: #fff9e7;
+}
+.b-toast-danger .toast {
+ background-color: rgba(252, 237, 238, 0.85);
+ border-color: rgba(245, 198, 203, 0.85);
+ color: #721c24;
+}
+.b-toast-danger .toast .toast-header {
+ color: #721c24;
+ background-color: rgba(248, 215, 218, 0.85);
+ border-bottom-color: rgba(245, 198, 203, 0.85);
+}
+.b-toast-danger.b-toast-solid .toast {
+ background-color: #fcedee;
+}
+.b-toast-light .toast {
+ background-color: rgba(255, 255, 255, 0.85);
+ border-color: rgba(253, 253, 254, 0.85);
+ color: #818182;
+}
+.b-toast-light .toast .toast-header {
+ color: #818182;
+ background-color: rgba(254, 254, 254, 0.85);
+ border-bottom-color: rgba(253, 253, 254, 0.85);
+}
+.b-toast-light.b-toast-solid .toast {
+ background-color: white;
+}
+.b-toast-dark .toast {
+ background-color: rgba(227, 229, 229, 0.85);
+ border-color: rgba(198, 200, 202, 0.85);
+ color: #1b1e21;
+}
+.b-toast-dark .toast .toast-header {
+ color: #1b1e21;
+ background-color: rgba(214, 216, 217, 0.85);
+ border-bottom-color: rgba(198, 200, 202, 0.85);
+}
+.b-toast-dark.b-toast-solid .toast {
+ background-color: #e3e5e5;
+}
+.b-toaster {
+ z-index: 1100;
+}
+.b-toaster .b-toaster-slot {
+ position: relative;
+ display: block;
+}
+.b-toaster .b-toaster-slot:empty {
+ display: none !important;
+}
+.b-toaster.b-toaster-top-right,
+.b-toaster.b-toaster-top-left,
+.b-toaster.b-toaster-top-center,
+.b-toaster.b-toaster-top-full,
+.b-toaster.b-toaster-bottom-right,
+.b-toaster.b-toaster-bottom-left,
+.b-toaster.b-toaster-bottom-center,
+.b-toaster.b-toaster-bottom-full {
+ position: fixed;
+ left: 0.5rem;
+ right: 0.5rem;
+ margin: 0;
+ padding: 0;
+ height: 0;
+ overflow: visible;
+}
+.b-toaster.b-toaster-top-right .b-toaster-slot,
+.b-toaster.b-toaster-top-left .b-toaster-slot,
+.b-toaster.b-toaster-top-center .b-toaster-slot,
+.b-toaster.b-toaster-top-full .b-toaster-slot,
+.b-toaster.b-toaster-bottom-right .b-toaster-slot,
+.b-toaster.b-toaster-bottom-left .b-toaster-slot,
+.b-toaster.b-toaster-bottom-center .b-toaster-slot,
+.b-toaster.b-toaster-bottom-full .b-toaster-slot {
+ position: absolute;
+ max-width: 350px;
+ width: 100%;
+ /* IE 11 fix */
+ left: 0;
+ right: 0;
+ padding: 0;
+ margin: 0;
+}
+.b-toaster.b-toaster-top-full .b-toaster-slot,
+.b-toaster.b-toaster-bottom-full .b-toaster-slot {
+ width: 100%;
+ max-width: 100%;
+}
+.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast,
+.b-toaster.b-toaster-top-full .b-toaster-slot .toast,
+.b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast,
+.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast {
+ width: 100%;
+ max-width: 100%;
+}
+.b-toaster.b-toaster-top-right,
+.b-toaster.b-toaster-top-left,
+.b-toaster.b-toaster-top-center,
+.b-toaster.b-toaster-top-full {
+ top: 0;
+}
+.b-toaster.b-toaster-top-right .b-toaster-slot,
+.b-toaster.b-toaster-top-left .b-toaster-slot,
+.b-toaster.b-toaster-top-center .b-toaster-slot,
+.b-toaster.b-toaster-top-full .b-toaster-slot {
+ top: 0.5rem;
+}
+.b-toaster.b-toaster-bottom-right,
+.b-toaster.b-toaster-bottom-left,
+.b-toaster.b-toaster-bottom-center,
+.b-toaster.b-toaster-bottom-full {
+ bottom: 0;
+}
+.b-toaster.b-toaster-bottom-right .b-toaster-slot,
+.b-toaster.b-toaster-bottom-left .b-toaster-slot,
+.b-toaster.b-toaster-bottom-center .b-toaster-slot,
+.b-toaster.b-toaster-bottom-full .b-toaster-slot {
+ bottom: 0.5rem;
+}
+.b-toaster.b-toaster-top-right .b-toaster-slot,
+.b-toaster.b-toaster-bottom-right .b-toaster-slot,
+.b-toaster.b-toaster-top-center .b-toaster-slot,
+.b-toaster.b-toaster-bottom-center .b-toaster-slot {
+ margin-left: auto;
+}
+.b-toaster.b-toaster-top-left .b-toaster-slot,
+.b-toaster.b-toaster-bottom-left .b-toaster-slot,
+.b-toaster.b-toaster-top-center .b-toaster-slot,
+.b-toaster.b-toaster-bottom-center .b-toaster-slot {
+ margin-right: auto;
+}
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active,
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active,
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-move,
+.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active,
+.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,
+.b-toaster.b-toaster-top-left .b-toast.b-toaster-move,
+.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active,
+.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,
+.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move,
+.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active,
+.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active,
+.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move {
+ transition: -webkit-transform 0.175s;
+ transition: transform 0.175s;
+ transition: transform 0.175s, -webkit-transform 0.175s;
+}
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade,
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade,
+.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade,
+.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade,
+.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade,
+.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade,
+.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade,
+.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade {
+ transition-delay: 0.175s;
+}
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active,
+.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,
+.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,
+.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active {
+ position: absolute;
+ transition-delay: 0.175s;
+}
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade,
+.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade,
+.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade,
+.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade {
+ transition-delay: 0s;
+}
+.tooltip.b-tooltip {
+ display: block;
+ opacity: 1;
+ outline: 0;
+ transition: opacity 0.1s var(--appleEase);
+}
+.tooltip.b-tooltip.fade:not(.show) {
+ opacity: 0;
+}
+.tooltip.b-tooltip.show {
+ opacity: 0.9;
+}
+.tooltip.b-tooltip.noninteractive {
+ pointer-events: none;
+}
+.tooltip.b-tooltip .arrow {
+ margin: 0 0.25rem;
+}
+.tooltip.b-tooltip.bs-tooltip-right .arrow,
+.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow,
+.tooltip.b-tooltip.bs-tooltip-left .arrow,
+.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow,
+.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow,
+.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow,
+.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow,
+.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow,
+.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow,
+.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow,
+.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow {
+ margin: 0.25rem 0;
+}
+.tooltip.b-tooltip-primary.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #007bff;
+}
+.tooltip.b-tooltip-primary.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #007bff;
+}
+.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #007bff;
+}
+.tooltip.b-tooltip-primary.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #007bff;
+}
+.tooltip.b-tooltip-primary .tooltip-inner {
+ color: #fff;
+ background-color: #007bff;
+}
+.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary .tooltip-inner {
+ color: #fff;
+ background-color: #6c757d;
+}
+.tooltip.b-tooltip-success.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #28a745;
+}
+.tooltip.b-tooltip-success.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #28a745;
+}
+.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #28a745;
+}
+.tooltip.b-tooltip-success.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #28a745;
+}
+.tooltip.b-tooltip-success .tooltip-inner {
+ color: #fff;
+ background-color: #28a745;
+}
+.tooltip.b-tooltip-info.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #17a2b8;
+}
+.tooltip.b-tooltip-info.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #17a2b8;
+}
+.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #17a2b8;
+}
+.tooltip.b-tooltip-info.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #17a2b8;
+}
+.tooltip.b-tooltip-info .tooltip-inner {
+ color: #fff;
+ background-color: #17a2b8;
+}
+.tooltip.b-tooltip-warning.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #ffc107;
+}
+.tooltip.b-tooltip-warning.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #ffc107;
+}
+.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #ffc107;
+}
+.tooltip.b-tooltip-warning.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #ffc107;
+}
+.tooltip.b-tooltip-warning .tooltip-inner {
+ color: #212529;
+ background-color: #ffc107;
+}
+.tooltip.b-tooltip-danger.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #dc3545;
+}
+.tooltip.b-tooltip-danger.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #dc3545;
+}
+.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #dc3545;
+}
+.tooltip.b-tooltip-danger.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #dc3545;
+}
+.tooltip.b-tooltip-danger .tooltip-inner {
+ color: #fff;
+ background-color: #dc3545;
+}
+.tooltip.b-tooltip-light.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light .tooltip-inner {
+ color: #212529;
+ background-color: #f8f9fa;
+}
+.tooltip.b-tooltip-dark.bs-tooltip-top .arrow::before,
+.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #343a40;
+}
+.tooltip.b-tooltip-dark.bs-tooltip-right .arrow::before,
+.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #343a40;
+}
+.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow::before,
+.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #343a40;
+}
+.tooltip.b-tooltip-dark.bs-tooltip-left .arrow::before,
+.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #343a40;
+}
+.tooltip.b-tooltip-dark .tooltip-inner {
+ color: #fff;
+ background-color: #343a40;
+}
+.b-icon.bi {
+ display: inline-block;
+ overflow: visible;
+ vertical-align: -0.15em;
+}
+.b-icon.b-icon-animation-cylon,
+.b-icon.b-iconstack .b-icon-animation-cylon > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-cylon,
+ .b-icon.b-iconstack .b-icon-animation-cylon > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-cylon-vertical,
+.b-icon.b-iconstack .b-icon-animation-cylon-vertical > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-cylon-vertical,
+ .b-icon.b-iconstack .b-icon-animation-cylon-vertical > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-fade,
+.b-icon.b-iconstack .b-icon-animation-fade > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-fade,
+ .b-icon.b-iconstack .b-icon-animation-fade > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin,
+.b-icon.b-iconstack .b-icon-animation-spin > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 2s infinite linear normal b-icon-animation-spin;
+ animation: 2s infinite linear normal b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin,
+ .b-icon.b-iconstack .b-icon-animation-spin > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin-reverse,
+.b-icon.b-iconstack .b-icon-animation-spin-reverse > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ animation: 2s infinite linear reverse b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin-reverse,
+ .b-icon.b-iconstack .b-icon-animation-spin-reverse > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin-pulse,
+.b-icon.b-iconstack .b-icon-animation-spin-pulse > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 1s infinite steps(8) normal b-icon-animation-spin;
+ animation: 1s infinite steps(8) normal b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin-pulse,
+ .b-icon.b-iconstack .b-icon-animation-spin-pulse > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin-reverse-pulse,
+.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ animation: 1s infinite steps(8) reverse b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin-reverse-pulse,
+ .b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-throb,
+.b-icon.b-iconstack .b-icon-animation-throb > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-throb,
+ .b-icon.b-iconstack .b-icon-animation-throb > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+@-webkit-keyframes b-icon-animation-cylon {
+ 0% {
+ -webkit-transform: translateX(-25%);
+ transform: translateX(-25%);
+ }
+ 100% {
+ -webkit-transform: translateX(25%);
+ transform: translateX(25%);
+ }
+}
+@keyframes b-icon-animation-cylon {
+ 0% {
+ -webkit-transform: translateX(-25%);
+ transform: translateX(-25%);
+ }
+ 100% {
+ -webkit-transform: translateX(25%);
+ transform: translateX(25%);
+ }
+}
+@-webkit-keyframes b-icon-animation-cylon-vertical {
+ 0% {
+ -webkit-transform: translateY(25%);
+ transform: translateY(25%);
+ }
+ 100% {
+ -webkit-transform: translateY(-25%);
+ transform: translateY(-25%);
+ }
+}
+@keyframes b-icon-animation-cylon-vertical {
+ 0% {
+ -webkit-transform: translateY(25%);
+ transform: translateY(25%);
+ }
+ 100% {
+ -webkit-transform: translateY(-25%);
+ transform: translateY(-25%);
+ }
+}
+@-webkit-keyframes b-icon-animation-fade {
+ 0% {
+ opacity: 0.1;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@keyframes b-icon-animation-fade {
+ 0% {
+ opacity: 0.1;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@-webkit-keyframes b-icon-animation-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes b-icon-animation-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@-webkit-keyframes b-icon-animation-throb {
+ 0% {
+ opacity: 0.5;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+@keyframes b-icon-animation-throb {
+ 0% {
+ opacity: 0.5;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+.btn .b-icon.bi,
+.nav-link .b-icon.bi,
+.dropdown-toggle .b-icon.bi,
+.dropdown-item .b-icon.bi,
+.input-group-text .b-icon.bi {
+ font-size: 125%;
+ vertical-align: text-bottom;
+}
+/*# sourceMappingURL=bootstrap-vue.css.map */
diff --git a/src/renderer/less/bootstrap-vue.min.less b/src/renderer/less/bootstrap-vue.min.less
new file mode 100644
index 00000000..8fac0f5e
--- /dev/null
+++ b/src/renderer/less/bootstrap-vue.min.less
@@ -0,0 +1,2638 @@
+@charset "UTF-8";
+/*!
+ * BootstrapVue Custom CSS (https://bootstrap-vue.org)
+ */
+.bv-no-focus-ring:focus {
+ outline: none;
+}
+
+@media (max-width: 575.98px) {
+ .bv-d-xs-down-none {
+ display: none !important;
+ }
+}
+@media (max-width: 767.98px) {
+ .bv-d-sm-down-none {
+ display: none !important;
+ }
+}
+@media (max-width: 991.98px) {
+ .bv-d-md-down-none {
+ display: none !important;
+ }
+}
+@media (max-width: 1199.98px) {
+ .bv-d-lg-down-none {
+ display: none !important;
+ }
+}
+.bv-d-xl-down-none {
+ display: none !important;
+}
+
+.form-control.focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.form-control.focus.is-valid {
+ border-color: #28a745;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+.form-control.focus.is-invalid {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+
+.b-avatar {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ vertical-align: middle;
+ flex-shrink: 0;
+ width: 2.5rem;
+ height: 2.5rem;
+ font-size: inherit;
+ font-weight: 400;
+ line-height: 1;
+ max-width: 100%;
+ max-height: auto;
+ text-align: center;
+ overflow: visible;
+ position: relative;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+.b-avatar:focus {
+ outline: 0;
+}
+.b-avatar.btn, .b-avatar[href] {
+ padding: 0;
+ border: 0;
+}
+.b-avatar.btn .b-avatar-img img, .b-avatar[href] .b-avatar-img img {
+ transition: -webkit-transform 0.15s ease-in-out;
+ transition: transform 0.15s ease-in-out;
+ transition: transform 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
+}
+.b-avatar.btn:not(:disabled):not(.disabled), .b-avatar[href]:not(:disabled):not(.disabled) {
+ cursor: pointer;
+}
+.b-avatar.btn:not(:disabled):not(.disabled):hover .b-avatar-img img, .b-avatar[href]:not(:disabled):not(.disabled):hover .b-avatar-img img {
+ -webkit-transform: scale(1.15);
+ transform: scale(1.15);
+}
+.b-avatar.disabled, .b-avatar:disabled, .b-avatar[disabled] {
+ opacity: 0.65;
+ pointer-events: none;
+}
+.b-avatar .b-avatar-custom,
+.b-avatar .b-avatar-text,
+.b-avatar .b-avatar-img {
+ border-radius: inherit;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-mask-image: radial-gradient(white, black);
+ mask-image: radial-gradient(white, black);
+}
+.b-avatar .b-avatar-text {
+ text-transform: uppercase;
+ white-space: nowrap;
+}
+.b-avatar[href] {
+ text-decoration: none;
+}
+.b-avatar > .b-icon {
+ width: 60%;
+ height: auto;
+ max-width: 100%;
+}
+.b-avatar .b-avatar-img img {
+ width: 100%;
+ height: 100%;
+ max-height: auto;
+ border-radius: inherit;
+ -o-object-fit: cover;
+ object-fit: cover;
+}
+.b-avatar .b-avatar-badge {
+ position: absolute;
+ min-height: 1.5em;
+ min-width: 1.5em;
+ padding: 0.25em;
+ line-height: 1;
+ border-radius: 10em;
+ font-size: 70%;
+ font-weight: 700;
+ z-index: 1;
+}
+
+.b-avatar-sm {
+ width: 1.5rem;
+ height: 1.5rem;
+}
+.b-avatar-sm .b-avatar-text {
+ font-size: calc(0.6rem);
+}
+.b-avatar-sm .b-avatar-badge {
+ font-size: calc(0.42rem);
+}
+
+.b-avatar-lg {
+ width: 3.5rem;
+ height: 3.5rem;
+}
+.b-avatar-lg .b-avatar-text {
+ font-size: calc(1.4rem);
+}
+.b-avatar-lg .b-avatar-badge {
+ font-size: calc(0.98rem);
+}
+
+.b-avatar-group .b-avatar-group-inner {
+ display: flex;
+ flex-wrap: wrap;
+}
+.b-avatar-group .b-avatar {
+ border: 1px solid #dee2e6;
+}
+.b-avatar-group a.b-avatar:hover:not(.disabled):not(disabled),
+.b-avatar-group .btn.b-avatar:hover:not(.disabled):not(disabled) {
+ z-index: 1;
+}
+
+.b-calendar {
+ display: inline-flex;
+}
+.b-calendar .b-calendar-inner {
+ min-width: 250px;
+}
+.b-calendar .b-calendar-header,
+.b-calendar .b-calendar-nav {
+ margin-bottom: 0.25rem;
+}
+.b-calendar .b-calendar-nav .btn {
+ padding: 0.25rem;
+}
+.b-calendar output {
+ padding: 0.25rem;
+ font-size: 80%;
+}
+.b-calendar output.readonly {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+.b-calendar .b-calendar-footer {
+ margin-top: 0.5rem;
+}
+.b-calendar .b-calendar-grid {
+ padding: 0;
+ margin: 0;
+ overflow: hidden;
+}
+.b-calendar .b-calendar-grid .row {
+ flex-wrap: nowrap;
+}
+.b-calendar .b-calendar-grid-caption {
+ padding: 0.25rem;
+}
+.b-calendar .b-calendar-grid-body .col[data-date] .btn {
+ width: 32px;
+ height: 32px;
+ font-size: 14px;
+ line-height: 1;
+ margin: 3px auto;
+ padding: 9px 0;
+}
+.b-calendar .btn:disabled, .b-calendar .btn.disabled, .b-calendar .btn[aria-disabled=true] {
+ cursor: default;
+ pointer-events: none;
+}
+
+.card-img-left {
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px);
+}
+
+.card-img-right {
+ border-top-right-radius: calc(0.25rem - 1px);
+ border-bottom-right-radius: calc(0.25rem - 1px);
+}
+
+.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret::after {
+ display: none !important;
+}
+.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret::before {
+ display: none !important;
+}
+.dropdown .dropdown-menu:focus {
+ outline: none;
+}
+
+.b-dropdown-form {
+ display: inline-block;
+ padding: 0.25rem 1.5rem;
+ width: 100%;
+ clear: both;
+ font-weight: 400;
+}
+.b-dropdown-form:focus {
+ outline: 1px dotted !important;
+ outline: 5px auto -webkit-focus-ring-color !important;
+}
+.b-dropdown-form.disabled, .b-dropdown-form:disabled {
+ outline: 0 !important;
+ color: #6c757d;
+ pointer-events: none;
+}
+
+.b-dropdown-text {
+ display: inline-block;
+ padding: 0.25rem 1.5rem;
+ margin-bottom: 0;
+ width: 100%;
+ clear: both;
+ font-weight: lighter;
+}
+
+.custom-checkbox.b-custom-control-lg,
+.input-group-lg .custom-checkbox {
+ font-size: 1.25rem;
+ line-height: 1.5;
+ padding-left: 1.875rem;
+}
+.custom-checkbox.b-custom-control-lg .custom-control-label::before,
+.input-group-lg .custom-checkbox .custom-control-label::before {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ border-radius: 0.3rem;
+}
+.custom-checkbox.b-custom-control-lg .custom-control-label::after,
+.input-group-lg .custom-checkbox .custom-control-label::after {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ background-size: 50% 50%;
+}
+
+.custom-checkbox.b-custom-control-sm,
+.input-group-sm .custom-checkbox {
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding-left: 1.3125rem;
+}
+.custom-checkbox.b-custom-control-sm .custom-control-label::before,
+.input-group-sm .custom-checkbox .custom-control-label::before {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ border-radius: 0.2rem;
+}
+.custom-checkbox.b-custom-control-sm .custom-control-label::after,
+.input-group-sm .custom-checkbox .custom-control-label::after {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ background-size: 50% 50%;
+}
+
+.custom-switch.b-custom-control-lg,
+.input-group-lg .custom-switch {
+ padding-left: 2.8125rem;
+}
+.custom-switch.b-custom-control-lg .custom-control-label,
+.input-group-lg .custom-switch .custom-control-label {
+ font-size: 1.25rem;
+ line-height: 1.5;
+}
+.custom-switch.b-custom-control-lg .custom-control-label::before,
+.input-group-lg .custom-switch .custom-control-label::before {
+ top: 0.3125rem;
+ height: 1.25rem;
+ left: -2.8125rem;
+ width: 2.1875rem;
+ border-radius: 0.625rem;
+}
+.custom-switch.b-custom-control-lg .custom-control-label::after,
+.input-group-lg .custom-switch .custom-control-label::after {
+ top: calc( 0.3125rem + 2px );
+ left: calc( -2.8125rem + 2px );
+ width: calc( 1.25rem - 4px );
+ height: calc( 1.25rem - 4px );
+ border-radius: 0.625rem;
+ background-size: 50% 50%;
+}
+.custom-switch.b-custom-control-lg .custom-control-input:checked ~ .custom-control-label::after,
+.input-group-lg .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
+ -webkit-transform: translateX(0.9375rem);
+ transform: translateX(0.9375rem);
+}
+
+.custom-switch.b-custom-control-sm,
+.input-group-sm .custom-switch {
+ padding-left: 1.96875rem;
+}
+.custom-switch.b-custom-control-sm .custom-control-label,
+.input-group-sm .custom-switch .custom-control-label {
+ font-size: 0.875rem;
+ line-height: 1.5;
+}
+.custom-switch.b-custom-control-sm .custom-control-label::before,
+.input-group-sm .custom-switch .custom-control-label::before {
+ top: 0.21875rem;
+ left: -1.96875rem;
+ width: 1.53125rem;
+ height: 0.875rem;
+ border-radius: 0.4375rem;
+}
+.custom-switch.b-custom-control-sm .custom-control-label::after,
+.input-group-sm .custom-switch .custom-control-label::after {
+ top: calc( 0.21875rem + 2px );
+ left: calc( -1.96875rem + 2px );
+ width: calc( 0.875rem - 4px );
+ height: calc( 0.875rem - 4px );
+ border-radius: 0.4375rem;
+ background-size: 50% 50%;
+}
+.custom-switch.b-custom-control-sm .custom-control-input:checked ~ .custom-control-label::after,
+.input-group-sm .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
+ -webkit-transform: translateX(0.65625rem);
+ transform: translateX(0.65625rem);
+}
+
+.input-group > .input-group-prepend > .btn-group > .btn,
+.input-group > .input-group-append:not(:last-child) > .btn-group > .btn,
+.input-group > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.input-group > .input-group-append > .btn-group > .btn,
+.input-group > .input-group-prepend:not(:first-child) > .btn-group > .btn,
+.input-group > .input-group-prepend:first-child > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.b-form-btn-label-control.form-control {
+ display: flex;
+ align-items: stretch;
+ height: auto;
+ padding: 0;
+ background-image: none;
+}
+.input-group .b-form-btn-label-control.form-control {
+ padding: 0;
+}
+
+[dir=rtl] .b-form-btn-label-control.form-control, .b-form-btn-label-control.form-control[dir=rtl] {
+ flex-direction: row-reverse;
+}
+[dir=rtl] .b-form-btn-label-control.form-control > label, .b-form-btn-label-control.form-control[dir=rtl] > label {
+ text-align: right;
+}
+
+.b-form-btn-label-control.form-control > .btn {
+ line-height: 1;
+ font-size: inherit;
+ box-shadow: none !important;
+ border: 0;
+}
+.b-form-btn-label-control.form-control > .btn:disabled {
+ pointer-events: none;
+}
+.b-form-btn-label-control.form-control.is-valid > .btn {
+ color: #28a745;
+}
+.b-form-btn-label-control.form-control.is-invalid > .btn {
+ color: #dc3545;
+}
+.b-form-btn-label-control.form-control > .dropdown-menu {
+ padding: 0.5rem;
+}
+.b-form-btn-label-control.form-control > .form-control {
+ height: auto;
+ min-height: calc(calc(1.5em + 0.75rem + 2px) - 2px);
+ padding-left: 0.25rem;
+ margin: 0;
+ border: 0;
+ outline: 0;
+ background: transparent;
+ word-break: break-word;
+ font-size: inherit;
+ white-space: normal;
+ cursor: pointer;
+}
+.b-form-btn-label-control.form-control > .form-control.form-control-sm {
+ min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px);
+}
+.b-form-btn-label-control.form-control > .form-control.form-control-lg {
+ min-height: calc(calc(1.5em + 1rem + 2px) - 2px);
+}
+.input-group.input-group-sm .b-form-btn-label-control.form-control > .form-control {
+ min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px);
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+}
+
+.input-group.input-group-lg .b-form-btn-label-control.form-control > .form-control {
+ min-height: calc(calc(1.5em + 1rem + 2px) - 2px);
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.b-form-btn-label-control.form-control[aria-disabled=true], .b-form-btn-label-control.form-control[aria-readonly=true] {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+.b-form-btn-label-control.form-control[aria-disabled=true] {
+ pointer-events: none;
+}
+.b-form-btn-label-control.form-control[aria-disabled=true] > label {
+ cursor: default;
+}
+
+.b-form-btn-label-control.btn-group > .dropdown-menu {
+ padding: 0.5rem;
+}
+
+.custom-file-label {
+ white-space: nowrap;
+ overflow-x: hidden;
+}
+
+.b-custom-control-lg.custom-file,
+.b-custom-control-lg .custom-file-input,
+.b-custom-control-lg .custom-file-label,
+.input-group-lg.custom-file,
+.input-group-lg .custom-file-input,
+.input-group-lg .custom-file-label {
+ font-size: 1.25rem;
+ height: calc(1.5em + 1rem + 2px);
+}
+.b-custom-control-lg .custom-file-label,
+.b-custom-control-lg .custom-file-label:after,
+.input-group-lg .custom-file-label,
+.input-group-lg .custom-file-label:after {
+ padding: 0.5rem 1rem;
+ line-height: 1.5;
+}
+.b-custom-control-lg .custom-file-label,
+.input-group-lg .custom-file-label {
+ border-radius: 0.3rem;
+}
+.b-custom-control-lg .custom-file-label::after,
+.input-group-lg .custom-file-label::after {
+ font-size: inherit;
+ height: calc( 1.5em + 1rem );
+ border-radius: 0 0.3rem 0.3rem 0;
+}
+
+.b-custom-control-sm.custom-file,
+.b-custom-control-sm .custom-file-input,
+.b-custom-control-sm .custom-file-label,
+.input-group-sm.custom-file,
+.input-group-sm .custom-file-input,
+.input-group-sm .custom-file-label {
+ font-size: 0.875rem;
+ height: calc(1.5em + 0.5rem + 2px);
+}
+.b-custom-control-sm .custom-file-label,
+.b-custom-control-sm .custom-file-label:after,
+.input-group-sm .custom-file-label,
+.input-group-sm .custom-file-label:after {
+ padding: 0.25rem 0.5rem;
+ line-height: 1.5;
+}
+.b-custom-control-sm .custom-file-label,
+.input-group-sm .custom-file-label {
+ border-radius: 0.2rem;
+}
+.b-custom-control-sm .custom-file-label::after,
+.input-group-sm .custom-file-label::after {
+ font-size: inherit;
+ height: calc( 1.5em + 0.5rem );
+ border-radius: 0 0.2rem 0.2rem 0;
+}
+
+.was-validated .form-control:invalid, .was-validated .form-control:valid, .form-control.is-invalid, .form-control.is-valid {
+ background-position: right calc(0.375em + 0.1875rem) center;
+}
+
+input[type=color].form-control {
+ height: calc(1.5em + 0.75rem + 2px);
+ padding: 0.125rem 0.25rem;
+}
+
+input[type=color].form-control.form-control-sm,
+.input-group-sm input[type=color].form-control {
+ height: calc(1.5em + 0.5rem + 2px);
+ padding: 0.125rem 0.25rem;
+}
+
+input[type=color].form-control.form-control-lg,
+.input-group-lg input[type=color].form-control {
+ height: calc(1.5em + 1rem + 2px);
+ padding: 0.125rem 0.25rem;
+}
+
+input[type=color].form-control:disabled {
+ background-color: #adb5bd;
+ opacity: 0.65;
+}
+
+.input-group > .custom-range {
+ position: relative;
+ flex: 1 1 auto;
+ width: 1%;
+ margin-bottom: 0;
+}
+.input-group > .custom-range + .form-control,
+.input-group > .custom-range + .form-control-plaintext,
+.input-group > .custom-range + .custom-select,
+.input-group > .custom-range + .custom-range,
+.input-group > .custom-range + .custom-file {
+ margin-left: -1px;
+}
+.input-group > .form-control + .custom-range,
+.input-group > .form-control-plaintext + .custom-range,
+.input-group > .custom-select + .custom-range,
+.input-group > .custom-range + .custom-range,
+.input-group > .custom-file + .custom-range {
+ margin-left: -1px;
+}
+.input-group > .custom-range:focus {
+ z-index: 3;
+}
+.input-group > .custom-range:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.input-group > .custom-range:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.input-group > .custom-range {
+ height: calc(1.5em + 0.75rem + 2px);
+ padding: 0 0.75rem;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ced4da;
+ height: calc(1.5em + 0.75rem + 2px);
+ border-radius: 0.25rem;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .input-group > .custom-range {
+ transition: none;
+ }
+}
+.input-group > .custom-range:focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.input-group > .custom-range:disabled, .input-group > .custom-range[readonly] {
+ background-color: #e9ecef;
+}
+
+.input-group-lg > .custom-range {
+ height: calc(1.5em + 1rem + 2px);
+ padding: 0 1rem;
+ border-radius: 0.3rem;
+}
+
+.input-group-sm > .custom-range {
+ height: calc(1.5em + 0.5rem + 2px);
+ padding: 0 0.5rem;
+ border-radius: 0.2rem;
+}
+
+.was-validated .input-group .custom-range:valid, .input-group .custom-range.is-valid {
+ border-color: #28a745;
+}
+.was-validated .input-group .custom-range:valid:focus, .input-group .custom-range.is-valid:focus {
+ border-color: #28a745;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+
+.was-validated .custom-range:valid:focus::-webkit-slider-thumb, .custom-range.is-valid:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;
+}
+.was-validated .custom-range:valid:focus::-moz-range-thumb, .custom-range.is-valid:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;
+}
+.was-validated .custom-range:valid:focus::-ms-thumb, .custom-range.is-valid:focus::-ms-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;
+}
+.was-validated .custom-range:valid::-webkit-slider-thumb, .custom-range.is-valid::-webkit-slider-thumb {
+ background-color: #28a745;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-webkit-slider-thumb:active, .custom-range.is-valid::-webkit-slider-thumb:active {
+ background-color: #9be7ac;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-webkit-slider-runnable-track, .custom-range.is-valid::-webkit-slider-runnable-track {
+ background-color: rgba(40, 167, 69, 0.35);
+}
+.was-validated .custom-range:valid::-moz-range-thumb, .custom-range.is-valid::-moz-range-thumb {
+ background-color: #28a745;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-moz-range-thumb:active, .custom-range.is-valid::-moz-range-thumb:active {
+ background-color: #9be7ac;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-moz-range-track, .custom-range.is-valid::-moz-range-track {
+ background: rgba(40, 167, 69, 0.35);
+}
+.was-validated .custom-range:valid ~ .valid-feedback,
+.was-validated .custom-range:valid ~ .valid-tooltip, .custom-range.is-valid ~ .valid-feedback,
+.custom-range.is-valid ~ .valid-tooltip {
+ display: block;
+}
+.was-validated .custom-range:valid::-ms-thumb, .custom-range.is-valid::-ms-thumb {
+ background-color: #28a745;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-ms-thumb:active, .custom-range.is-valid::-ms-thumb:active {
+ background-color: #9be7ac;
+ background-image: none;
+}
+.was-validated .custom-range:valid::-ms-track-lower, .custom-range.is-valid::-ms-track-lower {
+ background: rgba(40, 167, 69, 0.35);
+}
+.was-validated .custom-range:valid::-ms-track-upper, .custom-range.is-valid::-ms-track-upper {
+ background: rgba(40, 167, 69, 0.35);
+}
+
+.was-validated .input-group .custom-range:invalid, .input-group .custom-range.is-invalid {
+ border-color: #dc3545;
+}
+.was-validated .input-group .custom-range:invalid:focus, .input-group .custom-range.is-invalid:focus {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated .custom-range:invalid:focus::-webkit-slider-thumb, .custom-range.is-invalid:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;
+}
+.was-validated .custom-range:invalid:focus::-moz-range-thumb, .custom-range.is-invalid:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;
+}
+.was-validated .custom-range:invalid:focus::-ms-thumb, .custom-range.is-invalid:focus::-ms-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;
+}
+.was-validated .custom-range:invalid::-webkit-slider-thumb, .custom-range.is-invalid::-webkit-slider-thumb {
+ background-color: #dc3545;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-webkit-slider-thumb:active, .custom-range.is-invalid::-webkit-slider-thumb:active {
+ background-color: #f6cdd1;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-webkit-slider-runnable-track, .custom-range.is-invalid::-webkit-slider-runnable-track {
+ background-color: rgba(220, 53, 69, 0.35);
+}
+.was-validated .custom-range:invalid::-moz-range-thumb, .custom-range.is-invalid::-moz-range-thumb {
+ background-color: #dc3545;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-moz-range-thumb:active, .custom-range.is-invalid::-moz-range-thumb:active {
+ background-color: #f6cdd1;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-moz-range-track, .custom-range.is-invalid::-moz-range-track {
+ background: rgba(220, 53, 69, 0.35);
+}
+.was-validated .custom-range:invalid ~ .invalid-feedback,
+.was-validated .custom-range:invalid ~ .invalid-tooltip, .custom-range.is-invalid ~ .invalid-feedback,
+.custom-range.is-invalid ~ .invalid-tooltip {
+ display: block;
+}
+.was-validated .custom-range:invalid::-ms-thumb, .custom-range.is-invalid::-ms-thumb {
+ background-color: #dc3545;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-ms-thumb:active, .custom-range.is-invalid::-ms-thumb:active {
+ background-color: #f6cdd1;
+ background-image: none;
+}
+.was-validated .custom-range:invalid::-ms-track-lower, .custom-range.is-invalid::-ms-track-lower {
+ background: rgba(220, 53, 69, 0.35);
+}
+.was-validated .custom-range:invalid::-ms-track-upper, .custom-range.is-invalid::-ms-track-upper {
+ background: rgba(220, 53, 69, 0.35);
+}
+
+.custom-radio.b-custom-control-lg,
+.input-group-lg .custom-radio {
+ font-size: 1.25rem;
+ line-height: 1.5;
+ padding-left: 1.875rem;
+}
+.custom-radio.b-custom-control-lg .custom-control-label::before,
+.input-group-lg .custom-radio .custom-control-label::before {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ border-radius: 50%;
+}
+.custom-radio.b-custom-control-lg .custom-control-label::after,
+.input-group-lg .custom-radio .custom-control-label::after {
+ top: 0.3125rem;
+ left: -1.875rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ background: no-repeat 50%/50% 50%;
+}
+
+.custom-radio.b-custom-control-sm,
+.input-group-sm .custom-radio {
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding-left: 1.3125rem;
+}
+.custom-radio.b-custom-control-sm .custom-control-label::before,
+.input-group-sm .custom-radio .custom-control-label::before {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ border-radius: 50%;
+}
+.custom-radio.b-custom-control-sm .custom-control-label::after,
+.input-group-sm .custom-radio .custom-control-label::after {
+ top: 0.21875rem;
+ left: -1.3125rem;
+ width: 0.875rem;
+ height: 0.875rem;
+ background: no-repeat 50%/50% 50%;
+}
+
+.b-rating {
+ text-align: center;
+}
+.b-rating.d-inline-flex {
+ width: auto;
+}
+.b-rating .b-rating-star,
+.b-rating .b-rating-value {
+ padding: 0 0.25em;
+}
+.b-rating .b-rating-value {
+ min-width: 2.5em;
+}
+.b-rating .b-rating-star {
+ display: inline-flex;
+ justify-content: center;
+ outline: 0;
+}
+.b-rating .b-rating-star .b-rating-icon {
+ display: inline-flex;
+ transition: all 0.15s ease-in-out;
+}
+.b-rating.disabled, .b-rating:disabled {
+ background-color: #e9ecef;
+ color: #6c757d;
+}
+.b-rating:not(.disabled):not(.readonly) .b-rating-star {
+ cursor: pointer;
+}
+.b-rating:not(.disabled):not(.readonly):focus:not(:hover) .b-rating-star.focused .b-rating-icon,
+.b-rating:not(.disabled):not(.readonly) .b-rating-star:hover .b-rating-icon {
+ -webkit-transform: scale(1.5);
+ transform: scale(1.5);
+}
+.b-rating[dir=rtl] .b-rating-star-half {
+ -webkit-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.b-form-spinbutton {
+ text-align: center;
+ overflow: hidden;
+ background-image: none;
+ padding: 0;
+}
+[dir=rtl] .b-form-spinbutton:not(.flex-column), .b-form-spinbutton[dir=rtl]:not(.flex-column) {
+ flex-direction: row-reverse;
+}
+
+.b-form-spinbutton output {
+ font-size: inherit;
+ outline: 0;
+ border: 0;
+ background-color: transparent;
+ width: auto;
+ margin: 0;
+ padding: 0 0.25rem;
+}
+.b-form-spinbutton output > div,
+.b-form-spinbutton output > bdi {
+ display: block;
+ min-width: 2.25em;
+ height: 1.5em;
+}
+.b-form-spinbutton.flex-column {
+ height: auto;
+ width: auto;
+}
+.b-form-spinbutton.flex-column output {
+ margin: 0 0.25rem;
+ padding: 0.25rem 0;
+}
+.b-form-spinbutton:not(.d-inline-flex):not(.flex-column) {
+ output-width: 100%;
+}
+.b-form-spinbutton.d-inline-flex:not(.flex-column) {
+ width: auto;
+}
+.b-form-spinbutton .btn {
+ line-height: 1;
+ box-shadow: none !important;
+}
+.b-form-spinbutton .btn:disabled {
+ pointer-events: none;
+}
+.b-form-spinbutton .btn:hover:not(:disabled) > div > .b-icon {
+ -webkit-transform: scale(1.25);
+ transform: scale(1.25);
+}
+.b-form-spinbutton.disabled, .b-form-spinbutton.readonly {
+ background-color: #e9ecef;
+}
+.b-form-spinbutton.disabled {
+ pointer-events: none;
+}
+
+.b-form-tags .b-form-tags-list {
+ margin-top: -0.25rem;
+}
+.b-form-tags .b-form-tags-list .b-from-tags-field,
+.b-form-tags .b-form-tags-list .b-form-tag {
+ margin-top: 0.25rem;
+}
+.b-form-tags.focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.b-form-tags.focus.is-valid {
+ border-color: #28a745;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
+}
+.b-form-tags.focus.is-invalid {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+.b-form-tags.disabled {
+ background-color: #e9ecef;
+}
+
+.b-form-tag {
+ font-size: 75%;
+ font-weight: normal;
+ line-height: 1.5;
+ margin-right: 0.25rem;
+}
+.b-form-tag.disabled {
+ opacity: 0.75;
+}
+.b-form-tag > button.b-form-tag-remove {
+ color: inherit;
+ font-size: 125%;
+ line-height: 1;
+ float: none;
+ margin-left: 0.25rem;
+}
+
+.form-control-sm .b-form-tag {
+ line-height: 1.5;
+}
+
+.form-control-lg .b-form-tag {
+ line-height: 1.5;
+}
+
+.media-aside {
+ display: flex;
+ margin-right: 1rem;
+}
+
+.media-aside-right {
+ margin-right: 0;
+ margin-left: 1rem;
+}
+
+.modal-backdrop {
+ opacity: 0.5;
+}
+
+.b-pagination-pills .page-item .page-link {
+ border-radius: 50rem !important;
+ margin-left: 0.25rem;
+ line-height: 1;
+}
+.b-pagination-pills .page-item:first-child .page-link {
+ margin-left: 0;
+}
+
+.popover.b-popover {
+ display: block;
+ opacity: 1;
+ outline: 0;
+}
+.popover.b-popover.fade:not(.show) {
+ opacity: 0;
+}
+.popover.b-popover.show {
+ opacity: 1;
+}
+
+.b-popover-primary.popover {
+ background-color: #cce5ff;
+ border-color: #b8daff;
+}
+.b-popover-primary.bs-popover-top > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #b8daff;
+}
+.b-popover-primary.bs-popover-top > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #cce5ff;
+}
+.b-popover-primary.bs-popover-right > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #b8daff;
+}
+.b-popover-primary.bs-popover-right > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #cce5ff;
+}
+.b-popover-primary.bs-popover-bottom > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #b8daff;
+}
+.b-popover-primary.bs-popover-bottom > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #bdddff;
+}
+.b-popover-primary.bs-popover-bottom .popover-header::before, .b-popover-primary.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #bdddff;
+}
+.b-popover-primary.bs-popover-left > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #b8daff;
+}
+.b-popover-primary.bs-popover-left > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #cce5ff;
+}
+.b-popover-primary .popover-header {
+ color: #212529;
+ background-color: #bdddff;
+ border-bottom-color: #a3d0ff;
+}
+.b-popover-primary .popover-body {
+ color: #004085;
+}
+
+.b-popover-secondary.popover {
+ background-color: #e2e3e5;
+ border-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-top > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-top > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #e2e3e5;
+}
+.b-popover-secondary.bs-popover-right > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-right > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #e2e3e5;
+}
+.b-popover-secondary.bs-popover-bottom > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-bottom > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #dadbde;
+}
+.b-popover-secondary.bs-popover-bottom .popover-header::before, .b-popover-secondary.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #dadbde;
+}
+.b-popover-secondary.bs-popover-left > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #d6d8db;
+}
+.b-popover-secondary.bs-popover-left > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #e2e3e5;
+}
+.b-popover-secondary .popover-header {
+ color: #212529;
+ background-color: #dadbde;
+ border-bottom-color: #ccced2;
+}
+.b-popover-secondary .popover-body {
+ color: #383d41;
+}
+
+.b-popover-success.popover {
+ background-color: #d4edda;
+ border-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-top > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-top > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #d4edda;
+}
+.b-popover-success.bs-popover-right > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-right > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #d4edda;
+}
+.b-popover-success.bs-popover-bottom > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-bottom > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #c9e8d1;
+}
+.b-popover-success.bs-popover-bottom .popover-header::before, .b-popover-success.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #c9e8d1;
+}
+.b-popover-success.bs-popover-left > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #c3e6cb;
+}
+.b-popover-success.bs-popover-left > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #d4edda;
+}
+.b-popover-success .popover-header {
+ color: #212529;
+ background-color: #c9e8d1;
+ border-bottom-color: #b7e1c1;
+}
+.b-popover-success .popover-body {
+ color: #155724;
+}
+
+.b-popover-info.popover {
+ background-color: #d1ecf1;
+ border-color: #bee5eb;
+}
+.b-popover-info.bs-popover-top > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #bee5eb;
+}
+.b-popover-info.bs-popover-top > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #d1ecf1;
+}
+.b-popover-info.bs-popover-right > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #bee5eb;
+}
+.b-popover-info.bs-popover-right > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #d1ecf1;
+}
+.b-popover-info.bs-popover-bottom > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #bee5eb;
+}
+.b-popover-info.bs-popover-bottom > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #c5e7ed;
+}
+.b-popover-info.bs-popover-bottom .popover-header::before, .b-popover-info.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #c5e7ed;
+}
+.b-popover-info.bs-popover-left > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #bee5eb;
+}
+.b-popover-info.bs-popover-left > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #d1ecf1;
+}
+.b-popover-info .popover-header {
+ color: #212529;
+ background-color: #c5e7ed;
+ border-bottom-color: #b2dfe7;
+}
+.b-popover-info .popover-body {
+ color: #0c5460;
+}
+
+.b-popover-warning.popover {
+ background-color: #fff3cd;
+ border-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-top > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-top > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #fff3cd;
+}
+.b-popover-warning.bs-popover-right > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-right > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #fff3cd;
+}
+.b-popover-warning.bs-popover-bottom > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-bottom > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #ffefbe;
+}
+.b-popover-warning.bs-popover-bottom .popover-header::before, .b-popover-warning.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #ffefbe;
+}
+.b-popover-warning.bs-popover-left > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #ffeeba;
+}
+.b-popover-warning.bs-popover-left > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #fff3cd;
+}
+.b-popover-warning .popover-header {
+ color: #212529;
+ background-color: #ffefbe;
+ border-bottom-color: #ffe9a4;
+}
+.b-popover-warning .popover-body {
+ color: #856404;
+}
+
+.b-popover-danger.popover {
+ background-color: #f8d7da;
+ border-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-top > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-top > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #f8d7da;
+}
+.b-popover-danger.bs-popover-right > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-right > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #f8d7da;
+}
+.b-popover-danger.bs-popover-bottom > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-bottom > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #f6cace;
+}
+.b-popover-danger.bs-popover-bottom .popover-header::before, .b-popover-danger.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #f6cace;
+}
+.b-popover-danger.bs-popover-left > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #f5c6cb;
+}
+.b-popover-danger.bs-popover-left > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #f8d7da;
+}
+.b-popover-danger .popover-header {
+ color: #212529;
+ background-color: #f6cace;
+ border-bottom-color: #f2b4ba;
+}
+.b-popover-danger .popover-body {
+ color: #721c24;
+}
+
+.b-popover-light.popover {
+ background-color: #fefefe;
+ border-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-top > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-top > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #fefefe;
+}
+.b-popover-light.bs-popover-right > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-right > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #fefefe;
+}
+.b-popover-light.bs-popover-bottom > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-bottom > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #f6f6f6;
+}
+.b-popover-light.bs-popover-bottom .popover-header::before, .b-popover-light.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #f6f6f6;
+}
+.b-popover-light.bs-popover-left > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #fdfdfe;
+}
+.b-popover-light.bs-popover-left > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #fefefe;
+}
+.b-popover-light .popover-header {
+ color: #212529;
+ background-color: #f6f6f6;
+ border-bottom-color: #eaeaea;
+}
+.b-popover-light .popover-body {
+ color: #818182;
+}
+
+.b-popover-dark.popover {
+ background-color: #d6d8d9;
+ border-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-top > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::before {
+ border-top-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-top > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::after {
+ border-top-color: #d6d8d9;
+}
+.b-popover-dark.bs-popover-right > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::before {
+ border-right-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-right > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::after {
+ border-right-color: #d6d8d9;
+}
+.b-popover-dark.bs-popover-bottom > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::before {
+ border-bottom-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-bottom > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::after {
+ border-bottom-color: #ced0d2;
+}
+.b-popover-dark.bs-popover-bottom .popover-header::before, .b-popover-dark.bs-popover-auto[x-placement^=bottom] .popover-header::before {
+ border-bottom-color: #ced0d2;
+}
+.b-popover-dark.bs-popover-left > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::before {
+ border-left-color: #c6c8ca;
+}
+.b-popover-dark.bs-popover-left > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::after {
+ border-left-color: #d6d8d9;
+}
+.b-popover-dark .popover-header {
+ color: #212529;
+ background-color: #ced0d2;
+ border-bottom-color: #c1c4c5;
+}
+.b-popover-dark .popover-body {
+ color: #1b1e21;
+}
+
+.b-sidebar-outer {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 0;
+ overflow: visible;
+ z-index: calc(1030 + 5);
+}
+
+.b-sidebar-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ width: 100vw;
+ height: 100vh;
+ opacity: 0.6;
+}
+
+.b-sidebar {
+ display: flex;
+ flex-direction: column;
+ position: fixed;
+ top: 0;
+ width: 320px;
+ max-width: 100%;
+ height: 100vh;
+ max-height: 100%;
+ margin: 0;
+ outline: 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+}
+.b-sidebar.slide {
+ transition: -webkit-transform 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-sidebar.slide {
+ transition: none;
+ }
+}
+.b-sidebar:not(.b-sidebar-right) {
+ left: 0;
+ right: auto;
+}
+.b-sidebar:not(.b-sidebar-right).slide:not(.show) {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+}
+.b-sidebar:not(.b-sidebar-right) > .b-sidebar-header .close {
+ margin-left: auto;
+}
+.b-sidebar.b-sidebar-right {
+ left: auto;
+ right: 0;
+}
+.b-sidebar.b-sidebar-right.slide:not(.show) {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+}
+.b-sidebar.b-sidebar-right > .b-sidebar-header .close {
+ margin-right: auto;
+}
+.b-sidebar > .b-sidebar-header {
+ font-size: 1.5rem;
+ padding: 0.5rem 1rem;
+ display: flex;
+ flex-direction: row;
+ flex-grow: 0;
+ align-items: center;
+}
+[dir=rtl] .b-sidebar > .b-sidebar-header {
+ flex-direction: row-reverse;
+}
+
+.b-sidebar > .b-sidebar-header .close {
+ float: none;
+ font-size: 1.5rem;
+}
+.b-sidebar > .b-sidebar-body {
+ flex-grow: 1;
+ height: 100%;
+ overflow-y: auto;
+}
+.b-sidebar > .b-sidebar-footer {
+ flex-grow: 0;
+}
+
+.b-skeleton-wrapper {
+ cursor: wait;
+}
+
+.b-skeleton {
+ position: relative;
+ overflow: hidden;
+ background-color: rgba(0, 0, 0, 0.12);
+ cursor: wait;
+ -webkit-mask-image: radial-gradient(white, black);
+ mask-image: radial-gradient(white, black);
+}
+.b-skeleton::before {
+ content: " ";
+}
+
+.b-skeleton-text {
+ height: 1rem;
+ margin-bottom: 0.25rem;
+ border-radius: 0.25rem;
+}
+
+.b-skeleton-button {
+ width: 75px;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ line-height: 1.5;
+ border-radius: 0.25rem;
+}
+
+.b-skeleton-avatar {
+ width: 2.5em;
+ height: 2.5em;
+ border-radius: 50%;
+}
+
+.b-skeleton-input {
+ height: calc(1.5em + 0.75rem + 2px);
+ padding: 0.375rem 0.75rem;
+ line-height: 1.5;
+ border: #ced4da solid 1px;
+ border-radius: 0.25rem;
+}
+
+.b-skeleton-icon-wrapper svg {
+ color: rgba(0, 0, 0, 0.12);
+}
+
+.b-skeleton-img {
+ height: 100%;
+ width: 100%;
+}
+
+.b-skeleton-animate-wave::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 0;
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
+ -webkit-animation: b-skeleton-animate-wave 1.75s linear infinite;
+ animation: b-skeleton-animate-wave 1.75s linear infinite;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-skeleton-animate-wave::after {
+ background: none;
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+
+@-webkit-keyframes b-skeleton-animate-wave {
+ from {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+ to {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+}
+
+@keyframes b-skeleton-animate-wave {
+ from {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+ }
+ to {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+}
+.b-skeleton-animate-fade {
+ -webkit-animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite;
+ animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-skeleton-animate-fade {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+
+@-webkit-keyframes b-skeleton-animate-fade {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0.4;
+ }
+}
+
+@keyframes b-skeleton-animate-fade {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0.4;
+ }
+}
+.b-skeleton-animate-throb {
+ -webkit-animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite;
+ animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-skeleton-animate-throb {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+
+@-webkit-keyframes b-skeleton-animate-throb {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+ 100% {
+ -webkit-transform: scale(0.975);
+ transform: scale(0.975);
+ }
+}
+
+@keyframes b-skeleton-animate-throb {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+ 100% {
+ -webkit-transform: scale(0.975);
+ transform: scale(0.975);
+ }
+}
+.table.b-table.b-table-fixed {
+ table-layout: fixed;
+}
+.table.b-table.b-table-no-border-collapse {
+ border-collapse: separate;
+ border-spacing: 0;
+}
+.table.b-table[aria-busy=true] {
+ opacity: 0.55;
+}
+.table.b-table > tbody > tr.b-table-details > td {
+ border-top: none !important;
+}
+.table.b-table > caption {
+ caption-side: bottom;
+}
+.table.b-table.b-table-caption-top > caption {
+ caption-side: top !important;
+}
+.table.b-table > tbody > .table-active,
+.table.b-table > tbody > .table-active > th,
+.table.b-table > tbody > .table-active > td {
+ background-color: rgba(0, 0, 0, 0.075);
+}
+.table.b-table.table-hover > tbody > tr.table-active:hover td,
+.table.b-table.table-hover > tbody > tr.table-active:hover th {
+ color: #212529;
+ background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075));
+ background-repeat: no-repeat;
+}
+.table.b-table > tbody > .bg-active,
+.table.b-table > tbody > .bg-active > th,
+.table.b-table > tbody > .bg-active > td {
+ background-color: rgba(255, 255, 255, 0.075) !important;
+}
+.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover td,
+.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover th {
+ color: #fff;
+ background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075));
+ background-repeat: no-repeat;
+}
+
+.b-table-sticky-header,
+.table-responsive,
+[class*=table-responsive-] {
+ margin-bottom: 1rem;
+}
+.b-table-sticky-header > .table,
+.table-responsive > .table,
+[class*=table-responsive-] > .table {
+ margin-bottom: 0;
+}
+
+.b-table-sticky-header {
+ overflow-y: auto;
+ max-height: 300px;
+}
+
+@media print {
+ .b-table-sticky-header {
+ overflow-y: visible !important;
+ max-height: none !important;
+ }
+}
+@supports ((position: -webkit-sticky) or (position: sticky)) {
+ .b-table-sticky-header > .table.b-table > thead > tr > th {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 2;
+ }
+
+ .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column,
+.b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column,
+.b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column,
+.table-responsive > .table.b-table > thead > tr > .b-table-sticky-column,
+.table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column,
+.table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column,
+[class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column,
+[class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column,
+[class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column {
+ position: -webkit-sticky;
+ position: sticky;
+ left: 0;
+ }
+ .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column,
+.table-responsive > .table.b-table > thead > tr > .b-table-sticky-column,
+[class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column {
+ z-index: 5;
+ }
+ .b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column,
+.b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column,
+.table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column,
+.table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column,
+[class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column,
+[class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column {
+ z-index: 2;
+ }
+
+ .table.b-table > thead > tr > .table-b-table-default,
+.table.b-table > tbody > tr > .table-b-table-default,
+.table.b-table > tfoot > tr > .table-b-table-default {
+ color: #212529;
+ background-color: #fff;
+ }
+ .table.b-table.table-dark > thead > tr > .bg-b-table-default,
+.table.b-table.table-dark > tbody > tr > .bg-b-table-default,
+.table.b-table.table-dark > tfoot > tr > .bg-b-table-default {
+ color: #fff;
+ background-color: #343a40;
+ }
+ .table.b-table.table-striped > tbody > tr:nth-of-type(odd) > .table-b-table-default {
+ background-image: linear-gradient(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05));
+ background-repeat: no-repeat;
+ }
+ .table.b-table.table-striped.table-dark > tbody > tr:nth-of-type(odd) > .bg-b-table-default {
+ background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05));
+ background-repeat: no-repeat;
+ }
+ .table.b-table.table-hover > tbody > tr:hover > .table-b-table-default {
+ color: #212529;
+ background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075));
+ background-repeat: no-repeat;
+ }
+ .table.b-table.table-hover.table-dark > tbody > tr:hover > .bg-b-table-default {
+ color: #fff;
+ background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075));
+ background-repeat: no-repeat;
+ }
+}
+.table.b-table > thead > tr > [aria-sort],
+.table.b-table > tfoot > tr > [aria-sort] {
+ cursor: pointer;
+ background-image: none;
+ background-repeat: no-repeat;
+ background-size: 0.65em 1em;
+}
+.table.b-table > thead > tr > [aria-sort]:not(.b-table-sort-icon-left),
+.table.b-table > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) {
+ background-position: right calc(0.75rem / 2) center;
+ padding-right: calc(0.75rem + 0.65em);
+}
+.table.b-table > thead > tr > [aria-sort].b-table-sort-icon-left,
+.table.b-table > tfoot > tr > [aria-sort].b-table-sort-icon-left {
+ background-position: left calc(0.75rem / 2) center;
+ padding-left: calc(0.75rem + 0.65em);
+}
+.table.b-table > thead > tr > [aria-sort=none],
+.table.b-table > tfoot > tr > [aria-sort=none] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > [aria-sort=ascending],
+.table.b-table > tfoot > tr > [aria-sort=ascending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > [aria-sort=descending],
+.table.b-table > tfoot > tr > [aria-sort=descending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-dark > thead > tr > [aria-sort=none], .table.b-table.table-dark > tfoot > tr > [aria-sort=none],
+.table.b-table > .thead-dark > tr > [aria-sort=none] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-dark > thead > tr > [aria-sort=ascending], .table.b-table.table-dark > tfoot > tr > [aria-sort=ascending],
+.table.b-table > .thead-dark > tr > [aria-sort=ascending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-dark > thead > tr > [aria-sort=descending], .table.b-table.table-dark > tfoot > tr > [aria-sort=descending],
+.table.b-table > .thead-dark > tr > [aria-sort=descending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > .table-dark[aria-sort=none],
+.table.b-table > tfoot > tr > .table-dark[aria-sort=none] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > .table-dark[aria-sort=ascending],
+.table.b-table > tfoot > tr > .table-dark[aria-sort=ascending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table > thead > tr > .table-dark[aria-sort=descending],
+.table.b-table > tfoot > tr > .table-dark[aria-sort=descending] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e");
+}
+.table.b-table.table-sm > thead > tr > [aria-sort]:not(.b-table-sort-icon-left),
+.table.b-table.table-sm > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) {
+ background-position: right calc(0.3rem / 2) center;
+ padding-right: calc(0.3rem + 0.65em);
+}
+.table.b-table.table-sm > thead > tr > [aria-sort].b-table-sort-icon-left,
+.table.b-table.table-sm > tfoot > tr > [aria-sort].b-table-sort-icon-left {
+ background-position: left calc(0.3rem / 2) center;
+ padding-left: calc(0.3rem + 0.65em);
+}
+
+.table.b-table.b-table-selectable:not(.b-table-selectable-no-click) > tbody > tr {
+ cursor: pointer;
+}
+.table.b-table.b-table-selectable:not(.b-table-selectable-no-click).b-table-selecting.b-table-select-range > tbody > tr {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+@media (max-width: 575.98px) {
+ .table.b-table.b-table-stacked-sm {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-sm > caption,
+.table.b-table.b-table-stacked-sm > tbody,
+.table.b-table.b-table-stacked-sm > tbody > tr,
+.table.b-table.b-table-stacked-sm > tbody > tr > td,
+.table.b-table.b-table-stacked-sm > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-sm > thead,
+.table.b-table.b-table-stacked-sm > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-sm > thead > tr.b-table-top-row,
+.table.b-table.b-table-stacked-sm > thead > tr.b-table-bottom-row,
+.table.b-table.b-table-stacked-sm > tfoot > tr.b-table-top-row,
+.table.b-table.b-table-stacked-sm > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-sm > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr.top-row, .table.b-table.b-table-stacked-sm > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + td,
+.table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+@media (max-width: 767.98px) {
+ .table.b-table.b-table-stacked-md {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-md > caption,
+.table.b-table.b-table-stacked-md > tbody,
+.table.b-table.b-table-stacked-md > tbody > tr,
+.table.b-table.b-table-stacked-md > tbody > tr > td,
+.table.b-table.b-table-stacked-md > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-md > thead,
+.table.b-table.b-table-stacked-md > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-md > thead > tr.b-table-top-row,
+.table.b-table.b-table-stacked-md > thead > tr.b-table-bottom-row,
+.table.b-table.b-table-stacked-md > tfoot > tr.b-table-top-row,
+.table.b-table.b-table-stacked-md > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-md > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr.top-row, .table.b-table.b-table-stacked-md > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + td,
+.table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+@media (max-width: 991.98px) {
+ .table.b-table.b-table-stacked-lg {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-lg > caption,
+.table.b-table.b-table-stacked-lg > tbody,
+.table.b-table.b-table-stacked-lg > tbody > tr,
+.table.b-table.b-table-stacked-lg > tbody > tr > td,
+.table.b-table.b-table-stacked-lg > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-lg > thead,
+.table.b-table.b-table-stacked-lg > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-lg > thead > tr.b-table-top-row,
+.table.b-table.b-table-stacked-lg > thead > tr.b-table-bottom-row,
+.table.b-table.b-table-stacked-lg > tfoot > tr.b-table-top-row,
+.table.b-table.b-table-stacked-lg > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-lg > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr.top-row, .table.b-table.b-table-stacked-lg > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + td,
+.table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+@media (max-width: 1199.98px) {
+ .table.b-table.b-table-stacked-xl {
+ display: block;
+ width: 100%;
+ }
+ .table.b-table.b-table-stacked-xl > caption,
+.table.b-table.b-table-stacked-xl > tbody,
+.table.b-table.b-table-stacked-xl > tbody > tr,
+.table.b-table.b-table-stacked-xl > tbody > tr > td,
+.table.b-table.b-table-stacked-xl > tbody > tr > th {
+ display: block;
+ }
+ .table.b-table.b-table-stacked-xl > thead,
+.table.b-table.b-table-stacked-xl > tfoot {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-xl > thead > tr.b-table-top-row,
+.table.b-table.b-table-stacked-xl > thead > tr.b-table-bottom-row,
+.table.b-table.b-table-stacked-xl > tfoot > tr.b-table-top-row,
+.table.b-table.b-table-stacked-xl > tfoot > tr.b-table-bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-xl > caption {
+ caption-side: top !important;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr.top-row, .table.b-table.b-table-stacked-xl > tbody > tr.bottom-row {
+ display: none;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > :first-child {
+ border-top-width: 3px;
+ }
+ .table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + td,
+.table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+ }
+}
+.table.b-table.b-table-stacked {
+ display: block;
+ width: 100%;
+}
+.table.b-table.b-table-stacked > caption,
+.table.b-table.b-table-stacked > tbody,
+.table.b-table.b-table-stacked > tbody > tr,
+.table.b-table.b-table-stacked > tbody > tr > td,
+.table.b-table.b-table-stacked > tbody > tr > th {
+ display: block;
+}
+.table.b-table.b-table-stacked > thead,
+.table.b-table.b-table-stacked > tfoot {
+ display: none;
+}
+.table.b-table.b-table-stacked > thead > tr.b-table-top-row,
+.table.b-table.b-table-stacked > thead > tr.b-table-bottom-row,
+.table.b-table.b-table-stacked > tfoot > tr.b-table-top-row,
+.table.b-table.b-table-stacked > tfoot > tr.b-table-bottom-row {
+ display: none;
+}
+.table.b-table.b-table-stacked > caption {
+ caption-side: top !important;
+}
+.table.b-table.b-table-stacked > tbody > tr > [data-label]::before {
+ content: attr(data-label);
+ width: 40%;
+ float: left;
+ text-align: right;
+ overflow-wrap: break-word;
+ font-weight: bold;
+ font-style: normal;
+ padding: 0 calc(1rem / 2) 0 0;
+ margin: 0;
+}
+.table.b-table.b-table-stacked > tbody > tr > [data-label]::after {
+ display: block;
+ clear: both;
+ content: "";
+}
+.table.b-table.b-table-stacked > tbody > tr > [data-label] > div {
+ display: inline-block;
+ width: calc(100% - 40%);
+ padding: 0 0 0 calc(1rem / 2);
+ margin: 0;
+}
+.table.b-table.b-table-stacked > tbody > tr.top-row, .table.b-table.b-table-stacked > tbody > tr.bottom-row {
+ display: none;
+}
+.table.b-table.b-table-stacked > tbody > tr > :first-child {
+ border-top-width: 3px;
+}
+.table.b-table.b-table-stacked > tbody > tr > [rowspan] + td,
+.table.b-table.b-table-stacked > tbody > tr > [rowspan] + th {
+ border-top-width: 3px;
+}
+
+.b-time {
+ min-width: 150px;
+}
+.b-time[aria-disabled=true] output, .b-time[aria-readonly=true] output,
+.b-time output.disabled {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+.b-time[aria-disabled=true] output {
+ pointer-events: none;
+}
+[dir=rtl] .b-time > .d-flex:not(.flex-column) {
+ flex-direction: row-reverse;
+}
+
+.b-time .b-time-header {
+ margin-bottom: 0.5rem;
+}
+.b-time .b-time-header output {
+ padding: 0.25rem;
+ font-size: 80%;
+}
+.b-time .b-time-footer {
+ margin-top: 0.5rem;
+}
+.b-time .b-time-ampm {
+ margin-left: 0.5rem;
+}
+
+.b-toast {
+ display: block;
+ position: relative;
+ max-width: 350px;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ background-clip: padding-box;
+ z-index: 1;
+ border-radius: 0.25rem;
+}
+.b-toast .toast {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+.b-toast:not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.b-toast.b-toast-solid .toast {
+ background-color: white;
+}
+.b-toast .toast {
+ opacity: 1;
+}
+.b-toast .toast.fade:not(.show) {
+ opacity: 0;
+}
+.b-toast .toast .toast-body {
+ display: block;
+}
+
+.b-toast-primary .toast {
+ background-color: rgba(230, 242, 255, 0.85);
+ border-color: rgba(184, 218, 255, 0.85);
+ color: #004085;
+}
+.b-toast-primary .toast .toast-header {
+ color: #004085;
+ background-color: rgba(204, 229, 255, 0.85);
+ border-bottom-color: rgba(184, 218, 255, 0.85);
+}
+.b-toast-primary.b-toast-solid .toast {
+ background-color: #e6f2ff;
+}
+
+.b-toast-secondary .toast {
+ background-color: rgba(239, 240, 241, 0.85);
+ border-color: rgba(214, 216, 219, 0.85);
+ color: #383d41;
+}
+.b-toast-secondary .toast .toast-header {
+ color: #383d41;
+ background-color: rgba(226, 227, 229, 0.85);
+ border-bottom-color: rgba(214, 216, 219, 0.85);
+}
+.b-toast-secondary.b-toast-solid .toast {
+ background-color: #eff0f1;
+}
+
+.b-toast-success .toast {
+ background-color: rgba(230, 245, 233, 0.85);
+ border-color: rgba(195, 230, 203, 0.85);
+ color: #155724;
+}
+.b-toast-success .toast .toast-header {
+ color: #155724;
+ background-color: rgba(212, 237, 218, 0.85);
+ border-bottom-color: rgba(195, 230, 203, 0.85);
+}
+.b-toast-success.b-toast-solid .toast {
+ background-color: #e6f5e9;
+}
+
+.b-toast-info .toast {
+ background-color: rgba(229, 244, 247, 0.85);
+ border-color: rgba(190, 229, 235, 0.85);
+ color: #0c5460;
+}
+.b-toast-info .toast .toast-header {
+ color: #0c5460;
+ background-color: rgba(209, 236, 241, 0.85);
+ border-bottom-color: rgba(190, 229, 235, 0.85);
+}
+.b-toast-info.b-toast-solid .toast {
+ background-color: #e5f4f7;
+}
+
+.b-toast-warning .toast {
+ background-color: rgba(255, 249, 231, 0.85);
+ border-color: rgba(255, 238, 186, 0.85);
+ color: #856404;
+}
+.b-toast-warning .toast .toast-header {
+ color: #856404;
+ background-color: rgba(255, 243, 205, 0.85);
+ border-bottom-color: rgba(255, 238, 186, 0.85);
+}
+.b-toast-warning.b-toast-solid .toast {
+ background-color: #fff9e7;
+}
+
+.b-toast-danger .toast {
+ background-color: rgba(252, 237, 238, 0.85);
+ border-color: rgba(245, 198, 203, 0.85);
+ color: #721c24;
+}
+.b-toast-danger .toast .toast-header {
+ color: #721c24;
+ background-color: rgba(248, 215, 218, 0.85);
+ border-bottom-color: rgba(245, 198, 203, 0.85);
+}
+.b-toast-danger.b-toast-solid .toast {
+ background-color: #fcedee;
+}
+
+.b-toast-light .toast {
+ background-color: rgba(255, 255, 255, 0.85);
+ border-color: rgba(253, 253, 254, 0.85);
+ color: #818182;
+}
+.b-toast-light .toast .toast-header {
+ color: #818182;
+ background-color: rgba(254, 254, 254, 0.85);
+ border-bottom-color: rgba(253, 253, 254, 0.85);
+}
+.b-toast-light.b-toast-solid .toast {
+ background-color: white;
+}
+
+.b-toast-dark .toast {
+ background-color: rgba(227, 229, 229, 0.85);
+ border-color: rgba(198, 200, 202, 0.85);
+ color: #1b1e21;
+}
+.b-toast-dark .toast .toast-header {
+ color: #1b1e21;
+ background-color: rgba(214, 216, 217, 0.85);
+ border-bottom-color: rgba(198, 200, 202, 0.85);
+}
+.b-toast-dark.b-toast-solid .toast {
+ background-color: #e3e5e5;
+}
+
+.b-toaster {
+ z-index: 1100;
+}
+.b-toaster .b-toaster-slot {
+ position: relative;
+ display: block;
+}
+.b-toaster .b-toaster-slot:empty {
+ display: none !important;
+}
+
+.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full, .b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full {
+ position: fixed;
+ left: 0.5rem;
+ right: 0.5rem;
+ margin: 0;
+ padding: 0;
+ height: 0;
+ overflow: visible;
+}
+.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {
+ position: absolute;
+ max-width: 350px;
+ width: 100%;
+ /* IE 11 fix */
+ left: 0;
+ right: 0;
+ padding: 0;
+ margin: 0;
+}
+.b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {
+ width: 100%;
+ max-width: 100%;
+}
+.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast,
+.b-toaster.b-toaster-top-full .b-toaster-slot .toast, .b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast,
+.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast {
+ width: 100%;
+ max-width: 100%;
+}
+.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full {
+ top: 0;
+}
+.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot {
+ top: 0.5rem;
+}
+.b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full {
+ bottom: 0;
+}
+.b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {
+ bottom: 0.5rem;
+}
+.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot {
+ margin-left: auto;
+}
+.b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot {
+ margin-right: auto;
+}
+
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-move, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move {
+ transition: -webkit-transform 0.175s;
+ transition: transform 0.175s;
+ transition: transform 0.175s, -webkit-transform 0.175s;
+}
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade {
+ transition-delay: 0.175s;
+}
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active {
+ position: absolute;
+ transition-delay: 0.175s;
+}
+.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade {
+ transition-delay: 0s;
+}
+.tooltip.b-tooltip {
+ display: block;
+ opacity: 1;
+ outline: 0;
+ transition: opacity 0.1s var(--appleEase);
+}
+.tooltip.b-tooltip.fade:not(.show) {
+ opacity: 0;
+}
+.tooltip.b-tooltip.show {
+ opacity: 0.9;
+}
+.tooltip.b-tooltip.noninteractive {
+ pointer-events: none;
+}
+.tooltip.b-tooltip .arrow {
+ margin: 0 0.25rem;
+}
+.tooltip.b-tooltip.bs-tooltip-right .arrow, .tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.bs-tooltip-left .arrow, .tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow {
+ margin: 0.25rem 0;
+}
+
+.tooltip.b-tooltip-primary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #007bff;
+}
+.tooltip.b-tooltip-primary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #007bff;
+}
+.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #007bff;
+}
+.tooltip.b-tooltip-primary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #007bff;
+}
+.tooltip.b-tooltip-primary .tooltip-inner {
+ color: #fff;
+ background-color: #007bff;
+}
+
+.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #6c757d;
+}
+.tooltip.b-tooltip-secondary .tooltip-inner {
+ color: #fff;
+ background-color: #6c757d;
+}
+
+.tooltip.b-tooltip-success.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #28a745;
+}
+.tooltip.b-tooltip-success.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #28a745;
+}
+.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #28a745;
+}
+.tooltip.b-tooltip-success.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #28a745;
+}
+.tooltip.b-tooltip-success .tooltip-inner {
+ color: #fff;
+ background-color: #28a745;
+}
+
+.tooltip.b-tooltip-info.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #17a2b8;
+}
+.tooltip.b-tooltip-info.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #17a2b8;
+}
+.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #17a2b8;
+}
+.tooltip.b-tooltip-info.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #17a2b8;
+}
+.tooltip.b-tooltip-info .tooltip-inner {
+ color: #fff;
+ background-color: #17a2b8;
+}
+
+.tooltip.b-tooltip-warning.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #ffc107;
+}
+.tooltip.b-tooltip-warning.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #ffc107;
+}
+.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #ffc107;
+}
+.tooltip.b-tooltip-warning.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #ffc107;
+}
+.tooltip.b-tooltip-warning .tooltip-inner {
+ color: #212529;
+ background-color: #ffc107;
+}
+
+.tooltip.b-tooltip-danger.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #dc3545;
+}
+.tooltip.b-tooltip-danger.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #dc3545;
+}
+.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #dc3545;
+}
+.tooltip.b-tooltip-danger.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #dc3545;
+}
+.tooltip.b-tooltip-danger .tooltip-inner {
+ color: #fff;
+ background-color: #dc3545;
+}
+
+.tooltip.b-tooltip-light.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #f8f9fa;
+}
+.tooltip.b-tooltip-light .tooltip-inner {
+ color: #212529;
+ background-color: #f8f9fa;
+}
+
+.tooltip.b-tooltip-dark.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=top] .arrow::before {
+ border-top-color: #343a40;
+}
+.tooltip.b-tooltip-dark.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow::before {
+ border-right-color: #343a40;
+}
+.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=bottom] .arrow::before {
+ border-bottom-color: #343a40;
+}
+.tooltip.b-tooltip-dark.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow::before {
+ border-left-color: #343a40;
+}
+.tooltip.b-tooltip-dark .tooltip-inner {
+ color: #fff;
+ background-color: #343a40;
+}
+
+.b-icon.bi {
+ display: inline-block;
+ overflow: visible;
+ vertical-align: -0.15em;
+}
+.b-icon.b-icon-animation-cylon, .b-icon.b-iconstack .b-icon-animation-cylon > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-cylon, .b-icon.b-iconstack .b-icon-animation-cylon > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-cylon-vertical, .b-icon.b-iconstack .b-icon-animation-cylon-vertical > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-cylon-vertical, .b-icon.b-iconstack .b-icon-animation-cylon-vertical > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-fade, .b-icon.b-iconstack .b-icon-animation-fade > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-fade, .b-icon.b-iconstack .b-icon-animation-fade > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin, .b-icon.b-iconstack .b-icon-animation-spin > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 2s infinite linear normal b-icon-animation-spin;
+ animation: 2s infinite linear normal b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin, .b-icon.b-iconstack .b-icon-animation-spin > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin-reverse, .b-icon.b-iconstack .b-icon-animation-spin-reverse > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ animation: 2s infinite linear reverse b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin-reverse, .b-icon.b-iconstack .b-icon-animation-spin-reverse > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin-pulse, .b-icon.b-iconstack .b-icon-animation-spin-pulse > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 1s infinite steps(8) normal b-icon-animation-spin;
+ animation: 1s infinite steps(8) normal b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin-pulse, .b-icon.b-iconstack .b-icon-animation-spin-pulse > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-spin-reverse-pulse, .b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ animation: 1s infinite steps(8) reverse b-icon-animation-spin;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-spin-reverse-pulse, .b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+.b-icon.b-icon-animation-throb, .b-icon.b-iconstack .b-icon-animation-throb > g {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb;
+ animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb;
+}
+@media (prefers-reduced-motion: reduce) {
+ .b-icon.b-icon-animation-throb, .b-icon.b-iconstack .b-icon-animation-throb > g {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+
+@-webkit-keyframes b-icon-animation-cylon {
+ 0% {
+ -webkit-transform: translateX(-25%);
+ transform: translateX(-25%);
+ }
+ 100% {
+ -webkit-transform: translateX(25%);
+ transform: translateX(25%);
+ }
+}
+
+@keyframes b-icon-animation-cylon {
+ 0% {
+ -webkit-transform: translateX(-25%);
+ transform: translateX(-25%);
+ }
+ 100% {
+ -webkit-transform: translateX(25%);
+ transform: translateX(25%);
+ }
+}
+@-webkit-keyframes b-icon-animation-cylon-vertical {
+ 0% {
+ -webkit-transform: translateY(25%);
+ transform: translateY(25%);
+ }
+ 100% {
+ -webkit-transform: translateY(-25%);
+ transform: translateY(-25%);
+ }
+}
+@keyframes b-icon-animation-cylon-vertical {
+ 0% {
+ -webkit-transform: translateY(25%);
+ transform: translateY(25%);
+ }
+ 100% {
+ -webkit-transform: translateY(-25%);
+ transform: translateY(-25%);
+ }
+}
+@-webkit-keyframes b-icon-animation-fade {
+ 0% {
+ opacity: 0.1;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@keyframes b-icon-animation-fade {
+ 0% {
+ opacity: 0.1;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@-webkit-keyframes b-icon-animation-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes b-icon-animation-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@-webkit-keyframes b-icon-animation-throb {
+ 0% {
+ opacity: 0.5;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+@keyframes b-icon-animation-throb {
+ 0% {
+ opacity: 0.5;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+.btn .b-icon.bi,
+.nav-link .b-icon.bi,
+.dropdown-toggle .b-icon.bi,
+.dropdown-item .b-icon.bi,
+.input-group-text .b-icon.bi {
+ font-size: 125%;
+ vertical-align: text-bottom;
+}
+
+/*# sourceMappingURL=bootstrap-vue.css.map */
\ No newline at end of file
diff --git a/src/renderer/less/bootstrap.css b/src/renderer/less/bootstrap.css
new file mode 100644
index 00000000..a31aec11
--- /dev/null
+++ b/src/renderer/less/bootstrap.css
@@ -0,0 +1,6246 @@
+.dropup,
+.dropend,
+.dropdown,
+.dropstart {
+ position: relative;
+}
+.dropdown-toggle {
+ white-space: nowrap;
+}
+.dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent;
+}
+.dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropdown-menu {
+ position: absolute;
+ z-index: 1000;
+ display: none;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+.dropdown-menu[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: 0.125rem;
+}
+.dropdown-menu-start {
+ --bs-position: start;
+}
+.dropdown-menu-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+}
+.dropdown-menu-end {
+ --bs-position: end;
+}
+.dropdown-menu-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+}
+@media (min-width: 576px) {
+ .dropdown-menu-sm-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-sm-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 768px) {
+ .dropdown-menu-md-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-md-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 992px) {
+ .dropdown-menu-lg-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-lg-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1200px) {
+ .dropdown-menu-xl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xxl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+.dropup .dropdown-menu[data-bs-popper] {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: 0.125rem;
+}
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent;
+}
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropend .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: auto;
+ left: 100%;
+ margin-top: 0;
+ margin-left: 0.125rem;
+}
+.dropend .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0;
+ border-bottom: 0.3em solid transparent;
+ border-left: 0.3em solid;
+}
+.dropend .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropend .dropdown-toggle::after {
+ vertical-align: 0;
+}
+.dropstart .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: 100%;
+ left: auto;
+ margin-top: 0;
+ margin-right: 0.125rem;
+}
+.dropstart .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+}
+.dropstart .dropdown-toggle::after {
+ display: none;
+}
+.dropstart .dropdown-toggle::before {
+ display: inline-block;
+ margin-right: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0.3em solid;
+ border-bottom: 0.3em solid transparent;
+}
+.dropstart .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle::before {
+ vertical-align: 0;
+}
+.dropdown-divider {
+ height: 0;
+ margin: 0.5rem 0;
+ overflow: hidden;
+ border-top: 1px solid rgba(0, 0, 0, 0.15);
+}
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.25rem 1rem;
+ clear: both;
+ font-weight: 400;
+ color: #212529;
+ text-align: inherit;
+ text-decoration: none;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0;
+}
+.dropdown-item:hover,
+.dropdown-item:focus {
+ color: #1e2125;
+ background-color: #e9ecef;
+}
+.dropdown-item.active,
+.dropdown-item:active {
+ color: #fff;
+ text-decoration: none;
+ background-color: #0d6efd;
+}
+.dropdown-item.disabled,
+.dropdown-item:disabled {
+ color: #adb5bd;
+ pointer-events: none;
+ background-color: transparent;
+}
+.dropdown-menu.show {
+ display: block;
+}
+.dropdown-header {
+ display: block;
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 0.875rem;
+ color: #6c757d;
+ white-space: nowrap;
+}
+.dropdown-item-text {
+ display: block;
+ padding: 0.25rem 1rem;
+ color: #212529;
+}
+.dropdown-menu-dark {
+ color: #dee2e6;
+ background-color: #343a40;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-item:hover,
+.dropdown-menu-dark .dropdown-item:focus {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.15);
+}
+.dropdown-menu-dark .dropdown-item.active,
+.dropdown-menu-dark .dropdown-item:active {
+ color: #fff;
+ background-color: #0d6efd;
+}
+.dropdown-menu-dark .dropdown-item.disabled,
+.dropdown-menu-dark .dropdown-item:disabled {
+ color: #adb5bd;
+}
+.dropdown-menu-dark .dropdown-divider {
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item-text {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-header {
+ color: #adb5bd;
+}
+.list-group {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ border-radius: 0.25rem;
+}
+.list-group-numbered {
+ list-style-type: none;
+ counter-reset: section;
+}
+.list-group-numbered > li::before {
+ content: counters(section, ".") ". ";
+ counter-increment: section;
+}
+.list-group-item-action {
+ width: 100%;
+ color: #495057;
+ text-align: inherit;
+}
+.list-group-item-action:hover,
+.list-group-item-action:focus {
+ z-index: 1;
+ color: #495057;
+ text-decoration: none;
+ background-color: #f8f9fa;
+}
+.list-group-item-action:active {
+ color: #212529;
+ background-color: #e9ecef;
+}
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.5rem 1rem;
+ color: #212529;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+.list-group-item:first-child {
+ border-top-left-radius: inherit;
+ border-top-right-radius: inherit;
+}
+.list-group-item:last-child {
+ border-bottom-right-radius: inherit;
+ border-bottom-left-radius: inherit;
+}
+.list-group-item.disabled,
+.list-group-item:disabled {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: #fff;
+}
+.list-group-item.active {
+ z-index: 2;
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.list-group-item + .list-group-item {
+ border-top-width: 0;
+}
+.list-group-item + .list-group-item.active {
+ margin-top: -1px;
+ border-top-width: 1px;
+}
+.list-group-horizontal {
+ flex-direction: row;
+}
+.list-group-horizontal > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+}
+.list-group-horizontal > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+}
+.list-group-horizontal > .list-group-item.active {
+ margin-top: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+}
+@media (min-width: 576px) {
+ .list-group-horizontal-sm {
+ flex-direction: row;
+ }
+ .list-group-horizontal-sm > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 768px) {
+ .list-group-horizontal-md {
+ flex-direction: row;
+ }
+ .list-group-horizontal-md > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-md > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-md > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 992px) {
+ .list-group-horizontal-lg {
+ flex-direction: row;
+ }
+ .list-group-horizontal-lg > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 1200px) {
+ .list-group-horizontal-xl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xl > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 1400px) {
+ .list-group-horizontal-xxl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xxl > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+.list-group-flush {
+ border-radius: 0;
+}
+.list-group-flush > .list-group-item {
+ border-width: 0 0 1px;
+}
+.list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0;
+}
+.list-group-item-primary {
+ color: #084298;
+ background-color: #cfe2ff;
+}
+.list-group-item-primary.list-group-item-action:hover,
+.list-group-item-primary.list-group-item-action:focus {
+ color: #084298;
+ background-color: #bacbe6;
+}
+.list-group-item-primary.list-group-item-action.active {
+ color: #fff;
+ background-color: #084298;
+ border-color: #084298;
+}
+.list-group-item-secondary {
+ color: #41464b;
+ background-color: #e2e3e5;
+}
+.list-group-item-secondary.list-group-item-action:hover,
+.list-group-item-secondary.list-group-item-action:focus {
+ color: #41464b;
+ background-color: #cbccce;
+}
+.list-group-item-secondary.list-group-item-action.active {
+ color: #fff;
+ background-color: #41464b;
+ border-color: #41464b;
+}
+.list-group-item-success {
+ color: #0f5132;
+ background-color: #d1e7dd;
+}
+.list-group-item-success.list-group-item-action:hover,
+.list-group-item-success.list-group-item-action:focus {
+ color: #0f5132;
+ background-color: #bcd0c7;
+}
+.list-group-item-success.list-group-item-action.active {
+ color: #fff;
+ background-color: #0f5132;
+ border-color: #0f5132;
+}
+.list-group-item-info {
+ color: #055160;
+ background-color: #cff4fc;
+}
+.list-group-item-info.list-group-item-action:hover,
+.list-group-item-info.list-group-item-action:focus {
+ color: #055160;
+ background-color: #badce3;
+}
+.list-group-item-info.list-group-item-action.active {
+ color: #fff;
+ background-color: #055160;
+ border-color: #055160;
+}
+.list-group-item-warning {
+ color: #664d03;
+ background-color: #fff3cd;
+}
+.list-group-item-warning.list-group-item-action:hover,
+.list-group-item-warning.list-group-item-action:focus {
+ color: #664d03;
+ background-color: #e6dbb9;
+}
+.list-group-item-warning.list-group-item-action.active {
+ color: #fff;
+ background-color: #664d03;
+ border-color: #664d03;
+}
+.list-group-item-danger {
+ color: #842029;
+ background-color: #f8d7da;
+}
+.list-group-item-danger.list-group-item-action:hover,
+.list-group-item-danger.list-group-item-action:focus {
+ color: #842029;
+ background-color: #dfc2c4;
+}
+.list-group-item-danger.list-group-item-action.active {
+ color: #fff;
+ background-color: #842029;
+ border-color: #842029;
+}
+.list-group-item-light {
+ color: #636464;
+ background-color: #fefefe;
+}
+.list-group-item-light.list-group-item-action:hover,
+.list-group-item-light.list-group-item-action:focus {
+ color: #636464;
+ background-color: #e5e5e5;
+}
+.list-group-item-light.list-group-item-action.active {
+ color: #fff;
+ background-color: #636464;
+ border-color: #636464;
+}
+.list-group-item-dark {
+ color: var(--textColor);
+ background-color: #333;
+}
+.list-group-item-dark.list-group-item-action:hover,
+.list-group-item-dark.list-group-item-action:focus {
+ color: #141619;
+ background-color: #bebebf;
+}
+.list-group-item-dark.list-group-item-action.active {
+ color: #fff;
+ background-color: #141619;
+ border-color: #141619;
+}
+.toast {
+ width: 350px;
+ max-width: 100%;
+ font-size: 0.875rem;
+ pointer-events: auto;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+.toast.showing {
+ opacity: 0;
+}
+.toast:not(.show) {
+ display: none;
+}
+.toast-container {
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+}
+.toast-container > :not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: 0.5rem 0.75rem;
+ color: #6c757d;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+.toast-header .btn-close {
+ margin-right: -0.375rem;
+ margin-left: 0.75rem;
+}
+.toast-body {
+ padding: 0.75rem;
+ word-wrap: break-word;
+}
+.card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ word-wrap: break-word;
+ background-color: #333;
+ background-clip: border-box;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+ border-radius: 0.25rem;
+}
+.card > hr {
+ margin-right: 0;
+ margin-left: 0;
+}
+.card > .list-group {
+ border-top: inherit;
+ border-bottom: inherit;
+}
+.card > .list-group:first-child {
+ border-top-width: 0;
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+.card > .list-group:last-child {
+ border-bottom-width: 0;
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px);
+}
+.card > .card-header + .list-group,
+.card > .list-group + .card-footer {
+ border-top: 0;
+}
+.card-body {
+ flex: 1 1 auto;
+ padding: 1rem 1rem;
+}
+.card-title {
+ margin-bottom: 0.5rem;
+}
+.card-subtitle {
+ margin-top: -0.25rem;
+ margin-bottom: 0;
+}
+.card-text:last-child {
+ margin-bottom: 0;
+}
+.card-link + .card-link {
+ margin-left: 1rem;
+}
+.card-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-header:first-child {
+ border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
+}
+.card-footer {
+ padding: 0.5rem 1rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-footer:last-child {
+ border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
+}
+.card-header-tabs {
+ margin-right: -0.5rem;
+ margin-bottom: -0.5rem;
+ margin-left: -0.5rem;
+ border-bottom: 0;
+}
+.card-header-pills {
+ margin-right: -0.5rem;
+ margin-left: -0.5rem;
+}
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: 1rem;
+ border-radius: calc(0.25rem - 1px);
+}
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%;
+}
+.card-img,
+.card-img-top {
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+.card-img,
+.card-img-bottom {
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px);
+}
+.card-group > .card {
+ margin-bottom: 0.75rem;
+}
+@media (min-width: 576px) {
+ .card-group {
+ display: flex;
+ flex-flow: row wrap;
+ }
+ .card-group > .card {
+ flex: 1 0 0%;
+ margin-bottom: 0;
+ }
+ .card-group > .card + .card {
+ margin-left: 0;
+ border-left: 0;
+ }
+ .card-group > .card:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .card-group > .card:not(:last-child) .card-img-top,
+ .card-group > .card:not(:last-child) .card-header {
+ border-top-right-radius: 0;
+ }
+ .card-group > .card:not(:last-child) .card-img-bottom,
+ .card-group > .card:not(:last-child) .card-footer {
+ border-bottom-right-radius: 0;
+ }
+ .card-group > .card:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .card-group > .card:not(:first-child) .card-img-top,
+ .card-group > .card:not(:first-child) .card-header {
+ border-top-left-radius: 0;
+ }
+ .card-group > .card:not(:first-child) .card-img-bottom,
+ .card-group > .card:not(:first-child) .card-footer {
+ border-bottom-left-radius: 0;
+ }
+}
+.modal {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1055;
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ outline: 0;
+ user-select: none;
+}
+.modal .close {
+ width: 50px;
+ height: 42px;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.modal .close:hover {
+ background-color: #c42b1c;
+}
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 0.5rem;
+ pointer-events: none;
+ color: var(--textColor);
+}
+.modal.fade .modal-dialog {
+ transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase);
+ transform: scale(0.9);
+ opacity: 0;
+}
+@media (prefers-reduced-motion: reduce) {
+ .modal.fade .modal-dialog {
+ transition: none;
+ }
+}
+.modal.show .modal-dialog {
+ transform: none;
+ opacity: 1;
+}
+.modal.modal-static .modal-dialog {
+ transform: scale(1.02);
+}
+.modal-dialog-scrollable {
+ height: calc(100% - 1rem);
+}
+.modal-dialog-scrollable .modal-content {
+ max-height: 100%;
+ overflow: hidden;
+}
+.modal-dialog-scrollable .modal-body {
+ overflow-y: auto;
+}
+.modal-dialog-centered {
+ display: flex;
+ align-items: center;
+ min-height: calc(100% - 1rem);
+}
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ pointer-events: auto;
+ background-color: var(--modalBackground);
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+ outline: 0;
+ box-shadow: var(--ciderShadow-Generic);
+ overflow: hidden;
+}
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1050;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+}
+.modal-backdrop.show {
+ opacity: 0.5;
+}
+.modal-header {
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: space-between;
+ padding: 1rem 1rem;
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+.modal-header .btn-close {
+ padding: 0.5rem 0.5rem;
+ margin: -0.5rem -0.5rem -0.5rem auto;
+}
+.modal-title {
+ line-height: 1.5;
+ margin: 0;
+}
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: 3rem 1rem 1rem 1rem;
+ font-size: 0.9em;
+}
+.modal-footer {
+ display: flex;
+ flex-wrap: wrap;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 0.75rem;
+ border-bottom-right-radius: calc(0.3rem - 1px);
+ border-bottom-left-radius: calc(0.3rem - 1px);
+}
+.modal-footer > * {
+ margin: 0.25rem;
+}
+@media (min-width: 576px) {
+ .modal-dialog {
+ max-width: 500px;
+ margin: 1.75rem auto;
+ }
+ .modal-dialog-scrollable {
+ height: calc(100% - 3.5rem);
+ }
+ .modal-dialog-centered {
+ min-height: calc(100% - 3.5rem);
+ }
+ .modal-sm {
+ max-width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg,
+ .modal-xl {
+ max-width: 800px;
+ }
+}
+@media (min-width: 1200px) {
+ .modal-xl {
+ max-width: 1140px;
+ }
+}
+.modal-fullscreen {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+}
+.modal-fullscreen .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+}
+.modal-fullscreen .modal-header {
+ border-radius: 0;
+}
+.modal-fullscreen .modal-body {
+ overflow-y: auto;
+}
+.modal-fullscreen .modal-footer {
+ border-radius: 0;
+}
+@media (max-width: 575.98px) {
+ .modal-fullscreen-sm-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-sm-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-sm-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-sm-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-sm-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 767.98px) {
+ .modal-fullscreen-md-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-md-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-md-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-md-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-md-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 991.98px) {
+ .modal-fullscreen-lg-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-lg-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-lg-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-lg-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-lg-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 1199.98px) {
+ .modal-fullscreen-xl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-xl-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-xl-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-xl-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 1399.98px) {
+ .modal-fullscreen-xxl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-xxl-down .modal-footer {
+ border-radius: 0;
+ }
+}
+.btn {
+ display: inline-block;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ background-color: transparent;
+ border: 1px solid transparent;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ border-radius: 0.25rem;
+ font-family: inherit;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .btn {
+ transition: none;
+ }
+}
+.btn:hover {
+ color: #212529;
+}
+.btn-check:focus + .btn,
+.btn:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+.btn:disabled,
+.btn.disabled,
+fieldset:disabled .btn {
+ pointer-events: none;
+ opacity: 0.65;
+}
+.btn-primary {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-primary:hover {
+ color: #fff;
+ background-color: #0b5ed7;
+ border-color: #0a58ca;
+}
+.btn-check:focus + .btn-primary,
+.btn-primary:focus {
+ color: #fff;
+ background-color: #0b5ed7;
+ border-color: #0a58ca;
+ box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
+}
+.btn-check:checked + .btn-primary,
+.btn-check:active + .btn-primary,
+.btn-primary:active,
+.btn-primary.active,
+.show > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #0a58ca;
+ border-color: #0a53be;
+}
+.btn-check:checked + .btn-primary:focus,
+.btn-check:active + .btn-primary:focus,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.show > .btn-primary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
+}
+.btn-primary:disabled,
+.btn-primary.disabled {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-secondary {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-secondary:hover {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64;
+}
+.btn-check:focus + .btn-secondary,
+.btn-secondary:focus {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64;
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+}
+.btn-check:checked + .btn-secondary,
+.btn-check:active + .btn-secondary,
+.btn-secondary:active,
+.btn-secondary.active,
+.show > .btn-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #565e64;
+ border-color: #51585e;
+}
+.btn-check:checked + .btn-secondary:focus,
+.btn-check:active + .btn-secondary:focus,
+.btn-secondary:active:focus,
+.btn-secondary.active:focus,
+.show > .btn-secondary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+}
+.btn-secondary:disabled,
+.btn-secondary.disabled {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-success {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-success:hover {
+ color: #fff;
+ background-color: #157347;
+ border-color: #146c43;
+}
+.btn-check:focus + .btn-success,
+.btn-success:focus {
+ color: #fff;
+ background-color: #157347;
+ border-color: #146c43;
+ box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+}
+.btn-check:checked + .btn-success,
+.btn-check:active + .btn-success,
+.btn-success:active,
+.btn-success.active,
+.show > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #146c43;
+ border-color: #13653f;
+}
+.btn-check:checked + .btn-success:focus,
+.btn-check:active + .btn-success:focus,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.show > .btn-success.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+}
+.btn-success:disabled,
+.btn-success.disabled {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-info {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-info:hover {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2;
+}
+.btn-check:focus + .btn-info,
+.btn-info:focus {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2;
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+}
+.btn-check:checked + .btn-info,
+.btn-check:active + .btn-info,
+.btn-info:active,
+.btn-info.active,
+.show > .btn-info.dropdown-toggle {
+ color: #000;
+ background-color: #3dd5f3;
+ border-color: #25cff2;
+}
+.btn-check:checked + .btn-info:focus,
+.btn-check:active + .btn-info:focus,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.show > .btn-info.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+}
+.btn-info:disabled,
+.btn-info.disabled {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-warning {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-warning:hover {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720;
+}
+.btn-check:focus + .btn-warning,
+.btn-warning:focus {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720;
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+}
+.btn-check:checked + .btn-warning,
+.btn-check:active + .btn-warning,
+.btn-warning:active,
+.btn-warning.active,
+.show > .btn-warning.dropdown-toggle {
+ color: #000;
+ background-color: #ffcd39;
+ border-color: #ffc720;
+}
+.btn-check:checked + .btn-warning:focus,
+.btn-check:active + .btn-warning:focus,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.show > .btn-warning.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+}
+.btn-warning:disabled,
+.btn-warning.disabled {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-danger {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-danger:hover {
+ color: #fff;
+ background-color: #bb2d3b;
+ border-color: #b02a37;
+}
+.btn-check:focus + .btn-danger,
+.btn-danger:focus {
+ color: #fff;
+ background-color: #bb2d3b;
+ border-color: #b02a37;
+ box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+}
+.btn-check:checked + .btn-danger,
+.btn-check:active + .btn-danger,
+.btn-danger:active,
+.btn-danger.active,
+.show > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #b02a37;
+ border-color: #a52834;
+}
+.btn-check:checked + .btn-danger:focus,
+.btn-check:active + .btn-danger:focus,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.show > .btn-danger.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+}
+.btn-danger:disabled,
+.btn-danger.disabled {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-light {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-light:hover {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+.btn-check:focus + .btn-light,
+.btn-light:focus {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+.btn-check:checked + .btn-light,
+.btn-check:active + .btn-light,
+.btn-light:active,
+.btn-light.active,
+.show > .btn-light.dropdown-toggle {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+.btn-check:checked + .btn-light:focus,
+.btn-check:active + .btn-light:focus,
+.btn-light:active:focus,
+.btn-light.active:focus,
+.show > .btn-light.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+.btn-light:disabled,
+.btn-light.disabled {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-dark {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-dark:hover {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21;
+}
+.btn-check:focus + .btn-dark,
+.btn-dark:focus {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21;
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+}
+.btn-check:checked + .btn-dark,
+.btn-check:active + .btn-dark,
+.btn-dark:active,
+.btn-dark.active,
+.show > .btn-dark.dropdown-toggle {
+ color: #fff;
+ background-color: #1a1e21;
+ border-color: #191c1f;
+}
+.btn-check:checked + .btn-dark:focus,
+.btn-check:active + .btn-dark:focus,
+.btn-dark:active:focus,
+.btn-dark.active:focus,
+.show > .btn-dark.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+}
+.btn-dark:disabled,
+.btn-dark.disabled {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-outline-primary {
+ color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-outline-primary:hover {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-check:focus + .btn-outline-primary,
+.btn-outline-primary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
+}
+.btn-check:checked + .btn-outline-primary,
+.btn-check:active + .btn-outline-primary,
+.btn-outline-primary:active,
+.btn-outline-primary.active,
+.btn-outline-primary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-check:checked + .btn-outline-primary:focus,
+.btn-check:active + .btn-outline-primary:focus,
+.btn-outline-primary:active:focus,
+.btn-outline-primary.active:focus,
+.btn-outline-primary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
+}
+.btn-outline-primary:disabled,
+.btn-outline-primary.disabled {
+ color: #0d6efd;
+ background-color: transparent;
+}
+.btn-outline-secondary {
+ color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-outline-secondary:hover {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-check:focus + .btn-outline-secondary,
+.btn-outline-secondary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+}
+.btn-check:checked + .btn-outline-secondary,
+.btn-check:active + .btn-outline-secondary,
+.btn-outline-secondary:active,
+.btn-outline-secondary.active,
+.btn-outline-secondary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-check:checked + .btn-outline-secondary:focus,
+.btn-check:active + .btn-outline-secondary:focus,
+.btn-outline-secondary:active:focus,
+.btn-outline-secondary.active:focus,
+.btn-outline-secondary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+}
+.btn-outline-secondary:disabled,
+.btn-outline-secondary.disabled {
+ color: #6c757d;
+ background-color: transparent;
+}
+.btn-outline-success {
+ color: #198754;
+ border-color: #198754;
+}
+.btn-outline-success:hover {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-check:focus + .btn-outline-success,
+.btn-outline-success:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+}
+.btn-check:checked + .btn-outline-success,
+.btn-check:active + .btn-outline-success,
+.btn-outline-success:active,
+.btn-outline-success.active,
+.btn-outline-success.dropdown-toggle.show {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-check:checked + .btn-outline-success:focus,
+.btn-check:active + .btn-outline-success:focus,
+.btn-outline-success:active:focus,
+.btn-outline-success.active:focus,
+.btn-outline-success.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+}
+.btn-outline-success:disabled,
+.btn-outline-success.disabled {
+ color: #198754;
+ background-color: transparent;
+}
+.btn-outline-info {
+ color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-outline-info:hover {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-check:focus + .btn-outline-info,
+.btn-outline-info:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+}
+.btn-check:checked + .btn-outline-info,
+.btn-check:active + .btn-outline-info,
+.btn-outline-info:active,
+.btn-outline-info.active,
+.btn-outline-info.dropdown-toggle.show {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-check:checked + .btn-outline-info:focus,
+.btn-check:active + .btn-outline-info:focus,
+.btn-outline-info:active:focus,
+.btn-outline-info.active:focus,
+.btn-outline-info.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+}
+.btn-outline-info:disabled,
+.btn-outline-info.disabled {
+ color: #0dcaf0;
+ background-color: transparent;
+}
+.btn-outline-warning {
+ color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-outline-warning:hover {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-check:focus + .btn-outline-warning,
+.btn-outline-warning:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+}
+.btn-check:checked + .btn-outline-warning,
+.btn-check:active + .btn-outline-warning,
+.btn-outline-warning:active,
+.btn-outline-warning.active,
+.btn-outline-warning.dropdown-toggle.show {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-check:checked + .btn-outline-warning:focus,
+.btn-check:active + .btn-outline-warning:focus,
+.btn-outline-warning:active:focus,
+.btn-outline-warning.active:focus,
+.btn-outline-warning.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+}
+.btn-outline-warning:disabled,
+.btn-outline-warning.disabled {
+ color: #ffc107;
+ background-color: transparent;
+}
+.btn-outline-danger {
+ color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-outline-danger:hover {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-check:focus + .btn-outline-danger,
+.btn-outline-danger:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+}
+.btn-check:checked + .btn-outline-danger,
+.btn-check:active + .btn-outline-danger,
+.btn-outline-danger:active,
+.btn-outline-danger.active,
+.btn-outline-danger.dropdown-toggle.show {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-check:checked + .btn-outline-danger:focus,
+.btn-check:active + .btn-outline-danger:focus,
+.btn-outline-danger:active:focus,
+.btn-outline-danger.active:focus,
+.btn-outline-danger.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+}
+.btn-outline-danger:disabled,
+.btn-outline-danger.disabled {
+ color: #dc3545;
+ background-color: transparent;
+}
+.btn-outline-light {
+ color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-outline-light:hover {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-check:focus + .btn-outline-light,
+.btn-outline-light:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+}
+.btn-check:checked + .btn-outline-light,
+.btn-check:active + .btn-outline-light,
+.btn-outline-light:active,
+.btn-outline-light.active,
+.btn-outline-light.dropdown-toggle.show {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-check:checked + .btn-outline-light:focus,
+.btn-check:active + .btn-outline-light:focus,
+.btn-outline-light:active:focus,
+.btn-outline-light.active:focus,
+.btn-outline-light.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+}
+.btn-outline-light:disabled,
+.btn-outline-light.disabled {
+ color: #f8f9fa;
+ background-color: transparent;
+}
+.btn-outline-dark {
+ color: #212529;
+ border-color: #212529;
+}
+.btn-outline-dark:hover {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-check:focus + .btn-outline-dark,
+.btn-outline-dark:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+}
+.btn-check:checked + .btn-outline-dark,
+.btn-check:active + .btn-outline-dark,
+.btn-outline-dark:active,
+.btn-outline-dark.active,
+.btn-outline-dark.dropdown-toggle.show {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-check:checked + .btn-outline-dark:focus,
+.btn-check:active + .btn-outline-dark:focus,
+.btn-outline-dark:active:focus,
+.btn-outline-dark.active:focus,
+.btn-outline-dark.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+}
+.btn-outline-dark:disabled,
+.btn-outline-dark.disabled {
+ color: #212529;
+ background-color: transparent;
+}
+.btn-link {
+ font-weight: 400;
+ color: #0d6efd;
+ text-decoration: underline;
+}
+.btn-link:hover {
+ color: #0a58ca;
+}
+.btn-link:disabled,
+.btn-link.disabled {
+ color: #6c757d;
+}
+.btn-lg,
+.btn-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem;
+}
+.btn-sm,
+.btn-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem;
+}
+.form-control {
+ width: 100%;
+}
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ flex: 1 1 auto;
+}
+.btn-group > .btn-check:checked + .btn,
+.btn-group > .btn-check:focus + .btn,
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn-check:checked + .btn,
+.btn-group-vertical > .btn-check:focus + .btn,
+.btn-group-vertical > .btn:hover,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+ z-index: 1;
+}
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.btn-toolbar .input-group {
+ width: auto;
+}
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) {
+ margin-left: -1px;
+}
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.btn-group > .btn:nth-child(n+3),
+.btn-group > :not(.btn-check) + .btn,
+.btn-group > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.dropdown-toggle-split {
+ padding-right: 0.5625rem;
+ padding-left: 0.5625rem;
+}
+.dropdown-toggle-split::after,
+.dropup .dropdown-toggle-split::after,
+.dropend .dropdown-toggle-split::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle-split::before {
+ margin-right: 0;
+}
+.btn-sm + .dropdown-toggle-split,
+.btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: 0.375rem;
+ padding-left: 0.375rem;
+}
+.btn-lg + .dropdown-toggle-split,
+.btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 0.75rem;
+ padding-left: 0.75rem;
+}
+.btn-group-vertical {
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: center;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group {
+ width: 100%;
+}
+.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn-group:not(:first-child) {
+ margin-top: -1px;
+}
+.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group-vertical > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn ~ .btn,
+.btn-group-vertical > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.table {
+ --bs-table-bg: transparent;
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: #212529;
+ --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+ --bs-table-active-color: #212529;
+ --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+ --bs-table-hover-color: #212529;
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+ width: 100%;
+ margin-bottom: 1rem;
+ color: #212529;
+ vertical-align: top;
+ border-color: #dee2e6;
+}
+.table > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+ background-color: var(--bs-table-bg);
+ border-bottom-width: 1px;
+ box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
+}
+.table > tbody {
+ vertical-align: inherit;
+}
+.table > thead {
+ vertical-align: bottom;
+}
+.table > :not(:first-child) {
+ border-top: 2px solid currentColor;
+}
+.caption-top {
+ caption-side: top;
+}
+.table-sm > :not(caption) > * > * {
+ padding: 0.25rem 0.25rem;
+}
+.table-bordered > :not(caption) > * {
+ border-width: 1px 0;
+}
+.table-bordered > :not(caption) > * > * {
+ border-width: 0 1px;
+}
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0;
+}
+.table-borderless > :not(:first-child) {
+ border-top-width: 0;
+}
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color);
+}
+.table-active {
+ --bs-table-accent-bg: var(--bs-table-active-bg);
+ color: var(--bs-table-active-color);
+}
+.table-hover > tbody > tr:hover > * {
+ --bs-table-accent-bg: var(--bs-table-hover-bg);
+ color: var(--bs-table-hover-color);
+}
+.table-primary {
+ --bs-table-bg: #cfe2ff;
+ --bs-table-striped-bg: #c5d7f2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bacbe6;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfd1ec;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #bacbe6;
+}
+.table-secondary {
+ --bs-table-bg: #e2e3e5;
+ --bs-table-striped-bg: #d7d8da;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbccce;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d1d2d4;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #cbccce;
+}
+.table-success {
+ --bs-table-bg: #d1e7dd;
+ --bs-table-striped-bg: #c7dbd2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bcd0c7;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #c1d6cc;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #bcd0c7;
+}
+.table-info {
+ --bs-table-bg: #cff4fc;
+ --bs-table-striped-bg: #c5e8ef;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #badce3;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfe2e9;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #badce3;
+}
+.table-warning {
+ --bs-table-bg: #fff3cd;
+ --bs-table-striped-bg: #f2e7c3;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #e6dbb9;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #ece1be;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #e6dbb9;
+}
+.table-danger {
+ --bs-table-bg: #f8d7da;
+ --bs-table-striped-bg: #eccccf;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfc2c4;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5c7ca;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfc2c4;
+}
+.table-light {
+ --bs-table-bg: #f8f9fa;
+ --bs-table-striped-bg: #ecedee;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfe0e1;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5e6e7;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfe0e1;
+}
+.table-dark {
+ --bs-table-bg: #212529;
+ --bs-table-striped-bg: #2c3034;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #373b3e;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #323539;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #373b3e;
+}
+.table-responsive {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+}
+@media (max-width: 575.98px) {
+ .table-responsive-sm {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 767.98px) {
+ .table-responsive-md {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 991.98px) {
+ .table-responsive-lg {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1199.98px) {
+ .table-responsive-xl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1399.98px) {
+ .table-responsive-xxl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+.nav-tabs {
+ border-bottom: 1px solid #dee2e6;
+}
+.nav-tabs .nav-link {
+ margin-bottom: -1px;
+ background: none;
+ border: 1px solid transparent;
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+.nav-tabs .nav-link:hover,
+.nav-tabs .nav-link:focus {
+ border-color: #e9ecef #e9ecef #dee2e6;
+ isolation: isolate;
+}
+.nav-tabs .nav-link.disabled {
+ color: #6c757d;
+ background-color: transparent;
+ border-color: transparent;
+}
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.nav-pills .nav-link {
+ background: none;
+ border: 0;
+ border-radius: 0.25rem;
+}
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #0d6efd;
+}
+.nav-fill > .nav-link,
+.nav-fill .nav-item {
+ flex: 1 1 auto;
+ text-align: center;
+}
+.nav-justified > .nav-link,
+.nav-justified .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center;
+}
+.nav-fill .nav-item .nav-link,
+.nav-justified .nav-item .nav-link {
+ width: 100%;
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+/*!
+ * Bootstrap Grid v5.1.1 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors
+ * Copyright 2011-2021 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+:root {
+ --bs-blue: #0d6efd;
+ --bs-indigo: #6610f2;
+ --bs-purple: #6f42c1;
+ --bs-pink: #d63384;
+ --bs-red: #dc3545;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #ffc107;
+ --bs-green: #198754;
+ --bs-teal: #20c997;
+ --bs-cyan: #0dcaf0;
+ --bs-white: #fff;
+ --bs-gray: #6c757d;
+ --bs-gray-dark: #343a40;
+ --bs-gray-100: #f8f9fa;
+ --bs-gray-200: #e9ecef;
+ --bs-gray-300: #dee2e6;
+ --bs-gray-400: #ced4da;
+ --bs-gray-500: #adb5bd;
+ --bs-gray-600: #6c757d;
+ --bs-gray-700: #495057;
+ --bs-gray-800: #343a40;
+ --bs-gray-900: #212529;
+ --bs-primary: #0d6efd;
+ --bs-secondary: #6c757d;
+ --bs-success: #198754;
+ --bs-info: #0dcaf0;
+ --bs-warning: #ffc107;
+ --bs-danger: #dc3545;
+ --bs-light: #f8f9fa;
+ --bs-dark: #212529;
+ --bs-primary-rgb: 13, 110, 253;
+ --bs-secondary-rgb: 108, 117, 125;
+ --bs-success-rgb: 25, 135, 84;
+ --bs-info-rgb: 13, 202, 240;
+ --bs-warning-rgb: 255, 193, 7;
+ --bs-danger-rgb: 220, 53, 69;
+ --bs-light-rgb: 248, 249, 250;
+ --bs-dark-rgb: 33, 37, 41;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-black-rgb: 0, 0, 0;
+ --bs-body-color-rgb: 33, 37, 41;
+ --bs-body-bg-rgb: 255, 255, 255;
+ --bs-font-sans-serif: inherit;
+ --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+ --bs-body-font-family: inherit;
+ --bs-body-font-size: 1rem;
+ --bs-body-font-weight: 400;
+ --bs-body-line-height: 1.5;
+ --bs-body-color: #212529;
+ --bs-body-bg: #fff;
+}
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ width: 100%;
+ padding-right: var(--bs-gutter-x, 0.75rem);
+ padding-left: var(--bs-gutter-x, 0.75rem);
+ margin-right: auto;
+ margin-left: auto;
+}
+@media (min-width: 576px) {
+ .container-sm,
+ .container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1140px;
+ }
+}
+@media (min-width: 1400px) {
+ .container-xxl,
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1320px;
+ }
+}
+.col {
+ flex: 1 0 0%;
+}
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+}
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+}
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+}
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+.row-cols-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+}
+.row-cols-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+}
+.row-cols-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+}
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+}
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%;
+}
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+}
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%;
+}
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+}
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+}
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%;
+}
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+}
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+}
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%;
+}
+.offset-1 {
+ margin-left: 8.33333333%;
+}
+.offset-2 {
+ margin-left: 16.66666667%;
+}
+.offset-3 {
+ margin-left: 25%;
+}
+.offset-4 {
+ margin-left: 33.33333333%;
+}
+.offset-5 {
+ margin-left: 41.66666667%;
+}
+.offset-6 {
+ margin-left: 50%;
+}
+.offset-7 {
+ margin-left: 58.33333333%;
+}
+.offset-8 {
+ margin-left: 66.66666667%;
+}
+.offset-9 {
+ margin-left: 75%;
+}
+.offset-10 {
+ margin-left: 83.33333333%;
+}
+.offset-11 {
+ margin-left: 91.66666667%;
+}
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0;
+}
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0;
+}
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem;
+}
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem;
+}
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem;
+}
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.5rem;
+}
+.g-3,
+.gx-3 {
+ --bs-gutter-x: 1rem;
+}
+.g-3,
+.gy-3 {
+ --bs-gutter-y: 1rem;
+}
+.g-4,
+.gx-4 {
+ --bs-gutter-x: 1.5rem;
+}
+.g-4,
+.gy-4 {
+ --bs-gutter-y: 1.5rem;
+}
+.g-5,
+.gx-5 {
+ --bs-gutter-x: 3rem;
+}
+.g-5,
+.gy-5 {
+ --bs-gutter-y: 3rem;
+}
+@media (min-width: 576px) {
+ .col-sm {
+ flex: 1 0 0%;
+ }
+ .row-cols-sm-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-sm-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-sm-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-sm-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-sm-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-sm-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-sm-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-sm-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-sm-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-sm-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-sm-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-sm-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-sm-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-sm-0 {
+ margin-left: 0;
+ }
+ .offset-sm-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-sm-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-sm-3 {
+ margin-left: 25%;
+ }
+ .offset-sm-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-sm-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-sm-6 {
+ margin-left: 50%;
+ }
+ .offset-sm-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-sm-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-sm-9 {
+ margin-left: 75%;
+ }
+ .offset-sm-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-sm-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-sm-0,
+ .gx-sm-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-sm-0,
+ .gy-sm-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-sm-1,
+ .gx-sm-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-sm-1,
+ .gy-sm-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-sm-2,
+ .gx-sm-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-sm-2,
+ .gy-sm-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-sm-3,
+ .gx-sm-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-sm-3,
+ .gy-sm-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-sm-4,
+ .gx-sm-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-sm-4,
+ .gy-sm-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-sm-5,
+ .gx-sm-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-sm-5,
+ .gy-sm-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 768px) {
+ .col-md {
+ flex: 1 0 0%;
+ }
+ .row-cols-md-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-md-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-md-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-md-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-md-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-md-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-md-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-md-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-md-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-md-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-md-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-md-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-md-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-md-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-md-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-md-0 {
+ margin-left: 0;
+ }
+ .offset-md-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-md-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-md-3 {
+ margin-left: 25%;
+ }
+ .offset-md-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-md-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-md-6 {
+ margin-left: 50%;
+ }
+ .offset-md-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-md-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-md-9 {
+ margin-left: 75%;
+ }
+ .offset-md-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-md-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-md-0,
+ .gx-md-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-md-0,
+ .gy-md-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-md-1,
+ .gx-md-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-md-1,
+ .gy-md-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-md-2,
+ .gx-md-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-md-2,
+ .gy-md-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-md-3,
+ .gx-md-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-md-3,
+ .gy-md-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-md-4,
+ .gx-md-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-md-4,
+ .gy-md-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-md-5,
+ .gx-md-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-md-5,
+ .gy-md-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 992px) {
+ .col-lg {
+ flex: 1 0 0%;
+ }
+ .row-cols-lg-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-lg-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-lg-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-lg-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-lg-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-lg-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-lg-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-lg-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-lg-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-lg-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-lg-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-lg-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-lg-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-lg-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-lg-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-lg-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-lg-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-lg-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-lg-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-lg-0 {
+ margin-left: 0;
+ }
+ .offset-lg-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-lg-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-lg-3 {
+ margin-left: 25%;
+ }
+ .offset-lg-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-lg-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-lg-6 {
+ margin-left: 50%;
+ }
+ .offset-lg-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-lg-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-lg-9 {
+ margin-left: 75%;
+ }
+ .offset-lg-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-lg-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-lg-0,
+ .gx-lg-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-lg-0,
+ .gy-lg-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-lg-1,
+ .gx-lg-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-lg-1,
+ .gy-lg-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-lg-2,
+ .gx-lg-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-lg-2,
+ .gy-lg-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-lg-3,
+ .gx-lg-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-lg-3,
+ .gy-lg-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-lg-4,
+ .gx-lg-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-lg-4,
+ .gy-lg-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-lg-5,
+ .gx-lg-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-lg-5,
+ .gy-lg-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 1200px) {
+ .col-xl {
+ flex: 1 0 0%;
+ }
+ .row-cols-xl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-xl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-xl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-xl-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-xl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-xl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-xl-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xl-0 {
+ margin-left: 0;
+ }
+ .offset-xl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xl-3 {
+ margin-left: 25%;
+ }
+ .offset-xl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xl-6 {
+ margin-left: 50%;
+ }
+ .offset-xl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xl-9 {
+ margin-left: 75%;
+ }
+ .offset-xl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xl-0,
+ .gx-xl-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-xl-0,
+ .gy-xl-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-xl-1,
+ .gx-xl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-xl-1,
+ .gy-xl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-xl-2,
+ .gx-xl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-xl-2,
+ .gy-xl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-xl-3,
+ .gx-xl-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-xl-3,
+ .gy-xl-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-xl-4,
+ .gx-xl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-xl-4,
+ .gy-xl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-xl-5,
+ .gx-xl-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-xl-5,
+ .gy-xl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 1400px) {
+ .col-xxl {
+ flex: 1 0 0%;
+ }
+ .row-cols-xxl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-xxl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-xxl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-xxl-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-xxl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-xxl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-xxl-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xxl-0 {
+ margin-left: 0;
+ }
+ .offset-xxl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xxl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xxl-3 {
+ margin-left: 25%;
+ }
+ .offset-xxl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xxl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xxl-6 {
+ margin-left: 50%;
+ }
+ .offset-xxl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xxl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xxl-9 {
+ margin-left: 75%;
+ }
+ .offset-xxl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xxl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xxl-0,
+ .gx-xxl-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-xxl-0,
+ .gy-xxl-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-xxl-1,
+ .gx-xxl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-xxl-1,
+ .gy-xxl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-xxl-2,
+ .gx-xxl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-xxl-2,
+ .gy-xxl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-xxl-3,
+ .gx-xxl-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-xxl-3,
+ .gy-xxl-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-xxl-4,
+ .gx-xxl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-xxl-4,
+ .gy-xxl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-xxl-5,
+ .gx-xxl-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-xxl-5,
+ .gy-xxl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+.d-inline {
+ display: inline !important;
+}
+.d-inline-block {
+ display: inline-block !important;
+}
+.d-block {
+ display: block !important;
+}
+.d-grid {
+ display: grid !important;
+}
+.d-table {
+ display: table !important;
+}
+.d-table-row {
+ display: table-row !important;
+}
+.d-table-cell {
+ display: table-cell !important;
+}
+.d-flex {
+ display: flex !important;
+}
+.d-inline-flex {
+ display: inline-flex !important;
+}
+.d-none {
+ display: none !important;
+}
+.flex-fill {
+ flex: 1 1 auto !important;
+}
+.flex-row {
+ flex-direction: row !important;
+}
+.flex-column {
+ flex-direction: column !important;
+}
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+.flex-column-reverse {
+ flex-direction: column-reverse !important;
+}
+.flex-grow-0 {
+ flex-grow: 0 !important;
+}
+.flex-grow-1 {
+ flex-grow: 1 !important;
+}
+.flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+.flex-shrink-1 {
+ flex-shrink: 1 !important;
+}
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+.justify-content-start {
+ justify-content: flex-start !important;
+}
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+.justify-content-center {
+ justify-content: center !important;
+}
+.justify-content-between {
+ justify-content: space-between !important;
+}
+.justify-content-around {
+ justify-content: space-around !important;
+}
+.justify-content-evenly {
+ justify-content: space-evenly !important;
+}
+.align-items-start {
+ align-items: flex-start !important;
+}
+.align-items-end {
+ align-items: flex-end !important;
+}
+.align-items-center {
+ align-items: center !important;
+}
+.align-items-baseline {
+ align-items: baseline !important;
+}
+.align-items-stretch {
+ align-items: stretch !important;
+}
+.align-content-start {
+ align-content: flex-start !important;
+}
+.align-content-end {
+ align-content: flex-end !important;
+}
+.align-content-center {
+ align-content: center !important;
+}
+.align-content-between {
+ align-content: space-between !important;
+}
+.align-content-around {
+ align-content: space-around !important;
+}
+.align-content-stretch {
+ align-content: stretch !important;
+}
+.align-self-auto {
+ align-self: auto !important;
+}
+.align-self-start {
+ align-self: flex-start !important;
+}
+.align-self-end {
+ align-self: flex-end !important;
+}
+.align-self-center {
+ align-self: center !important;
+}
+.align-self-baseline {
+ align-self: baseline !important;
+}
+.align-self-stretch {
+ align-self: stretch !important;
+}
+.order-first {
+ order: -1 !important;
+}
+.order-0 {
+ order: 0 !important;
+}
+.order-1 {
+ order: 1 !important;
+}
+.order-2 {
+ order: 2 !important;
+}
+.order-3 {
+ order: 3 !important;
+}
+.order-4 {
+ order: 4 !important;
+}
+.order-5 {
+ order: 5 !important;
+}
+.order-last {
+ order: 6 !important;
+}
+.m-0 {
+ margin: 0 !important;
+}
+.m-1 {
+ margin: 0.25rem !important;
+}
+.m-2 {
+ margin: 0.5rem !important;
+}
+.m-3 {
+ margin: 1rem !important;
+}
+.m-4 {
+ margin: 1.5rem !important;
+}
+.m-5 {
+ margin: 3rem !important;
+}
+.m-auto {
+ margin: auto !important;
+}
+.mx-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+}
+.mx-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+}
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+}
+.mx-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+}
+.mx-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+}
+.mx-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+}
+.mx-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+}
+.my-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+.my-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+}
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+.my-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+}
+.my-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+.my-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+}
+.my-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+}
+.mt-0 {
+ margin-top: 0 !important;
+}
+.mt-1 {
+ margin-top: 0.25rem !important;
+}
+.mt-2 {
+ margin-top: 0.5rem !important;
+}
+.mt-3 {
+ margin-top: 1rem !important;
+}
+.mt-4 {
+ margin-top: 1.5rem !important;
+}
+.mt-5 {
+ margin-top: 3rem !important;
+}
+.mt-auto {
+ margin-top: auto !important;
+}
+.me-0 {
+ margin-right: 0 !important;
+}
+.me-1 {
+ margin-right: 0.25rem !important;
+}
+.me-2 {
+ margin-right: 0.5rem !important;
+}
+.me-3 {
+ margin-right: 1rem !important;
+}
+.me-4 {
+ margin-right: 1.5rem !important;
+}
+.me-5 {
+ margin-right: 3rem !important;
+}
+.me-auto {
+ margin-right: auto !important;
+}
+.mb-0 {
+ margin-bottom: 0 !important;
+}
+.mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+.mb-2 {
+ margin-bottom: 0.5rem !important;
+}
+.mb-3 {
+ margin-bottom: 1rem !important;
+}
+.mb-4 {
+ margin-bottom: 1.5rem !important;
+}
+.mb-5 {
+ margin-bottom: 3rem !important;
+}
+.mb-auto {
+ margin-bottom: auto !important;
+}
+.ms-0 {
+ margin-left: 0 !important;
+}
+.ms-1 {
+ margin-left: 0.25rem !important;
+}
+.ms-2 {
+ margin-left: 0.5rem !important;
+}
+.ms-3 {
+ margin-left: 1rem !important;
+}
+.ms-4 {
+ margin-left: 1.5rem !important;
+}
+.ms-5 {
+ margin-left: 3rem !important;
+}
+.ms-auto {
+ margin-left: auto !important;
+}
+.p-0 {
+ padding: 0 !important;
+}
+.p-1 {
+ padding: 0.25rem !important;
+}
+.p-2 {
+ padding: 0.5rem !important;
+}
+.p-3 {
+ padding: 1rem !important;
+}
+.p-4 {
+ padding: 1.5rem !important;
+}
+.p-5 {
+ padding: 3rem !important;
+}
+.px-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+}
+.px-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+}
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+}
+.px-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+}
+.px-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+}
+.px-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+}
+.py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.py-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+}
+.py-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+}
+.py-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+}
+.py-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+.py-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+}
+.pt-0 {
+ padding-top: 0 !important;
+}
+.pt-1 {
+ padding-top: 0.25rem !important;
+}
+.pt-2 {
+ padding-top: 0.5rem !important;
+}
+.pt-3 {
+ padding-top: 1rem !important;
+}
+.pt-4 {
+ padding-top: 1.5rem !important;
+}
+.pt-5 {
+ padding-top: 3rem !important;
+}
+.pe-0 {
+ padding-right: 0 !important;
+}
+.pe-1 {
+ padding-right: 0.25rem !important;
+}
+.pe-2 {
+ padding-right: 0.5rem !important;
+}
+.pe-3 {
+ padding-right: 1rem !important;
+}
+.pe-4 {
+ padding-right: 1.5rem !important;
+}
+.pe-5 {
+ padding-right: 3rem !important;
+}
+.pb-0 {
+ padding-bottom: 0 !important;
+}
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+.pb-2 {
+ padding-bottom: 0.5rem !important;
+}
+.pb-3 {
+ padding-bottom: 1rem !important;
+}
+.pb-4 {
+ padding-bottom: 1.5rem !important;
+}
+.pb-5 {
+ padding-bottom: 3rem !important;
+}
+.ps-0 {
+ padding-left: 0 !important;
+}
+.ps-1 {
+ padding-left: 0.25rem !important;
+}
+.ps-2 {
+ padding-left: 0.5rem !important;
+}
+.ps-3 {
+ padding-left: 1rem !important;
+}
+.ps-4 {
+ padding-left: 1.5rem !important;
+}
+.ps-5 {
+ padding-left: 3rem !important;
+}
+@media (min-width: 576px) {
+ .d-sm-inline {
+ display: inline !important;
+ }
+ .d-sm-inline-block {
+ display: inline-block !important;
+ }
+ .d-sm-block {
+ display: block !important;
+ }
+ .d-sm-grid {
+ display: grid !important;
+ }
+ .d-sm-table {
+ display: table !important;
+ }
+ .d-sm-table-row {
+ display: table-row !important;
+ }
+ .d-sm-table-cell {
+ display: table-cell !important;
+ }
+ .d-sm-flex {
+ display: flex !important;
+ }
+ .d-sm-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-sm-none {
+ display: none !important;
+ }
+ .flex-sm-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-sm-row {
+ flex-direction: row !important;
+ }
+ .flex-sm-column {
+ flex-direction: column !important;
+ }
+ .flex-sm-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-sm-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-sm-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-sm-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-sm-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-sm-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-sm-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-sm-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-sm-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-sm-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-sm-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-sm-center {
+ justify-content: center !important;
+ }
+ .justify-content-sm-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-sm-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-sm-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-sm-start {
+ align-items: flex-start !important;
+ }
+ .align-items-sm-end {
+ align-items: flex-end !important;
+ }
+ .align-items-sm-center {
+ align-items: center !important;
+ }
+ .align-items-sm-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-sm-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-sm-start {
+ align-content: flex-start !important;
+ }
+ .align-content-sm-end {
+ align-content: flex-end !important;
+ }
+ .align-content-sm-center {
+ align-content: center !important;
+ }
+ .align-content-sm-between {
+ align-content: space-between !important;
+ }
+ .align-content-sm-around {
+ align-content: space-around !important;
+ }
+ .align-content-sm-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-sm-auto {
+ align-self: auto !important;
+ }
+ .align-self-sm-start {
+ align-self: flex-start !important;
+ }
+ .align-self-sm-end {
+ align-self: flex-end !important;
+ }
+ .align-self-sm-center {
+ align-self: center !important;
+ }
+ .align-self-sm-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-sm-stretch {
+ align-self: stretch !important;
+ }
+ .order-sm-first {
+ order: -1 !important;
+ }
+ .order-sm-0 {
+ order: 0 !important;
+ }
+ .order-sm-1 {
+ order: 1 !important;
+ }
+ .order-sm-2 {
+ order: 2 !important;
+ }
+ .order-sm-3 {
+ order: 3 !important;
+ }
+ .order-sm-4 {
+ order: 4 !important;
+ }
+ .order-sm-5 {
+ order: 5 !important;
+ }
+ .order-sm-last {
+ order: 6 !important;
+ }
+ .m-sm-0 {
+ margin: 0 !important;
+ }
+ .m-sm-1 {
+ margin: 0.25rem !important;
+ }
+ .m-sm-2 {
+ margin: 0.5rem !important;
+ }
+ .m-sm-3 {
+ margin: 1rem !important;
+ }
+ .m-sm-4 {
+ margin: 1.5rem !important;
+ }
+ .m-sm-5 {
+ margin: 3rem !important;
+ }
+ .m-sm-auto {
+ margin: auto !important;
+ }
+ .mx-sm-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-sm-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-sm-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-sm-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-sm-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-sm-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-sm-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-sm-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-sm-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-sm-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-sm-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-sm-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-sm-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-sm-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-sm-0 {
+ margin-top: 0 !important;
+ }
+ .mt-sm-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-sm-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-sm-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-sm-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-sm-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-sm-auto {
+ margin-top: auto !important;
+ }
+ .me-sm-0 {
+ margin-right: 0 !important;
+ }
+ .me-sm-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-sm-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-sm-3 {
+ margin-right: 1rem !important;
+ }
+ .me-sm-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-sm-5 {
+ margin-right: 3rem !important;
+ }
+ .me-sm-auto {
+ margin-right: auto !important;
+ }
+ .mb-sm-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-sm-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-sm-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-sm-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-sm-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-sm-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-sm-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-sm-0 {
+ margin-left: 0 !important;
+ }
+ .ms-sm-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-sm-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-sm-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-sm-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-sm-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-sm-auto {
+ margin-left: auto !important;
+ }
+ .p-sm-0 {
+ padding: 0 !important;
+ }
+ .p-sm-1 {
+ padding: 0.25rem !important;
+ }
+ .p-sm-2 {
+ padding: 0.5rem !important;
+ }
+ .p-sm-3 {
+ padding: 1rem !important;
+ }
+ .p-sm-4 {
+ padding: 1.5rem !important;
+ }
+ .p-sm-5 {
+ padding: 3rem !important;
+ }
+ .px-sm-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-sm-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-sm-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-sm-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-sm-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-sm-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-sm-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-sm-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-sm-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-sm-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-sm-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-sm-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-sm-0 {
+ padding-top: 0 !important;
+ }
+ .pt-sm-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-sm-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-sm-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-sm-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-sm-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-sm-0 {
+ padding-right: 0 !important;
+ }
+ .pe-sm-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-sm-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-sm-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-sm-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-sm-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-sm-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-sm-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-sm-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-sm-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-sm-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-sm-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-sm-0 {
+ padding-left: 0 !important;
+ }
+ .ps-sm-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-sm-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-sm-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-sm-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-sm-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 768px) {
+ .d-md-inline {
+ display: inline !important;
+ }
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+ .d-md-block {
+ display: block !important;
+ }
+ .d-md-grid {
+ display: grid !important;
+ }
+ .d-md-table {
+ display: table !important;
+ }
+ .d-md-table-row {
+ display: table-row !important;
+ }
+ .d-md-table-cell {
+ display: table-cell !important;
+ }
+ .d-md-flex {
+ display: flex !important;
+ }
+ .d-md-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-md-none {
+ display: none !important;
+ }
+ .flex-md-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-md-row {
+ flex-direction: row !important;
+ }
+ .flex-md-column {
+ flex-direction: column !important;
+ }
+ .flex-md-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-md-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-md-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-md-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-md-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-md-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-md-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-md-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-md-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-md-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-md-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-md-center {
+ justify-content: center !important;
+ }
+ .justify-content-md-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-md-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-md-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-md-start {
+ align-items: flex-start !important;
+ }
+ .align-items-md-end {
+ align-items: flex-end !important;
+ }
+ .align-items-md-center {
+ align-items: center !important;
+ }
+ .align-items-md-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-md-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-md-start {
+ align-content: flex-start !important;
+ }
+ .align-content-md-end {
+ align-content: flex-end !important;
+ }
+ .align-content-md-center {
+ align-content: center !important;
+ }
+ .align-content-md-between {
+ align-content: space-between !important;
+ }
+ .align-content-md-around {
+ align-content: space-around !important;
+ }
+ .align-content-md-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-md-auto {
+ align-self: auto !important;
+ }
+ .align-self-md-start {
+ align-self: flex-start !important;
+ }
+ .align-self-md-end {
+ align-self: flex-end !important;
+ }
+ .align-self-md-center {
+ align-self: center !important;
+ }
+ .align-self-md-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-md-stretch {
+ align-self: stretch !important;
+ }
+ .order-md-first {
+ order: -1 !important;
+ }
+ .order-md-0 {
+ order: 0 !important;
+ }
+ .order-md-1 {
+ order: 1 !important;
+ }
+ .order-md-2 {
+ order: 2 !important;
+ }
+ .order-md-3 {
+ order: 3 !important;
+ }
+ .order-md-4 {
+ order: 4 !important;
+ }
+ .order-md-5 {
+ order: 5 !important;
+ }
+ .order-md-last {
+ order: 6 !important;
+ }
+ .m-md-0 {
+ margin: 0 !important;
+ }
+ .m-md-1 {
+ margin: 0.25rem !important;
+ }
+ .m-md-2 {
+ margin: 0.5rem !important;
+ }
+ .m-md-3 {
+ margin: 1rem !important;
+ }
+ .m-md-4 {
+ margin: 1.5rem !important;
+ }
+ .m-md-5 {
+ margin: 3rem !important;
+ }
+ .m-md-auto {
+ margin: auto !important;
+ }
+ .mx-md-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-md-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-md-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-md-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-md-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-md-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-md-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-md-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-md-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-md-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-md-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-md-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-md-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-md-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-md-0 {
+ margin-top: 0 !important;
+ }
+ .mt-md-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-md-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-md-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-md-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-md-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-md-auto {
+ margin-top: auto !important;
+ }
+ .me-md-0 {
+ margin-right: 0 !important;
+ }
+ .me-md-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-md-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-md-3 {
+ margin-right: 1rem !important;
+ }
+ .me-md-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-md-5 {
+ margin-right: 3rem !important;
+ }
+ .me-md-auto {
+ margin-right: auto !important;
+ }
+ .mb-md-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-md-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-md-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-md-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-md-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-md-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-md-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-md-0 {
+ margin-left: 0 !important;
+ }
+ .ms-md-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-md-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-md-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-md-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-md-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-md-auto {
+ margin-left: auto !important;
+ }
+ .p-md-0 {
+ padding: 0 !important;
+ }
+ .p-md-1 {
+ padding: 0.25rem !important;
+ }
+ .p-md-2 {
+ padding: 0.5rem !important;
+ }
+ .p-md-3 {
+ padding: 1rem !important;
+ }
+ .p-md-4 {
+ padding: 1.5rem !important;
+ }
+ .p-md-5 {
+ padding: 3rem !important;
+ }
+ .px-md-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-md-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-md-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-md-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-md-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-md-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-md-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-md-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-md-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-md-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-md-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-md-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-md-0 {
+ padding-top: 0 !important;
+ }
+ .pt-md-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-md-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-md-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-md-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-md-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-md-0 {
+ padding-right: 0 !important;
+ }
+ .pe-md-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-md-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-md-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-md-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-md-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-md-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-md-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-md-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-md-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-md-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-md-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-md-0 {
+ padding-left: 0 !important;
+ }
+ .ps-md-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-md-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-md-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-md-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-md-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 992px) {
+ .d-lg-inline {
+ display: inline !important;
+ }
+ .d-lg-inline-block {
+ display: inline-block !important;
+ }
+ .d-lg-block {
+ display: block !important;
+ }
+ .d-lg-grid {
+ display: grid !important;
+ }
+ .d-lg-table {
+ display: table !important;
+ }
+ .d-lg-table-row {
+ display: table-row !important;
+ }
+ .d-lg-table-cell {
+ display: table-cell !important;
+ }
+ .d-lg-flex {
+ display: flex !important;
+ }
+ .d-lg-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-lg-none {
+ display: none !important;
+ }
+ .flex-lg-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-lg-row {
+ flex-direction: row !important;
+ }
+ .flex-lg-column {
+ flex-direction: column !important;
+ }
+ .flex-lg-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-lg-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-lg-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-lg-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-lg-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-lg-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-lg-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-lg-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-lg-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-lg-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-lg-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-lg-center {
+ justify-content: center !important;
+ }
+ .justify-content-lg-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-lg-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-lg-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-lg-start {
+ align-items: flex-start !important;
+ }
+ .align-items-lg-end {
+ align-items: flex-end !important;
+ }
+ .align-items-lg-center {
+ align-items: center !important;
+ }
+ .align-items-lg-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-lg-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-lg-start {
+ align-content: flex-start !important;
+ }
+ .align-content-lg-end {
+ align-content: flex-end !important;
+ }
+ .align-content-lg-center {
+ align-content: center !important;
+ }
+ .align-content-lg-between {
+ align-content: space-between !important;
+ }
+ .align-content-lg-around {
+ align-content: space-around !important;
+ }
+ .align-content-lg-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-lg-auto {
+ align-self: auto !important;
+ }
+ .align-self-lg-start {
+ align-self: flex-start !important;
+ }
+ .align-self-lg-end {
+ align-self: flex-end !important;
+ }
+ .align-self-lg-center {
+ align-self: center !important;
+ }
+ .align-self-lg-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-lg-stretch {
+ align-self: stretch !important;
+ }
+ .order-lg-first {
+ order: -1 !important;
+ }
+ .order-lg-0 {
+ order: 0 !important;
+ }
+ .order-lg-1 {
+ order: 1 !important;
+ }
+ .order-lg-2 {
+ order: 2 !important;
+ }
+ .order-lg-3 {
+ order: 3 !important;
+ }
+ .order-lg-4 {
+ order: 4 !important;
+ }
+ .order-lg-5 {
+ order: 5 !important;
+ }
+ .order-lg-last {
+ order: 6 !important;
+ }
+ .m-lg-0 {
+ margin: 0 !important;
+ }
+ .m-lg-1 {
+ margin: 0.25rem !important;
+ }
+ .m-lg-2 {
+ margin: 0.5rem !important;
+ }
+ .m-lg-3 {
+ margin: 1rem !important;
+ }
+ .m-lg-4 {
+ margin: 1.5rem !important;
+ }
+ .m-lg-5 {
+ margin: 3rem !important;
+ }
+ .m-lg-auto {
+ margin: auto !important;
+ }
+ .mx-lg-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-lg-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-lg-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-lg-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-lg-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-lg-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-lg-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-lg-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-lg-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-lg-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-lg-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-lg-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-lg-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-lg-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-lg-0 {
+ margin-top: 0 !important;
+ }
+ .mt-lg-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-lg-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-lg-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-lg-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-lg-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-lg-auto {
+ margin-top: auto !important;
+ }
+ .me-lg-0 {
+ margin-right: 0 !important;
+ }
+ .me-lg-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-lg-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-lg-3 {
+ margin-right: 1rem !important;
+ }
+ .me-lg-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-lg-5 {
+ margin-right: 3rem !important;
+ }
+ .me-lg-auto {
+ margin-right: auto !important;
+ }
+ .mb-lg-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-lg-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-lg-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-lg-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-lg-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-lg-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-lg-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-lg-0 {
+ margin-left: 0 !important;
+ }
+ .ms-lg-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-lg-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-lg-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-lg-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-lg-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-lg-auto {
+ margin-left: auto !important;
+ }
+ .p-lg-0 {
+ padding: 0 !important;
+ }
+ .p-lg-1 {
+ padding: 0.25rem !important;
+ }
+ .p-lg-2 {
+ padding: 0.5rem !important;
+ }
+ .p-lg-3 {
+ padding: 1rem !important;
+ }
+ .p-lg-4 {
+ padding: 1.5rem !important;
+ }
+ .p-lg-5 {
+ padding: 3rem !important;
+ }
+ .px-lg-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-lg-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-lg-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-lg-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-lg-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-lg-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-lg-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-lg-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-lg-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-lg-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-lg-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-lg-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-lg-0 {
+ padding-top: 0 !important;
+ }
+ .pt-lg-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-lg-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-lg-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-lg-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-lg-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-lg-0 {
+ padding-right: 0 !important;
+ }
+ .pe-lg-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-lg-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-lg-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-lg-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-lg-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-lg-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-lg-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-lg-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-lg-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-lg-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-lg-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-lg-0 {
+ padding-left: 0 !important;
+ }
+ .ps-lg-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-lg-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-lg-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-lg-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-lg-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 1200px) {
+ .d-xl-inline {
+ display: inline !important;
+ }
+ .d-xl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xl-block {
+ display: block !important;
+ }
+ .d-xl-grid {
+ display: grid !important;
+ }
+ .d-xl-table {
+ display: table !important;
+ }
+ .d-xl-table-row {
+ display: table-row !important;
+ }
+ .d-xl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xl-flex {
+ display: flex !important;
+ }
+ .d-xl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xl-none {
+ display: none !important;
+ }
+ .flex-xl-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-xl-row {
+ flex-direction: row !important;
+ }
+ .flex-xl-column {
+ flex-direction: column !important;
+ }
+ .flex-xl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-xl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-xl-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-xl-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-xl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-xl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-xl-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-xl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-xl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-xl-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-xl-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-xl-center {
+ justify-content: center !important;
+ }
+ .justify-content-xl-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-xl-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-xl-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-xl-start {
+ align-items: flex-start !important;
+ }
+ .align-items-xl-end {
+ align-items: flex-end !important;
+ }
+ .align-items-xl-center {
+ align-items: center !important;
+ }
+ .align-items-xl-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-xl-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-xl-start {
+ align-content: flex-start !important;
+ }
+ .align-content-xl-end {
+ align-content: flex-end !important;
+ }
+ .align-content-xl-center {
+ align-content: center !important;
+ }
+ .align-content-xl-between {
+ align-content: space-between !important;
+ }
+ .align-content-xl-around {
+ align-content: space-around !important;
+ }
+ .align-content-xl-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-xl-auto {
+ align-self: auto !important;
+ }
+ .align-self-xl-start {
+ align-self: flex-start !important;
+ }
+ .align-self-xl-end {
+ align-self: flex-end !important;
+ }
+ .align-self-xl-center {
+ align-self: center !important;
+ }
+ .align-self-xl-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-xl-stretch {
+ align-self: stretch !important;
+ }
+ .order-xl-first {
+ order: -1 !important;
+ }
+ .order-xl-0 {
+ order: 0 !important;
+ }
+ .order-xl-1 {
+ order: 1 !important;
+ }
+ .order-xl-2 {
+ order: 2 !important;
+ }
+ .order-xl-3 {
+ order: 3 !important;
+ }
+ .order-xl-4 {
+ order: 4 !important;
+ }
+ .order-xl-5 {
+ order: 5 !important;
+ }
+ .order-xl-last {
+ order: 6 !important;
+ }
+ .m-xl-0 {
+ margin: 0 !important;
+ }
+ .m-xl-1 {
+ margin: 0.25rem !important;
+ }
+ .m-xl-2 {
+ margin: 0.5rem !important;
+ }
+ .m-xl-3 {
+ margin: 1rem !important;
+ }
+ .m-xl-4 {
+ margin: 1.5rem !important;
+ }
+ .m-xl-5 {
+ margin: 3rem !important;
+ }
+ .m-xl-auto {
+ margin: auto !important;
+ }
+ .mx-xl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-xl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-xl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-xl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-xl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-xl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-xl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-xl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-xl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-xl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-xl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-xl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-xl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-xl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-xl-0 {
+ margin-top: 0 !important;
+ }
+ .mt-xl-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-xl-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-xl-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-xl-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-xl-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-xl-auto {
+ margin-top: auto !important;
+ }
+ .me-xl-0 {
+ margin-right: 0 !important;
+ }
+ .me-xl-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-xl-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-xl-3 {
+ margin-right: 1rem !important;
+ }
+ .me-xl-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-xl-5 {
+ margin-right: 3rem !important;
+ }
+ .me-xl-auto {
+ margin-right: auto !important;
+ }
+ .mb-xl-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-xl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-xl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-xl-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-xl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-xl-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-xl-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-xl-0 {
+ margin-left: 0 !important;
+ }
+ .ms-xl-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-xl-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-xl-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-xl-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-xl-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-xl-auto {
+ margin-left: auto !important;
+ }
+ .p-xl-0 {
+ padding: 0 !important;
+ }
+ .p-xl-1 {
+ padding: 0.25rem !important;
+ }
+ .p-xl-2 {
+ padding: 0.5rem !important;
+ }
+ .p-xl-3 {
+ padding: 1rem !important;
+ }
+ .p-xl-4 {
+ padding: 1.5rem !important;
+ }
+ .p-xl-5 {
+ padding: 3rem !important;
+ }
+ .px-xl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-xl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-xl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-xl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-xl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-xl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-xl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-xl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-xl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-xl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-xl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-xl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-xl-0 {
+ padding-top: 0 !important;
+ }
+ .pt-xl-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-xl-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-xl-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-xl-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-xl-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-xl-0 {
+ padding-right: 0 !important;
+ }
+ .pe-xl-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-xl-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-xl-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-xl-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-xl-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-xl-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-xl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-xl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-xl-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-xl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-xl-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-xl-0 {
+ padding-left: 0 !important;
+ }
+ .ps-xl-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-xl-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-xl-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-xl-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-xl-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 1400px) {
+ .d-xxl-inline {
+ display: inline !important;
+ }
+ .d-xxl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xxl-block {
+ display: block !important;
+ }
+ .d-xxl-grid {
+ display: grid !important;
+ }
+ .d-xxl-table {
+ display: table !important;
+ }
+ .d-xxl-table-row {
+ display: table-row !important;
+ }
+ .d-xxl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xxl-flex {
+ display: flex !important;
+ }
+ .d-xxl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xxl-none {
+ display: none !important;
+ }
+ .flex-xxl-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-xxl-row {
+ flex-direction: row !important;
+ }
+ .flex-xxl-column {
+ flex-direction: column !important;
+ }
+ .flex-xxl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-xxl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-xxl-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-xxl-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-xxl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-xxl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-xxl-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-xxl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-xxl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-xxl-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-xxl-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-xxl-center {
+ justify-content: center !important;
+ }
+ .justify-content-xxl-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-xxl-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-xxl-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-xxl-start {
+ align-items: flex-start !important;
+ }
+ .align-items-xxl-end {
+ align-items: flex-end !important;
+ }
+ .align-items-xxl-center {
+ align-items: center !important;
+ }
+ .align-items-xxl-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-xxl-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-xxl-start {
+ align-content: flex-start !important;
+ }
+ .align-content-xxl-end {
+ align-content: flex-end !important;
+ }
+ .align-content-xxl-center {
+ align-content: center !important;
+ }
+ .align-content-xxl-between {
+ align-content: space-between !important;
+ }
+ .align-content-xxl-around {
+ align-content: space-around !important;
+ }
+ .align-content-xxl-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-xxl-auto {
+ align-self: auto !important;
+ }
+ .align-self-xxl-start {
+ align-self: flex-start !important;
+ }
+ .align-self-xxl-end {
+ align-self: flex-end !important;
+ }
+ .align-self-xxl-center {
+ align-self: center !important;
+ }
+ .align-self-xxl-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-xxl-stretch {
+ align-self: stretch !important;
+ }
+ .order-xxl-first {
+ order: -1 !important;
+ }
+ .order-xxl-0 {
+ order: 0 !important;
+ }
+ .order-xxl-1 {
+ order: 1 !important;
+ }
+ .order-xxl-2 {
+ order: 2 !important;
+ }
+ .order-xxl-3 {
+ order: 3 !important;
+ }
+ .order-xxl-4 {
+ order: 4 !important;
+ }
+ .order-xxl-5 {
+ order: 5 !important;
+ }
+ .order-xxl-last {
+ order: 6 !important;
+ }
+ .m-xxl-0 {
+ margin: 0 !important;
+ }
+ .m-xxl-1 {
+ margin: 0.25rem !important;
+ }
+ .m-xxl-2 {
+ margin: 0.5rem !important;
+ }
+ .m-xxl-3 {
+ margin: 1rem !important;
+ }
+ .m-xxl-4 {
+ margin: 1.5rem !important;
+ }
+ .m-xxl-5 {
+ margin: 3rem !important;
+ }
+ .m-xxl-auto {
+ margin: auto !important;
+ }
+ .mx-xxl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-xxl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-xxl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-xxl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-xxl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-xxl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-xxl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-xxl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-xxl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-xxl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-xxl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-xxl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-xxl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-xxl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-xxl-0 {
+ margin-top: 0 !important;
+ }
+ .mt-xxl-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-xxl-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-xxl-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-xxl-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-xxl-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-xxl-auto {
+ margin-top: auto !important;
+ }
+ .me-xxl-0 {
+ margin-right: 0 !important;
+ }
+ .me-xxl-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-xxl-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-xxl-3 {
+ margin-right: 1rem !important;
+ }
+ .me-xxl-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-xxl-5 {
+ margin-right: 3rem !important;
+ }
+ .me-xxl-auto {
+ margin-right: auto !important;
+ }
+ .mb-xxl-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-xxl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-xxl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-xxl-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-xxl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-xxl-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-xxl-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-xxl-0 {
+ margin-left: 0 !important;
+ }
+ .ms-xxl-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-xxl-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-xxl-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-xxl-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-xxl-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-xxl-auto {
+ margin-left: auto !important;
+ }
+ .p-xxl-0 {
+ padding: 0 !important;
+ }
+ .p-xxl-1 {
+ padding: 0.25rem !important;
+ }
+ .p-xxl-2 {
+ padding: 0.5rem !important;
+ }
+ .p-xxl-3 {
+ padding: 1rem !important;
+ }
+ .p-xxl-4 {
+ padding: 1.5rem !important;
+ }
+ .p-xxl-5 {
+ padding: 3rem !important;
+ }
+ .px-xxl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-xxl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-xxl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-xxl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-xxl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-xxl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-xxl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-xxl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-xxl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-xxl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-xxl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-xxl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-xxl-0 {
+ padding-top: 0 !important;
+ }
+ .pt-xxl-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-xxl-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-xxl-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-xxl-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-xxl-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-xxl-0 {
+ padding-right: 0 !important;
+ }
+ .pe-xxl-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-xxl-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-xxl-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-xxl-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-xxl-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-xxl-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-xxl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-xxl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-xxl-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-xxl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-xxl-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-xxl-0 {
+ padding-left: 0 !important;
+ }
+ .ps-xxl-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-xxl-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-xxl-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-xxl-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-xxl-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media print {
+ .d-print-inline {
+ display: inline !important;
+ }
+ .d-print-inline-block {
+ display: inline-block !important;
+ }
+ .d-print-block {
+ display: block !important;
+ }
+ .d-print-grid {
+ display: grid !important;
+ }
+ .d-print-table {
+ display: table !important;
+ }
+ .d-print-table-row {
+ display: table-row !important;
+ }
+ .d-print-table-cell {
+ display: table-cell !important;
+ }
+ .d-print-flex {
+ display: flex !important;
+ }
+ .d-print-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-print-none {
+ display: none !important;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1080;
+ display: block;
+ margin: 0;
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ opacity: 0;
+ pointer-events: none;
+}
+.tooltip.show {
+ opacity: 0.9;
+}
+.tooltip .tooltip-arrow {
+ position: absolute;
+ display: block;
+ width: 0.8rem;
+ height: 0.4rem;
+}
+.tooltip .tooltip-arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+.bs-tooltip-top,
+.bs-tooltip-auto[data-popper-placement^=top] {
+ padding: 0.4rem 0;
+}
+.bs-tooltip-top .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+ bottom: 0;
+}
+.bs-tooltip-top .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ top: -1px;
+ border-width: 0.4rem 0.4rem 0;
+ border-top-color: #000;
+}
+.bs-tooltip-end,
+.bs-tooltip-auto[data-popper-placement^=right] {
+ padding: 0 0.4rem;
+}
+.bs-tooltip-end .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+ left: 0;
+ width: 0.4rem;
+ height: 0.8rem;
+}
+.bs-tooltip-end .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+ right: -1px;
+ border-width: 0.4rem 0.4rem 0.4rem 0;
+ border-right-color: #000;
+}
+.bs-tooltip-bottom,
+.bs-tooltip-auto[data-popper-placement^=bottom] {
+ padding: 0.4rem 0;
+}
+.bs-tooltip-bottom .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+ top: 0;
+}
+.bs-tooltip-bottom .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 0.4rem 0.4rem;
+ border-bottom-color: #000;
+}
+.bs-tooltip-start,
+.bs-tooltip-auto[data-popper-placement^=left] {
+ padding: 0 0.4rem;
+}
+.bs-tooltip-start .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+ right: 0;
+ width: 0.4rem;
+ height: 0.8rem;
+}
+.bs-tooltip-start .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+ left: -1px;
+ border-width: 0.4rem 0 0.4rem 0.4rem;
+ border-left-color: #000;
+}
+.tooltip-inner {
+ max-width: 200px;
+ padding: 0.25rem 0.5rem;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 0.25rem;
+ -webkit-user-select: none;
+ user-select: none;
+ pointer-events: none;
+}
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0 /* rtl:ignore */;
+ z-index: 1070;
+ display: block;
+ max-width: 276px;
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+}
+.popover .popover-arrow {
+ position: absolute;
+ display: block;
+ width: 1rem;
+ height: 0.5rem;
+}
+.popover .popover-arrow::before,
+.popover .popover-arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+.bs-popover-top > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
+ bottom: calc(-0.5rem - 1px);
+}
+.bs-popover-top > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+ bottom: 0;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-top > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ bottom: 1px;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: #fff;
+}
+.bs-popover-end > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
+ left: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem;
+}
+.bs-popover-end > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+ left: 0;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-end > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ left: 1px;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: #fff;
+}
+.bs-popover-bottom > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
+ top: calc(-0.5rem - 1px);
+}
+.bs-popover-bottom > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+ top: 0;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-bottom > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ top: 1px;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: #fff;
+}
+.bs-popover-bottom .popover-header::before,
+.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: 1rem;
+ margin-left: -0.5rem;
+ content: "";
+ border-bottom: 1px solid #f0f0f0;
+}
+.bs-popover-start > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
+ right: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem;
+}
+.bs-popover-start > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+ right: 0;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-start > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ right: 1px;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: #fff;
+}
+.popover-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ background-color: #f0f0f0;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+.popover-header:empty {
+ display: none;
+}
+.popover-body {
+ padding: 1rem 1rem;
+ color: #212529;
+}
diff --git a/src/renderer/less/bootstrap.less b/src/renderer/less/bootstrap.less
index 6dfc7821..e2ec3b64 100644
--- a/src/renderer/less/bootstrap.less
+++ b/src/renderer/less/bootstrap.less
@@ -1,416 +1,1359 @@
-.modal {
- position: fixed;
- top: 0;
- left: 0;
- z-index: 1055;
- display: none;
- width: 100%;
- height: 100%;
- overflow-x: hidden;
- overflow-y: auto;
- outline: 0;
- user-select: none;
+// Dropdown
-
- .close {
- width: 50px;
- height: 42px;
- background-image: var(--gfx-closeBtn);
- background-position: center;
- background-repeat: no-repeat;
- -webkit-app-region: no-drag;
- appearance: none;
- border: 0;
- background-color: transparent;
- position: absolute;
- top: 0;
- right: 0;
-
- &:hover {
- background-color: rgb(196, 43, 28)
- }
- }
+.dropup,
+.dropend,
+.dropdown,
+.dropstart {
+ position: relative;
}
-.modal-dialog {
- position: relative;
- width: auto;
- margin: 0.5rem;
- pointer-events: none;
- color: var(--textColor);
+.dropdown-toggle {
+ white-space: nowrap;
+}
+.dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent;
+}
+.dropdown-toggle:empty::after {
+ margin-left: 0;
}
-.modal.fade .modal-dialog {
- transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase);
- transform: scale(0.9);
- opacity: 0;
+.dropdown-menu {
+ position: absolute;
+ z-index: 1000;
+ display: none;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+.dropdown-menu[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: 0.125rem;
}
-@media (prefers-reduced-motion: reduce) {
- .modal.fade .modal-dialog {
- transition: none;
- }
+.dropdown-menu-start {
+ --bs-position: start;
+}
+.dropdown-menu-start[data-bs-popper] {
+ right: auto;
+ left: 0;
}
-.modal.show .modal-dialog {
- transform: none;
- opacity: 1;
+.dropdown-menu-end {
+ --bs-position: end;
}
-
-.modal.modal-static .modal-dialog {
- transform: scale(1.02);
-}
-
-.modal-dialog-scrollable {
- height: calc(100% - 1rem);
-}
-
-.modal-dialog-scrollable .modal-content {
- max-height: 100%;
- overflow: hidden;
-}
-
-.modal-dialog-scrollable .modal-body {
- overflow-y: auto;
-}
-
-.modal-dialog-centered {
- display: flex;
- align-items: center;
- min-height: calc(100% - 1rem);
-}
-
-.modal-content {
- position: relative;
- display: flex;
- flex-direction: column;
- width: 100%;
- pointer-events: auto;
- background-color: var(--modalBackground);
- background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 0.3rem;
- outline: 0;
- box-shadow: var(--ciderShadow-Generic);
- overflow: hidden;
-}
-
-.modal-backdrop {
- position: fixed;
- top: 0;
- left: 0;
- z-index: 1050;
- width: 100vw;
- height: 100vh;
- background-color: #000;
-}
-
-.modal-backdrop.fade {
- opacity: 0;
-}
-
-.modal-backdrop.show {
- opacity: 0.5;
-}
-
-.modal-header {
- display: flex;
- flex-shrink: 0;
- align-items: center;
- justify-content: space-between;
- padding: 1rem 1rem;
- border-top-left-radius: calc(0.3rem - 1px);
- border-top-right-radius: calc(0.3rem - 1px);
-}
-
-.modal-header .btn-close {
- padding: 0.5rem 0.5rem;
- margin: -0.5rem -0.5rem -0.5rem auto;
-}
-
-.modal-title {
- line-height: 1.5;
- margin: 0;
-}
-
-.modal-body {
- position: relative;
- flex: 1 1 auto;
- padding: 3rem 1rem 1rem 1rem;
- font-size: 0.9em
-}
-
-.modal-footer {
- display: flex;
- flex-wrap: wrap;
- flex-shrink: 0;
- align-items: center;
- justify-content: flex-end;
- padding: 0.75rem;
- border-bottom-right-radius: calc(0.3rem - 1px);
- border-bottom-left-radius: calc(0.3rem - 1px);
-}
-
-.modal-footer>* {
- margin: 0.25rem;
+.dropdown-menu-end[data-bs-popper] {
+ right: 0;
+ left: auto;
}
@media (min-width: 576px) {
- .modal-dialog {
- max-width: 500px;
- margin: 1.75rem auto;
- }
+ .dropdown-menu-sm-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
- .modal-dialog-scrollable {
- height: calc(100% - 3.5rem);
- }
+ .dropdown-menu-sm-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 768px) {
+ .dropdown-menu-md-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
- .modal-dialog-centered {
- min-height: calc(100% - 3.5rem);
- }
+ .dropdown-menu-md-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 992px) {
+ .dropdown-menu-lg-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
- .modal-sm {
- max-width: 300px;
+ .dropdown-menu-lg-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1200px) {
+ .dropdown-menu-xl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+
+ .dropdown-menu-xl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+
+ .dropdown-menu-xxl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+.dropup .dropdown-menu[data-bs-popper] {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: 0.125rem;
+}
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent;
+}
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+
+.dropend .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: auto;
+ left: 100%;
+ margin-top: 0;
+ margin-left: 0.125rem;
+}
+.dropend .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0;
+ border-bottom: 0.3em solid transparent;
+ border-left: 0.3em solid;
+}
+.dropend .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropend .dropdown-toggle::after {
+ vertical-align: 0;
+}
+
+.dropstart .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: 100%;
+ left: auto;
+ margin-top: 0;
+ margin-right: 0.125rem;
+}
+.dropstart .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+}
+.dropstart .dropdown-toggle::after {
+ display: none;
+}
+.dropstart .dropdown-toggle::before {
+ display: inline-block;
+ margin-right: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0.3em solid;
+ border-bottom: 0.3em solid transparent;
+}
+.dropstart .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle::before {
+ vertical-align: 0;
+}
+
+.dropdown-divider {
+ height: 0;
+ margin: 0.5rem 0;
+ overflow: hidden;
+ border-top: 1px solid rgba(0, 0, 0, 0.15);
+}
+
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.25rem 1rem;
+ clear: both;
+ font-weight: 400;
+ color: #212529;
+ text-align: inherit;
+ text-decoration: none;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0;
+}
+.dropdown-item:hover, .dropdown-item:focus {
+ color: #1e2125;
+ background-color: #e9ecef;
+}
+.dropdown-item.active, .dropdown-item:active {
+ color: #fff;
+ text-decoration: none;
+ background-color: #0d6efd;
+}
+.dropdown-item.disabled, .dropdown-item:disabled {
+ color: #adb5bd;
+ pointer-events: none;
+ background-color: transparent;
+}
+
+.dropdown-menu.show {
+ display: block;
+}
+
+.dropdown-header {
+ display: block;
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 0.875rem;
+ color: #6c757d;
+ white-space: nowrap;
+}
+
+.dropdown-item-text {
+ display: block;
+ padding: 0.25rem 1rem;
+ color: #212529;
+}
+
+.dropdown-menu-dark {
+ color: #dee2e6;
+ background-color: #343a40;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.15);
+}
+.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active {
+ color: #fff;
+ background-color: #0d6efd;
+}
+.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled {
+ color: #adb5bd;
+}
+.dropdown-menu-dark .dropdown-divider {
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item-text {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-header {
+ color: #adb5bd;
+}
+
+
+// List Group
+.list-group {
+ display : flex;
+ flex-direction: column;
+ padding-left : 0;
+ margin-bottom : 0;
+ border-radius : 0.25rem;
+}
+
+.list-group-numbered {
+ list-style-type: none;
+ counter-reset : section;
+}
+
+.list-group-numbered>li::before {
+ content : counters(section, ".") ". ";
+ counter-increment: section;
+}
+
+.list-group-item-action {
+ width : 100%;
+ color : #495057;
+ text-align: inherit;
+}
+
+.list-group-item-action:hover,
+.list-group-item-action:focus {
+ z-index : 1;
+ color : #495057;
+ text-decoration : none;
+ background-color: #f8f9fa;
+}
+
+.list-group-item-action:active {
+ color : #212529;
+ background-color: #e9ecef;
+}
+
+.list-group-item {
+ position : relative;
+ display : block;
+ padding : 0.5rem 1rem;
+ color : #212529;
+ text-decoration : none;
+ background-color: #fff;
+ border : 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.list-group-item:first-child {
+ border-top-left-radius : inherit;
+ border-top-right-radius: inherit;
+}
+
+.list-group-item:last-child {
+ border-bottom-right-radius: inherit;
+ border-bottom-left-radius : inherit;
+}
+
+.list-group-item.disabled,
+.list-group-item:disabled {
+ color : #6c757d;
+ pointer-events : none;
+ background-color: #fff;
+}
+
+.list-group-item.active {
+ z-index : 2;
+ color : #fff;
+ background-color: #0d6efd;
+ border-color : #0d6efd;
+}
+
+.list-group-item+.list-group-item {
+ border-top-width: 0;
+}
+
+.list-group-item+.list-group-item.active {
+ margin-top : -1px;
+ border-top-width: 1px;
+}
+
+.list-group-horizontal {
+ flex-direction: row;
+}
+
+.list-group-horizontal>.list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius : 0;
+}
+
+.list-group-horizontal>.list-group-item:last-child {
+ border-top-right-radius : 0.25rem;
+ border-bottom-left-radius: 0;
+}
+
+.list-group-horizontal>.list-group-item.active {
+ margin-top: 0;
+}
+
+.list-group-horizontal>.list-group-item+.list-group-item {
+ border-top-width : 1px;
+ border-left-width: 0;
+}
+
+.list-group-horizontal>.list-group-item+.list-group-item.active {
+ margin-left : -1px;
+ border-left-width: 1px;
+}
+
+@media (min-width: 576px) {
+ .list-group-horizontal-sm {
+ flex-direction: row;
+ }
+
+ .list-group-horizontal-sm>.list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius : 0;
+ }
+
+ .list-group-horizontal-sm>.list-group-item:last-child {
+ border-top-right-radius : 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+
+ .list-group-horizontal-sm>.list-group-item.active {
+ margin-top: 0;
+ }
+
+ .list-group-horizontal-sm>.list-group-item+.list-group-item {
+ border-top-width : 1px;
+ border-left-width: 0;
+ }
+
+ .list-group-horizontal-sm>.list-group-item+.list-group-item.active {
+ margin-left : -1px;
+ border-left-width: 1px;
+ }
+}
+
+@media (min-width: 768px) {
+ .list-group-horizontal-md {
+ flex-direction: row;
+ }
+
+ .list-group-horizontal-md>.list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius : 0;
+ }
+
+ .list-group-horizontal-md>.list-group-item:last-child {
+ border-top-right-radius : 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+
+ .list-group-horizontal-md>.list-group-item.active {
+ margin-top: 0;
+ }
+
+ .list-group-horizontal-md>.list-group-item+.list-group-item {
+ border-top-width : 1px;
+ border-left-width: 0;
+ }
+
+ .list-group-horizontal-md>.list-group-item+.list-group-item.active {
+ margin-left : -1px;
+ border-left-width: 1px;
+ }
+}
+
+@media (min-width: 992px) {
+ .list-group-horizontal-lg {
+ flex-direction: row;
+ }
+
+ .list-group-horizontal-lg>.list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius : 0;
+ }
+
+ .list-group-horizontal-lg>.list-group-item:last-child {
+ border-top-right-radius : 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+
+ .list-group-horizontal-lg>.list-group-item.active {
+ margin-top: 0;
+ }
+
+ .list-group-horizontal-lg>.list-group-item+.list-group-item {
+ border-top-width : 1px;
+ border-left-width: 0;
+ }
+
+ .list-group-horizontal-lg>.list-group-item+.list-group-item.active {
+ margin-left : -1px;
+ border-left-width: 1px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .list-group-horizontal-xl {
+ flex-direction: row;
+ }
+
+ .list-group-horizontal-xl>.list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius : 0;
+ }
+
+ .list-group-horizontal-xl>.list-group-item:last-child {
+ border-top-right-radius : 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+
+ .list-group-horizontal-xl>.list-group-item.active {
+ margin-top: 0;
+ }
+
+ .list-group-horizontal-xl>.list-group-item+.list-group-item {
+ border-top-width : 1px;
+ border-left-width: 0;
+ }
+
+ .list-group-horizontal-xl>.list-group-item+.list-group-item.active {
+ margin-left : -1px;
+ border-left-width: 1px;
+ }
+}
+
+@media (min-width: 1400px) {
+ .list-group-horizontal-xxl {
+ flex-direction: row;
+ }
+
+ .list-group-horizontal-xxl>.list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius : 0;
+ }
+
+ .list-group-horizontal-xxl>.list-group-item:last-child {
+ border-top-right-radius : 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+
+ .list-group-horizontal-xxl>.list-group-item.active {
+ margin-top: 0;
+ }
+
+ .list-group-horizontal-xxl>.list-group-item+.list-group-item {
+ border-top-width : 1px;
+ border-left-width: 0;
+ }
+
+ .list-group-horizontal-xxl>.list-group-item+.list-group-item.active {
+ margin-left : -1px;
+ border-left-width: 1px;
+ }
+}
+
+.list-group-flush {
+ border-radius: 0;
+}
+
+.list-group-flush>.list-group-item {
+ border-width: 0 0 1px;
+}
+
+.list-group-flush>.list-group-item:last-child {
+ border-bottom-width: 0;
+}
+
+.list-group-item-primary {
+ color : #084298;
+ background-color: #cfe2ff;
+}
+
+.list-group-item-primary.list-group-item-action:hover,
+.list-group-item-primary.list-group-item-action:focus {
+ color : #084298;
+ background-color: #bacbe6;
+}
+
+.list-group-item-primary.list-group-item-action.active {
+ color : #fff;
+ background-color: #084298;
+ border-color : #084298;
+}
+
+.list-group-item-secondary {
+ color : #41464b;
+ background-color: #e2e3e5;
+}
+
+.list-group-item-secondary.list-group-item-action:hover,
+.list-group-item-secondary.list-group-item-action:focus {
+ color : #41464b;
+ background-color: #cbccce;
+}
+
+.list-group-item-secondary.list-group-item-action.active {
+ color : #fff;
+ background-color: #41464b;
+ border-color : #41464b;
+}
+
+.list-group-item-success {
+ color : #0f5132;
+ background-color: #d1e7dd;
+}
+
+.list-group-item-success.list-group-item-action:hover,
+.list-group-item-success.list-group-item-action:focus {
+ color : #0f5132;
+ background-color: #bcd0c7;
+}
+
+.list-group-item-success.list-group-item-action.active {
+ color : #fff;
+ background-color: #0f5132;
+ border-color : #0f5132;
+}
+
+.list-group-item-info {
+ color : #055160;
+ background-color: #cff4fc;
+}
+
+.list-group-item-info.list-group-item-action:hover,
+.list-group-item-info.list-group-item-action:focus {
+ color : #055160;
+ background-color: #badce3;
+}
+
+.list-group-item-info.list-group-item-action.active {
+ color : #fff;
+ background-color: #055160;
+ border-color : #055160;
+}
+
+.list-group-item-warning {
+ color : #664d03;
+ background-color: #fff3cd;
+}
+
+.list-group-item-warning.list-group-item-action:hover,
+.list-group-item-warning.list-group-item-action:focus {
+ color : #664d03;
+ background-color: #e6dbb9;
+}
+
+.list-group-item-warning.list-group-item-action.active {
+ color : #fff;
+ background-color: #664d03;
+ border-color : #664d03;
+}
+
+.list-group-item-danger {
+ color : #842029;
+ background-color: #f8d7da;
+}
+
+.list-group-item-danger.list-group-item-action:hover,
+.list-group-item-danger.list-group-item-action:focus {
+ color : #842029;
+ background-color: #dfc2c4;
+}
+
+.list-group-item-danger.list-group-item-action.active {
+ color : #fff;
+ background-color: #842029;
+ border-color : #842029;
+}
+
+.list-group-item-light {
+ color : #636464;
+ background-color: #fefefe;
+}
+
+.list-group-item-light.list-group-item-action:hover,
+.list-group-item-light.list-group-item-action:focus {
+ color : #636464;
+ background-color: #e5e5e5;
+}
+
+.list-group-item-light.list-group-item-action.active {
+ color : #fff;
+ background-color: #636464;
+ border-color : #636464;
+}
+
+.list-group-item-dark {
+ color : var(--textColor);
+ background-color: #333;
+}
+
+.list-group-item-dark.list-group-item-action:hover,
+.list-group-item-dark.list-group-item-action:focus {
+ color : #141619;
+ background-color: #bebebf;
+}
+
+.list-group-item-dark.list-group-item-action.active {
+ color : #fff;
+ background-color: #141619;
+ border-color : #141619;
+}
+
+// Toasts
+
+.toast {
+ width: 350px;
+ max-width: 100%;
+ font-size: 0.875rem;
+ pointer-events: auto;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+.toast.showing {
+ opacity: 0;
+}
+.toast:not(.show) {
+ display: none;
+}
+
+.toast-container {
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+}
+.toast-container > :not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: 0.5rem 0.75rem;
+ color: #6c757d;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+.toast-header .btn-close {
+ margin-right: -0.375rem;
+ margin-left: 0.75rem;
+}
+
+.toast-body {
+ padding: 0.75rem;
+ word-wrap: break-word;
+}
+
+// Card
+.card {
+ position : relative;
+ display : flex;
+ flex-direction : column;
+ min-width : 0;
+ word-wrap : break-word;
+ background-color: #333;
+ background-clip : border-box;
+ border : 1px solid rgba(0, 0, 0, 0.125);
+ border-radius : 0.25rem;
+}
+
+.card>hr {
+ margin-right: 0;
+ margin-left : 0;
+}
+
+.card>.list-group {
+ border-top : inherit;
+ border-bottom: inherit;
+}
+
+.card>.list-group:first-child {
+ border-top-width : 0;
+ border-top-left-radius : calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+
+.card>.list-group:last-child {
+ border-bottom-width : 0;
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius : calc(0.25rem - 1px);
+}
+
+.card>.card-header+.list-group,
+.card>.list-group+.card-footer {
+ border-top: 0;
+}
+
+.card-body {
+ flex : 1 1 auto;
+ padding: 1rem 1rem;
+}
+
+.card-title {
+ margin-bottom: 0.5rem;
+}
+
+.card-subtitle {
+ margin-top : -0.25rem;
+ margin-bottom: 0;
+}
+
+.card-text:last-child {
+ margin-bottom: 0;
+}
+
+.card-link+.card-link {
+ margin-left: 1rem;
+}
+
+.card-header {
+ padding : 0.5rem 1rem;
+ margin-bottom : 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom : 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.card-header:first-child {
+ border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
+}
+
+.card-footer {
+ padding : 0.5rem 1rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top : 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.card-footer:last-child {
+ border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
+}
+
+.card-header-tabs {
+ margin-right : -0.5rem;
+ margin-bottom: -0.5rem;
+ margin-left : -0.5rem;
+ border-bottom: 0;
+}
+
+.card-header-pills {
+ margin-right: -0.5rem;
+ margin-left : -0.5rem;
+}
+
+.card-img-overlay {
+ position : absolute;
+ top : 0;
+ right : 0;
+ bottom : 0;
+ left : 0;
+ padding : 1rem;
+ border-radius: calc(0.25rem - 1px);
+}
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%;
+}
+
+.card-img,
+.card-img-top {
+ border-top-left-radius : calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+
+.card-img,
+.card-img-bottom {
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius : calc(0.25rem - 1px);
+}
+
+.card-group>.card {
+ margin-bottom: 0.75rem;
+}
+
+@media (min-width: 576px) {
+ .card-group {
+ display : flex;
+ flex-flow: row wrap;
+ }
+
+ .card-group>.card {
+ flex : 1 0 0%;
+ margin-bottom: 0;
+ }
+
+ .card-group>.card+.card {
+ margin-left: 0;
+ border-left: 0;
+ }
+
+ .card-group>.card:not(:last-child) {
+ border-top-right-radius : 0;
+ border-bottom-right-radius: 0;
+ }
+
+ .card-group>.card:not(:last-child) .card-img-top,
+ .card-group>.card:not(:last-child) .card-header {
+ border-top-right-radius: 0;
+ }
+
+ .card-group>.card:not(:last-child) .card-img-bottom,
+ .card-group>.card:not(:last-child) .card-footer {
+ border-bottom-right-radius: 0;
+ }
+
+ .card-group>.card:not(:first-child) {
+ border-top-left-radius : 0;
+ border-bottom-left-radius: 0;
+ }
+
+ .card-group>.card:not(:first-child) .card-img-top,
+ .card-group>.card:not(:first-child) .card-header {
+ border-top-left-radius: 0;
+ }
+
+ .card-group>.card:not(:first-child) .card-img-bottom,
+ .card-group>.card:not(:first-child) .card-footer {
+ border-bottom-left-radius: 0;
+ }
+}
+
+
+.modal {
+ position : fixed;
+ top : 0;
+ left : 0;
+ z-index : 1055;
+ display : none;
+ width : 100%;
+ height : 100%;
+ overflow-x : hidden;
+ overflow-y : auto;
+ outline : 0;
+ user-select: none;
+
+
+ .close {
+ width : 50px;
+ height : 42px;
+ background-image : var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat : no-repeat;
+ -webkit-app-region : no-drag;
+ appearance : none;
+ border : 0;
+ background-color : transparent;
+ position : absolute;
+ top : 0;
+ right : 0;
+
+ &:hover {
+ background-color: rgb(196, 43, 28)
}
+ }
+}
+
+.modal-dialog {
+ position : relative;
+ width : auto;
+ margin : 0.5rem;
+ pointer-events: none;
+ color : var(--textColor);
+}
+
+.modal.fade .modal-dialog {
+ transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase);
+ transform : scale(0.9);
+ opacity : 0;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .modal.fade .modal-dialog {
+ transition: none;
+ }
+}
+
+.modal.show .modal-dialog {
+ transform: none;
+ opacity : 1;
+}
+
+.modal.modal-static .modal-dialog {
+ transform: scale(1.02);
+}
+
+.modal-dialog-scrollable {
+ height: calc(100% - 1rem);
+}
+
+.modal-dialog-scrollable .modal-content {
+ max-height: 100%;
+ overflow : hidden;
+}
+
+.modal-dialog-scrollable .modal-body {
+ overflow-y: auto;
+}
+
+.modal-dialog-centered {
+ display : flex;
+ align-items: center;
+ min-height : calc(100% - 1rem);
+}
+
+.modal-content {
+ position : relative;
+ display : flex;
+ flex-direction : column;
+ width : 100%;
+ pointer-events : auto;
+ background-color: var(--modalBackground);
+ background-clip : padding-box;
+ border : 1px solid rgba(0, 0, 0, 0.2);
+ border-radius : 0.3rem;
+ outline : 0;
+ box-shadow : var(--ciderShadow-Generic);
+ overflow : hidden;
+}
+
+.modal-backdrop {
+ position : fixed;
+ top : 0;
+ left : 0;
+ z-index : 1050;
+ width : 100vw;
+ height : 100vh;
+ background-color: #000;
+}
+
+.modal-backdrop.fade {
+ opacity: 0;
+}
+
+.modal-backdrop.show {
+ opacity: 0.5;
+}
+
+.modal-header {
+ display : flex;
+ flex-shrink : 0;
+ align-items : center;
+ justify-content : space-between;
+ padding : 1rem 1rem;
+ border-top-left-radius : calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+
+.modal-header .btn-close {
+ padding: 0.5rem 0.5rem;
+ margin : -0.5rem -0.5rem -0.5rem auto;
+}
+
+.modal-title {
+ line-height: 1.5;
+ margin : 0;
+}
+
+.modal-body {
+ position : relative;
+ flex : 1 1 auto;
+ padding : 3rem 1rem 1rem 1rem;
+ font-size: 0.9em
+}
+
+.modal-footer {
+ display : flex;
+ flex-wrap : wrap;
+ flex-shrink : 0;
+ align-items : center;
+ justify-content : flex-end;
+ padding : 0.75rem;
+ border-bottom-right-radius: calc(0.3rem - 1px);
+ border-bottom-left-radius : calc(0.3rem - 1px);
+}
+
+.modal-footer>* {
+ margin: 0.25rem;
+}
+
+@media (min-width: 576px) {
+ .modal-dialog {
+ max-width: 500px;
+ margin : 1.75rem auto;
+ }
+
+ .modal-dialog-scrollable {
+ height: calc(100% - 3.5rem);
+ }
+
+ .modal-dialog-centered {
+ min-height: calc(100% - 3.5rem);
+ }
+
+ .modal-sm {
+ max-width: 300px;
+ }
}
@media (min-width: 992px) {
- .modal-lg,
- .modal-xl {
- max-width: 800px;
- }
+ .modal-lg,
+ .modal-xl {
+ max-width: 800px;
+ }
}
@media (min-width: 1200px) {
- .modal-xl {
- max-width: 1140px;
- }
+ .modal-xl {
+ max-width: 1140px;
+ }
}
.modal-fullscreen {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
+ width : 100vw;
+ max-width: none;
+ height : 100%;
+ margin : 0;
}
.modal-fullscreen .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
+ height : 100%;
+ border : 0;
+ border-radius: 0;
}
.modal-fullscreen .modal-header {
- border-radius: 0;
+ border-radius: 0;
}
.modal-fullscreen .modal-body {
- overflow-y: auto;
+ overflow-y: auto;
}
.modal-fullscreen .modal-footer {
- border-radius: 0;
+ border-radius: 0;
}
@media (max-width: 575.98px) {
- .modal-fullscreen-sm-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
+ .modal-fullscreen-sm-down {
+ width : 100vw;
+ max-width: none;
+ height : 100%;
+ margin : 0;
+ }
- .modal-fullscreen-sm-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
+ .modal-fullscreen-sm-down .modal-content {
+ height : 100%;
+ border : 0;
+ border-radius: 0;
+ }
- .modal-fullscreen-sm-down .modal-header {
- border-radius: 0;
- }
+ .modal-fullscreen-sm-down .modal-header {
+ border-radius: 0;
+ }
- .modal-fullscreen-sm-down .modal-body {
- overflow-y: auto;
- }
+ .modal-fullscreen-sm-down .modal-body {
+ overflow-y: auto;
+ }
- .modal-fullscreen-sm-down .modal-footer {
- border-radius: 0;
- }
+ .modal-fullscreen-sm-down .modal-footer {
+ border-radius: 0;
+ }
}
@media (max-width: 767.98px) {
- .modal-fullscreen-md-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
+ .modal-fullscreen-md-down {
+ width : 100vw;
+ max-width: none;
+ height : 100%;
+ margin : 0;
+ }
- .modal-fullscreen-md-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
+ .modal-fullscreen-md-down .modal-content {
+ height : 100%;
+ border : 0;
+ border-radius: 0;
+ }
- .modal-fullscreen-md-down .modal-header {
- border-radius: 0;
- }
+ .modal-fullscreen-md-down .modal-header {
+ border-radius: 0;
+ }
- .modal-fullscreen-md-down .modal-body {
- overflow-y: auto;
- }
+ .modal-fullscreen-md-down .modal-body {
+ overflow-y: auto;
+ }
- .modal-fullscreen-md-down .modal-footer {
- border-radius: 0;
- }
+ .modal-fullscreen-md-down .modal-footer {
+ border-radius: 0;
+ }
}
@media (max-width: 991.98px) {
- .modal-fullscreen-lg-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
+ .modal-fullscreen-lg-down {
+ width : 100vw;
+ max-width: none;
+ height : 100%;
+ margin : 0;
+ }
- .modal-fullscreen-lg-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
+ .modal-fullscreen-lg-down .modal-content {
+ height : 100%;
+ border : 0;
+ border-radius: 0;
+ }
- .modal-fullscreen-lg-down .modal-header {
- border-radius: 0;
- }
+ .modal-fullscreen-lg-down .modal-header {
+ border-radius: 0;
+ }
- .modal-fullscreen-lg-down .modal-body {
- overflow-y: auto;
- }
+ .modal-fullscreen-lg-down .modal-body {
+ overflow-y: auto;
+ }
- .modal-fullscreen-lg-down .modal-footer {
- border-radius: 0;
- }
+ .modal-fullscreen-lg-down .modal-footer {
+ border-radius: 0;
+ }
}
@media (max-width: 1199.98px) {
- .modal-fullscreen-xl-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
+ .modal-fullscreen-xl-down {
+ width : 100vw;
+ max-width: none;
+ height : 100%;
+ margin : 0;
+ }
- .modal-fullscreen-xl-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
+ .modal-fullscreen-xl-down .modal-content {
+ height : 100%;
+ border : 0;
+ border-radius: 0;
+ }
- .modal-fullscreen-xl-down .modal-header {
- border-radius: 0;
- }
+ .modal-fullscreen-xl-down .modal-header {
+ border-radius: 0;
+ }
- .modal-fullscreen-xl-down .modal-body {
- overflow-y: auto;
- }
+ .modal-fullscreen-xl-down .modal-body {
+ overflow-y: auto;
+ }
- .modal-fullscreen-xl-down .modal-footer {
- border-radius: 0;
- }
+ .modal-fullscreen-xl-down .modal-footer {
+ border-radius: 0;
+ }
}
@media (max-width: 1399.98px) {
- .modal-fullscreen-xxl-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
+ .modal-fullscreen-xxl-down {
+ width : 100vw;
+ max-width: none;
+ height : 100%;
+ margin : 0;
+ }
- .modal-fullscreen-xxl-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
+ .modal-fullscreen-xxl-down .modal-content {
+ height : 100%;
+ border : 0;
+ border-radius: 0;
+ }
- .modal-fullscreen-xxl-down .modal-header {
- border-radius: 0;
- }
+ .modal-fullscreen-xxl-down .modal-header {
+ border-radius: 0;
+ }
- .modal-fullscreen-xxl-down .modal-body {
- overflow-y: auto;
- }
+ .modal-fullscreen-xxl-down .modal-body {
+ overflow-y: auto;
+ }
- .modal-fullscreen-xxl-down .modal-footer {
- border-radius: 0;
- }
+ .modal-fullscreen-xxl-down .modal-footer {
+ border-radius: 0;
+ }
}
.btn {
- display: inline-block;
- font-weight: 400;
- line-height: 1.5;
- color: #212529;
- text-align: center;
- text-decoration: none;
- vertical-align: middle;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- background-color: transparent;
- border: 1px solid transparent;
- padding: 0.375rem 0.75rem;
- font-size: 1rem;
- border-radius: 0.25rem;
- font-family: inherit;
- transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ display : inline-block;
+ font-weight : 400;
+ line-height : 1.5;
+ color : #212529;
+ text-align : center;
+ text-decoration : none;
+ vertical-align : middle;
+ cursor : pointer;
+ -webkit-user-select: none;
+ -moz-user-select : none;
+ user-select : none;
+ background-color : transparent;
+ border : 1px solid transparent;
+ padding : 0.375rem 0.75rem;
+ font-size : 1rem;
+ border-radius : 0.25rem;
+ font-family : inherit;
+ transition : color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
- .btn {
- transition: none;
- }
+ .btn {
+ transition: none;
+ }
}
.btn:hover {
- color: #212529;
+ color: #212529;
}
.btn-check:focus+.btn,
.btn:focus {
- outline: 0;
- box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+ outline : 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
- pointer-events: none;
- opacity: 0.65;
+ pointer-events: none;
+ opacity : 0.65;
}
.btn-primary {
- color: #fff;
- background-color: #0d6efd;
- border-color: #0d6efd;
+ color : #fff;
+ background-color: #0d6efd;
+ border-color : #0d6efd;
}
.btn-primary:hover {
- color: #fff;
- background-color: #0b5ed7;
- border-color: #0a58ca;
+ color : #fff;
+ background-color: #0b5ed7;
+ border-color : #0a58ca;
}
.btn-check:focus+.btn-primary,
.btn-primary:focus {
- color: #fff;
- background-color: #0b5ed7;
- border-color: #0a58ca;
- box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
+ color : #fff;
+ background-color: #0b5ed7;
+ border-color : #0a58ca;
+ box-shadow : 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
}
.btn-check:checked+.btn-primary,
@@ -418,9 +1361,9 @@ fieldset:disabled .btn {
.btn-primary:active,
.btn-primary.active,
.show>.btn-primary.dropdown-toggle {
- color: #fff;
- background-color: #0a58ca;
- border-color: #0a53be;
+ color : #fff;
+ background-color: #0a58ca;
+ border-color : #0a53be;
}
.btn-check:checked+.btn-primary:focus,
@@ -428,34 +1371,34 @@ fieldset:disabled .btn {
.btn-primary:active:focus,
.btn-primary.active:focus,
.show>.btn-primary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
}
.btn-primary:disabled,
.btn-primary.disabled {
- color: #fff;
- background-color: #0d6efd;
- border-color: #0d6efd;
+ color : #fff;
+ background-color: #0d6efd;
+ border-color : #0d6efd;
}
.btn-secondary {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
+ color : #fff;
+ background-color: #6c757d;
+ border-color : #6c757d;
}
.btn-secondary:hover {
- color: #fff;
- background-color: #5c636a;
- border-color: #565e64;
+ color : #fff;
+ background-color: #5c636a;
+ border-color : #565e64;
}
.btn-check:focus+.btn-secondary,
.btn-secondary:focus {
- color: #fff;
- background-color: #5c636a;
- border-color: #565e64;
- box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+ color : #fff;
+ background-color: #5c636a;
+ border-color : #565e64;
+ box-shadow : 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
}
.btn-check:checked+.btn-secondary,
@@ -463,9 +1406,9 @@ fieldset:disabled .btn {
.btn-secondary:active,
.btn-secondary.active,
.show>.btn-secondary.dropdown-toggle {
- color: #fff;
- background-color: #565e64;
- border-color: #51585e;
+ color : #fff;
+ background-color: #565e64;
+ border-color : #51585e;
}
.btn-check:checked+.btn-secondary:focus,
@@ -473,34 +1416,34 @@ fieldset:disabled .btn {
.btn-secondary:active:focus,
.btn-secondary.active:focus,
.show>.btn-secondary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
}
.btn-secondary:disabled,
.btn-secondary.disabled {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
+ color : #fff;
+ background-color: #6c757d;
+ border-color : #6c757d;
}
.btn-success {
- color: #fff;
- background-color: #198754;
- border-color: #198754;
+ color : #fff;
+ background-color: #198754;
+ border-color : #198754;
}
.btn-success:hover {
- color: #fff;
- background-color: #157347;
- border-color: #146c43;
+ color : #fff;
+ background-color: #157347;
+ border-color : #146c43;
}
.btn-check:focus+.btn-success,
.btn-success:focus {
- color: #fff;
- background-color: #157347;
- border-color: #146c43;
- box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+ color : #fff;
+ background-color: #157347;
+ border-color : #146c43;
+ box-shadow : 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
}
.btn-check:checked+.btn-success,
@@ -508,9 +1451,9 @@ fieldset:disabled .btn {
.btn-success:active,
.btn-success.active,
.show>.btn-success.dropdown-toggle {
- color: #fff;
- background-color: #146c43;
- border-color: #13653f;
+ color : #fff;
+ background-color: #146c43;
+ border-color : #13653f;
}
.btn-check:checked+.btn-success:focus,
@@ -518,34 +1461,34 @@ fieldset:disabled .btn {
.btn-success:active:focus,
.btn-success.active:focus,
.show>.btn-success.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
}
.btn-success:disabled,
.btn-success.disabled {
- color: #fff;
- background-color: #198754;
- border-color: #198754;
+ color : #fff;
+ background-color: #198754;
+ border-color : #198754;
}
.btn-info {
- color: #000;
- background-color: #0dcaf0;
- border-color: #0dcaf0;
+ color : #000;
+ background-color: #0dcaf0;
+ border-color : #0dcaf0;
}
.btn-info:hover {
- color: #000;
- background-color: #31d2f2;
- border-color: #25cff2;
+ color : #000;
+ background-color: #31d2f2;
+ border-color : #25cff2;
}
.btn-check:focus+.btn-info,
.btn-info:focus {
- color: #000;
- background-color: #31d2f2;
- border-color: #25cff2;
- box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+ color : #000;
+ background-color: #31d2f2;
+ border-color : #25cff2;
+ box-shadow : 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
}
.btn-check:checked+.btn-info,
@@ -553,9 +1496,9 @@ fieldset:disabled .btn {
.btn-info:active,
.btn-info.active,
.show>.btn-info.dropdown-toggle {
- color: #000;
- background-color: #3dd5f3;
- border-color: #25cff2;
+ color : #000;
+ background-color: #3dd5f3;
+ border-color : #25cff2;
}
.btn-check:checked+.btn-info:focus,
@@ -563,34 +1506,34 @@ fieldset:disabled .btn {
.btn-info:active:focus,
.btn-info.active:focus,
.show>.btn-info.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
}
.btn-info:disabled,
.btn-info.disabled {
- color: #000;
- background-color: #0dcaf0;
- border-color: #0dcaf0;
+ color : #000;
+ background-color: #0dcaf0;
+ border-color : #0dcaf0;
}
.btn-warning {
- color: #000;
- background-color: #ffc107;
- border-color: #ffc107;
+ color : #000;
+ background-color: #ffc107;
+ border-color : #ffc107;
}
.btn-warning:hover {
- color: #000;
- background-color: #ffca2c;
- border-color: #ffc720;
+ color : #000;
+ background-color: #ffca2c;
+ border-color : #ffc720;
}
.btn-check:focus+.btn-warning,
.btn-warning:focus {
- color: #000;
- background-color: #ffca2c;
- border-color: #ffc720;
- box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+ color : #000;
+ background-color: #ffca2c;
+ border-color : #ffc720;
+ box-shadow : 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
}
.btn-check:checked+.btn-warning,
@@ -598,9 +1541,9 @@ fieldset:disabled .btn {
.btn-warning:active,
.btn-warning.active,
.show>.btn-warning.dropdown-toggle {
- color: #000;
- background-color: #ffcd39;
- border-color: #ffc720;
+ color : #000;
+ background-color: #ffcd39;
+ border-color : #ffc720;
}
.btn-check:checked+.btn-warning:focus,
@@ -608,34 +1551,34 @@ fieldset:disabled .btn {
.btn-warning:active:focus,
.btn-warning.active:focus,
.show>.btn-warning.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
}
.btn-warning:disabled,
.btn-warning.disabled {
- color: #000;
- background-color: #ffc107;
- border-color: #ffc107;
+ color : #000;
+ background-color: #ffc107;
+ border-color : #ffc107;
}
.btn-danger {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
+ color : #fff;
+ background-color: #dc3545;
+ border-color : #dc3545;
}
.btn-danger:hover {
- color: #fff;
- background-color: #bb2d3b;
- border-color: #b02a37;
+ color : #fff;
+ background-color: #bb2d3b;
+ border-color : #b02a37;
}
.btn-check:focus+.btn-danger,
.btn-danger:focus {
- color: #fff;
- background-color: #bb2d3b;
- border-color: #b02a37;
- box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+ color : #fff;
+ background-color: #bb2d3b;
+ border-color : #b02a37;
+ box-shadow : 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
}
.btn-check:checked+.btn-danger,
@@ -643,9 +1586,9 @@ fieldset:disabled .btn {
.btn-danger:active,
.btn-danger.active,
.show>.btn-danger.dropdown-toggle {
- color: #fff;
- background-color: #b02a37;
- border-color: #a52834;
+ color : #fff;
+ background-color: #b02a37;
+ border-color : #a52834;
}
.btn-check:checked+.btn-danger:focus,
@@ -653,34 +1596,34 @@ fieldset:disabled .btn {
.btn-danger:active:focus,
.btn-danger.active:focus,
.show>.btn-danger.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
}
.btn-danger:disabled,
.btn-danger.disabled {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
+ color : #fff;
+ background-color: #dc3545;
+ border-color : #dc3545;
}
.btn-light {
- color: #000;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
+ color : #000;
+ background-color: #f8f9fa;
+ border-color : #f8f9fa;
}
.btn-light:hover {
- color: #000;
- background-color: #f9fafb;
- border-color: #f9fafb;
+ color : #000;
+ background-color: #f9fafb;
+ border-color : #f9fafb;
}
.btn-check:focus+.btn-light,
.btn-light:focus {
- color: #000;
- background-color: #f9fafb;
- border-color: #f9fafb;
- box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+ color : #000;
+ background-color: #f9fafb;
+ border-color : #f9fafb;
+ box-shadow : 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
}
.btn-check:checked+.btn-light,
@@ -688,9 +1631,9 @@ fieldset:disabled .btn {
.btn-light:active,
.btn-light.active,
.show>.btn-light.dropdown-toggle {
- color: #000;
- background-color: #f9fafb;
- border-color: #f9fafb;
+ color : #000;
+ background-color: #f9fafb;
+ border-color : #f9fafb;
}
.btn-check:checked+.btn-light:focus,
@@ -698,34 +1641,34 @@ fieldset:disabled .btn {
.btn-light:active:focus,
.btn-light.active:focus,
.show>.btn-light.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
}
.btn-light:disabled,
.btn-light.disabled {
- color: #000;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
+ color : #000;
+ background-color: #f8f9fa;
+ border-color : #f8f9fa;
}
.btn-dark {
- color: #fff;
- background-color: #212529;
- border-color: #212529;
+ color : #fff;
+ background-color: #212529;
+ border-color : #212529;
}
.btn-dark:hover {
- color: #fff;
- background-color: #1c1f23;
- border-color: #1a1e21;
+ color : #fff;
+ background-color: #1c1f23;
+ border-color : #1a1e21;
}
.btn-check:focus+.btn-dark,
.btn-dark:focus {
- color: #fff;
- background-color: #1c1f23;
- border-color: #1a1e21;
- box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+ color : #fff;
+ background-color: #1c1f23;
+ border-color : #1a1e21;
+ box-shadow : 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
}
.btn-check:checked+.btn-dark,
@@ -733,9 +1676,9 @@ fieldset:disabled .btn {
.btn-dark:active,
.btn-dark.active,
.show>.btn-dark.dropdown-toggle {
- color: #fff;
- background-color: #1a1e21;
- border-color: #191c1f;
+ color : #fff;
+ background-color: #1a1e21;
+ border-color : #191c1f;
}
.btn-check:checked+.btn-dark:focus,
@@ -743,30 +1686,30 @@ fieldset:disabled .btn {
.btn-dark:active:focus,
.btn-dark.active:focus,
.show>.btn-dark.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
}
.btn-dark:disabled,
.btn-dark.disabled {
- color: #fff;
- background-color: #212529;
- border-color: #212529;
+ color : #fff;
+ background-color: #212529;
+ border-color : #212529;
}
.btn-outline-primary {
- color: #0d6efd;
- border-color: #0d6efd;
+ color : #0d6efd;
+ border-color: #0d6efd;
}
.btn-outline-primary:hover {
- color: #fff;
- background-color: #0d6efd;
- border-color: #0d6efd;
+ color : #fff;
+ background-color: #0d6efd;
+ border-color : #0d6efd;
}
.btn-check:focus+.btn-outline-primary,
.btn-outline-primary:focus {
- box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
}
.btn-check:checked+.btn-outline-primary,
@@ -774,9 +1717,9 @@ fieldset:disabled .btn {
.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-outline-primary.dropdown-toggle.show {
- color: #fff;
- background-color: #0d6efd;
- border-color: #0d6efd;
+ color : #fff;
+ background-color: #0d6efd;
+ border-color : #0d6efd;
}
.btn-check:checked+.btn-outline-primary:focus,
@@ -784,29 +1727,29 @@ fieldset:disabled .btn {
.btn-outline-primary:active:focus,
.btn-outline-primary.active:focus,
.btn-outline-primary.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
}
.btn-outline-primary:disabled,
.btn-outline-primary.disabled {
- color: #0d6efd;
- background-color: transparent;
+ color : #0d6efd;
+ background-color: transparent;
}
.btn-outline-secondary {
- color: #6c757d;
- border-color: #6c757d;
+ color : #6c757d;
+ border-color: #6c757d;
}
.btn-outline-secondary:hover {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
+ color : #fff;
+ background-color: #6c757d;
+ border-color : #6c757d;
}
.btn-check:focus+.btn-outline-secondary,
.btn-outline-secondary:focus {
- box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
}
.btn-check:checked+.btn-outline-secondary,
@@ -814,9 +1757,9 @@ fieldset:disabled .btn {
.btn-outline-secondary:active,
.btn-outline-secondary.active,
.btn-outline-secondary.dropdown-toggle.show {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d;
+ color : #fff;
+ background-color: #6c757d;
+ border-color : #6c757d;
}
.btn-check:checked+.btn-outline-secondary:focus,
@@ -824,29 +1767,29 @@ fieldset:disabled .btn {
.btn-outline-secondary:active:focus,
.btn-outline-secondary.active:focus,
.btn-outline-secondary.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
}
.btn-outline-secondary:disabled,
.btn-outline-secondary.disabled {
- color: #6c757d;
- background-color: transparent;
+ color : #6c757d;
+ background-color: transparent;
}
.btn-outline-success {
- color: #198754;
- border-color: #198754;
+ color : #198754;
+ border-color: #198754;
}
.btn-outline-success:hover {
- color: #fff;
- background-color: #198754;
- border-color: #198754;
+ color : #fff;
+ background-color: #198754;
+ border-color : #198754;
}
.btn-check:focus+.btn-outline-success,
.btn-outline-success:focus {
- box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
}
.btn-check:checked+.btn-outline-success,
@@ -854,9 +1797,9 @@ fieldset:disabled .btn {
.btn-outline-success:active,
.btn-outline-success.active,
.btn-outline-success.dropdown-toggle.show {
- color: #fff;
- background-color: #198754;
- border-color: #198754;
+ color : #fff;
+ background-color: #198754;
+ border-color : #198754;
}
.btn-check:checked+.btn-outline-success:focus,
@@ -864,29 +1807,29 @@ fieldset:disabled .btn {
.btn-outline-success:active:focus,
.btn-outline-success.active:focus,
.btn-outline-success.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
}
.btn-outline-success:disabled,
.btn-outline-success.disabled {
- color: #198754;
- background-color: transparent;
+ color : #198754;
+ background-color: transparent;
}
.btn-outline-info {
- color: #0dcaf0;
- border-color: #0dcaf0;
+ color : #0dcaf0;
+ border-color: #0dcaf0;
}
.btn-outline-info:hover {
- color: #000;
- background-color: #0dcaf0;
- border-color: #0dcaf0;
+ color : #000;
+ background-color: #0dcaf0;
+ border-color : #0dcaf0;
}
.btn-check:focus+.btn-outline-info,
.btn-outline-info:focus {
- box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
}
.btn-check:checked+.btn-outline-info,
@@ -894,9 +1837,9 @@ fieldset:disabled .btn {
.btn-outline-info:active,
.btn-outline-info.active,
.btn-outline-info.dropdown-toggle.show {
- color: #000;
- background-color: #0dcaf0;
- border-color: #0dcaf0;
+ color : #000;
+ background-color: #0dcaf0;
+ border-color : #0dcaf0;
}
.btn-check:checked+.btn-outline-info:focus,
@@ -904,29 +1847,29 @@ fieldset:disabled .btn {
.btn-outline-info:active:focus,
.btn-outline-info.active:focus,
.btn-outline-info.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
}
.btn-outline-info:disabled,
.btn-outline-info.disabled {
- color: #0dcaf0;
- background-color: transparent;
+ color : #0dcaf0;
+ background-color: transparent;
}
.btn-outline-warning {
- color: #ffc107;
- border-color: #ffc107;
+ color : #ffc107;
+ border-color: #ffc107;
}
.btn-outline-warning:hover {
- color: #000;
- background-color: #ffc107;
- border-color: #ffc107;
+ color : #000;
+ background-color: #ffc107;
+ border-color : #ffc107;
}
.btn-check:focus+.btn-outline-warning,
.btn-outline-warning:focus {
- box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
}
.btn-check:checked+.btn-outline-warning,
@@ -934,9 +1877,9 @@ fieldset:disabled .btn {
.btn-outline-warning:active,
.btn-outline-warning.active,
.btn-outline-warning.dropdown-toggle.show {
- color: #000;
- background-color: #ffc107;
- border-color: #ffc107;
+ color : #000;
+ background-color: #ffc107;
+ border-color : #ffc107;
}
.btn-check:checked+.btn-outline-warning:focus,
@@ -944,29 +1887,29 @@ fieldset:disabled .btn {
.btn-outline-warning:active:focus,
.btn-outline-warning.active:focus,
.btn-outline-warning.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
}
.btn-outline-warning:disabled,
.btn-outline-warning.disabled {
- color: #ffc107;
- background-color: transparent;
+ color : #ffc107;
+ background-color: transparent;
}
.btn-outline-danger {
- color: #dc3545;
- border-color: #dc3545;
+ color : #dc3545;
+ border-color: #dc3545;
}
.btn-outline-danger:hover {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
+ color : #fff;
+ background-color: #dc3545;
+ border-color : #dc3545;
}
.btn-check:focus+.btn-outline-danger,
.btn-outline-danger:focus {
- box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
}
.btn-check:checked+.btn-outline-danger,
@@ -974,9 +1917,9 @@ fieldset:disabled .btn {
.btn-outline-danger:active,
.btn-outline-danger.active,
.btn-outline-danger.dropdown-toggle.show {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545;
+ color : #fff;
+ background-color: #dc3545;
+ border-color : #dc3545;
}
.btn-check:checked+.btn-outline-danger:focus,
@@ -984,29 +1927,29 @@ fieldset:disabled .btn {
.btn-outline-danger:active:focus,
.btn-outline-danger.active:focus,
.btn-outline-danger.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
}
.btn-outline-danger:disabled,
.btn-outline-danger.disabled {
- color: #dc3545;
- background-color: transparent;
+ color : #dc3545;
+ background-color: transparent;
}
.btn-outline-light {
- color: #f8f9fa;
- border-color: #f8f9fa;
+ color : #f8f9fa;
+ border-color: #f8f9fa;
}
.btn-outline-light:hover {
- color: #000;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
+ color : #000;
+ background-color: #f8f9fa;
+ border-color : #f8f9fa;
}
.btn-check:focus+.btn-outline-light,
.btn-outline-light:focus {
- box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
}
.btn-check:checked+.btn-outline-light,
@@ -1014,9 +1957,9 @@ fieldset:disabled .btn {
.btn-outline-light:active,
.btn-outline-light.active,
.btn-outline-light.dropdown-toggle.show {
- color: #000;
- background-color: #f8f9fa;
- border-color: #f8f9fa;
+ color : #000;
+ background-color: #f8f9fa;
+ border-color : #f8f9fa;
}
.btn-check:checked+.btn-outline-light:focus,
@@ -1024,29 +1967,29 @@ fieldset:disabled .btn {
.btn-outline-light:active:focus,
.btn-outline-light.active:focus,
.btn-outline-light.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
}
.btn-outline-light:disabled,
.btn-outline-light.disabled {
- color: #f8f9fa;
- background-color: transparent;
+ color : #f8f9fa;
+ background-color: transparent;
}
.btn-outline-dark {
- color: #212529;
- border-color: #212529;
+ color : #212529;
+ border-color: #212529;
}
.btn-outline-dark:hover {
- color: #fff;
- background-color: #212529;
- border-color: #212529;
+ color : #fff;
+ background-color: #212529;
+ border-color : #212529;
}
.btn-check:focus+.btn-outline-dark,
.btn-outline-dark:focus {
- box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
}
.btn-check:checked+.btn-outline-dark,
@@ -1054,9 +1997,9 @@ fieldset:disabled .btn {
.btn-outline-dark:active,
.btn-outline-dark.active,
.btn-outline-dark.dropdown-toggle.show {
- color: #fff;
- background-color: #212529;
- border-color: #212529;
+ color : #fff;
+ background-color: #212529;
+ border-color : #212529;
}
.btn-check:checked+.btn-outline-dark:focus,
@@ -1064,44 +2007,5969 @@ fieldset:disabled .btn {
.btn-outline-dark:active:focus,
.btn-outline-dark.active:focus,
.btn-outline-dark.dropdown-toggle.show:focus {
- box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
}
.btn-outline-dark:disabled,
.btn-outline-dark.disabled {
- color: #212529;
- background-color: transparent;
+ color : #212529;
+ background-color: transparent;
}
.btn-link {
- font-weight: 400;
- color: #0d6efd;
- text-decoration: underline;
+ font-weight : 400;
+ color : #0d6efd;
+ text-decoration: underline;
}
.btn-link:hover {
- color: #0a58ca;
+ color: #0a58ca;
}
.btn-link:disabled,
.btn-link.disabled {
- color: #6c757d;
+ color: #6c757d;
}
.btn-lg,
.btn-group-lg>.btn {
- padding: 0.5rem 1rem;
- font-size: 1.25rem;
- border-radius: 0.3rem;
+ padding : 0.5rem 1rem;
+ font-size : 1.25rem;
+ border-radius: 0.3rem;
}
.btn-sm,
.btn-group-sm>.btn {
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- border-radius: 0.2rem;
+ padding : 0.25rem 0.5rem;
+ font-size : 0.875rem;
+ border-radius: 0.2rem;
}
.form-control {
- width:100%;
-}
\ No newline at end of file
+ width: 100%;
+}
+
+// Button Group
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ flex: 1 1 auto;
+}
+.btn-group > .btn-check:checked + .btn,
+.btn-group > .btn-check:focus + .btn,
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn-check:checked + .btn,
+.btn-group-vertical > .btn-check:focus + .btn,
+.btn-group-vertical > .btn:hover,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+ z-index: 1;
+}
+
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.btn-toolbar .input-group {
+ width: auto;
+}
+
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) {
+ margin-left: -1px;
+}
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.btn-group > .btn:nth-child(n+3),
+.btn-group > :not(.btn-check) + .btn,
+.btn-group > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.dropdown-toggle-split {
+ padding-right: 0.5625rem;
+ padding-left: 0.5625rem;
+}
+.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle-split::before {
+ margin-right: 0;
+}
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: 0.375rem;
+ padding-left: 0.375rem;
+}
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 0.75rem;
+ padding-left: 0.75rem;
+}
+
+.btn-group-vertical {
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: center;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group {
+ width: 100%;
+}
+.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn-group:not(:first-child) {
+ margin-top: -1px;
+}
+.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group-vertical > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn ~ .btn,
+.btn-group-vertical > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+// Table
+.table {
+ --bs-table-bg: transparent;
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: #212529;
+ --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+ --bs-table-active-color: #212529;
+ --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+ --bs-table-hover-color: #212529;
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+ width: 100%;
+ margin-bottom: 1rem;
+ color: #212529;
+ vertical-align: top;
+ border-color: #dee2e6;
+}
+.table > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+ background-color: var(--bs-table-bg);
+ border-bottom-width: 1px;
+ box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
+}
+.table > tbody {
+ vertical-align: inherit;
+}
+.table > thead {
+ vertical-align: bottom;
+}
+.table > :not(:first-child) {
+ border-top: 2px solid currentColor;
+}
+
+.caption-top {
+ caption-side: top;
+}
+
+.table-sm > :not(caption) > * > * {
+ padding: 0.25rem 0.25rem;
+}
+
+.table-bordered > :not(caption) > * {
+ border-width: 1px 0;
+}
+.table-bordered > :not(caption) > * > * {
+ border-width: 0 1px;
+}
+
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0;
+}
+.table-borderless > :not(:first-child) {
+ border-top-width: 0;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color);
+}
+
+.table-active {
+ --bs-table-accent-bg: var(--bs-table-active-bg);
+ color: var(--bs-table-active-color);
+}
+
+.table-hover > tbody > tr:hover > * {
+ --bs-table-accent-bg: var(--bs-table-hover-bg);
+ color: var(--bs-table-hover-color);
+}
+
+.table-primary {
+ --bs-table-bg: #cfe2ff;
+ --bs-table-striped-bg: #c5d7f2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bacbe6;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfd1ec;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #bacbe6;
+}
+
+.table-secondary {
+ --bs-table-bg: #e2e3e5;
+ --bs-table-striped-bg: #d7d8da;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbccce;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d1d2d4;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #cbccce;
+}
+
+.table-success {
+ --bs-table-bg: #d1e7dd;
+ --bs-table-striped-bg: #c7dbd2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bcd0c7;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #c1d6cc;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #bcd0c7;
+}
+
+.table-info {
+ --bs-table-bg: #cff4fc;
+ --bs-table-striped-bg: #c5e8ef;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #badce3;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfe2e9;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #badce3;
+}
+
+.table-warning {
+ --bs-table-bg: #fff3cd;
+ --bs-table-striped-bg: #f2e7c3;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #e6dbb9;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #ece1be;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #e6dbb9;
+}
+
+.table-danger {
+ --bs-table-bg: #f8d7da;
+ --bs-table-striped-bg: #eccccf;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfc2c4;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5c7ca;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfc2c4;
+}
+
+.table-light {
+ --bs-table-bg: #f8f9fa;
+ --bs-table-striped-bg: #ecedee;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfe0e1;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5e6e7;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfe0e1;
+}
+
+.table-dark {
+ --bs-table-bg: #212529;
+ --bs-table-striped-bg: #2c3034;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #373b3e;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #323539;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #373b3e;
+}
+
+.table-responsive {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+@media (max-width: 575.98px) {
+ .table-responsive-sm {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 767.98px) {
+ .table-responsive-md {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 991.98px) {
+ .table-responsive-lg {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1199.98px) {
+ .table-responsive-xl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1399.98px) {
+ .table-responsive-xxl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+
+// Tabs
+
+.nav-tabs {
+ border-bottom: 1px solid #dee2e6;
+}
+.nav-tabs .nav-link {
+ margin-bottom: -1px;
+ background: none;
+ border: 1px solid transparent;
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+ border-color: #e9ecef #e9ecef #dee2e6;
+ isolation: isolate;
+}
+.nav-tabs .nav-link.disabled {
+ color: #6c757d;
+ background-color: transparent;
+ border-color: transparent;
+}
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.nav-pills .nav-link {
+ background: none;
+ border: 0;
+ border-radius: 0.25rem;
+}
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #0d6efd;
+}
+
+.nav-fill > .nav-link,
+.nav-fill .nav-item {
+ flex: 1 1 auto;
+ text-align: center;
+}
+
+.nav-justified > .nav-link,
+.nav-justified .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center;
+}
+
+.nav-fill .nav-item .nav-link,
+.nav-justified .nav-item .nav-link {
+ width: 100%;
+}
+
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+
+/*!
+ * Bootstrap Grid v5.1.1 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors
+ * Copyright 2011-2021 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+:root {
+ --bs-blue : #0d6efd;
+ --bs-indigo : #6610f2;
+ --bs-purple : #6f42c1;
+ --bs-pink : #d63384;
+ --bs-red : #dc3545;
+ --bs-orange : #fd7e14;
+ --bs-yellow : #ffc107;
+ --bs-green : #198754;
+ --bs-teal : #20c997;
+ --bs-cyan : #0dcaf0;
+ --bs-white : #fff;
+ --bs-gray : #6c757d;
+ --bs-gray-dark : #343a40;
+ --bs-gray-100 : #f8f9fa;
+ --bs-gray-200 : #e9ecef;
+ --bs-gray-300 : #dee2e6;
+ --bs-gray-400 : #ced4da;
+ --bs-gray-500 : #adb5bd;
+ --bs-gray-600 : #6c757d;
+ --bs-gray-700 : #495057;
+ --bs-gray-800 : #343a40;
+ --bs-gray-900 : #212529;
+ --bs-primary : #0d6efd;
+ --bs-secondary : #6c757d;
+ --bs-success : #198754;
+ --bs-info : #0dcaf0;
+ --bs-warning : #ffc107;
+ --bs-danger : #dc3545;
+ --bs-light : #f8f9fa;
+ --bs-dark : #212529;
+ --bs-primary-rgb : 13, 110, 253;
+ --bs-secondary-rgb : 108, 117, 125;
+ --bs-success-rgb : 25, 135, 84;
+ --bs-info-rgb : 13, 202, 240;
+ --bs-warning-rgb : 255, 193, 7;
+ --bs-danger-rgb : 220, 53, 69;
+ --bs-light-rgb : 248, 249, 250;
+ --bs-dark-rgb : 33, 37, 41;
+ --bs-white-rgb : 255, 255, 255;
+ --bs-black-rgb : 0, 0, 0;
+ --bs-body-color-rgb : 33, 37, 41;
+ --bs-body-bg-rgb : 255, 255, 255;
+ --bs-font-sans-serif : inherit;
+ --bs-font-monospace : SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --bs-gradient : linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+ --bs-body-font-family: inherit;
+ --bs-body-font-size : 1rem;
+ --bs-body-font-weight: 400;
+ --bs-body-line-height: 1.5;
+ --bs-body-color : #212529;
+ --bs-body-bg : #fff;
+}
+
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ width : 100%;
+ padding-right: var(--bs-gutter-x, 0.75rem);
+ padding-left : var(--bs-gutter-x, 0.75rem);
+ margin-right : auto;
+ margin-left : auto;
+}
+
+@media (min-width: 576px) {
+
+ .container-sm,
+ .container {
+ max-width: 540px;
+ }
+}
+
+@media (min-width: 768px) {
+
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 720px;
+ }
+}
+
+@media (min-width: 992px) {
+
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 960px;
+ }
+}
+
+@media (min-width: 1200px) {
+
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1140px;
+ }
+}
+
+@media (min-width: 1400px) {
+
+ .container-xxl,
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1320px;
+ }
+}
+
+.col {
+ flex: 1 0 0%;
+}
+
+.row-cols-auto>* {
+ flex : 0 0 auto;
+ width: auto;
+}
+
+.row-cols-1>* {
+ flex : 0 0 auto;
+ width: 100%;
+}
+
+.row-cols-2>* {
+ flex : 0 0 auto;
+ width: 50%;
+}
+
+.row-cols-3>* {
+ flex : 0 0 auto;
+ width: 33.3333333333%;
+}
+
+.row-cols-4>* {
+ flex : 0 0 auto;
+ width: 25%;
+}
+
+.row-cols-5>* {
+ flex : 0 0 auto;
+ width: 20%;
+}
+
+.row-cols-6>* {
+ flex : 0 0 auto;
+ width: 16.6666666667%;
+}
+
+.col-auto {
+ flex : 0 0 auto;
+ width: auto;
+}
+
+.col-1 {
+ flex : 0 0 auto;
+ width: 8.33333333%;
+}
+
+.col-2 {
+ flex : 0 0 auto;
+ width: 16.66666667%;
+}
+
+.col-3 {
+ flex : 0 0 auto;
+ width: 25%;
+}
+
+.col-4 {
+ flex : 0 0 auto;
+ width: 33.33333333%;
+}
+
+.col-5 {
+ flex : 0 0 auto;
+ width: 41.66666667%;
+}
+
+.col-6 {
+ flex : 0 0 auto;
+ width: 50%;
+}
+
+.col-7 {
+ flex : 0 0 auto;
+ width: 58.33333333%;
+}
+
+.col-8 {
+ flex : 0 0 auto;
+ width: 66.66666667%;
+}
+
+.col-9 {
+ flex : 0 0 auto;
+ width: 75%;
+}
+
+.col-10 {
+ flex : 0 0 auto;
+ width: 83.33333333%;
+}
+
+.col-11 {
+ flex : 0 0 auto;
+ width: 91.66666667%;
+}
+
+.col-12 {
+ flex : 0 0 auto;
+ width: 100%;
+}
+
+.offset-1 {
+ margin-left: 8.33333333%;
+}
+
+.offset-2 {
+ margin-left: 16.66666667%;
+}
+
+.offset-3 {
+ margin-left: 25%;
+}
+
+.offset-4 {
+ margin-left: 33.33333333%;
+}
+
+.offset-5 {
+ margin-left: 41.66666667%;
+}
+
+.offset-6 {
+ margin-left: 50%;
+}
+
+.offset-7 {
+ margin-left: 58.33333333%;
+}
+
+.offset-8 {
+ margin-left: 66.66666667%;
+}
+
+.offset-9 {
+ margin-left: 75%;
+}
+
+.offset-10 {
+ margin-left: 83.33333333%;
+}
+
+.offset-11 {
+ margin-left: 91.66666667%;
+}
+
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0;
+}
+
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0;
+}
+
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem;
+}
+
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem;
+}
+
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem;
+}
+
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.5rem;
+}
+
+.g-3,
+.gx-3 {
+ --bs-gutter-x: 1rem;
+}
+
+.g-3,
+.gy-3 {
+ --bs-gutter-y: 1rem;
+}
+
+.g-4,
+.gx-4 {
+ --bs-gutter-x: 1.5rem;
+}
+
+.g-4,
+.gy-4 {
+ --bs-gutter-y: 1.5rem;
+}
+
+.g-5,
+.gx-5 {
+ --bs-gutter-x: 3rem;
+}
+
+.g-5,
+.gy-5 {
+ --bs-gutter-y: 3rem;
+}
+
+@media (min-width: 576px) {
+ .col-sm {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-sm-auto>* {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-sm-1>* {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-sm-2>* {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-sm-3>* {
+ flex : 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-sm-4>* {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-sm-5>* {
+ flex : 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-sm-6>* {
+ flex : 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-sm-auto {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .col-sm-1 {
+ flex : 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-sm-2 {
+ flex : 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-sm-3 {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .col-sm-4 {
+ flex : 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-sm-5 {
+ flex : 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-sm-6 {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .col-sm-7 {
+ flex : 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-sm-8 {
+ flex : 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-sm-9 {
+ flex : 0 0 auto;
+ width: 75%;
+ }
+
+ .col-sm-10 {
+ flex : 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-sm-11 {
+ flex : 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-sm-12 {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-sm-0 {
+ margin-left: 0;
+ }
+
+ .offset-sm-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-sm-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-sm-3 {
+ margin-left: 25%;
+ }
+
+ .offset-sm-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-sm-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-sm-6 {
+ margin-left: 50%;
+ }
+
+ .offset-sm-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-sm-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-sm-9 {
+ margin-left: 75%;
+ }
+
+ .offset-sm-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-sm-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-sm-0,
+ .gx-sm-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-sm-0,
+ .gy-sm-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-sm-1,
+ .gx-sm-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-sm-1,
+ .gy-sm-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-sm-2,
+ .gx-sm-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-sm-2,
+ .gy-sm-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-sm-3,
+ .gx-sm-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-sm-3,
+ .gy-sm-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-sm-4,
+ .gx-sm-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-sm-4,
+ .gy-sm-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-sm-5,
+ .gx-sm-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-sm-5,
+ .gy-sm-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+
+@media (min-width: 768px) {
+ .col-md {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-md-auto>* {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-md-1>* {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-md-2>* {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-md-3>* {
+ flex : 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-md-4>* {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-md-5>* {
+ flex : 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-md-6>* {
+ flex : 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-md-auto {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .col-md-1 {
+ flex : 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-md-2 {
+ flex : 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-md-3 {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .col-md-4 {
+ flex : 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-md-5 {
+ flex : 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-md-6 {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .col-md-7 {
+ flex : 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-md-8 {
+ flex : 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-md-9 {
+ flex : 0 0 auto;
+ width: 75%;
+ }
+
+ .col-md-10 {
+ flex : 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-md-11 {
+ flex : 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-md-12 {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-md-0 {
+ margin-left: 0;
+ }
+
+ .offset-md-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-md-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-md-3 {
+ margin-left: 25%;
+ }
+
+ .offset-md-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-md-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-md-6 {
+ margin-left: 50%;
+ }
+
+ .offset-md-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-md-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-md-9 {
+ margin-left: 75%;
+ }
+
+ .offset-md-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-md-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-md-0,
+ .gx-md-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-md-0,
+ .gy-md-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-md-1,
+ .gx-md-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-md-1,
+ .gy-md-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-md-2,
+ .gx-md-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-md-2,
+ .gy-md-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-md-3,
+ .gx-md-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-md-3,
+ .gy-md-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-md-4,
+ .gx-md-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-md-4,
+ .gy-md-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-md-5,
+ .gx-md-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-md-5,
+ .gy-md-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+
+@media (min-width: 992px) {
+ .col-lg {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-lg-auto>* {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-lg-1>* {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-lg-2>* {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-lg-3>* {
+ flex : 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-lg-4>* {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-lg-5>* {
+ flex : 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-lg-6>* {
+ flex : 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-lg-auto {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .col-lg-1 {
+ flex : 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-lg-2 {
+ flex : 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-lg-3 {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .col-lg-4 {
+ flex : 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-lg-5 {
+ flex : 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-lg-6 {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .col-lg-7 {
+ flex : 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-lg-8 {
+ flex : 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-lg-9 {
+ flex : 0 0 auto;
+ width: 75%;
+ }
+
+ .col-lg-10 {
+ flex : 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-lg-11 {
+ flex : 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-lg-12 {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-lg-0 {
+ margin-left: 0;
+ }
+
+ .offset-lg-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-lg-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-lg-3 {
+ margin-left: 25%;
+ }
+
+ .offset-lg-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-lg-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-lg-6 {
+ margin-left: 50%;
+ }
+
+ .offset-lg-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-lg-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-lg-9 {
+ margin-left: 75%;
+ }
+
+ .offset-lg-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-lg-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-lg-0,
+ .gx-lg-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-lg-0,
+ .gy-lg-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-lg-1,
+ .gx-lg-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-lg-1,
+ .gy-lg-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-lg-2,
+ .gx-lg-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-lg-2,
+ .gy-lg-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-lg-3,
+ .gx-lg-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-lg-3,
+ .gy-lg-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-lg-4,
+ .gx-lg-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-lg-4,
+ .gy-lg-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-lg-5,
+ .gx-lg-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-lg-5,
+ .gy-lg-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+
+@media (min-width: 1200px) {
+ .col-xl {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-xl-auto>* {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-xl-1>* {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-xl-2>* {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-xl-3>* {
+ flex : 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-xl-4>* {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-xl-5>* {
+ flex : 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-xl-6>* {
+ flex : 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-xl-auto {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .col-xl-1 {
+ flex : 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-xl-2 {
+ flex : 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-xl-3 {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .col-xl-4 {
+ flex : 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-xl-5 {
+ flex : 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-xl-6 {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .col-xl-7 {
+ flex : 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-xl-8 {
+ flex : 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-xl-9 {
+ flex : 0 0 auto;
+ width: 75%;
+ }
+
+ .col-xl-10 {
+ flex : 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-xl-11 {
+ flex : 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-xl-12 {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-xl-0 {
+ margin-left: 0;
+ }
+
+ .offset-xl-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-xl-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-xl-3 {
+ margin-left: 25%;
+ }
+
+ .offset-xl-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-xl-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-xl-6 {
+ margin-left: 50%;
+ }
+
+ .offset-xl-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-xl-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-xl-9 {
+ margin-left: 75%;
+ }
+
+ .offset-xl-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-xl-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-xl-0,
+ .gx-xl-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-xl-0,
+ .gy-xl-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-xl-1,
+ .gx-xl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-xl-1,
+ .gy-xl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-xl-2,
+ .gx-xl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-xl-2,
+ .gy-xl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-xl-3,
+ .gx-xl-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-xl-3,
+ .gy-xl-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-xl-4,
+ .gx-xl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-xl-4,
+ .gy-xl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-xl-5,
+ .gx-xl-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-xl-5,
+ .gy-xl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+
+@media (min-width: 1400px) {
+ .col-xxl {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-xxl-auto>* {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-xxl-1>* {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-xxl-2>* {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-xxl-3>* {
+ flex : 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-xxl-4>* {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-xxl-5>* {
+ flex : 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-xxl-6>* {
+ flex : 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-xxl-auto {
+ flex : 0 0 auto;
+ width: auto;
+ }
+
+ .col-xxl-1 {
+ flex : 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-xxl-2 {
+ flex : 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-xxl-3 {
+ flex : 0 0 auto;
+ width: 25%;
+ }
+
+ .col-xxl-4 {
+ flex : 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-xxl-5 {
+ flex : 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-xxl-6 {
+ flex : 0 0 auto;
+ width: 50%;
+ }
+
+ .col-xxl-7 {
+ flex : 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-xxl-8 {
+ flex : 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-xxl-9 {
+ flex : 0 0 auto;
+ width: 75%;
+ }
+
+ .col-xxl-10 {
+ flex : 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-xxl-11 {
+ flex : 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-xxl-12 {
+ flex : 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-xxl-0 {
+ margin-left: 0;
+ }
+
+ .offset-xxl-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-xxl-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-xxl-3 {
+ margin-left: 25%;
+ }
+
+ .offset-xxl-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-xxl-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-xxl-6 {
+ margin-left: 50%;
+ }
+
+ .offset-xxl-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-xxl-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-xxl-9 {
+ margin-left: 75%;
+ }
+
+ .offset-xxl-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-xxl-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-xxl-0,
+ .gx-xxl-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-xxl-0,
+ .gy-xxl-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-xxl-1,
+ .gx-xxl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-xxl-1,
+ .gy-xxl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-xxl-2,
+ .gx-xxl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-xxl-2,
+ .gy-xxl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-xxl-3,
+ .gx-xxl-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-xxl-3,
+ .gy-xxl-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-xxl-4,
+ .gx-xxl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-xxl-4,
+ .gy-xxl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-xxl-5,
+ .gx-xxl-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-xxl-5,
+ .gy-xxl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+
+.d-inline {
+ display: inline !important;
+}
+
+.d-inline-block {
+ display: inline-block !important;
+}
+
+.d-block {
+ display: block !important;
+}
+
+.d-grid {
+ display: grid !important;
+}
+
+.d-table {
+ display: table !important;
+}
+
+.d-table-row {
+ display: table-row !important;
+}
+
+.d-table-cell {
+ display: table-cell !important;
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.d-inline-flex {
+ display: inline-flex !important;
+}
+
+.d-none {
+ display: none !important;
+}
+
+.flex-fill {
+ flex: 1 1 auto !important;
+}
+
+.flex-row {
+ flex-direction: row !important;
+}
+
+.flex-column {
+ flex-direction: column !important;
+}
+
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+
+.flex-column-reverse {
+ flex-direction: column-reverse !important;
+}
+
+.flex-grow-0 {
+ flex-grow: 0 !important;
+}
+
+.flex-grow-1 {
+ flex-grow: 1 !important;
+}
+
+.flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+
+.flex-shrink-1 {
+ flex-shrink: 1 !important;
+}
+
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+
+.justify-content-start {
+ justify-content: flex-start !important;
+}
+
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+
+.justify-content-center {
+ justify-content: center !important;
+}
+
+.justify-content-between {
+ justify-content: space-between !important;
+}
+
+.justify-content-around {
+ justify-content: space-around !important;
+}
+
+.justify-content-evenly {
+ justify-content: space-evenly !important;
+}
+
+.align-items-start {
+ align-items: flex-start !important;
+}
+
+.align-items-end {
+ align-items: flex-end !important;
+}
+
+.align-items-center {
+ align-items: center !important;
+}
+
+.align-items-baseline {
+ align-items: baseline !important;
+}
+
+.align-items-stretch {
+ align-items: stretch !important;
+}
+
+.align-content-start {
+ align-content: flex-start !important;
+}
+
+.align-content-end {
+ align-content: flex-end !important;
+}
+
+.align-content-center {
+ align-content: center !important;
+}
+
+.align-content-between {
+ align-content: space-between !important;
+}
+
+.align-content-around {
+ align-content: space-around !important;
+}
+
+.align-content-stretch {
+ align-content: stretch !important;
+}
+
+.align-self-auto {
+ align-self: auto !important;
+}
+
+.align-self-start {
+ align-self: flex-start !important;
+}
+
+.align-self-end {
+ align-self: flex-end !important;
+}
+
+.align-self-center {
+ align-self: center !important;
+}
+
+.align-self-baseline {
+ align-self: baseline !important;
+}
+
+.align-self-stretch {
+ align-self: stretch !important;
+}
+
+.order-first {
+ order: -1 !important;
+}
+
+.order-0 {
+ order: 0 !important;
+}
+
+.order-1 {
+ order: 1 !important;
+}
+
+.order-2 {
+ order: 2 !important;
+}
+
+.order-3 {
+ order: 3 !important;
+}
+
+.order-4 {
+ order: 4 !important;
+}
+
+.order-5 {
+ order: 5 !important;
+}
+
+.order-last {
+ order: 6 !important;
+}
+
+.m-0 {
+ margin: 0 !important;
+}
+
+.m-1 {
+ margin: 0.25rem !important;
+}
+
+.m-2 {
+ margin: 0.5rem !important;
+}
+
+.m-3 {
+ margin: 1rem !important;
+}
+
+.m-4 {
+ margin: 1.5rem !important;
+}
+
+.m-5 {
+ margin: 3rem !important;
+}
+
+.m-auto {
+ margin: auto !important;
+}
+
+.mx-0 {
+ margin-right: 0 !important;
+ margin-left : 0 !important;
+}
+
+.mx-1 {
+ margin-right: 0.25rem !important;
+ margin-left : 0.25rem !important;
+}
+
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left : 0.5rem !important;
+}
+
+.mx-3 {
+ margin-right: 1rem !important;
+ margin-left : 1rem !important;
+}
+
+.mx-4 {
+ margin-right: 1.5rem !important;
+ margin-left : 1.5rem !important;
+}
+
+.mx-5 {
+ margin-right: 3rem !important;
+ margin-left : 3rem !important;
+}
+
+.mx-auto {
+ margin-right: auto !important;
+ margin-left : auto !important;
+}
+
+.my-0 {
+ margin-top : 0 !important;
+ margin-bottom: 0 !important;
+}
+
+.my-1 {
+ margin-top : 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+}
+
+.my-2 {
+ margin-top : 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+
+.my-3 {
+ margin-top : 1rem !important;
+ margin-bottom: 1rem !important;
+}
+
+.my-4 {
+ margin-top : 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+
+.my-5 {
+ margin-top : 3rem !important;
+ margin-bottom: 3rem !important;
+}
+
+.my-auto {
+ margin-top : auto !important;
+ margin-bottom: auto !important;
+}
+
+.mt-0 {
+ margin-top: 0 !important;
+}
+
+.mt-1 {
+ margin-top: 0.25rem !important;
+}
+
+.mt-2 {
+ margin-top: 0.5rem !important;
+}
+
+.mt-3 {
+ margin-top: 1rem !important;
+}
+
+.mt-4 {
+ margin-top: 1.5rem !important;
+}
+
+.mt-5 {
+ margin-top: 3rem !important;
+}
+
+.mt-auto {
+ margin-top: auto !important;
+}
+
+.me-0 {
+ margin-right: 0 !important;
+}
+
+.me-1 {
+ margin-right: 0.25rem !important;
+}
+
+.me-2 {
+ margin-right: 0.5rem !important;
+}
+
+.me-3 {
+ margin-right: 1rem !important;
+}
+
+.me-4 {
+ margin-right: 1.5rem !important;
+}
+
+.me-5 {
+ margin-right: 3rem !important;
+}
+
+.me-auto {
+ margin-right: auto !important;
+}
+
+.mb-0 {
+ margin-bottom: 0 !important;
+}
+
+.mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+
+.mb-2 {
+ margin-bottom: 0.5rem !important;
+}
+
+.mb-3 {
+ margin-bottom: 1rem !important;
+}
+
+.mb-4 {
+ margin-bottom: 1.5rem !important;
+}
+
+.mb-5 {
+ margin-bottom: 3rem !important;
+}
+
+.mb-auto {
+ margin-bottom: auto !important;
+}
+
+.ms-0 {
+ margin-left: 0 !important;
+}
+
+.ms-1 {
+ margin-left: 0.25rem !important;
+}
+
+.ms-2 {
+ margin-left: 0.5rem !important;
+}
+
+.ms-3 {
+ margin-left: 1rem !important;
+}
+
+.ms-4 {
+ margin-left: 1.5rem !important;
+}
+
+.ms-5 {
+ margin-left: 3rem !important;
+}
+
+.ms-auto {
+ margin-left: auto !important;
+}
+
+.p-0 {
+ padding: 0 !important;
+}
+
+.p-1 {
+ padding: 0.25rem !important;
+}
+
+.p-2 {
+ padding: 0.5rem !important;
+}
+
+.p-3 {
+ padding: 1rem !important;
+}
+
+.p-4 {
+ padding: 1.5rem !important;
+}
+
+.p-5 {
+ padding: 3rem !important;
+}
+
+.px-0 {
+ padding-right: 0 !important;
+ padding-left : 0 !important;
+}
+
+.px-1 {
+ padding-right: 0.25rem !important;
+ padding-left : 0.25rem !important;
+}
+
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left : 0.5rem !important;
+}
+
+.px-3 {
+ padding-right: 1rem !important;
+ padding-left : 1rem !important;
+}
+
+.px-4 {
+ padding-right: 1.5rem !important;
+ padding-left : 1.5rem !important;
+}
+
+.px-5 {
+ padding-right: 3rem !important;
+ padding-left : 3rem !important;
+}
+
+.py-0 {
+ padding-top : 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.py-1 {
+ padding-top : 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+}
+
+.py-2 {
+ padding-top : 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+}
+
+.py-3 {
+ padding-top : 1rem !important;
+ padding-bottom: 1rem !important;
+}
+
+.py-4 {
+ padding-top : 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+
+.py-5 {
+ padding-top : 3rem !important;
+ padding-bottom: 3rem !important;
+}
+
+.pt-0 {
+ padding-top: 0 !important;
+}
+
+.pt-1 {
+ padding-top: 0.25rem !important;
+}
+
+.pt-2 {
+ padding-top: 0.5rem !important;
+}
+
+.pt-3 {
+ padding-top: 1rem !important;
+}
+
+.pt-4 {
+ padding-top: 1.5rem !important;
+}
+
+.pt-5 {
+ padding-top: 3rem !important;
+}
+
+.pe-0 {
+ padding-right: 0 !important;
+}
+
+.pe-1 {
+ padding-right: 0.25rem !important;
+}
+
+.pe-2 {
+ padding-right: 0.5rem !important;
+}
+
+.pe-3 {
+ padding-right: 1rem !important;
+}
+
+.pe-4 {
+ padding-right: 1.5rem !important;
+}
+
+.pe-5 {
+ padding-right: 3rem !important;
+}
+
+.pb-0 {
+ padding-bottom: 0 !important;
+}
+
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+
+.pb-2 {
+ padding-bottom: 0.5rem !important;
+}
+
+.pb-3 {
+ padding-bottom: 1rem !important;
+}
+
+.pb-4 {
+ padding-bottom: 1.5rem !important;
+}
+
+.pb-5 {
+ padding-bottom: 3rem !important;
+}
+
+.ps-0 {
+ padding-left: 0 !important;
+}
+
+.ps-1 {
+ padding-left: 0.25rem !important;
+}
+
+.ps-2 {
+ padding-left: 0.5rem !important;
+}
+
+.ps-3 {
+ padding-left: 1rem !important;
+}
+
+.ps-4 {
+ padding-left: 1.5rem !important;
+}
+
+.ps-5 {
+ padding-left: 3rem !important;
+}
+
+@media (min-width: 576px) {
+ .d-sm-inline {
+ display: inline !important;
+ }
+
+ .d-sm-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-sm-block {
+ display: block !important;
+ }
+
+ .d-sm-grid {
+ display: grid !important;
+ }
+
+ .d-sm-table {
+ display: table !important;
+ }
+
+ .d-sm-table-row {
+ display: table-row !important;
+ }
+
+ .d-sm-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-sm-flex {
+ display: flex !important;
+ }
+
+ .d-sm-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-sm-none {
+ display: none !important;
+ }
+
+ .flex-sm-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-sm-row {
+ flex-direction: row !important;
+ }
+
+ .flex-sm-column {
+ flex-direction: column !important;
+ }
+
+ .flex-sm-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-sm-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-sm-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-sm-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-sm-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-sm-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-sm-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-sm-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-sm-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .justify-content-sm-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-sm-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-sm-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-sm-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-sm-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-sm-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-sm-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-sm-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-sm-center {
+ align-items: center !important;
+ }
+
+ .align-items-sm-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-sm-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-sm-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-sm-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-sm-center {
+ align-content: center !important;
+ }
+
+ .align-content-sm-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-sm-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-sm-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-sm-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-sm-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-sm-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-sm-center {
+ align-self: center !important;
+ }
+
+ .align-self-sm-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-sm-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-sm-first {
+ order: -1 !important;
+ }
+
+ .order-sm-0 {
+ order: 0 !important;
+ }
+
+ .order-sm-1 {
+ order: 1 !important;
+ }
+
+ .order-sm-2 {
+ order: 2 !important;
+ }
+
+ .order-sm-3 {
+ order: 3 !important;
+ }
+
+ .order-sm-4 {
+ order: 4 !important;
+ }
+
+ .order-sm-5 {
+ order: 5 !important;
+ }
+
+ .order-sm-last {
+ order: 6 !important;
+ }
+
+ .m-sm-0 {
+ margin: 0 !important;
+ }
+
+ .m-sm-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-sm-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-sm-3 {
+ margin: 1rem !important;
+ }
+
+ .m-sm-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-sm-5 {
+ margin: 3rem !important;
+ }
+
+ .m-sm-auto {
+ margin: auto !important;
+ }
+
+ .mx-sm-0 {
+ margin-right: 0 !important;
+ margin-left : 0 !important;
+ }
+
+ .mx-sm-1 {
+ margin-right: 0.25rem !important;
+ margin-left : 0.25rem !important;
+ }
+
+ .mx-sm-2 {
+ margin-right: 0.5rem !important;
+ margin-left : 0.5rem !important;
+ }
+
+ .mx-sm-3 {
+ margin-right: 1rem !important;
+ margin-left : 1rem !important;
+ }
+
+ .mx-sm-4 {
+ margin-right: 1.5rem !important;
+ margin-left : 1.5rem !important;
+ }
+
+ .mx-sm-5 {
+ margin-right: 3rem !important;
+ margin-left : 3rem !important;
+ }
+
+ .mx-sm-auto {
+ margin-right: auto !important;
+ margin-left : auto !important;
+ }
+
+ .my-sm-0 {
+ margin-top : 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-sm-1 {
+ margin-top : 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-sm-2 {
+ margin-top : 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-sm-3 {
+ margin-top : 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-sm-4 {
+ margin-top : 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-sm-5 {
+ margin-top : 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-sm-auto {
+ margin-top : auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-sm-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-sm-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-sm-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-sm-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-sm-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-sm-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-sm-auto {
+ margin-top: auto !important;
+ }
+
+ .me-sm-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-sm-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-sm-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-sm-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-sm-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-sm-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-sm-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-sm-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-sm-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-sm-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-sm-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-sm-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-sm-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-sm-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-sm-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-sm-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-sm-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-sm-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-sm-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-sm-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-sm-auto {
+ margin-left: auto !important;
+ }
+
+ .p-sm-0 {
+ padding: 0 !important;
+ }
+
+ .p-sm-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-sm-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-sm-3 {
+ padding: 1rem !important;
+ }
+
+ .p-sm-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-sm-5 {
+ padding: 3rem !important;
+ }
+
+ .px-sm-0 {
+ padding-right: 0 !important;
+ padding-left : 0 !important;
+ }
+
+ .px-sm-1 {
+ padding-right: 0.25rem !important;
+ padding-left : 0.25rem !important;
+ }
+
+ .px-sm-2 {
+ padding-right: 0.5rem !important;
+ padding-left : 0.5rem !important;
+ }
+
+ .px-sm-3 {
+ padding-right: 1rem !important;
+ padding-left : 1rem !important;
+ }
+
+ .px-sm-4 {
+ padding-right: 1.5rem !important;
+ padding-left : 1.5rem !important;
+ }
+
+ .px-sm-5 {
+ padding-right: 3rem !important;
+ padding-left : 3rem !important;
+ }
+
+ .py-sm-0 {
+ padding-top : 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-sm-1 {
+ padding-top : 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-sm-2 {
+ padding-top : 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-sm-3 {
+ padding-top : 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-sm-4 {
+ padding-top : 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-sm-5 {
+ padding-top : 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-sm-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-sm-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-sm-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-sm-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-sm-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-sm-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-sm-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-sm-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-sm-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-sm-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-sm-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-sm-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-sm-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-sm-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-sm-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-sm-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-sm-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-sm-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-sm-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-sm-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-sm-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-sm-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-sm-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-sm-5 {
+ padding-left: 3rem !important;
+ }
+}
+
+@media (min-width: 768px) {
+ .d-md-inline {
+ display: inline !important;
+ }
+
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-md-block {
+ display: block !important;
+ }
+
+ .d-md-grid {
+ display: grid !important;
+ }
+
+ .d-md-table {
+ display: table !important;
+ }
+
+ .d-md-table-row {
+ display: table-row !important;
+ }
+
+ .d-md-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-md-flex {
+ display: flex !important;
+ }
+
+ .d-md-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-md-none {
+ display: none !important;
+ }
+
+ .flex-md-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-md-row {
+ flex-direction: row !important;
+ }
+
+ .flex-md-column {
+ flex-direction: column !important;
+ }
+
+ .flex-md-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-md-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-md-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-md-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-md-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-md-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-md-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-md-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-md-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .justify-content-md-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-md-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-md-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-md-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-md-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-md-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-md-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-md-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-md-center {
+ align-items: center !important;
+ }
+
+ .align-items-md-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-md-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-md-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-md-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-md-center {
+ align-content: center !important;
+ }
+
+ .align-content-md-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-md-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-md-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-md-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-md-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-md-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-md-center {
+ align-self: center !important;
+ }
+
+ .align-self-md-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-md-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-md-first {
+ order: -1 !important;
+ }
+
+ .order-md-0 {
+ order: 0 !important;
+ }
+
+ .order-md-1 {
+ order: 1 !important;
+ }
+
+ .order-md-2 {
+ order: 2 !important;
+ }
+
+ .order-md-3 {
+ order: 3 !important;
+ }
+
+ .order-md-4 {
+ order: 4 !important;
+ }
+
+ .order-md-5 {
+ order: 5 !important;
+ }
+
+ .order-md-last {
+ order: 6 !important;
+ }
+
+ .m-md-0 {
+ margin: 0 !important;
+ }
+
+ .m-md-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-md-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-md-3 {
+ margin: 1rem !important;
+ }
+
+ .m-md-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-md-5 {
+ margin: 3rem !important;
+ }
+
+ .m-md-auto {
+ margin: auto !important;
+ }
+
+ .mx-md-0 {
+ margin-right: 0 !important;
+ margin-left : 0 !important;
+ }
+
+ .mx-md-1 {
+ margin-right: 0.25rem !important;
+ margin-left : 0.25rem !important;
+ }
+
+ .mx-md-2 {
+ margin-right: 0.5rem !important;
+ margin-left : 0.5rem !important;
+ }
+
+ .mx-md-3 {
+ margin-right: 1rem !important;
+ margin-left : 1rem !important;
+ }
+
+ .mx-md-4 {
+ margin-right: 1.5rem !important;
+ margin-left : 1.5rem !important;
+ }
+
+ .mx-md-5 {
+ margin-right: 3rem !important;
+ margin-left : 3rem !important;
+ }
+
+ .mx-md-auto {
+ margin-right: auto !important;
+ margin-left : auto !important;
+ }
+
+ .my-md-0 {
+ margin-top : 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-md-1 {
+ margin-top : 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-md-2 {
+ margin-top : 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-md-3 {
+ margin-top : 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-md-4 {
+ margin-top : 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-md-5 {
+ margin-top : 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-md-auto {
+ margin-top : auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-md-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-md-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-md-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-md-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-md-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-md-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-md-auto {
+ margin-top: auto !important;
+ }
+
+ .me-md-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-md-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-md-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-md-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-md-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-md-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-md-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-md-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-md-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-md-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-md-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-md-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-md-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-md-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-md-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-md-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-md-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-md-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-md-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-md-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-md-auto {
+ margin-left: auto !important;
+ }
+
+ .p-md-0 {
+ padding: 0 !important;
+ }
+
+ .p-md-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-md-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-md-3 {
+ padding: 1rem !important;
+ }
+
+ .p-md-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-md-5 {
+ padding: 3rem !important;
+ }
+
+ .px-md-0 {
+ padding-right: 0 !important;
+ padding-left : 0 !important;
+ }
+
+ .px-md-1 {
+ padding-right: 0.25rem !important;
+ padding-left : 0.25rem !important;
+ }
+
+ .px-md-2 {
+ padding-right: 0.5rem !important;
+ padding-left : 0.5rem !important;
+ }
+
+ .px-md-3 {
+ padding-right: 1rem !important;
+ padding-left : 1rem !important;
+ }
+
+ .px-md-4 {
+ padding-right: 1.5rem !important;
+ padding-left : 1.5rem !important;
+ }
+
+ .px-md-5 {
+ padding-right: 3rem !important;
+ padding-left : 3rem !important;
+ }
+
+ .py-md-0 {
+ padding-top : 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-md-1 {
+ padding-top : 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-md-2 {
+ padding-top : 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-md-3 {
+ padding-top : 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-md-4 {
+ padding-top : 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-md-5 {
+ padding-top : 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-md-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-md-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-md-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-md-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-md-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-md-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-md-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-md-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-md-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-md-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-md-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-md-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-md-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-md-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-md-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-md-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-md-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-md-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-md-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-md-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-md-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-md-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-md-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-md-5 {
+ padding-left: 3rem !important;
+ }
+}
+
+@media (min-width: 992px) {
+ .d-lg-inline {
+ display: inline !important;
+ }
+
+ .d-lg-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-lg-block {
+ display: block !important;
+ }
+
+ .d-lg-grid {
+ display: grid !important;
+ }
+
+ .d-lg-table {
+ display: table !important;
+ }
+
+ .d-lg-table-row {
+ display: table-row !important;
+ }
+
+ .d-lg-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-lg-flex {
+ display: flex !important;
+ }
+
+ .d-lg-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-lg-none {
+ display: none !important;
+ }
+
+ .flex-lg-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-lg-row {
+ flex-direction: row !important;
+ }
+
+ .flex-lg-column {
+ flex-direction: column !important;
+ }
+
+ .flex-lg-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-lg-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-lg-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-lg-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-lg-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-lg-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-lg-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-lg-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-lg-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .justify-content-lg-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-lg-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-lg-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-lg-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-lg-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-lg-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-lg-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-lg-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-lg-center {
+ align-items: center !important;
+ }
+
+ .align-items-lg-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-lg-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-lg-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-lg-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-lg-center {
+ align-content: center !important;
+ }
+
+ .align-content-lg-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-lg-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-lg-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-lg-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-lg-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-lg-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-lg-center {
+ align-self: center !important;
+ }
+
+ .align-self-lg-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-lg-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-lg-first {
+ order: -1 !important;
+ }
+
+ .order-lg-0 {
+ order: 0 !important;
+ }
+
+ .order-lg-1 {
+ order: 1 !important;
+ }
+
+ .order-lg-2 {
+ order: 2 !important;
+ }
+
+ .order-lg-3 {
+ order: 3 !important;
+ }
+
+ .order-lg-4 {
+ order: 4 !important;
+ }
+
+ .order-lg-5 {
+ order: 5 !important;
+ }
+
+ .order-lg-last {
+ order: 6 !important;
+ }
+
+ .m-lg-0 {
+ margin: 0 !important;
+ }
+
+ .m-lg-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-lg-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-lg-3 {
+ margin: 1rem !important;
+ }
+
+ .m-lg-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-lg-5 {
+ margin: 3rem !important;
+ }
+
+ .m-lg-auto {
+ margin: auto !important;
+ }
+
+ .mx-lg-0 {
+ margin-right: 0 !important;
+ margin-left : 0 !important;
+ }
+
+ .mx-lg-1 {
+ margin-right: 0.25rem !important;
+ margin-left : 0.25rem !important;
+ }
+
+ .mx-lg-2 {
+ margin-right: 0.5rem !important;
+ margin-left : 0.5rem !important;
+ }
+
+ .mx-lg-3 {
+ margin-right: 1rem !important;
+ margin-left : 1rem !important;
+ }
+
+ .mx-lg-4 {
+ margin-right: 1.5rem !important;
+ margin-left : 1.5rem !important;
+ }
+
+ .mx-lg-5 {
+ margin-right: 3rem !important;
+ margin-left : 3rem !important;
+ }
+
+ .mx-lg-auto {
+ margin-right: auto !important;
+ margin-left : auto !important;
+ }
+
+ .my-lg-0 {
+ margin-top : 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-lg-1 {
+ margin-top : 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-lg-2 {
+ margin-top : 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-lg-3 {
+ margin-top : 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-lg-4 {
+ margin-top : 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-lg-5 {
+ margin-top : 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-lg-auto {
+ margin-top : auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-lg-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-lg-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-lg-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-lg-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-lg-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-lg-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-lg-auto {
+ margin-top: auto !important;
+ }
+
+ .me-lg-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-lg-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-lg-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-lg-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-lg-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-lg-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-lg-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-lg-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-lg-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-lg-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-lg-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-lg-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-lg-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-lg-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-lg-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-lg-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-lg-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-lg-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-lg-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-lg-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-lg-auto {
+ margin-left: auto !important;
+ }
+
+ .p-lg-0 {
+ padding: 0 !important;
+ }
+
+ .p-lg-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-lg-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-lg-3 {
+ padding: 1rem !important;
+ }
+
+ .p-lg-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-lg-5 {
+ padding: 3rem !important;
+ }
+
+ .px-lg-0 {
+ padding-right: 0 !important;
+ padding-left : 0 !important;
+ }
+
+ .px-lg-1 {
+ padding-right: 0.25rem !important;
+ padding-left : 0.25rem !important;
+ }
+
+ .px-lg-2 {
+ padding-right: 0.5rem !important;
+ padding-left : 0.5rem !important;
+ }
+
+ .px-lg-3 {
+ padding-right: 1rem !important;
+ padding-left : 1rem !important;
+ }
+
+ .px-lg-4 {
+ padding-right: 1.5rem !important;
+ padding-left : 1.5rem !important;
+ }
+
+ .px-lg-5 {
+ padding-right: 3rem !important;
+ padding-left : 3rem !important;
+ }
+
+ .py-lg-0 {
+ padding-top : 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-lg-1 {
+ padding-top : 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-lg-2 {
+ padding-top : 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-lg-3 {
+ padding-top : 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-lg-4 {
+ padding-top : 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-lg-5 {
+ padding-top : 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-lg-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-lg-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-lg-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-lg-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-lg-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-lg-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-lg-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-lg-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-lg-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-lg-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-lg-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-lg-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-lg-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-lg-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-lg-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-lg-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-lg-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-lg-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-lg-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-lg-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-lg-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-lg-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-lg-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-lg-5 {
+ padding-left: 3rem !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .d-xl-inline {
+ display: inline !important;
+ }
+
+ .d-xl-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-xl-block {
+ display: block !important;
+ }
+
+ .d-xl-grid {
+ display: grid !important;
+ }
+
+ .d-xl-table {
+ display: table !important;
+ }
+
+ .d-xl-table-row {
+ display: table-row !important;
+ }
+
+ .d-xl-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-xl-flex {
+ display: flex !important;
+ }
+
+ .d-xl-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-xl-none {
+ display: none !important;
+ }
+
+ .flex-xl-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-xl-row {
+ flex-direction: row !important;
+ }
+
+ .flex-xl-column {
+ flex-direction: column !important;
+ }
+
+ .flex-xl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-xl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-xl-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-xl-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-xl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-xl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-xl-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-xl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-xl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .justify-content-xl-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-xl-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-xl-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-xl-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-xl-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-xl-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-xl-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-xl-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-xl-center {
+ align-items: center !important;
+ }
+
+ .align-items-xl-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-xl-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-xl-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-xl-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-xl-center {
+ align-content: center !important;
+ }
+
+ .align-content-xl-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-xl-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-xl-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-xl-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-xl-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-xl-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-xl-center {
+ align-self: center !important;
+ }
+
+ .align-self-xl-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-xl-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-xl-first {
+ order: -1 !important;
+ }
+
+ .order-xl-0 {
+ order: 0 !important;
+ }
+
+ .order-xl-1 {
+ order: 1 !important;
+ }
+
+ .order-xl-2 {
+ order: 2 !important;
+ }
+
+ .order-xl-3 {
+ order: 3 !important;
+ }
+
+ .order-xl-4 {
+ order: 4 !important;
+ }
+
+ .order-xl-5 {
+ order: 5 !important;
+ }
+
+ .order-xl-last {
+ order: 6 !important;
+ }
+
+ .m-xl-0 {
+ margin: 0 !important;
+ }
+
+ .m-xl-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-xl-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-xl-3 {
+ margin: 1rem !important;
+ }
+
+ .m-xl-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-xl-5 {
+ margin: 3rem !important;
+ }
+
+ .m-xl-auto {
+ margin: auto !important;
+ }
+
+ .mx-xl-0 {
+ margin-right: 0 !important;
+ margin-left : 0 !important;
+ }
+
+ .mx-xl-1 {
+ margin-right: 0.25rem !important;
+ margin-left : 0.25rem !important;
+ }
+
+ .mx-xl-2 {
+ margin-right: 0.5rem !important;
+ margin-left : 0.5rem !important;
+ }
+
+ .mx-xl-3 {
+ margin-right: 1rem !important;
+ margin-left : 1rem !important;
+ }
+
+ .mx-xl-4 {
+ margin-right: 1.5rem !important;
+ margin-left : 1.5rem !important;
+ }
+
+ .mx-xl-5 {
+ margin-right: 3rem !important;
+ margin-left : 3rem !important;
+ }
+
+ .mx-xl-auto {
+ margin-right: auto !important;
+ margin-left : auto !important;
+ }
+
+ .my-xl-0 {
+ margin-top : 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-xl-1 {
+ margin-top : 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-xl-2 {
+ margin-top : 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-xl-3 {
+ margin-top : 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-xl-4 {
+ margin-top : 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-xl-5 {
+ margin-top : 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-xl-auto {
+ margin-top : auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-xl-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-xl-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-xl-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-xl-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-xl-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-xl-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-xl-auto {
+ margin-top: auto !important;
+ }
+
+ .me-xl-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-xl-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-xl-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-xl-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-xl-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-xl-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-xl-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-xl-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-xl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-xl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-xl-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-xl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-xl-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-xl-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-xl-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-xl-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-xl-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-xl-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-xl-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-xl-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-xl-auto {
+ margin-left: auto !important;
+ }
+
+ .p-xl-0 {
+ padding: 0 !important;
+ }
+
+ .p-xl-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-xl-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-xl-3 {
+ padding: 1rem !important;
+ }
+
+ .p-xl-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-xl-5 {
+ padding: 3rem !important;
+ }
+
+ .px-xl-0 {
+ padding-right: 0 !important;
+ padding-left : 0 !important;
+ }
+
+ .px-xl-1 {
+ padding-right: 0.25rem !important;
+ padding-left : 0.25rem !important;
+ }
+
+ .px-xl-2 {
+ padding-right: 0.5rem !important;
+ padding-left : 0.5rem !important;
+ }
+
+ .px-xl-3 {
+ padding-right: 1rem !important;
+ padding-left : 1rem !important;
+ }
+
+ .px-xl-4 {
+ padding-right: 1.5rem !important;
+ padding-left : 1.5rem !important;
+ }
+
+ .px-xl-5 {
+ padding-right: 3rem !important;
+ padding-left : 3rem !important;
+ }
+
+ .py-xl-0 {
+ padding-top : 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-xl-1 {
+ padding-top : 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-xl-2 {
+ padding-top : 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-xl-3 {
+ padding-top : 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-xl-4 {
+ padding-top : 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-xl-5 {
+ padding-top : 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-xl-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-xl-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-xl-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-xl-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-xl-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-xl-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-xl-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-xl-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-xl-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-xl-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-xl-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-xl-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-xl-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-xl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-xl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-xl-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-xl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-xl-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-xl-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-xl-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-xl-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-xl-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-xl-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-xl-5 {
+ padding-left: 3rem !important;
+ }
+}
+
+@media (min-width: 1400px) {
+ .d-xxl-inline {
+ display: inline !important;
+ }
+
+ .d-xxl-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-xxl-block {
+ display: block !important;
+ }
+
+ .d-xxl-grid {
+ display: grid !important;
+ }
+
+ .d-xxl-table {
+ display: table !important;
+ }
+
+ .d-xxl-table-row {
+ display: table-row !important;
+ }
+
+ .d-xxl-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-xxl-flex {
+ display: flex !important;
+ }
+
+ .d-xxl-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-xxl-none {
+ display: none !important;
+ }
+
+ .flex-xxl-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-xxl-row {
+ flex-direction: row !important;
+ }
+
+ .flex-xxl-column {
+ flex-direction: column !important;
+ }
+
+ .flex-xxl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-xxl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-xxl-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-xxl-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-xxl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-xxl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-xxl-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-xxl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-xxl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .justify-content-xxl-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-xxl-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-xxl-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-xxl-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-xxl-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-xxl-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-xxl-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-xxl-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-xxl-center {
+ align-items: center !important;
+ }
+
+ .align-items-xxl-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-xxl-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-xxl-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-xxl-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-xxl-center {
+ align-content: center !important;
+ }
+
+ .align-content-xxl-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-xxl-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-xxl-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-xxl-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-xxl-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-xxl-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-xxl-center {
+ align-self: center !important;
+ }
+
+ .align-self-xxl-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-xxl-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-xxl-first {
+ order: -1 !important;
+ }
+
+ .order-xxl-0 {
+ order: 0 !important;
+ }
+
+ .order-xxl-1 {
+ order: 1 !important;
+ }
+
+ .order-xxl-2 {
+ order: 2 !important;
+ }
+
+ .order-xxl-3 {
+ order: 3 !important;
+ }
+
+ .order-xxl-4 {
+ order: 4 !important;
+ }
+
+ .order-xxl-5 {
+ order: 5 !important;
+ }
+
+ .order-xxl-last {
+ order: 6 !important;
+ }
+
+ .m-xxl-0 {
+ margin: 0 !important;
+ }
+
+ .m-xxl-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-xxl-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-xxl-3 {
+ margin: 1rem !important;
+ }
+
+ .m-xxl-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-xxl-5 {
+ margin: 3rem !important;
+ }
+
+ .m-xxl-auto {
+ margin: auto !important;
+ }
+
+ .mx-xxl-0 {
+ margin-right: 0 !important;
+ margin-left : 0 !important;
+ }
+
+ .mx-xxl-1 {
+ margin-right: 0.25rem !important;
+ margin-left : 0.25rem !important;
+ }
+
+ .mx-xxl-2 {
+ margin-right: 0.5rem !important;
+ margin-left : 0.5rem !important;
+ }
+
+ .mx-xxl-3 {
+ margin-right: 1rem !important;
+ margin-left : 1rem !important;
+ }
+
+ .mx-xxl-4 {
+ margin-right: 1.5rem !important;
+ margin-left : 1.5rem !important;
+ }
+
+ .mx-xxl-5 {
+ margin-right: 3rem !important;
+ margin-left : 3rem !important;
+ }
+
+ .mx-xxl-auto {
+ margin-right: auto !important;
+ margin-left : auto !important;
+ }
+
+ .my-xxl-0 {
+ margin-top : 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-xxl-1 {
+ margin-top : 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-xxl-2 {
+ margin-top : 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-xxl-3 {
+ margin-top : 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-xxl-4 {
+ margin-top : 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-xxl-5 {
+ margin-top : 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-xxl-auto {
+ margin-top : auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-xxl-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-xxl-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-xxl-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-xxl-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-xxl-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-xxl-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-xxl-auto {
+ margin-top: auto !important;
+ }
+
+ .me-xxl-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-xxl-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-xxl-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-xxl-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-xxl-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-xxl-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-xxl-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-xxl-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-xxl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-xxl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-xxl-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-xxl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-xxl-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-xxl-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-xxl-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-xxl-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-xxl-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-xxl-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-xxl-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-xxl-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-xxl-auto {
+ margin-left: auto !important;
+ }
+
+ .p-xxl-0 {
+ padding: 0 !important;
+ }
+
+ .p-xxl-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-xxl-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-xxl-3 {
+ padding: 1rem !important;
+ }
+
+ .p-xxl-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-xxl-5 {
+ padding: 3rem !important;
+ }
+
+ .px-xxl-0 {
+ padding-right: 0 !important;
+ padding-left : 0 !important;
+ }
+
+ .px-xxl-1 {
+ padding-right: 0.25rem !important;
+ padding-left : 0.25rem !important;
+ }
+
+ .px-xxl-2 {
+ padding-right: 0.5rem !important;
+ padding-left : 0.5rem !important;
+ }
+
+ .px-xxl-3 {
+ padding-right: 1rem !important;
+ padding-left : 1rem !important;
+ }
+
+ .px-xxl-4 {
+ padding-right: 1.5rem !important;
+ padding-left : 1.5rem !important;
+ }
+
+ .px-xxl-5 {
+ padding-right: 3rem !important;
+ padding-left : 3rem !important;
+ }
+
+ .py-xxl-0 {
+ padding-top : 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-xxl-1 {
+ padding-top : 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-xxl-2 {
+ padding-top : 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-xxl-3 {
+ padding-top : 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-xxl-4 {
+ padding-top : 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-xxl-5 {
+ padding-top : 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-xxl-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-xxl-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-xxl-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-xxl-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-xxl-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-xxl-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-xxl-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-xxl-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-xxl-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-xxl-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-xxl-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-xxl-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-xxl-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-xxl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-xxl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-xxl-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-xxl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-xxl-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-xxl-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-xxl-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-xxl-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-xxl-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-xxl-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-xxl-5 {
+ padding-left: 3rem !important;
+ }
+}
+
+@media print {
+ .d-print-inline {
+ display: inline !important;
+ }
+
+ .d-print-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-print-block {
+ display: block !important;
+ }
+
+ .d-print-grid {
+ display: grid !important;
+ }
+
+ .d-print-table {
+ display: table !important;
+ }
+
+ .d-print-table-row {
+ display: table-row !important;
+ }
+
+ .d-print-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-print-flex {
+ display: flex !important;
+ }
+
+ .d-print-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-print-none {
+ display: none !important;
+ }
+}
+
+// Tooltips
+.tooltip {
+ position : absolute;
+ z-index : 1080;
+ display : block;
+ margin : 0;
+ font-family : var(--bs-font-sans-serif);
+ font-style : normal;
+ font-weight : 400;
+ line-height : 1.5;
+ text-align : left;
+ text-align : start;
+ text-decoration: none;
+ text-shadow : none;
+ text-transform : none;
+ letter-spacing : normal;
+ word-break : normal;
+ word-spacing : normal;
+ white-space : normal;
+ line-break : auto;
+ font-size : 0.875rem;
+ word-wrap : break-word;
+ opacity : 0;
+ pointer-events: none;
+}
+
+.tooltip.show {
+ opacity: 0.9;
+}
+
+.tooltip .tooltip-arrow {
+ position: absolute;
+ display : block;
+ width : 0.8rem;
+ height : 0.4rem;
+}
+
+.tooltip .tooltip-arrow::before {
+ position : absolute;
+ content : "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-tooltip-top,
+.bs-tooltip-auto[data-popper-placement^=top] {
+ padding: 0.4rem 0;
+}
+
+.bs-tooltip-top .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+ bottom: 0;
+}
+
+.bs-tooltip-top .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ top : -1px;
+ border-width : 0.4rem 0.4rem 0;
+ border-top-color: #000;
+}
+
+.bs-tooltip-end,
+.bs-tooltip-auto[data-popper-placement^=right] {
+ padding: 0 0.4rem;
+}
+
+.bs-tooltip-end .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+ left : 0;
+ width : 0.4rem;
+ height: 0.8rem;
+}
+
+.bs-tooltip-end .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+ right : -1px;
+ border-width : 0.4rem 0.4rem 0.4rem 0;
+ border-right-color: #000;
+}
+
+.bs-tooltip-bottom,
+.bs-tooltip-auto[data-popper-placement^=bottom] {
+ padding: 0.4rem 0;
+}
+
+.bs-tooltip-bottom .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+ top: 0;
+}
+
+.bs-tooltip-bottom .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ bottom : -1px;
+ border-width : 0 0.4rem 0.4rem;
+ border-bottom-color: #000;
+}
+
+.bs-tooltip-start,
+.bs-tooltip-auto[data-popper-placement^=left] {
+ padding: 0 0.4rem;
+}
+
+.bs-tooltip-start .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+ right : 0;
+ width : 0.4rem;
+ height: 0.8rem;
+}
+
+.bs-tooltip-start .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+ left : -1px;
+ border-width : 0.4rem 0 0.4rem 0.4rem;
+ border-left-color: #000;
+}
+
+.tooltip-inner {
+ max-width : 200px;
+ padding : 0.25rem 0.5rem;
+ color : #fff;
+ text-align : center;
+ background-color: #000;
+ border-radius : 0.25rem;
+ -webkit-user-select: none;
+ user-select: none;
+ pointer-events: none;
+}
+
+.popover {
+ position: absolute;
+ top : 0;
+ left : 0
+ /* rtl:ignore */
+ ;
+ z-index : 1070;
+ display : block;
+ max-width : 276px;
+ font-family : var(--bs-font-sans-serif);
+ font-style : normal;
+ font-weight : 400;
+ line-height : 1.5;
+ text-align : left;
+ text-align : start;
+ text-decoration : none;
+ text-shadow : none;
+ text-transform : none;
+ letter-spacing : normal;
+ word-break : normal;
+ word-spacing : normal;
+ white-space : normal;
+ line-break : auto;
+ font-size : 0.875rem;
+ word-wrap : break-word;
+ background-color: #fff;
+ background-clip : padding-box;
+ border : 1px solid rgba(0, 0, 0, 0.2);
+ border-radius : 0.3rem;
+}
+
+.popover .popover-arrow {
+ position: absolute;
+ display : block;
+ width : 1rem;
+ height : 0.5rem;
+}
+
+.popover .popover-arrow::before,
+.popover .popover-arrow::after {
+ position : absolute;
+ display : block;
+ content : "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-popover-top>.popover-arrow,
+.bs-popover-auto[data-popper-placement^=top]>.popover-arrow {
+ bottom: calc(-0.5rem - 1px);
+}
+
+.bs-popover-top>.popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before {
+ bottom : 0;
+ border-width : 0.5rem 0.5rem 0;
+ border-top-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-top>.popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after {
+ bottom : 1px;
+ border-width : 0.5rem 0.5rem 0;
+ border-top-color: #fff;
+}
+
+.bs-popover-end>.popover-arrow,
+.bs-popover-auto[data-popper-placement^=right]>.popover-arrow {
+ left : calc(-0.5rem - 1px);
+ width : 0.5rem;
+ height: 1rem;
+}
+
+.bs-popover-end>.popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before {
+ left : 0;
+ border-width : 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-end>.popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after {
+ left : 1px;
+ border-width : 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: #fff;
+}
+
+.bs-popover-bottom>.popover-arrow,
+.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow {
+ top: calc(-0.5rem - 1px);
+}
+
+.bs-popover-bottom>.popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before {
+ top : 0;
+ border-width : 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-bottom>.popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after {
+ top : 1px;
+ border-width : 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: #fff;
+}
+
+.bs-popover-bottom .popover-header::before,
+.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+ position : absolute;
+ top : 0;
+ left : 50%;
+ display : block;
+ width : 1rem;
+ margin-left : -0.5rem;
+ content : "";
+ border-bottom: 1px solid #f0f0f0;
+}
+
+.bs-popover-start>.popover-arrow,
+.bs-popover-auto[data-popper-placement^=left]>.popover-arrow {
+ right : calc(-0.5rem - 1px);
+ width : 0.5rem;
+ height: 1rem;
+}
+
+.bs-popover-start>.popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before {
+ right : 0;
+ border-width : 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-start>.popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after {
+ right : 1px;
+ border-width : 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: #fff;
+}
+
+.popover-header {
+ padding : 0.5rem 1rem;
+ margin-bottom : 0;
+ font-size : 1rem;
+ background-color : #f0f0f0;
+ border-bottom : 1px solid rgba(0, 0, 0, 0.2);
+ border-top-left-radius : calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+
+.popover-header:empty {
+ display: none;
+}
+
+.popover-body {
+ padding: 1rem 1rem;
+ color : #212529;
+}
+
+// carousel
+.carousel {
+ position: relative;
+}
+
+.carousel.pointer-event {
+ -ms-touch-action: pan-y;
+ touch-action: pan-y;
+}
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+
+.carousel-inner::after {
+ display: block;
+ clear: both;
+ content: "";
+}
+
+.carousel-item {
+ position: relative;
+ display: none;
+ float: left;
+ width: 100%;
+ margin-right: -100%;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ transition: -webkit-transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .carousel-item {
+ transition: none;
+ }
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+ display: block;
+}
+
+.carousel-item-next:not(.carousel-item-left),
+.active.carousel-item-right {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+}
+
+.carousel-item-prev:not(.carousel-item-right),
+.active.carousel-item-left {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+}
+
+.carousel-fade .carousel-item {
+ opacity: 0;
+ transition-property: opacity;
+ -webkit-transform: none;
+ transform: none;
+}
+
+.carousel-fade .carousel-item.active,
+.carousel-fade .carousel-item-next.carousel-item-left,
+.carousel-fade .carousel-item-prev.carousel-item-right {
+ z-index: 1;
+ opacity: 1;
+}
+
+.carousel-fade .active.carousel-item-left,
+.carousel-fade .active.carousel-item-right {
+ z-index: 0;
+ opacity: 0;
+ transition: opacity 0s 0.6s;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .carousel-fade .active.carousel-item-left,
+ .carousel-fade .active.carousel-item-right {
+ transition: none;
+ }
+}
+
+.carousel-control-prev,
+.carousel-control-next {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ z-index: 1;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ width: 15%;
+ padding: 0;
+ color: #fff;
+ text-align: center;
+ background: none;
+ border: 0;
+ opacity: 0.5;
+ transition: opacity 0.15s ease;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .carousel-control-prev,
+ .carousel-control-next {
+ transition: none;
+ }
+}
+
+.carousel-control-prev:hover, .carousel-control-prev:focus,
+.carousel-control-next:hover,
+.carousel-control-next:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ opacity: 0.9;
+}
+
+.carousel-control-prev {
+ left: 0;
+}
+
+.carousel-control-next {
+ right: 0;
+}
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ background: 50% / 100% 100% no-repeat;
+}
+
+.carousel-control-prev-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e");
+}
+
+.carousel-control-next-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e");
+}
+
+.carousel-indicators {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 15;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-pack: center;
+ justify-content: center;
+ padding-left: 0;
+ margin-right: 15%;
+ margin-left: 15%;
+ list-style: none;
+}
+
+.carousel-indicators li {
+ box-sizing: content-box;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto;
+ width: 30px;
+ height: 3px;
+ margin-right: 3px;
+ margin-left: 3px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #fff;
+ background-clip: padding-box;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ opacity: .5;
+ transition: opacity 0.6s ease;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .carousel-indicators li {
+ transition: none;
+ }
+}
+
+.carousel-indicators .active {
+ opacity: 1;
+}
+
+.carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 20px;
+ left: 15%;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+}
diff --git a/src/renderer/less/codicon.css b/src/renderer/less/codicon.css
new file mode 100644
index 00000000..bd00654c
--- /dev/null
+++ b/src/renderer/less/codicon.css
@@ -0,0 +1,553 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+@font-face {
+ font-family: "codicon";
+ font-display: block;
+ src: url("codicon.ttf") format("truetype");
+}
+
+.codicon[class*='codicon-'] {
+ font: normal normal normal 16px/1 codicon;
+ display: inline-block;
+ text-decoration: none;
+ text-rendering: auto;
+ text-align: center;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+}
+
+/*---------------------
+ * Modifiers
+ *-------------------*/
+
+@keyframes codicon-spin {
+ 100% {
+ transform:rotate(360deg);
+ }
+}
+
+.codicon-sync.codicon-modifier-spin,
+.codicon-loading.codicon-modifier-spin,
+.codicon-gear.codicon-modifier-spin {
+ /* Use steps to throttle FPS to reduce CPU usage */
+ animation: codicon-spin 1.5s steps(30) infinite;
+}
+
+.codicon-modifier-disabled {
+ opacity: 0.5;
+}
+
+/* custom speed & easing for loading icon */
+.codicon-loading {
+ animation-duration: 1s !important;
+ animation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;
+}
+
+/*---------------------
+ * Icons
+ *-------------------*/
+
+.codicon-add:before { content: "\ea60" }
+.codicon-plus:before { content: "\ea60" }
+.codicon-gist-new:before { content: "\ea60" }
+.codicon-repo-create:before { content: "\ea60" }
+.codicon-lightbulb:before { content: "\ea61" }
+.codicon-light-bulb:before { content: "\ea61" }
+.codicon-repo:before { content: "\ea62" }
+.codicon-repo-delete:before { content: "\ea62" }
+.codicon-gist-fork:before { content: "\ea63" }
+.codicon-repo-forked:before { content: "\ea63" }
+.codicon-git-pull-request:before { content: "\ea64" }
+.codicon-git-pull-request-abandoned:before { content: "\ea64" }
+.codicon-record-keys:before { content: "\ea65" }
+.codicon-keyboard:before { content: "\ea65" }
+.codicon-tag:before { content: "\ea66" }
+.codicon-tag-add:before { content: "\ea66" }
+.codicon-tag-remove:before { content: "\ea66" }
+.codicon-person:before { content: "\ea67" }
+.codicon-person-follow:before { content: "\ea67" }
+.codicon-person-outline:before { content: "\ea67" }
+.codicon-person-filled:before { content: "\ea67" }
+.codicon-git-branch:before { content: "\ea68" }
+.codicon-git-branch-create:before { content: "\ea68" }
+.codicon-git-branch-delete:before { content: "\ea68" }
+.codicon-source-control:before { content: "\ea68" }
+.codicon-mirror:before { content: "\ea69" }
+.codicon-mirror-public:before { content: "\ea69" }
+.codicon-star:before { content: "\ea6a" }
+.codicon-star-add:before { content: "\ea6a" }
+.codicon-star-delete:before { content: "\ea6a" }
+.codicon-star-empty:before { content: "\ea6a" }
+.codicon-comment:before { content: "\ea6b" }
+.codicon-comment-add:before { content: "\ea6b" }
+.codicon-alert:before { content: "\ea6c" }
+.codicon-warning:before { content: "\ea6c" }
+.codicon-search:before { content: "\ea6d" }
+.codicon-search-save:before { content: "\ea6d" }
+.codicon-log-out:before { content: "\ea6e" }
+.codicon-sign-out:before { content: "\ea6e" }
+.codicon-log-in:before { content: "\ea6f" }
+.codicon-sign-in:before { content: "\ea6f" }
+.codicon-eye:before { content: "\ea70" }
+.codicon-eye-unwatch:before { content: "\ea70" }
+.codicon-eye-watch:before { content: "\ea70" }
+.codicon-circle-filled:before { content: "\ea71" }
+.codicon-primitive-dot:before { content: "\ea71" }
+.codicon-close-dirty:before { content: "\ea71" }
+.codicon-debug-breakpoint:before { content: "\ea71" }
+.codicon-debug-breakpoint-disabled:before { content: "\ea71" }
+.codicon-debug-hint:before { content: "\ea71" }
+.codicon-primitive-square:before { content: "\ea72" }
+.codicon-edit:before { content: "\ea73" }
+.codicon-pencil:before { content: "\ea73" }
+.codicon-info:before { content: "\ea74" }
+.codicon-issue-opened:before { content: "\ea74" }
+.codicon-gist-private:before { content: "\ea75" }
+.codicon-git-fork-private:before { content: "\ea75" }
+.codicon-lock:before { content: "\ea75" }
+.codicon-mirror-private:before { content: "\ea75" }
+.codicon-close:before { content: "\ea76" }
+.codicon-remove-close:before { content: "\ea76" }
+.codicon-x:before { content: "\ea76" }
+.codicon-repo-sync:before { content: "\ea77" }
+.codicon-sync:before { content: "\ea77" }
+.codicon-clone:before { content: "\ea78" }
+.codicon-desktop-download:before { content: "\ea78" }
+.codicon-beaker:before { content: "\ea79" }
+.codicon-microscope:before { content: "\ea79" }
+.codicon-vm:before { content: "\ea7a" }
+.codicon-device-desktop:before { content: "\ea7a" }
+.codicon-file:before { content: "\ea7b" }
+.codicon-file-text:before { content: "\ea7b" }
+.codicon-more:before { content: "\ea7c" }
+.codicon-ellipsis:before { content: "\ea7c" }
+.codicon-kebab-horizontal:before { content: "\ea7c" }
+.codicon-mail-reply:before { content: "\ea7d" }
+.codicon-reply:before { content: "\ea7d" }
+.codicon-organization:before { content: "\ea7e" }
+.codicon-organization-filled:before { content: "\ea7e" }
+.codicon-organization-outline:before { content: "\ea7e" }
+.codicon-new-file:before { content: "\ea7f" }
+.codicon-file-add:before { content: "\ea7f" }
+.codicon-new-folder:before { content: "\ea80" }
+.codicon-file-directory-create:before { content: "\ea80" }
+.codicon-trash:before { content: "\ea81" }
+.codicon-trashcan:before { content: "\ea81" }
+.codicon-history:before { content: "\ea82" }
+.codicon-clock:before { content: "\ea82" }
+.codicon-folder:before { content: "\ea83" }
+.codicon-file-directory:before { content: "\ea83" }
+.codicon-symbol-folder:before { content: "\ea83" }
+.codicon-logo-github:before { content: "\ea84" }
+.codicon-mark-github:before { content: "\ea84" }
+.codicon-github:before { content: "\ea84" }
+.codicon-terminal:before { content: "\ea85" }
+.codicon-console:before { content: "\ea85" }
+.codicon-repl:before { content: "\ea85" }
+.codicon-zap:before { content: "\ea86" }
+.codicon-symbol-event:before { content: "\ea86" }
+.codicon-error:before { content: "\ea87" }
+.codicon-stop:before { content: "\ea87" }
+.codicon-variable:before { content: "\ea88" }
+.codicon-symbol-variable:before { content: "\ea88" }
+.codicon-array:before { content: "\ea8a" }
+.codicon-symbol-array:before { content: "\ea8a" }
+.codicon-symbol-module:before { content: "\ea8b" }
+.codicon-symbol-package:before { content: "\ea8b" }
+.codicon-symbol-namespace:before { content: "\ea8b" }
+.codicon-symbol-object:before { content: "\ea8b" }
+.codicon-symbol-method:before { content: "\ea8c" }
+.codicon-symbol-function:before { content: "\ea8c" }
+.codicon-symbol-constructor:before { content: "\ea8c" }
+.codicon-symbol-boolean:before { content: "\ea8f" }
+.codicon-symbol-null:before { content: "\ea8f" }
+.codicon-symbol-numeric:before { content: "\ea90" }
+.codicon-symbol-number:before { content: "\ea90" }
+.codicon-symbol-structure:before { content: "\ea91" }
+.codicon-symbol-struct:before { content: "\ea91" }
+.codicon-symbol-parameter:before { content: "\ea92" }
+.codicon-symbol-type-parameter:before { content: "\ea92" }
+.codicon-symbol-key:before { content: "\ea93" }
+.codicon-symbol-text:before { content: "\ea93" }
+.codicon-symbol-reference:before { content: "\ea94" }
+.codicon-go-to-file:before { content: "\ea94" }
+.codicon-symbol-enum:before { content: "\ea95" }
+.codicon-symbol-value:before { content: "\ea95" }
+.codicon-symbol-ruler:before { content: "\ea96" }
+.codicon-symbol-unit:before { content: "\ea96" }
+.codicon-activate-breakpoints:before { content: "\ea97" }
+.codicon-archive:before { content: "\ea98" }
+.codicon-arrow-both:before { content: "\ea99" }
+.codicon-arrow-down:before { content: "\ea9a" }
+.codicon-arrow-left:before { content: "\ea9b" }
+.codicon-arrow-right:before { content: "\ea9c" }
+.codicon-arrow-small-down:before { content: "\ea9d" }
+.codicon-arrow-small-left:before { content: "\ea9e" }
+.codicon-arrow-small-right:before { content: "\ea9f" }
+.codicon-arrow-small-up:before { content: "\eaa0" }
+.codicon-arrow-up:before { content: "\eaa1" }
+.codicon-bell:before { content: "\eaa2" }
+.codicon-bold:before { content: "\eaa3" }
+.codicon-book:before { content: "\eaa4" }
+.codicon-bookmark:before { content: "\eaa5" }
+.codicon-debug-breakpoint-conditional-unverified:before { content: "\eaa6" }
+.codicon-debug-breakpoint-conditional:before { content: "\eaa7" }
+.codicon-debug-breakpoint-conditional-disabled:before { content: "\eaa7" }
+.codicon-debug-breakpoint-data-unverified:before { content: "\eaa8" }
+.codicon-debug-breakpoint-data:before { content: "\eaa9" }
+.codicon-debug-breakpoint-data-disabled:before { content: "\eaa9" }
+.codicon-debug-breakpoint-log-unverified:before { content: "\eaaa" }
+.codicon-debug-breakpoint-log:before { content: "\eaab" }
+.codicon-debug-breakpoint-log-disabled:before { content: "\eaab" }
+.codicon-briefcase:before { content: "\eaac" }
+.codicon-broadcast:before { content: "\eaad" }
+.codicon-browser:before { content: "\eaae" }
+.codicon-bug:before { content: "\eaaf" }
+.codicon-calendar:before { content: "\eab0" }
+.codicon-case-sensitive:before { content: "\eab1" }
+.codicon-check:before { content: "\eab2" }
+.codicon-checklist:before { content: "\eab3" }
+.codicon-chevron-down:before { content: "\eab4" }
+.codicon-chevron-left:before { content: "\eab5" }
+.codicon-chevron-right:before { content: "\eab6" }
+.codicon-chevron-up:before { content: "\eab7" }
+.codicon-chrome-close:before { content: "\eab8" }
+.codicon-chrome-maximize:before { content: "\eab9" }
+.codicon-chrome-minimize:before { content: "\eaba" }
+.codicon-chrome-restore:before { content: "\eabb" }
+.codicon-circle-outline:before { content: "\eabc" }
+.codicon-debug-breakpoint-unverified:before { content: "\eabc" }
+.codicon-circle-slash:before { content: "\eabd" }
+.codicon-circuit-board:before { content: "\eabe" }
+.codicon-clear-all:before { content: "\eabf" }
+.codicon-clippy:before { content: "\eac0" }
+.codicon-close-all:before { content: "\eac1" }
+.codicon-cloud-download:before { content: "\eac2" }
+.codicon-cloud-upload:before { content: "\eac3" }
+.codicon-code:before { content: "\eac4" }
+.codicon-collapse-all:before { content: "\eac5" }
+.codicon-color-mode:before { content: "\eac6" }
+.codicon-comment-discussion:before { content: "\eac7" }
+.codicon-credit-card:before { content: "\eac9" }
+.codicon-dash:before { content: "\eacc" }
+.codicon-dashboard:before { content: "\eacd" }
+.codicon-database:before { content: "\eace" }
+.codicon-debug-continue:before { content: "\eacf" }
+.codicon-debug-disconnect:before { content: "\ead0" }
+.codicon-debug-pause:before { content: "\ead1" }
+.codicon-debug-restart:before { content: "\ead2" }
+.codicon-debug-start:before { content: "\ead3" }
+.codicon-debug-step-into:before { content: "\ead4" }
+.codicon-debug-step-out:before { content: "\ead5" }
+.codicon-debug-step-over:before { content: "\ead6" }
+.codicon-debug-stop:before { content: "\ead7" }
+.codicon-debug:before { content: "\ead8" }
+.codicon-device-camera-video:before { content: "\ead9" }
+.codicon-device-camera:before { content: "\eada" }
+.codicon-device-mobile:before { content: "\eadb" }
+.codicon-diff-added:before { content: "\eadc" }
+.codicon-diff-ignored:before { content: "\eadd" }
+.codicon-diff-modified:before { content: "\eade" }
+.codicon-diff-removed:before { content: "\eadf" }
+.codicon-diff-renamed:before { content: "\eae0" }
+.codicon-diff:before { content: "\eae1" }
+.codicon-discard:before { content: "\eae2" }
+.codicon-editor-layout:before { content: "\eae3" }
+.codicon-empty-window:before { content: "\eae4" }
+.codicon-exclude:before { content: "\eae5" }
+.codicon-extensions:before { content: "\eae6" }
+.codicon-eye-closed:before { content: "\eae7" }
+.codicon-file-binary:before { content: "\eae8" }
+.codicon-file-code:before { content: "\eae9" }
+.codicon-file-media:before { content: "\eaea" }
+.codicon-file-pdf:before { content: "\eaeb" }
+.codicon-file-submodule:before { content: "\eaec" }
+.codicon-file-symlink-directory:before { content: "\eaed" }
+.codicon-file-symlink-file:before { content: "\eaee" }
+.codicon-file-zip:before { content: "\eaef" }
+.codicon-files:before { content: "\eaf0" }
+.codicon-filter:before { content: "\eaf1" }
+.codicon-flame:before { content: "\eaf2" }
+.codicon-fold-down:before { content: "\eaf3" }
+.codicon-fold-up:before { content: "\eaf4" }
+.codicon-fold:before { content: "\eaf5" }
+.codicon-folder-active:before { content: "\eaf6" }
+.codicon-folder-opened:before { content: "\eaf7" }
+.codicon-gear:before { content: "\eaf8" }
+.codicon-gift:before { content: "\eaf9" }
+.codicon-gist-secret:before { content: "\eafa" }
+.codicon-gist:before { content: "\eafb" }
+.codicon-git-commit:before { content: "\eafc" }
+.codicon-git-compare:before { content: "\eafd" }
+.codicon-compare-changes:before { content: "\eafd" }
+.codicon-git-merge:before { content: "\eafe" }
+.codicon-github-action:before { content: "\eaff" }
+.codicon-github-alt:before { content: "\eb00" }
+.codicon-globe:before { content: "\eb01" }
+.codicon-grabber:before { content: "\eb02" }
+.codicon-graph:before { content: "\eb03" }
+.codicon-gripper:before { content: "\eb04" }
+.codicon-heart:before { content: "\eb05" }
+.codicon-home:before { content: "\eb06" }
+.codicon-horizontal-rule:before { content: "\eb07" }
+.codicon-hubot:before { content: "\eb08" }
+.codicon-inbox:before { content: "\eb09" }
+.codicon-issue-reopened:before { content: "\eb0b" }
+.codicon-issues:before { content: "\eb0c" }
+.codicon-italic:before { content: "\eb0d" }
+.codicon-jersey:before { content: "\eb0e" }
+.codicon-json:before { content: "\eb0f" }
+.codicon-kebab-vertical:before { content: "\eb10" }
+.codicon-key:before { content: "\eb11" }
+.codicon-law:before { content: "\eb12" }
+.codicon-lightbulb-autofix:before { content: "\eb13" }
+.codicon-link-external:before { content: "\eb14" }
+.codicon-link:before { content: "\eb15" }
+.codicon-list-ordered:before { content: "\eb16" }
+.codicon-list-unordered:before { content: "\eb17" }
+.codicon-live-share:before { content: "\eb18" }
+.codicon-loading:before { content: "\eb19" }
+.codicon-location:before { content: "\eb1a" }
+.codicon-mail-read:before { content: "\eb1b" }
+.codicon-mail:before { content: "\eb1c" }
+.codicon-markdown:before { content: "\eb1d" }
+.codicon-megaphone:before { content: "\eb1e" }
+.codicon-mention:before { content: "\eb1f" }
+.codicon-milestone:before { content: "\eb20" }
+.codicon-mortar-board:before { content: "\eb21" }
+.codicon-move:before { content: "\eb22" }
+.codicon-multiple-windows:before { content: "\eb23" }
+.codicon-mute:before { content: "\eb24" }
+.codicon-no-newline:before { content: "\eb25" }
+.codicon-note:before { content: "\eb26" }
+.codicon-octoface:before { content: "\eb27" }
+.codicon-open-preview:before { content: "\eb28" }
+.codicon-package:before { content: "\eb29" }
+.codicon-paintcan:before { content: "\eb2a" }
+.codicon-pin:before { content: "\eb2b" }
+.codicon-play:before { content: "\eb2c" }
+.codicon-run:before { content: "\eb2c" }
+.codicon-plug:before { content: "\eb2d" }
+.codicon-preserve-case:before { content: "\eb2e" }
+.codicon-preview:before { content: "\eb2f" }
+.codicon-project:before { content: "\eb30" }
+.codicon-pulse:before { content: "\eb31" }
+.codicon-question:before { content: "\eb32" }
+.codicon-quote:before { content: "\eb33" }
+.codicon-radio-tower:before { content: "\eb34" }
+.codicon-reactions:before { content: "\eb35" }
+.codicon-references:before { content: "\eb36" }
+.codicon-refresh:before { content: "\eb37" }
+.codicon-regex:before { content: "\eb38" }
+.codicon-remote-explorer:before { content: "\eb39" }
+.codicon-remote:before { content: "\eb3a" }
+.codicon-remove:before { content: "\eb3b" }
+.codicon-replace-all:before { content: "\eb3c" }
+.codicon-replace:before { content: "\eb3d" }
+.codicon-repo-clone:before { content: "\eb3e" }
+.codicon-repo-force-push:before { content: "\eb3f" }
+.codicon-repo-pull:before { content: "\eb40" }
+.codicon-repo-push:before { content: "\eb41" }
+.codicon-report:before { content: "\eb42" }
+.codicon-request-changes:before { content: "\eb43" }
+.codicon-rocket:before { content: "\eb44" }
+.codicon-root-folder-opened:before { content: "\eb45" }
+.codicon-root-folder:before { content: "\eb46" }
+.codicon-rss:before { content: "\eb47" }
+.codicon-ruby:before { content: "\eb48" }
+.codicon-save-all:before { content: "\eb49" }
+.codicon-save-as:before { content: "\eb4a" }
+.codicon-save:before { content: "\eb4b" }
+.codicon-screen-full:before { content: "\eb4c" }
+.codicon-screen-normal:before { content: "\eb4d" }
+.codicon-search-stop:before { content: "\eb4e" }
+.codicon-server:before { content: "\eb50" }
+.codicon-settings-gear:before { content: "\eb51" }
+.codicon-settings:before { content: "\eb52" }
+.codicon-shield:before { content: "\eb53" }
+.codicon-smiley:before { content: "\eb54" }
+.codicon-sort-precedence:before { content: "\eb55" }
+.codicon-split-horizontal:before { content: "\eb56" }
+.codicon-split-vertical:before { content: "\eb57" }
+.codicon-squirrel:before { content: "\eb58" }
+.codicon-star-full:before { content: "\eb59" }
+.codicon-star-half:before { content: "\eb5a" }
+.codicon-symbol-class:before { content: "\eb5b" }
+.codicon-symbol-color:before { content: "\eb5c" }
+.codicon-symbol-constant:before { content: "\eb5d" }
+.codicon-symbol-enum-member:before { content: "\eb5e" }
+.codicon-symbol-field:before { content: "\eb5f" }
+.codicon-symbol-file:before { content: "\eb60" }
+.codicon-symbol-interface:before { content: "\eb61" }
+.codicon-symbol-keyword:before { content: "\eb62" }
+.codicon-symbol-misc:before { content: "\eb63" }
+.codicon-symbol-operator:before { content: "\eb64" }
+.codicon-symbol-property:before { content: "\eb65" }
+.codicon-wrench:before { content: "\eb65" }
+.codicon-wrench-subaction:before { content: "\eb65" }
+.codicon-symbol-snippet:before { content: "\eb66" }
+.codicon-tasklist:before { content: "\eb67" }
+.codicon-telescope:before { content: "\eb68" }
+.codicon-text-size:before { content: "\eb69" }
+.codicon-three-bars:before { content: "\eb6a" }
+.codicon-thumbsdown:before { content: "\eb6b" }
+.codicon-thumbsup:before { content: "\eb6c" }
+.codicon-tools:before { content: "\eb6d" }
+.codicon-triangle-down:before { content: "\eb6e" }
+.codicon-triangle-left:before { content: "\eb6f" }
+.codicon-triangle-right:before { content: "\eb70" }
+.codicon-triangle-up:before { content: "\eb71" }
+.codicon-twitter:before { content: "\eb72" }
+.codicon-unfold:before { content: "\eb73" }
+.codicon-unlock:before { content: "\eb74" }
+.codicon-unmute:before { content: "\eb75" }
+.codicon-unverified:before { content: "\eb76" }
+.codicon-verified:before { content: "\eb77" }
+.codicon-versions:before { content: "\eb78" }
+.codicon-vm-active:before { content: "\eb79" }
+.codicon-vm-outline:before { content: "\eb7a" }
+.codicon-vm-running:before { content: "\eb7b" }
+.codicon-watch:before { content: "\eb7c" }
+.codicon-whitespace:before { content: "\eb7d" }
+.codicon-whole-word:before { content: "\eb7e" }
+.codicon-window:before { content: "\eb7f" }
+.codicon-word-wrap:before { content: "\eb80" }
+.codicon-zoom-in:before { content: "\eb81" }
+.codicon-zoom-out:before { content: "\eb82" }
+.codicon-list-filter:before { content: "\eb83" }
+.codicon-list-flat:before { content: "\eb84" }
+.codicon-list-selection:before { content: "\eb85" }
+.codicon-selection:before { content: "\eb85" }
+.codicon-list-tree:before { content: "\eb86" }
+.codicon-debug-breakpoint-function-unverified:before { content: "\eb87" }
+.codicon-debug-breakpoint-function:before { content: "\eb88" }
+.codicon-debug-breakpoint-function-disabled:before { content: "\eb88" }
+.codicon-debug-stackframe-active:before { content: "\eb89" }
+.codicon-debug-stackframe-dot:before { content: "\eb8a" }
+.codicon-debug-stackframe:before { content: "\eb8b" }
+.codicon-debug-stackframe-focused:before { content: "\eb8b" }
+.codicon-debug-breakpoint-unsupported:before { content: "\eb8c" }
+.codicon-symbol-string:before { content: "\eb8d" }
+.codicon-debug-reverse-continue:before { content: "\eb8e" }
+.codicon-debug-step-back:before { content: "\eb8f" }
+.codicon-debug-restart-frame:before { content: "\eb90" }
+.codicon-debug-alt:before { content: "\eb91" }
+.codicon-call-incoming:before { content: "\eb92" }
+.codicon-call-outgoing:before { content: "\eb93" }
+.codicon-menu:before { content: "\eb94" }
+.codicon-expand-all:before { content: "\eb95" }
+.codicon-feedback:before { content: "\eb96" }
+.codicon-group-by-ref-type:before { content: "\eb97" }
+.codicon-ungroup-by-ref-type:before { content: "\eb98" }
+.codicon-account:before { content: "\eb99" }
+.codicon-bell-dot:before { content: "\eb9a" }
+.codicon-debug-console:before { content: "\eb9b" }
+.codicon-library:before { content: "\eb9c" }
+.codicon-output:before { content: "\eb9d" }
+.codicon-run-all:before { content: "\eb9e" }
+.codicon-sync-ignored:before { content: "\eb9f" }
+.codicon-pinned:before { content: "\eba0" }
+.codicon-github-inverted:before { content: "\eba1" }
+.codicon-server-process:before { content: "\eba2" }
+.codicon-server-environment:before { content: "\eba3" }
+.codicon-pass:before { content: "\eba4" }
+.codicon-issue-closed:before { content: "\eba4" }
+.codicon-stop-circle:before { content: "\eba5" }
+.codicon-play-circle:before { content: "\eba6" }
+.codicon-record:before { content: "\eba7" }
+.codicon-debug-alt-small:before { content: "\eba8" }
+.codicon-vm-connect:before { content: "\eba9" }
+.codicon-cloud:before { content: "\ebaa" }
+.codicon-merge:before { content: "\ebab" }
+.codicon-export:before { content: "\ebac" }
+.codicon-graph-left:before { content: "\ebad" }
+.codicon-magnet:before { content: "\ebae" }
+.codicon-notebook:before { content: "\ebaf" }
+.codicon-redo:before { content: "\ebb0" }
+.codicon-check-all:before { content: "\ebb1" }
+.codicon-pinned-dirty:before { content: "\ebb2" }
+.codicon-pass-filled:before { content: "\ebb3" }
+.codicon-circle-large-filled:before { content: "\ebb4" }
+.codicon-circle-large-outline:before { content: "\ebb5" }
+.codicon-combine:before { content: "\ebb6" }
+.codicon-gather:before { content: "\ebb6" }
+.codicon-table:before { content: "\ebb7" }
+.codicon-variable-group:before { content: "\ebb8" }
+.codicon-type-hierarchy:before { content: "\ebb9" }
+.codicon-type-hierarchy-sub:before { content: "\ebba" }
+.codicon-type-hierarchy-super:before { content: "\ebbb" }
+.codicon-git-pull-request-create:before { content: "\ebbc" }
+.codicon-run-above:before { content: "\ebbd" }
+.codicon-run-below:before { content: "\ebbe" }
+.codicon-notebook-template:before { content: "\ebbf" }
+.codicon-debug-rerun:before { content: "\ebc0" }
+.codicon-workspace-trusted:before { content: "\ebc1" }
+.codicon-workspace-untrusted:before { content: "\ebc2" }
+.codicon-workspace-unknown:before { content: "\ebc3" }
+.codicon-terminal-cmd:before { content: "\ebc4" }
+.codicon-terminal-debian:before { content: "\ebc5" }
+.codicon-terminal-linux:before { content: "\ebc6" }
+.codicon-terminal-powershell:before { content: "\ebc7" }
+.codicon-terminal-tmux:before { content: "\ebc8" }
+.codicon-terminal-ubuntu:before { content: "\ebc9" }
+.codicon-terminal-bash:before { content: "\ebca" }
+.codicon-arrow-swap:before { content: "\ebcb" }
+.codicon-copy:before { content: "\ebcc" }
+.codicon-person-add:before { content: "\ebcd" }
+.codicon-filter-filled:before { content: "\ebce" }
+.codicon-wand:before { content: "\ebcf" }
+.codicon-debug-line-by-line:before { content: "\ebd0" }
+.codicon-inspect:before { content: "\ebd1" }
+.codicon-layers:before { content: "\ebd2" }
+.codicon-layers-dot:before { content: "\ebd3" }
+.codicon-layers-active:before { content: "\ebd4" }
+.codicon-compass:before { content: "\ebd5" }
+.codicon-compass-dot:before { content: "\ebd6" }
+.codicon-compass-active:before { content: "\ebd7" }
+.codicon-azure:before { content: "\ebd8" }
+.codicon-issue-draft:before { content: "\ebd9" }
+.codicon-git-pull-request-closed:before { content: "\ebda" }
+.codicon-git-pull-request-draft:before { content: "\ebdb" }
+.codicon-debug-all:before { content: "\ebdc" }
+.codicon-debug-coverage:before { content: "\ebdd" }
+.codicon-run-errors:before { content: "\ebde" }
+.codicon-folder-library:before { content: "\ebdf" }
+.codicon-debug-continue-small:before { content: "\ebe0" }
+.codicon-beaker-stop:before { content: "\ebe1" }
+.codicon-graph-line:before { content: "\ebe2" }
+.codicon-graph-scatter:before { content: "\ebe3" }
+.codicon-pie-chart:before { content: "\ebe4" }
+.codicon-bracket:before { content: "\eb0f" }
+.codicon-bracket-dot:before { content: "\ebe5" }
+.codicon-bracket-error:before { content: "\ebe6" }
+.codicon-lock-small:before { content: "\ebe7" }
+.codicon-azure-devops:before { content: "\ebe8" }
+.codicon-verified-filled:before { content: "\ebe9" }
+.codicon-newline:before { content: "\ebea" }
+.codicon-layout:before { content: "\ebeb" }
+.codicon-layout-activitybar-left:before { content: "\ebec" }
+.codicon-layout-activitybar-right:before { content: "\ebed" }
+.codicon-layout-panel-left:before { content: "\ebee" }
+.codicon-layout-panel-center:before { content: "\ebef" }
+.codicon-layout-panel-justify:before { content: "\ebf0" }
+.codicon-layout-panel-right:before { content: "\ebf1" }
+.codicon-layout-panel:before { content: "\ebf2" }
+.codicon-layout-sidebar-left:before { content: "\ebf3" }
+.codicon-layout-sidebar-right:before { content: "\ebf4" }
+.codicon-layout-statusbar:before { content: "\ebf5" }
+.codicon-layout-menubar:before { content: "\ebf6" }
+.codicon-layout-centered:before { content: "\ebf7" }
+.codicon-target:before { content: "\ebf8" }
+.codicon-indent:before { content: "\ebf9" }
+.codicon-record-small:before { content: "\ebfa" }
+.codicon-error-small:before { content: "\ebfb" }
+.codicon-arrow-circle-down:before { content: "\ebfc" }
+.codicon-arrow-circle-left:before { content: "\ebfd" }
+.codicon-arrow-circle-right:before { content: "\ebfe" }
+.codicon-arrow-circle-up:before { content: "\ebff" }
diff --git a/src/renderer/less/codicon.svg b/src/renderer/less/codicon.svg
new file mode 100644
index 00000000..c0bb5a8d
--- /dev/null
+++ b/src/renderer/less/codicon.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/src/renderer/less/codicon.ttf b/src/renderer/less/codicon.ttf
new file mode 100644
index 00000000..47dffef7
Binary files /dev/null and b/src/renderer/less/codicon.ttf differ
diff --git a/src/renderer/less/directives.less b/src/renderer/less/directives.less
new file mode 100644
index 00000000..b2b9305a
--- /dev/null
+++ b/src/renderer/less/directives.less
@@ -0,0 +1,184 @@
+#app.twopanel {
+ --chromeHeight1: 42px;
+ --chromeHeight2: 76px;
+ --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2));
+
+ .app-chrome {
+ .app-mainmenu {
+ margin-left: 10px;
+ width: 88px;
+ }
+
+ height: var(--chromeHeight1);
+
+ &.chrome-bottom {
+ height: var(--chromeHeight2);
+ box-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25);
+ z-index: 1;
+ }
+ }
+
+ .app-sidebar-footer--controls {
+ display: none !important;
+ }
+
+ .app-chrome.chrome-bottom {
+ .app-playback-controls .actions {
+ align-self: center;
+ }
+
+ .playback-button.play,
+ .playback-button.pause {
+ width: 42px;
+ height: 42px;
+ background-color: rgb(200 200 200 / 20%);
+ border-radius: 50%;
+ margin: 6px;
+ box-shadow: 0px 0px 0px 2px var(--keyColor);
+ }
+
+ .app-chrome--center {
+ display: flex;
+ flex-direction: column;
+
+ .app-chrome-playback-controls {
+ display: flex;
+ z-index: 1;
+ // margin-bottom: 12px;
+ }
+
+ .app-chrome-playback-duration {
+ position: relative;
+ width: 80%;
+ -webkit-app-region: no-drag;
+ height: 16px;
+
+ .song-progress {
+ @bgColor: transparent;
+ height: 16px;
+ position: absolute;
+ bottom: 4px;
+ left: 0px;
+ right: 4px;
+ background: @bgColor;
+ z-index: 0;
+
+
+ .song-duration {
+ display: flex;
+ }
+
+ .song-duration p {
+ font-weight: 400;
+ font-size: 10px;
+ height: 1.2em;
+ line-height: 1.3em;
+ overflow: hidden;
+ margin: 0 0 0 0.25em;
+ }
+
+ &:hover {
+ > input[type=range] {
+ &::-webkit-slider-thumb {
+ opacity: 1;
+ transform: scale(1);
+ z-index: 1;
+ }
+ }
+ }
+
+ input[type=range] {
+ appearance: none;
+ width: 100%;
+ height: 4px;
+ background-color: rgb(200 200 200 / 10%);
+ border-radius: 2px;
+
+ &::-webkit-slider-thumb {
+ opacity: 0;
+ transform: scale(0.5);
+ -webkit-appearance: none;
+ appearance: none;
+ width: 12px;
+ height: 12px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+ transition: opacity .10s var(--appleEase), transform .10s var(--appleEase);
+ }
+ }
+ }
+ }
+
+ }
+
+ .app-chrome--left {
+ width: 30%;
+ justify-content: flex-start;
+ align-items: flex-start;
+
+ .playback-controls {
+ .artwork {
+ width: var(--chromeHeight2);
+ height: var(--chromeHeight2);
+ margin: 0px 6px 0px 0px;
+ box-shadow: unset;
+ border: 0px;
+
+ .mediaitem-artwork,
+ img {
+ border-radius: 0px;
+ box-shadow: unset;
+ border: 0px;
+ }
+ }
+
+ .playback-info {
+ align-items: flex-start;
+ margin: 6px;
+
+ .song-name {
+ text-align: left;
+ font-size: 15px;
+ font-weight: initial;
+ width: 100%;
+ -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%);
+ }
+
+ .song-artist-album {
+ width: 100%;
+ -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%);
+ }
+
+ .audio-type {
+ margin: 0px;
+ }
+
+ .song-artist-album-content {
+ text-align: left;
+ font-size: 12px;
+ }
+ }
+
+
+ width: 100%;
+ height: 100%;
+ max-width: 100%;
+ border: 0px;
+ }
+
+ flex: 0 0 auto;
+ }
+
+ .app-chrome--right {
+ width: 30%;
+ flex: 0 0 auto;
+ padding-right: 8px;
+ }
+ }
+ .collection-page {
+ .top-fab {
+ bottom:96px;
+ }
+ }
+}
diff --git a/src/renderer/less/elements.css b/src/renderer/less/elements.css
new file mode 100644
index 00000000..4c1a2bb1
--- /dev/null
+++ b/src/renderer/less/elements.css
@@ -0,0 +1,1538 @@
+.md-select {
+ padding: 6px;
+ border-radius: 6px;
+ border: 1px solid rgba(200, 200, 200, 0.1);
+ border-top: 1px solid rgba(100, 100, 100, 0.5);
+ font-family: inherit;
+ font-size: 14px;
+ background: rgba(100, 100, 100, 0.25);
+ color: #eee;
+}
+.md-select option {
+ font-size: 1em;
+ font-family: inherit;
+ padding: 8px 16px;
+ background: #404040;
+}
+.md-select optgroup {
+ background: #2c2c2c;
+}
+.md-select:focus {
+ outline: solid 1px var(--selected);
+}
+.md-btn {
+ font-family: inherit;
+ background: rgba(100, 100, 100, 0.25);
+ padding: 8px 14px;
+ border-radius: 6px;
+ font-size: 14px;
+ border: 1px solid rgba(100, 100, 100, 0.35);
+ border-top: 1px solid rgba(100, 100, 100, 0.5);
+ color: #eee;
+ white-space: nowrap;
+ transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase);
+}
+.md-btn.md-btn-block {
+ display: block;
+ width: 100%;
+}
+.md-btn.md-btn-glyph {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+}
+.md-btn.md-btn-primary {
+ background: #ff2b52a6;
+ color: white;
+ border: 1px solid rgba(220, 53, 69, 0.25);
+ border-top: 1px solid rgba(220, 53, 69, 0.5);
+}
+.md-btn.md-btn-small {
+ padding: 6px 8px;
+ font-size: 13px;
+}
+.md-btn:hover {
+ filter: brightness(125%);
+}
+.md-btn:active {
+ filter: brightness(75%);
+ transform: scale(0.98);
+ transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
+}
+.md-btn.md-btn-icon {
+ display: inline-flex;
+ vertical-align: middle;
+ justify-content: center;
+}
+.md-btn.md-btn-icon > img {
+ margin: 0px 16px 0px 0px;
+ pointer-events: none;
+}
+.md-btn.md-btn-icon > .md-btn-text {
+ margin: 0px;
+}
+.btn-group {
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+}
+.btn-group > .md-btn {
+ border-radius: 0px;
+ width: 100%;
+}
+.btn-group > .md-btn:first-child {
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
+.btn-group > .md-btn:last-child {
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+.btn-group > .md-btn:not(:first-child):not(:last-child) {
+ border-radius: 0px;
+}
+.md-close-btn {
+ -webkit-mask-image: url("ameres://icons/webui/close.svg");
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: white;
+ opacity: 0.75;
+ -webkit-mask-size: contain;
+ height: 18px;
+ width: 18px;
+}
+.md-ico-play {
+ content: url("assets/play.svg");
+ width: 10px;
+ height: 12px;
+ margin-right: 1px;
+ align-self: center;
+}
+.md-ico-shuffle {
+ content: url("assets/shuffle.svg");
+ width: 1em;
+ height: 1em;
+ margin-right: 1px;
+ margin-bottom: -2px;
+ align-self: center;
+}
+.md-ico-remove {
+ content: url("assets/feather/x-circle-white.svg");
+ width: 16px;
+ height: 16px;
+ margin-right: 1px;
+ margin-bottom: -1.5px;
+ align-self: center;
+}
+.md-ico-add {
+ content: url("assets/feather/plus-circle-white.svg");
+ width: 1em;
+ height: 1em;
+ margin-right: 1px;
+ margin-bottom: -1.5px;
+ align-self: center;
+}
+.reload-btn {
+ background: rgba(86, 86, 86, 0.52);
+ border-radius: 100%;
+ width: 32px;
+ height: 32px;
+ border: 0px;
+ appearance: none;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.reload-btn:hover {
+ background: rgba(86, 86, 86, 0.8);
+ cursor: pointer;
+}
+.reload-btn > svg {
+ height: 50%;
+ color: #eee;
+}
+.wr-btn {
+ font-family: inherit;
+ appearance: none;
+ border: 0px;
+ border-radius: 6px;
+ padding: 8px;
+ font-weight: 600;
+ background: rgba(80, 80, 80, 0.7);
+ color: white;
+}
+.cd-btn-seeall {
+ background: transparent;
+ border: 0px;
+ color: var(--keyColor);
+ font-family: inherit;
+ font-weight: 500;
+ font-size: 16px;
+ border-radius: 4px;
+ padding: 6px;
+}
+.cd-btn-seeall:hover {
+ cursor: pointer;
+ background: rgba(200, 200, 200, 0.1);
+}
+.mediaitem-artwork {
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ flex: 0 0 auto;
+ position: relative;
+ width: 100%;
+ height: 100%;
+ background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg");
+ background-size: cover;
+ background-position: center;
+}
+.mediaitem-artwork .animatedartwork-view-box {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+}
+.mediaitem-artwork .animatedartwork-view-box .animated {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+}
+.mediaitem-artwork .animatedartwork-view-box .animated video {
+ width: 100%;
+ height: 100%;
+}
+.mediaitem-artwork.rounded {
+ border-radius: 100%;
+}
+.mediaitem-artwork.rounded::after {
+ border-radius: 100%;
+}
+.mediaitem-artwork::after {
+ content: "";
+ box-shadow: var(--mediaItemShadow);
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ border-radius: inherit;
+}
+.mediaitem-artwork img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ image-rendering: -webkit-optimize-contrast;
+ pointer-events: none;
+}
+.mediaitem-artwork.no-shadow {
+ box-shadow: none;
+}
+.mediaitem-artwork.no-shadow::after {
+ display: none;
+}
+.mediaitem-artwork.subtle-shadow {
+ box-shadow: var(--mediaItemShadow-ShadowSubtle);
+}
+.mediaitem-artwork.shadow {
+ box-shadow: var(--mediaItemShadow-Shadow);
+}
+/* queue item */
+.cd-queue-item {
+ border-bottom: 1px solid rgba(200, 200, 200, 0.1);
+ padding: 8px;
+}
+.cd-queue-item .row,
+.cd-queue-item .col {
+ padding: 0px;
+ margin: 0px;
+}
+.cd-queue-item .artwork {
+ width: 32px;
+ height: 32px;
+ flex: 0 0 auto;
+}
+.cd-queue-item.selected {
+ background: var(--selected);
+}
+.cd-queue-item:active {
+ background: var(--selected-click);
+ color: #eee;
+}
+.cd-queue-item .queue-info {
+ display: flex;
+ flex-direction: column;
+}
+.cd-queue-item .queue-info .queue-title {
+ font-size: 14px;
+}
+.cd-queue-item .queue-info .queue-subtitle {
+ font-size: 13px;
+ opacity: 0.85;
+}
+/* horizontal media scroller */
+.cd-hmedia-scroller::-webkit-scrollbar-thumb {
+ box-shadow: none;
+}
+.cd-hmedia-scroller:hover::-webkit-scrollbar-thumb {
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5);
+}
+.cd-hmedia-scroller.hmedia-scroller-card .mediaitem-card {
+ margin: 16px;
+}
+/* mediaitem-list-item */
+.cd-mediaitem-list-item {
+ width: 100%;
+ height: 60px;
+ display: flex;
+ flex: 0 0 auto;
+ flex-direction: row;
+ font-size: 14px;
+ justify-content: center-between;
+ align-items: center;
+ border-radius: var(--mediaItemRadius);
+ /* CSS.gg
+ */
+}
+.cd-mediaitem-list-item .artwork {
+ height: 42px;
+ width: 42px;
+ border-radius: var(--mediaItemRadius);
+ object-fit: cover;
+ object-position: center;
+ flex: 0 0 auto;
+ background-repeat: no-repeat;
+ margin: 12px;
+ border: 0px;
+ outline: none;
+ position: relative;
+ overflow: hidden;
+}
+.cd-mediaitem-list-item .artwork .overlay-play {
+ background: rgba(0, 0, 0, 0.5);
+ opacity: 0;
+ appearance: none;
+ border: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ padding: 0px;
+ z-index: 5;
+ cursor: pointer;
+}
+.cd-mediaitem-list-item .artwork .overlay-play:hover {
+ opacity: 1;
+}
+.cd-mediaitem-list-item .artwork .overlay-play:active {
+ background: var(--selected-click);
+}
+.cd-mediaitem-list-item .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-list-item .info-rect {
+ height: 100%;
+ display: flex;
+ flex-flow: column;
+ justify-content: center;
+ flex-grow: 1;
+}
+.cd-mediaitem-list-item .title {
+ width: 100%;
+}
+.cd-mediaitem-list-item .subtitle {
+ width: 90%;
+ font-size: 0.8em;
+ opacity: 0.7;
+}
+.cd-mediaitem-list-item .duration {
+ min-width: 60px;
+ text-align: center;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.cd-mediaitem-list-item .metainfo {
+ min-width: 145px;
+ text-align: center;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.cd-mediaitem-list-item .explicit-icon {
+ background-image: url("assets/explicit.svg");
+ height: 12px;
+ width: 36px;
+ filter: contrast(0);
+ background-repeat: no-repeat;
+}
+@keyframes load-bar {
+ 10% {
+ box-shadow: inset 0 -4px 0;
+ }
+ 20% {
+ box-shadow: inset 0 -10px 0;
+ }
+ 30% {
+ box-shadow: inset 0 -12px 0;
+ }
+ 40% {
+ box-shadow: inset 0 -8px 0;
+ }
+ 50% {
+ box-shadow: inset 0 -4px 0;
+ }
+ 60% {
+ box-shadow: inset 0 -6px 0;
+ }
+ 80% {
+ box-shadow: inset 0 -12px 0;
+ }
+ 90% {
+ box-shadow: inset 0 -6px 0;
+ }
+ to {
+ box-shadow: inset 0 -2px 0;
+ }
+}
+.cd-mediaitem-list-item .loadbar-sound,
+.cd-mediaitem-list-item .loadbar-sound::after,
+.cd-mediaitem-list-item .loadbar-sound::before {
+ animation: load-bar 1.3s ease infinite alternate;
+ box-sizing: border-box;
+ width: 3px;
+ height: 28px;
+ box-shadow: inset 0 -12px 0;
+}
+.cd-mediaitem-list-item .loadbar-sound {
+ margin-left: 22px;
+ margin-top: -16px;
+ position: relative;
+ transform: scale(var(--load-bar, 1));
+ color: var(--keyColor);
+ display: block;
+}
+.cd-mediaitem-list-item .loadbar-sound::after,
+.cd-mediaitem-list-item .loadbar-sound::before {
+ content: "";
+ position: absolute;
+ bottom: 0;
+}
+.cd-mediaitem-list-item .loadbar-sound::before {
+ left: -4.5px;
+ animation-delay: -2.4s;
+}
+.cd-mediaitem-list-item .loadbar-sound::after {
+ right: -4.2px;
+ animation-delay: -3.7s;
+}
+.cd-mediaitem-list-item .isLibrary {
+ flex: 0 0 auto;
+ width: 40px;
+ text-align: center;
+}
+.cd-mediaitem-list-item .isLibrary button {
+ appearance: none;
+ border: 0px;
+ background: transparent;
+ cursor: pointer;
+ filter: contrast(0.8);
+}
+.cd-mediaitem-list-item:hover {
+ background: rgba(200, 200, 200, 0.1);
+ box-shadow: var(--mediaItemShadow);
+}
+.cd-mediaitem-list-item:hover .overlay-play {
+ opacity: 1;
+}
+.cd-mediaitem-list-item.mediaitem-selected {
+ background: var(--selected);
+ box-shadow: var(--mediaItemShadow);
+}
+.cd-mediaitem-list-item:active {
+ background: var(--selected-click);
+ box-shadow: var(--mediaItemShadow);
+ color: #eee;
+}
+.cd-mediaitem-list-item.disabled {
+ opacity: 0.5;
+ pointer-events: none;
+}
+.cd-mediaitem-list-item.compact {
+ height: 40px;
+ font-size: 13px;
+}
+.cd-mediaitem-list-item.compact .artwork {
+ display: none;
+}
+.cd-mediaitem-list-item.compact .info-rect {
+ padding-left: 1em;
+}
+/* mediaitem-hrect */
+.cd-mediaitem-hrect {
+ background: rgba(255, 255, 255, 0.18);
+ width: 264px;
+ height: 100px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: row;
+ font-size: 14px;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+ cursor: pointer;
+}
+.cd-mediaitem-hrect .artwork {
+ height: 70px;
+ width: 70px;
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: contain;
+ flex: 0 0 auto;
+ background-repeat: no-repeat;
+ margin: 18px;
+}
+.cd-mediaitem-hrect .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-hrect .info-rect {
+ width: 100%;
+}
+.cd-mediaitem-hrect .title {
+ width: 100%;
+ text-align: center;
+}
+.cd-mediaitem-hrect .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+/* mediaitem-square-sp */
+.cd-mediaitem-square-sp {
+ --spcolor: var("");
+ width: 190px;
+ height: 245px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+ background-color: var(--spcolor);
+}
+.cd-mediaitem-square-sp .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.cd-mediaitem-square-sp .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-square-sp .artwork:hover {
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset;
+}
+.cd-mediaitem-square-sp .title {
+ width: 90%;
+ text-align: center;
+}
+.cd-mediaitem-square-sp .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay {
+ z-index: 3;
+}
+.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay:hover {
+ opacity: 1;
+}
+.cd-mediaitem-square-sp + .cd-mediaitem-square-large-overlay {
+ pointer-events: none;
+}
+.cd-mediaitem-square-sp:hover + .cd-mediaitem-square-large-overlay {
+ opacity: 1;
+}
+.cd-mediaitem-square-sp:hover {
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset;
+}
+/* mediaitem-square-large */
+.cd-mediaitem-square-large {
+ width: 190px;
+ height: 250px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+}
+.cd-mediaitem-square-large > * {
+ z-index: inherit;
+}
+.cd-mediaitem-square-large .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.cd-mediaitem-square-large-overlay {
+ position: absolute;
+ width: 190px;
+ float: right;
+ height: 250px;
+ top: 0px;
+ margin: 10px;
+ margin-top: 0px;
+ opacity: 0;
+}
+.cd-mediaitem-square-large-overlay > * {
+ pointer-events: auto;
+}
+.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay {
+ z-index: 3;
+}
+.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover {
+ opacity: 1;
+}
+.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay {
+ pointer-events: none;
+}
+.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay {
+ opacity: 1;
+}
+.cd-mediaitem-square-large .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-square-large .title {
+ width: 90%;
+ text-align: center;
+}
+.cd-mediaitem-square-large .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+/* mediaitem-mvview */
+/* mediaitem-mvview */
+.cd-mediaitem-mvview {
+ width: 300px;
+ height: 250px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+}
+.cd-mediaitem-mvview > * {
+ z-index: inherit;
+}
+.cd-mediaitem-mvview .artwork {
+ height: 172px;
+ width: 300px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.cd-mediaitem-mvview-overlay {
+ position: absolute;
+ width: 300px;
+ float: right;
+ height: 250px;
+ top: 0px;
+ margin: 10px;
+ margin-top: 0px;
+ opacity: 0;
+}
+.cd-mediaitem-mvview-overlay > * {
+ pointer-events: auto;
+}
+.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay {
+ z-index: 3;
+}
+.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover {
+ opacity: 1;
+}
+.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay {
+ pointer-events: none;
+}
+.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay {
+ opacity: 1;
+}
+.cd-mediaitem-mvview .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-mvview .title {
+ width: 90%;
+ text-align: center;
+}
+.cd-mediaitem-mvview .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+/* mediaitem-square */
+.cd-mediaitem-square {
+ width: 220px;
+ height: 238px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+}
+.cd-mediaitem-square .artwork-container {
+ position: relative;
+}
+.cd-mediaitem-square .artwork-container .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ cursor: pointer;
+}
+.cd-mediaitem-square .artwork-container .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-square .artwork-container .badge-container {
+ transition: opacity 0.1s var(--appleEase);
+ opacity: 1;
+}
+.cd-mediaitem-square .artwork-container .badge-container .socialBadge {
+ width: 32px;
+ height: 32px;
+ position: absolute;
+ right: 14px;
+ bottom: 14px;
+ border-radius: 100%;
+ overflow: hidden;
+ z-index: 2;
+ pointer-events: none;
+}
+.cd-mediaitem-square .artwork-container > .play-btn,
+.cd-mediaitem-square .artwork-container > .menu-btn {
+ opacity: 0;
+ appearance: none;
+ padding: 0px;
+ border: 0px;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ background: rgba(50, 50, 50, 0.7);
+ cursor: pointer;
+ transition: opacity 0.1s var(--appleEase);
+}
+.cd-mediaitem-square .artwork-container > .play-btn :hover,
+.cd-mediaitem-square .artwork-container > .menu-btn :hover {
+ border-radius: 50%;
+ background: rgba(250, 0, 0, 0.7);
+}
+.cd-mediaitem-square .artwork-container > .play-btn {
+ position: absolute;
+ bottom: 14px;
+ left: 14px;
+ z-index: 2;
+}
+.cd-mediaitem-square .artwork-container > .menu-btn {
+ position: absolute;
+ bottom: 14px;
+ right: 14px;
+ z-index: 2;
+}
+.cd-mediaitem-square .artwork-container:hover > .badge-container {
+ opacity: 0;
+}
+.cd-mediaitem-square .artwork-container:hover > .play-btn,
+.cd-mediaitem-square .artwork-container:hover > .menu-btn {
+ opacity: 1;
+}
+.cd-mediaitem-square .info-rect {
+ width: 90%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+.cd-mediaitem-square .title {
+ width: 100%;
+ text-align: center;
+ display: flex;
+ align-content: center;
+ justify-content: center;
+}
+.cd-mediaitem-square .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+.cd-mediaitem-square .unavailable-overlay {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ bottom: 0;
+ right: 0;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ z-index: 2;
+ pointer-events: none;
+ background: rgba(0, 0, 0, 0.4);
+ margin: 2em;
+ border-radius: 10px;
+}
+.cd-mediaitem-square .unavailable-overlay > .codicon {
+ font-size: 4em;
+ font-weight: bold;
+ opacity: 0.5;
+}
+.cd-mediaitem-square.mediaitem-video {
+ height: 200px;
+ width: 240px;
+}
+.cd-mediaitem-square.mediaitem-video .artwork {
+ height: 120px;
+ width: 212px;
+}
+.cd-mediaitem-square.mediaitem-brick {
+ height: 200px;
+ width: 240px;
+}
+.cd-mediaitem-square.mediaitem-brick .artwork {
+ height: 123px;
+ width: 220px;
+}
+.cd-mediaitem-square.mediaitem-small {
+ width: 140px;
+ height: 180px;
+}
+.cd-mediaitem-square.mediaitem-small .artwork {
+ height: 128px;
+ width: 128px;
+}
+.cd-mediaitem-square.mediaitem-card {
+ background: #ccc;
+ background: var(--spcolor);
+ height: 298px;
+ width: 230px;
+ max-width: 250px;
+ max-height: 500px;
+ overflow: hidden;
+ position: relative;
+ border-radius: calc(var(--mediaItemRadius) * 2);
+ box-shadow: var(--mediaItemShadow-ShadowSubtle);
+}
+.cd-mediaitem-square.mediaitem-card .artwork {
+ width: 230px;
+ height: 230px;
+ overflow: hidden;
+ border-radius: 0px;
+ margin: 0;
+}
+.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork {
+ border-radius: 0px;
+}
+.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork::after {
+ box-shadow: unset;
+}
+.cd-mediaitem-square.mediaitem-card .info-rect-card {
+ padding: 10px 10px 14px;
+ position: relative;
+ width: 100%;
+}
+.cd-mediaitem-square.mediaitem-card .info-rect-card::before {
+ background: var(--bgartwork);
+ content: "";
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ position: absolute;
+ background-size: cover;
+ background-position: bottom;
+ z-index: 0;
+ opacity: 1;
+ filter: brightness(0.5) blur(50px) saturate(180%);
+}
+.cd-mediaitem-square.mediaitem-card .title {
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.9em;
+ font-weight: 500;
+ z-index: 1;
+}
+.cd-mediaitem-square.mediaitem-card .subtitle {
+ height: 100%;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.75em;
+ width: 100%;
+ display: flex;
+ z-index: 1;
+}
+.cd-mediaitem-square.mediaitem-card::after {
+ box-shadow: var(--mediaItemShadow);
+ content: "";
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ pointer-events: none;
+ border-radius: inherit;
+}
+/* mediaitem-square */
+.albums-square-containeru > * > .cd-mediaitem-square {
+ --frame: max(220px, 15vw);
+ width: var(--frame);
+ height: calc(var(--frame) * 13 / 11);
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: calc(var(--frame) / 220 * 14);
+ justify-content: center;
+ align-items: center;
+ border-radius: calc(var(--frame) / 220 * 6);
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container {
+ position: relative;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork {
+ height: calc(var(--frame) * 19 / 22);
+ width: calc(var(--frame) * 19 / 22);
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: calc(var(--frame) / 220 * 6);
+ cursor: pointer;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn,
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn {
+ opacity: 0;
+ appearance: none;
+ padding: 0px;
+ border: 0px;
+ width: calc(var(--frame) / 220 * 30);
+ height: calc(var(--frame) / 220 * 30);
+ border-radius: 50%;
+ background: rgba(50, 50, 50, 0.7);
+ cursor: pointer;
+ backdrop-filter: blur(32px) saturate(180%);
+ transition: opacity 0.1s var(--appleEase);
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn {
+ position: absolute;
+ bottom: calc(var(--frame) / 220 * 14);
+ left: calc(var(--frame) / 220 * 14);
+ z-index: 2;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn {
+ position: absolute;
+ bottom: calc(var(--frame) / 220 * 14);
+ right: calc(var(--frame) / 220 * 14);
+ z-index: 2;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .play-btn,
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .menu-btn {
+ opacity: 1;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .title {
+ width: 90%;
+ text-align: center;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: calc(var(--frame) / 220 * 12);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video {
+ height: calc(var(--frame) / 220 * 200);
+ width: calc(var(--frame) / 220 * 240);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video .artwork {
+ height: calc(var(--frame) / 220 * 120);
+ width: calc(var(--frame) / 220 * 212);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick {
+ height: calc(var(--frame) / 220 * 200);
+ width: calc(var(--frame) / 220 * 240);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick .artwork {
+ height: calc(var(--frame) / 220 * 123);
+ width: calc(var(--frame));
+}
+.listitem-horizontal .cd-mediaitem-list-item {
+ width: 350px;
+ height: 60px;
+}
+.mediaitem-list-item__grid {
+ background: rgba(200, 200, 200, 0.05);
+ border-radius: 10px;
+ padding: var(--contentInnerPadding);
+ box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
+ width: 100%;
+}
+.mediaitem-list-item__grid .cd-mediaitem-list-item {
+ width: 350px;
+ height: 60px;
+}
+.mediaitem-list-item__grid::-webkit-scrollbar {
+ display: none;
+}
+.mediaitem-list-item__grid:hover::-webkit-scrollbar {
+ display: initial;
+}
+.svg-icon {
+ --color: #aaa;
+ --url: url("assets/feather/share.svg");
+ -webkit-mask-image: var(--url);
+ -webkit-mask-size: cover;
+ height: 18px;
+ width: 18px;
+ background: var(--color);
+}
+.svg-icon.inline {
+ display: inline-block;
+}
+.sidebar-icon {
+ width: 18px;
+ height: 18px;
+ margin-right: 8px;
+}
+.sidebar-icon > .svg-icon {
+ width: 100%;
+ height: 100%;
+ --color: #aaa;
+}
+.sidebar-icon > svg {
+ width: 100%;
+ height: 100%;
+ color: #aaa;
+}
+/* Switch Checkbox */
+input[type=checkbox][switch] {
+ width: 38px;
+ appearance: none;
+ border-radius: 32px;
+ height: 24px;
+ zoom: 1;
+ top: 0;
+ cursor: pointer;
+ left: 0;
+ position: relative;
+ transform: scale(1);
+ background: #8e8e93;
+ padding: 0;
+ margin: 0;
+}
+input[type=checkbox][switch]:focus,
+input[type=checkbox][switch]:active {
+ outline: none;
+}
+input[type=checkbox][switch]:checked {
+ background: var(--keyColor);
+ border: 0 solid var(--keyColor);
+ mix-blend-mode: unset;
+}
+input[type=checkbox][switch]:checked:hover {
+ background: var(--keyColor-rollover);
+}
+input[type=checkbox][switch]:checked:active {
+ background: var(--keyColor-pressed);
+}
+input[type=checkbox][switch]::before {
+ background: white;
+ width: 26px;
+ height: 26px;
+ top: -1px;
+ left: -1px;
+ position: absolute;
+ content: ' ';
+ border-radius: 32px;
+ transition: 0.1s left var(--appleEase);
+ transform: scale(0.75);
+}
+input[type=checkbox][switch]:checked::before {
+ background: white;
+ top: -1px;
+ left: 13px;
+ transition: 0.1s left var(--appleEase);
+ transform: scale(0.75);
+}
+input[type=checkbox][switch]:disabled::before {
+ opacity: 0.5;
+}
+input[type=checkbox][switch]:active::before {
+ left: 13px;
+}
+input[type=checkbox][switch]:checked:active::before {
+ left: -1px;
+}
+/* End Switch Checkbox */
+.header-text {
+ margin: 0px;
+}
+.media-item--small {
+ background: rgba(0, 0, 0, 0.25);
+ height: 162px;
+ width: 132px;
+ display: inline-flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ border-radius: 10px;
+}
+.media-item--small .artwork {
+ background: red;
+ margin: 6px;
+ border-radius: 100%;
+ width: 90px;
+ height: 90px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.3);
+}
+.playlist-artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ box-shadow: var(--mediaItemShadow);
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.media-item--small .text {
+ font-weight: 600;
+ font-size: 0.9em;
+}
+.media-item--small .subtext {
+ font-size: 0.75em;
+}
+.player-duration-time {
+ opacity: 0.5;
+}
+.player-artwork-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.player-duration-container {
+ font-size: 0.85em;
+ font-weight: 500;
+}
+.media-artwork {
+ --artwork: url("");
+ width: 80vw;
+ height: 80vw;
+ max-height: 500px;
+ max-width: 500px;
+ background: black;
+ background-image: var(--artwork);
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 8px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55);
+ transition: transform 0.1s var(--appleEase);
+}
+.media-artwork.paused {
+ transition: transform 0.35s var(--appleEase);
+ transform: scale(0.85);
+}
+.playback-slider {
+ width: 90%;
+}
+.volume-slider {
+ width: 100%;
+}
+.volume-slider-container {
+ width: 90%;
+ margin: 0 auto;
+ padding: 0px;
+}
+.volume-slider-container .col-auto,
+.volume-slider-container .col {
+ display: flex;
+ align-items: center;
+ justify-self: center;
+ padding: 0px;
+ margin: 0px;
+}
+.playback-button {
+ font-size: 2em;
+ width: 40px;
+ height: 36px;
+ padding: 0px;
+ background: transparent;
+ border: 0px;
+ border-radius: 0px;
+ box-shadow: unset;
+ background-size: 12px;
+ background-position: center;
+ background-repeat: no-repeat;
+ opacity: 0.7;
+ border-radius: 6px;
+}
+.playback-button:active {
+ transform: scale(0.95);
+}
+.playback-button--small {
+ border-radius: 6px;
+ font-size: 1em;
+ color: inherit;
+ background-size: 14px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-color: transparent;
+ width: 40px;
+ height: 32px;
+ border: 0px;
+ box-shadow: unset;
+ opacity: 0.7;
+}
+.playback-button:hover,
+.playback-button--small:hover {
+ background-color: rgba(200, 200, 200, 0.1);
+}
+.playback-button:active,
+.playback-button--small:active {
+ transform: scale(0.9);
+}
+.playback-button--small.active {
+ background-color: rgba(200, 200, 200, 0.25);
+}
+.playback-button--small.search {
+ background-image: url("assets/search.svg");
+}
+.playback-button--small.cast {
+ background-image: url("assets/cast_white.svg");
+}
+.playback-button--small.miniplayer {
+ background-image: url("assets/pip.svg");
+}
+.playback-button--small.queue {
+ background-image: url("assets/list.svg");
+}
+.playback-button--small.lyrics {
+ background-image: url("assets/quote-right.svg");
+}
+.playback-button--small.shuffle {
+ background-image: url("assets/shuffle.svg");
+}
+.playback-button--small.repeat {
+ background-image: url("assets/repeat.svg");
+}
+.playback-button--small.repeat.repeatOne {
+ background-color: rgba(200, 200, 200, 0.25);
+ background-image: url("assets/repeatOne.svg");
+}
+.playback-button.pause {
+ background-image: url('assets/pause.svg');
+}
+.playback-button.play {
+ background-image: url('assets/play.svg');
+}
+.playback-button.next {
+ background-image: url('assets/forward.svg');
+}
+.playback-button.previous {
+ background-image: url('assets/backward.svg');
+}
+.playback-buttons {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.player-volume-glyph {
+ width: 32px;
+ height: 16px;
+ background-repeat: no-repeat;
+ background-size: contain;
+ background-position: center;
+}
+.player-volume-glyph.decrease {
+ background-image: url("assets/volume.svg");
+ opacity: 0.5;
+}
+.player-volume-glyph.increase {
+ background-image: url("assets/volume-2.svg");
+ opacity: 0.5;
+}
+.player-track-info {
+ width: 90%;
+ margin: 0 auto;
+}
+.player-song-title {
+ font-size: 1.25em;
+ text-align: left;
+ margin: 0 auto;
+ font-weight: 500;
+}
+.player-song-artist {
+ font-size: 1em;
+ text-align: left;
+ margin: 0 auto;
+ color: var(--keyColor);
+ font-weight: 400;
+}
+.player-song-artist:hover {
+ cursor: pointer;
+ text-decoration: underline;
+}
+.player-more-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.player-more-button {
+ appearance: none;
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ border: 0px;
+ background: var(--keyColor);
+ cursor: pointer;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16);
+ color: white;
+ font-weight: bold;
+ padding: 0px;
+ font-size: 16px;
+}
+.back-button {
+ width: 40px;
+ height: 40px;
+ background-color: transparent;
+ background-size: 16px;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url("assets/arrow-left.svg");
+ border: 0px;
+ border-radius: 0px;
+}
+.header-text {
+ height: 40px;
+ display: flex;
+ align-items: center;
+}
+.list-entry-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 12px;
+ font-size: 1em;
+ font-family: inherit;
+}
+.list-entry {
+ display: flex;
+ align-items: center;
+ /* justify-content: space-between; */
+ padding: 12px;
+ font-size: 1em;
+ font-family: inherit;
+ border-bottom: 1px solid rgba(255 255 255 / 0.1);
+ cursor: pointer;
+}
+.list-entry-image {
+ --artwork: url("");
+ width: 64px;
+ height: 64px;
+ background: var(--artwork);
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 8px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55);
+}
+.list-entry-image.artist {
+ border-radius: 50%;
+}
+.list-entry-body {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: flex-start;
+ margin-left: 12px;
+}
+.list-entry-name {
+ font-size: 14px;
+ font-weight: 500;
+ overflow: hidden;
+ width: 100%;
+}
+.list-entry-artist {
+ font-size: 12px;
+ overflow: hidden;
+ width: 100%;
+}
+.list-entry .handle {
+ height: 100%;
+ width: 28px;
+ background: var(--keyColor);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.artist-chip {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ margin: 4px 0px;
+ border-radius: 4px;
+ color: white;
+ font-size: 1em;
+ font-weight: 500;
+ cursor: pointer;
+ padding: 8px;
+}
+.artist-chip:hover {
+ background: var(--selected);
+}
+.artist-chip .artist-chip__follow {
+ appearance: none;
+ border: 0;
+ height: 32px;
+ width: 32px;
+ background: #ffffff0f;
+ margin: 0px 0px 0px 10px;
+ font-weight: bold;
+ color: white;
+ border-radius: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 12px;
+ cursor: pointer;
+ flex: 0 0 32px;
+}
+.artist-chip .artist-chip__follow:hover {
+ background: var(--selected);
+}
+.artist-chip .artist-chip__image {
+ width: 32px;
+ height: 32px;
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 100%;
+ overflow: hidden;
+ margin: 0px 12px 0px 0px;
+ pointer-events: none;
+ flex: 0 0 32px;
+}
+.artist-chip .artist-chip__image .mediaitem-artwork {
+ border-radius: inherit;
+}
+.artist-chip .artist-chip__name {
+ pointer-events: none;
+}
+.search-panel {
+ background: rgba(0, 0, 0, 0.5);
+}
+.search-header {
+ position: absolute;
+ width: 100%;
+ z-index: 1;
+ backdrop-filter: blur(16px);
+ -webkit-backdrop-filter: blur(16px);
+ border-bottom: 1px solid rgba(200, 200, 200, 0.08);
+}
+.connection-error-panel {
+ background: rgba(0, 0, 0, 0.5);
+}
+.search-type-container {
+ display: flex;
+}
+.search-type-button {
+ background: rgba(20, 20, 20, 0.85);
+ border-radius: 50px;
+ color: white;
+ border: 0px;
+ box-shadow: unset;
+ font-family: inherit;
+ padding: 8px 16px;
+ font-size: 14px;
+ font-weight: 500;
+ margin: 8px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+.search-type-button.active {
+ background: var(--keyColor);
+}
+.search-tab-container {
+ overflow: auto;
+ white-space: nowrap;
+ overflow-y: hidden;
+}
+.search-body-container {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+.search-body {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ padding-top: 220px;
+}
+.search-tab {
+ background: rgba(20, 20, 20, 0.85);
+ border-radius: 50px;
+ color: white;
+ border: 0px;
+ box-shadow: unset;
+ font-family: inherit;
+ padding: 8px 16px;
+ font-size: 14px;
+ font-weight: 500;
+}
+.search-tab.active {
+ background: var(--keyColor);
+}
diff --git a/src/renderer/less/elements.less b/src/renderer/less/elements.less
new file mode 100644
index 00000000..fd2176fc
--- /dev/null
+++ b/src/renderer/less/elements.less
@@ -0,0 +1,1843 @@
+// Form
+
+.md-select {
+ padding: 6px;
+ border-radius: 6px;
+ border: 1px solid rgba(200, 200, 200, 0.1);
+ border-top: 1px solid rgba(100, 100, 100, 0.5);
+ font-family: inherit;
+ font-size: 14px;
+ background: rgba(100, 100, 100, 0.25);
+ color: #eee;
+
+ option {
+ font-size: 1em;
+ font-family: inherit;
+ padding: 8px 16px;
+ background: #404040;
+ }
+
+ optgroup {
+ background: #2c2c2c;
+ }
+
+ &:focus {
+ outline: solid 1px var(--selected);
+ }
+}
+
+// Buttons
+.md-btn {
+ font-family: inherit;
+ background: rgb(100 100 100 / 25%);
+ padding: 8px 14px;
+ border-radius: 6px;
+ font-size: 14px;
+ border: 1px solid rgba(100, 100, 100, 0.35);
+ border-top: 1px solid rgba(100, 100, 100, 0.5);
+ color: #eee;
+ white-space: nowrap;
+ transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase);
+
+ &.md-btn-block {
+ display: block;
+ width: 100%;
+ }
+
+ &.md-btn-glyph {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ }
+
+ &.md-btn-primary {
+ background: #ff2b52a6;
+ color: white;
+ border: 1px solid rgb(220 53 69 / 25%);
+ border-top: 1px solid rgb(220 53 69 / 50%);
+ }
+
+ &.md-btn-small {
+ padding: 6px 8px;
+ font-size: 13px;
+ }
+
+ &:hover {
+ filter: brightness(125%);
+ }
+
+ &:active {
+ filter: brightness(75%);
+ transform: scale(0.98);
+ transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
+ }
+
+ &.md-btn-icon {
+ display: inline-flex;
+ vertical-align: middle;
+ justify-content: center;
+
+ > img {
+ margin: 0px 16px 0px 0px;
+ pointer-events: none;
+ }
+
+ > .md-btn-text {
+ margin: 0px;
+ }
+ }
+}
+
+.btn-group {
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+
+ > .md-btn {
+ border-radius: 0px;
+ width: 100%;
+ }
+
+ > .md-btn:first-child {
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+ }
+
+ > .md-btn:last-child {
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ }
+
+ > .md-btn:not(:first-child):not(:last-child) {
+ border-radius: 0px;
+ }
+}
+
+
+.md-close-btn {
+ -webkit-mask-image: url("ameres://icons/webui/close.svg");
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: white;
+ opacity: 0.75;
+ -webkit-mask-size: contain;
+ height: 18px;
+ width: 18px;
+}
+
+.md-ico-play {
+ content: url("./assets/play.svg");
+ width: 10px;
+ height: 12px;
+ margin-right: 1px;
+ align-self: center;
+}
+
+.md-ico-shuffle {
+ content: url("./assets/shuffle.svg");
+ width: 1em;
+ height: 1em;
+ margin-right: 1px;
+ margin-bottom: -2px;
+ align-self: center;
+}
+
+.md-ico-remove {
+ content: url("./assets/feather/x-circle-white.svg");
+ width: 16px;
+ height: 16px;
+ margin-right: 1px;
+ margin-bottom: -1.5px;
+ align-self: center;
+}
+
+.md-ico-add {
+ content: url("./assets/feather/plus-circle-white.svg");
+ width: 1em;
+ height: 1em;
+ margin-right: 1px;
+ margin-bottom: -1.5px;
+ align-self: center;
+}
+
+.reload-btn {
+ background: rgb(86 86 86 / 52%);
+ border-radius: 100%;
+ width: 32px;
+ height: 32px;
+ border: 0px;
+ appearance: none;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.reload-btn:hover {
+ background: rgb(86 86 86 / 80%);
+ cursor: pointer;
+}
+
+.reload-btn > svg {
+ height: 50%;
+ color: #eee;
+}
+
+.wr-btn {
+ font-family: inherit;
+ appearance: none;
+ border: 0px;
+ border-radius: 6px;
+ padding: 8px;
+ font-weight: 600;
+ background: rgb(80 80 80 / 70%);
+ color: white;
+}
+
+.cd-btn-seeall {
+ background: transparent;
+ border: 0px;
+ color: var(--keyColor);
+ font-family: inherit;
+ font-weight: 500;
+ font-size: 16px;
+ border-radius: 4px;
+ padding: 6px;
+
+ &:hover {
+ cursor: pointer;
+ background: rgb(200 200 200 / 10%)
+ }
+}
+
+
+// Media Item Elements
+
+.mediaitem-artwork {
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ flex: 0 0 auto;
+ position: relative;
+ width: 100%;
+ height: 100%;
+ background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg");
+ background-size: cover;
+ background-position: center;
+
+ .animatedartwork-view-box {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+
+ .animated {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+
+ video {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+
+ &.rounded {
+ border-radius: 100%;
+
+ &::after {
+ border-radius: 100%;
+ }
+ }
+
+ &::after {
+ content: "";
+ box-shadow: var(--mediaItemShadow);
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ border-radius: inherit;
+ }
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ image-rendering: -webkit-optimize-contrast;
+ pointer-events: none;
+ }
+
+ &.no-shadow {
+ box-shadow: none;
+
+ &::after {
+ display: none;
+ }
+ }
+
+ &.subtle-shadow {
+ box-shadow: var(--mediaItemShadow-ShadowSubtle);
+ }
+
+ &.shadow {
+ box-shadow: var(--mediaItemShadow-Shadow);
+ }
+}
+
+/* queue item */
+.cd-queue-item {
+ border-bottom: 1px solid rgb(200 200 200 / 10%);
+ padding: 8px;
+
+ .row,
+ .col {
+ padding: 0px;
+ margin: 0px;
+ }
+
+ .artwork {
+ width: 32px;
+ height: 32px;
+ flex: 0 0 auto;
+ }
+
+ &.selected {
+ background: var(--selected);
+ }
+
+ &:active {
+ background: var(--selected-click);
+ color: #eee;
+ }
+
+ .queue-info {
+ display: flex;
+ flex-direction: column;
+
+ .queue-title {
+ font-size: 14px;
+ }
+
+ .queue-subtitle {
+ font-size: 13px;
+ opacity: 0.85;
+ }
+ }
+}
+
+/* horizontal media scroller */
+.cd-hmedia-scroller {
+ &::-webkit-scrollbar-thumb {
+ box-shadow: none;
+ }
+
+ &:hover::-webkit-scrollbar-thumb {
+ box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%);
+ }
+
+ &.hmedia-scroller-card {
+ .mediaitem-card {
+ margin: 16px;
+ }
+ }
+}
+
+/* mediaitem-list-item */
+.cd-mediaitem-list-item {
+ width: 100%;
+ height: 60px;
+ display: flex;
+ flex: 0 0 auto;
+ flex-direction: row;
+ font-size: 14px;
+ justify-content: center-between;
+ align-items: center;
+ border-radius: var(--mediaItemRadius);
+
+ .artwork {
+ height: 42px;
+ width: 42px;
+ border-radius: var(--mediaItemRadius);
+ object-fit: cover;
+ object-position: center;
+ flex: 0 0 auto;
+ background-repeat: no-repeat;
+ margin: 12px;
+ border: 0px;
+ outline: none;
+ position: relative;
+ overflow: hidden;
+
+ .overlay-play {
+ background: rgba(0, 0, 0, 0.5);
+ opacity: 0;
+ appearance: none;
+ border: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ padding: 0px;
+ z-index: 5;
+ cursor: pointer;
+
+ &:hover {
+ opacity: 1;
+ }
+
+ &:active {
+ background: var(--selected-click);
+ }
+ }
+ }
+
+ .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+ }
+
+ .info-rect {
+ height: 100%;
+ display: flex;
+ flex-flow: column;
+ justify-content: center;
+ flex-grow: 1;
+ }
+
+ .title {
+ width: 100%;
+ }
+
+ .subtitle {
+ width: 90%;
+ font-size: .8em;
+ opacity: 0.7;
+ }
+
+ .duration {
+ min-width: 60px;
+ text-align: center;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .metainfo {
+ min-width: 145px;
+ text-align: center;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .explicit-icon {
+ background-image: url("./assets/explicit.svg");
+ height: 12px;
+ width: 36px;
+ filter: contrast(0);
+ background-repeat: no-repeat;
+ }
+
+ /* CSS.gg
+ */
+ @keyframes load-bar {
+ 10% {
+ box-shadow: inset 0 -4px 0
+ }
+ 20% {
+ box-shadow: inset 0 -10px 0
+ }
+ 30% {
+ box-shadow: inset 0 -12px 0
+ }
+ 40% {
+ box-shadow: inset 0 -8px 0
+ }
+ 50% {
+ box-shadow: inset 0 -4px 0
+ }
+ 60% {
+ box-shadow: inset 0 -6px 0
+ }
+ 80% {
+ box-shadow: inset 0 -12px 0
+ }
+ 90% {
+ box-shadow: inset 0 -6px 0
+ }
+ to {
+ box-shadow: inset 0 -2px 0
+ }
+ }
+
+ .loadbar-sound,
+ .loadbar-sound::after,
+ .loadbar-sound::before {
+ animation: load-bar 1.3s ease infinite alternate;
+ box-sizing: border-box;
+ width: 3px;
+ height: 28px;
+ box-shadow: inset 0 -12px 0;
+ }
+
+ .loadbar-sound {
+ margin-left: 22px;
+ margin-top: -16px;
+ position: relative;
+ transform: scale(var(--load-bar, 1));
+ color: var(--keyColor);
+ display: block;
+ }
+
+ .loadbar-sound::after,
+ .loadbar-sound::before {
+ content: "";
+ position: absolute;
+ bottom: 0
+ }
+
+ .loadbar-sound::before {
+ left: -4.5px;
+ animation-delay: -2.4s
+ }
+
+ .loadbar-sound::after {
+ right: -4.2px;
+ animation-delay: -3.7s
+ }
+
+ .isLibrary {
+ flex: 0 0 auto;
+ width: 40px;
+ text-align: center;
+
+ button {
+ appearance: none;
+ border: 0px;
+ background: transparent;
+ cursor: pointer;
+ filter: contrast(0.8);
+ }
+ }
+
+ &:hover {
+ background: rgb(200 200 200 / 10%);
+ box-shadow: var(--mediaItemShadow);
+
+ .overlay-play {
+ opacity: 1;
+ }
+ }
+
+ &.mediaitem-selected {
+ background: var(--selected);
+ box-shadow: var(--mediaItemShadow);
+ }
+
+
+ &:active {
+ background: var(--selected-click);
+ box-shadow: var(--mediaItemShadow);
+ color: #eee;
+ }
+
+ &.disabled {
+ opacity: 0.5;
+ pointer-events: none;
+ }
+
+ // list item compact
+ &.compact {
+ height: 40px;
+ font-size: 13px;
+
+ .artwork {
+ display: none;
+ }
+
+ .info-rect {
+ padding-left: 1em;
+ }
+ }
+}
+
+/* mediaitem-hrect */
+.cd-mediaitem-hrect {
+ background: rgb(255 255 255 / 18%);
+ width: 264px;
+ height: 100px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: row;
+ font-size: 14px;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+ cursor: pointer;
+
+ .artwork {
+ height: 70px;
+ width: 70px;
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: contain;
+ flex: 0 0 auto;
+ background-repeat: no-repeat;
+ margin: 18px;
+ }
+
+ .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+ }
+
+ .info-rect {
+ width: 100%;
+ }
+
+ .title {
+ width: 100%;
+ text-align: center;
+ }
+
+ .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+ }
+}
+
+/* mediaitem-square-sp */
+.cd-mediaitem-square-sp {
+ --spcolor: var("");
+ width: 190px;
+ height: 245px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+ background-color: var(--spcolor);
+
+ .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+
+ &.round {
+ border-radius: var(--mediaItemRadiusRound);
+ }
+
+ &:hover {
+ box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset;
+ }
+ }
+
+ .title {
+ width: 90%;
+ text-align: center;
+ }
+
+ .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+ }
+
+ > .cd-mediaitem-square-large-overlay {
+ z-index: 3;
+
+ &:hover {
+ opacity: 1;
+ }
+ }
+
+ + .cd-mediaitem-square-large-overlay {
+ pointer-events: none;
+ }
+
+ &:hover + .cd-mediaitem-square-large-overlay {
+ opacity: 1;
+
+ }
+
+ &:hover {
+ box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset;
+ }
+}
+
+
+/* mediaitem-square-large */
+.cd-mediaitem-square-large {
+ width: 190px;
+ height: 250px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+
+ > * {
+ z-index: inherit;
+ }
+}
+
+.cd-mediaitem-square-large .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+
+.cd-mediaitem-square-large-overlay {
+ position: absolute;
+ width: 190px;
+ float: right;
+ height: 250px;
+ top: 0px;
+ margin: 10px;
+ margin-top: 0px;
+ opacity: 0;
+
+}
+
+.cd-mediaitem-square-large-overlay > * {
+ pointer-events: auto;
+
+}
+
+.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay {
+ z-index: 3;
+}
+
+.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover {
+ opacity: 1;
+}
+
+.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay {
+ pointer-events: none;
+
+}
+
+.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay {
+ opacity: 1;
+
+}
+
+
+.cd-mediaitem-square-large .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+
+.cd-mediaitem-square-large .title {
+ width: 90%;
+ text-align: center;
+}
+
+.cd-mediaitem-square-large .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+
+/* mediaitem-mvview */
+
+/* mediaitem-mvview */
+.cd-mediaitem-mvview {
+ width: 300px;
+ height: 250px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+
+ > * {
+ z-index: inherit;
+ }
+}
+
+.cd-mediaitem-mvview .artwork {
+ height: 172px;
+ width: 300px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+
+.cd-mediaitem-mvview-overlay {
+ position: absolute;
+ width: 300px;
+ float: right;
+ height: 250px;
+ top: 0px;
+ margin: 10px;
+ margin-top: 0px;
+ opacity: 0;
+
+}
+
+.cd-mediaitem-mvview-overlay > * {
+ pointer-events: auto;
+
+}
+
+.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay {
+ z-index: 3;
+}
+
+.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover {
+ opacity: 1;
+}
+
+.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay {
+ pointer-events: none;
+
+}
+
+.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay {
+ opacity: 1;
+
+}
+
+
+.cd-mediaitem-mvview .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+
+.cd-mediaitem-mvview .title {
+ width: 90%;
+ text-align: center;
+}
+
+.cd-mediaitem-mvview .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+
+
+/* mediaitem-square */
+.cd-mediaitem-square {
+ width: 220px;
+ height: 238px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+
+ .artwork-container {
+ position: relative;
+
+ .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ cursor: pointer;
+
+ &.round {
+ border-radius: var(--mediaItemRadiusRound);
+ }
+ }
+
+ .badge-container {
+ transition: opacity 0.1s var(--appleEase);
+ opacity: 1;
+
+ .socialBadge {
+ width: 32px;
+ height: 32px;
+ position: absolute;
+ right: 14px;
+ bottom: 14px;
+ border-radius: 100%;
+ overflow: hidden;
+ z-index: 2;
+ pointer-events: none;
+ }
+ }
+
+ > .play-btn,
+ > .menu-btn {
+ opacity: 0;
+ appearance: none;
+ padding: 0px;
+ border: 0px;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ background: rgba(50, 50, 50, 0.7);
+ cursor: pointer;
+ transition: opacity 0.1s var(--appleEase);
+
+ :hover {
+ border-radius: 50%;
+ background: rgba(250, 0, 0, 0.7);
+ }
+ }
+
+ > .play-btn {
+ position: absolute;
+ bottom: 14px;
+ left: 14px;
+ z-index: 2;
+
+ }
+
+ > .menu-btn {
+ position: absolute;
+ bottom: 14px;
+ right: 14px;
+ z-index: 2;
+ }
+
+ &:hover {
+ > .badge-container {
+ opacity: 0;
+ }
+
+ > .play-btn,
+ > .menu-btn {
+ opacity: 1;
+ }
+ }
+ }
+
+ .info-rect {
+ width: 90%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+
+
+ .title {
+ width: 100%;
+ text-align: center;
+ display: flex;
+ align-content: center;
+ justify-content: center;
+ }
+
+ .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+ }
+
+ .unavailable-overlay {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ bottom: 0;
+ right: 0;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ z-index: 2;
+ pointer-events: none;
+ background: rgb(0 0 0 / 40%);
+ margin: 2em;
+ border-radius: 10px;
+
+ >.codicon {
+ font-size: 4em;
+ font-weight: bold;
+ opacity: 0.5;
+ }
+ }
+
+ &.mediaitem-video {
+ height: 200px;
+ width: 240px;
+
+ .artwork {
+ height: 120px;
+ width: 212px;
+ }
+ }
+
+ &.mediaitem-brick {
+ height: 200px;
+ width: 240px;
+
+ .artwork {
+ height: 123px;
+ width: 220px;
+ }
+ }
+
+ &.mediaitem-small {
+ width: 140px;
+ height: 180px;
+
+ .artwork {
+ height: 128px;
+ width: 128px;
+ }
+ }
+
+ &.mediaitem-card {
+ background: #ccc;
+ background: var(--spcolor);
+ height: 298px;
+ width: 230px;
+ max-width: 250px;
+ max-height: 500px;
+ overflow: hidden;
+ position: relative;
+ border-radius: calc(var(--mediaItemRadius) * 2);
+ box-shadow: var(--mediaItemShadow-ShadowSubtle);
+
+ .artwork {
+ width: 230px;
+ height: 230px;
+ overflow: hidden;
+ border-radius: 0px;
+ margin: 0;
+
+ .mediaitem-artwork {
+ border-radius: 0px;
+
+ &::after {
+ box-shadow: unset;
+ }
+ }
+ }
+
+ .info-rect-card {
+ padding: 10px 10px 14px;
+ position: relative;
+ width: 100%;
+
+ &::before {
+ background: var(--bgartwork);
+ content: "";
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ position: absolute;
+ background-size: cover;
+ background-position: bottom;
+ z-index: 0;
+ opacity: 1;
+ filter: brightness(0.5) blur(50px) saturate(180%);
+ }
+ }
+
+ .title {
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.9em;
+ font-weight: 500;
+ z-index: 1;
+ }
+
+ .subtitle {
+ height: 100%;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.75em;
+ width: 100%;
+ display: flex;
+ z-index: 1;
+ }
+
+ &::after {
+ box-shadow: var(--mediaItemShadow);
+ content: "";
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ pointer-events: none;
+ border-radius: inherit;
+ }
+ }
+}
+
+/* mediaitem-square */
+.albums-square-containeru > * > .cd-mediaitem-square {
+ --frame: max(220px, 15vw);
+ width: var(--frame);
+ height: calc(var(--frame) * 13 / 11);
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: calc(var(--frame) / 220 * 14);
+ justify-content: center;
+ align-items: center;
+ border-radius: calc(var(--frame) / 220 * 6);
+
+ .artwork-container {
+ position: relative;
+
+ .artwork {
+ height: calc(var(--frame) * 19 / 22);
+ width: calc(var(--frame) * 19 / 22);
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: calc(var(--frame) / 220 * 6);
+ cursor: pointer;
+
+ &.round {
+ border-radius: var(--mediaItemRadiusRound);
+ }
+ }
+
+ > .play-btn,
+ > .menu-btn {
+ opacity: 0;
+ appearance: none;
+ padding: 0px;
+ border: 0px;
+ width: calc(var(--frame) / 220 * 30);
+ height: calc(var(--frame) / 220 * 30);
+ border-radius: 50%;
+ background: rgba(50, 50, 50, 0.7);
+ cursor: pointer;
+ backdrop-filter: blur(32px) saturate(180%);
+ transition: opacity 0.1s var(--appleEase);
+ }
+
+ > .play-btn {
+ position: absolute;
+ bottom: calc(var(--frame) / 220 * 14);
+ left: calc(var(--frame) / 220 * 14);
+ z-index: 2;
+ }
+
+ > .menu-btn {
+ position: absolute;
+ bottom: calc(var(--frame) / 220 * 14);
+ right: calc(var(--frame) / 220 * 14);
+ z-index: 2;
+ }
+
+ &:hover {
+
+ > .play-btn,
+ > .menu-btn {
+ opacity: 1;
+ }
+ }
+ }
+
+
+ .title {
+ width: 90%;
+ text-align: center;
+ }
+
+ .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: calc(var(--frame) / 220 * 12);
+ }
+
+ &.mediaitem-video {
+ height: calc(var(--frame) / 220 * 200);
+ width: calc(var(--frame) / 220 * 240);
+
+ .artwork {
+ height: calc(var(--frame) / 220 * 120);
+ width: calc(var(--frame) / 220 * 212);
+ }
+ }
+
+ &.mediaitem-brick {
+ height: calc(var(--frame) / 220 * 200);
+ width: calc(var(--frame) / 220 * 240);
+
+ .artwork {
+ height: calc(var(--frame) / 220 * 123);
+ width: calc(var(--frame));
+ }
+ }
+}
+
+
+.listitem-horizontal {
+ .cd-mediaitem-list-item {
+ width: 350px;
+ height: 60px;
+ }
+}
+
+.mediaitem-list-item__grid {
+ background: rgba(200, 200, 200, 0.05);
+ border-radius: 10px;
+ padding: var(--contentInnerPadding);
+ box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
+ width: 100%;
+
+ .cd-mediaitem-list-item {
+ width: 350px;
+ height: 60px;
+ }
+
+ &::-webkit-scrollbar {
+ display: none;
+ }
+
+ &:hover::-webkit-scrollbar {
+ display: initial;
+
+ }
+}
+
+// Graphics
+
+// sidebar icon
+.svg-icon {
+ --color: #aaa;
+ --url: url("./assets/feather/share.svg");
+ -webkit-mask-image: var(--url);
+ -webkit-mask-size: cover;
+ height: 18px;
+ width: 18px;
+ background: var(--color);
+
+ &.inline {
+ display: inline-block;
+ }
+}
+
+.sidebar-icon {
+ width: 18px;
+ height: 18px;
+ margin-right: 8px;
+
+ > .svg-icon {
+ width: 100%;
+ height: 100%;
+ --color: #aaa;
+ }
+
+ > svg {
+ width: 100%;
+ height: 100%;
+ color: #aaa;
+ }
+}
+
+
+/* Switch Checkbox */
+input[type=checkbox][switch] {
+ width: 38px;
+ appearance: none;
+ border-radius: 32px;
+ height: 24px;
+ zoom: 1;
+ top: 0;
+ cursor: pointer;
+ left: 0;
+ position: relative;
+ transform: scale(1);
+ background: rgb(142 142 147 / 100%);
+ padding: 0;
+ margin: 0;
+}
+
+input[type=checkbox][switch]:focus,
+input[type=checkbox][switch]:active {
+ outline: none;
+}
+
+input[type=checkbox][switch]:checked {
+ background: var(--keyColor);
+ border: 0 solid var(--keyColor);
+ mix-blend-mode: unset;
+
+ &:hover {
+ background: var(--keyColor-rollover);
+ }
+
+ &:active {
+ background: var(--keyColor-pressed);
+ }
+}
+
+input[type=checkbox][switch]::before {
+ background: white;
+ width: 26px;
+ height: 26px;
+ top: -1px;
+ left: -1px;
+ position: absolute;
+ content: ' ';
+ border-radius: 32px;
+ transition: .10s left var(--appleEase);
+ transform: scale(.75);
+}
+
+
+input[type=checkbox][switch]:checked::before {
+ background: white;
+ top: -1px;
+ left: 13px;
+ transition: .10s left var(--appleEase);
+ transform: scale(.75);
+}
+
+input[type=checkbox][switch]:disabled::before {
+ opacity: .5;
+}
+
+input[type=checkbox][switch]:active::before {
+ left: 13px;
+}
+
+input[type=checkbox][switch]:checked:active::before {
+ left: -1px;
+}
+
+/* End Switch Checkbox */
+
+
+
+.header-text {
+ margin: 0px;
+}
+
+.media-item--small {
+ background: rgb(0 0 0 / 25%);
+ height: 162px;
+ width: 132px;
+ display: inline-flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ border-radius: 10px;
+}
+
+.media-item--small .artwork {
+ background: red;
+ margin: 6px;
+ border-radius: 100%;
+ width: 90px;
+ height: 90px;
+ box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 30%);
+}
+
+.playlist-artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ box-shadow: var(--mediaItemShadow);
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+
+.media-item--small .text {
+ font-weight: 600;
+ font-size: 0.90em;
+}
+
+.media-item--small .subtext {
+ font-size: 0.75em;
+}
+
+.player-duration-time {
+ opacity: 0.5;
+}
+
+.player-artwork-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.player-duration-container {
+ font-size: 0.85em;
+ font-weight: 500;
+}
+
+.media-artwork {
+ --artwork: url("");
+ width: 80vw;
+ height: 80vw;
+ max-height: 500px;
+ max-width: 500px;
+ background: black;
+ background-image: var(--artwork);
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 8px;
+ box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55);
+ transition: transform .10s var(--appleEase);
+}
+
+.media-artwork.paused {
+ transition: transform .35s var(--appleEase);
+ transform: scale(0.85);
+}
+
+.playback-slider {
+ width: 90%;
+}
+
+.volume-slider {
+ width: 100%;
+}
+
+.volume-slider-container {
+ width: 90%;
+ margin: 0 auto;
+ padding: 0px;
+}
+
+.volume-slider-container .col-auto,
+.volume-slider-container .col {
+ display: flex;
+ align-items: center;
+ justify-self: center;
+ padding: 0px;
+ margin: 0px;
+}
+
+.playback-button {
+ font-size: 2em;
+ width: 40px;
+ height: 36px;
+ padding: 0px;
+ background: transparent;
+ border: 0px;
+ border-radius: 0px;
+ box-shadow: unset;
+ background-size: 12px;
+ background-position: center;
+ background-repeat: no-repeat;
+ opacity: 0.70;
+ border-radius: 6px;
+}
+
+.playback-button:active {
+ transform: scale(0.95);
+}
+
+.playback-button--small {
+ border-radius: 6px;
+ font-size: 1em;
+ color: inherit;
+ background-size: 14px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-color: transparent;
+ width: 40px;
+ height: 32px;
+ border: 0px;
+ box-shadow: unset;
+ opacity: 0.70;
+}
+
+.playback-button:hover,
+.playback-button--small:hover {
+ background-color: rgb(200 200 200 / 10%);
+}
+
+.playback-button:active,
+.playback-button--small:active {
+ transform: scale(0.9);
+}
+
+.playback-button--small.active {
+ background-color: rgb(200 200 200 / 25%);
+}
+
+.playback-button--small.search {
+ background-image: url("./assets/search.svg");
+}
+
+.playback-button--small.cast {
+ background-image: url("./assets/cast_white.svg");
+}
+
+.playback-button--small.miniplayer {
+ background-image: url("./assets/pip.svg");
+}
+
+.playback-button--small.queue {
+ background-image: url("./assets/list.svg");
+}
+
+.playback-button--small.lyrics {
+ background-image: url("./assets/quote-right.svg");
+}
+
+.playback-button--small.shuffle {
+ background-image: url("./assets/shuffle.svg");
+}
+
+.playback-button--small.repeat {
+ background-image: url("./assets/repeat.svg");
+}
+
+.playback-button--small.repeat.repeatOne {
+ background-color: rgb(200 200 200 / 25%);
+ background-image: url("./assets/repeatOne.svg");
+}
+
+.playback-button.pause {
+ background-image: url('./assets/pause.svg');
+}
+
+.playback-button.play {
+ background-image: url('./assets/play.svg');
+}
+
+.playback-button.next {
+ background-image: url('./assets/forward.svg');
+}
+
+.playback-button.previous {
+ background-image: url('./assets/backward.svg');
+}
+
+.playback-buttons {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.player-volume-glyph {
+ width: 32px;
+ height: 16px;
+ background-repeat: no-repeat;
+ background-size: contain;
+ background-position: center;
+}
+
+.player-volume-glyph.decrease {
+ background-image: url("./assets/volume.svg");
+ opacity: 0.5;
+}
+
+.player-volume-glyph.increase {
+ background-image: url("./assets/volume-2.svg");
+ opacity: 0.5;
+}
+
+.player-track-info {
+ width: 90%;
+ margin: 0 auto;
+}
+
+.player-song-title {
+ font-size: 1.25em;
+ text-align: left;
+ margin: 0 auto;
+ font-weight: 500;
+}
+
+.player-song-artist {
+ font-size: 1.0em;
+ text-align: left;
+ margin: 0 auto;
+ color: var(--keyColor);
+ font-weight: 400;
+}
+
+.player-song-artist:hover {
+ cursor: pointer;
+ text-decoration: underline;
+}
+
+.player-more-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.player-more-button {
+ appearance: none;
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ border: 0px;
+ background: var(--keyColor);
+ cursor: pointer;
+ box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%);
+ color: white;
+ font-weight: bold;
+ padding: 0px;
+ font-size: 16px;
+}
+
+.back-button {
+ width: 40px;
+ height: 40px;
+ background-color: transparent;
+ background-size: 16px;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url("./assets/arrow-left.svg");
+ border: 0px;
+ border-radius: 0px;
+}
+
+.header-text {
+ height: 40px;
+ display: flex;
+ align-items: center;
+
+}
+
+
+.list-entry-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 12px;
+ font-size: 1em;
+ font-family: inherit;
+}
+
+.list-entry {
+ display: flex;
+ align-items: center;
+ /* justify-content: space-between; */
+ padding: 12px;
+ font-size: 1em;
+ font-family: inherit;
+ border-bottom: 1px solid rgba(255 255 255 / 0.1);
+ cursor: pointer;
+}
+
+.list-entry-image {
+ --artwork: url("");
+ width: 64px;
+ height: 64px;
+ background: var(--artwork);
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 8px;
+ box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55);
+}
+
+.list-entry-image.artist {
+ border-radius: 50%;
+}
+
+.list-entry-body {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: flex-start;
+ margin-left: 12px;
+}
+
+.list-entry-name {
+ font-size: 14px;
+ font-weight: 500;
+ overflow: hidden;
+ width: 100%;
+}
+
+.list-entry-artist {
+ font-size: 12px;
+ overflow: hidden;
+ width: 100%;
+}
+
+.list-entry .handle {
+ height: 100%;
+ width: 28px;
+ background: var(--keyColor);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.artist-chip {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ margin: 4px 0px;
+ border-radius: 4px;
+ color: white;
+ font-size: 1em;
+ font-weight: 500;
+ cursor: pointer;
+ padding: 8px;
+
+ &:hover {
+ background: var(--selected);
+ }
+
+ .artist-chip__follow {
+ appearance: none;
+ border: 0;
+ height: 32px;
+ width: 32px;
+ background: #ffffff0f;
+ margin: 0px 0px 0px 10px;
+ font-weight: bold;
+ color: white;
+ border-radius: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 12px;
+ cursor: pointer;
+ flex: 0 0 32px;
+
+ &:hover {
+ background: var(--selected);
+ }
+ }
+
+ .artist-chip__image {
+ width: 32px;
+ height: 32px;
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 100%;
+ overflow: hidden;
+ margin: 0px 12px 0px 0px;
+ pointer-events: none;
+ flex: 0 0 32px;
+
+ .mediaitem-artwork {
+ border-radius: inherit;
+ }
+ }
+ .artist-chip__name {
+ pointer-events: none;
+ }
+}
+
+.search-panel {
+ background: rgb(0 0 0 / 50%);
+}
+
+.search-header {
+ position: absolute;
+ width: 100%;
+ z-index: 1;
+ backdrop-filter: blur(16px);
+ -webkit-backdrop-filter: blur(16px);
+ border-bottom: 1px solid rgb(200 200 200 / 8%);
+}
+
+.connection-error-panel {
+ background: rgb(0 0 0 / 50%);
+}
+
+.search-type-container {
+ display: flex;
+}
+
+.search-type-button {
+ background: rgb(20 20 20 / 0.85);
+ border-radius: 50px;
+ color: white;
+ border: 0px;
+ box-shadow: unset;
+ font-family: inherit;
+ padding: 8px 16px;
+ font-size: 14px;
+ font-weight: 500;
+ margin: 8px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.search-type-button.active {
+ background: var(--keyColor);
+}
+
+.search-tab-container {
+ overflow: auto;
+ white-space: nowrap;
+ overflow-y: hidden;
+}
+
+.search-body-container {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+
+.search-body {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ padding-top: 220px;
+}
+
+.search-tab {
+ background: rgb(20 20 20 / 0.85);
+ border-radius: 50px;
+ color: white;
+ border: 0px;
+ box-shadow: unset;
+ font-family: inherit;
+ padding: 8px 16px;
+ font-size: 14px;
+ font-weight: 500;
+}
+
+.search-tab.active {
+ background: var(--keyColor);
+}
\ No newline at end of file
diff --git a/src/renderer/less/helpers.css b/src/renderer/less/helpers.css
new file mode 100644
index 00000000..f911c573
--- /dev/null
+++ b/src/renderer/less/helpers.css
@@ -0,0 +1,349 @@
+.notyf__toast {
+ -webkit-app-region: no-drag;
+ cursor: pointer;
+}
+.notyf-info {
+ background: var(--keyColor);
+}
+.tooltip-inner {
+ background: #2f2f2f;
+ opacity: 1;
+ border: 1px solid rgba(0, 0, 0, 0.35);
+ transition: all 0.3s ease-in-out;
+ box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25);
+}
+.modal-fullscreen {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.3);
+ z-index: 1000;
+}
+.modal-fullscreen .modal-window {
+ background: #333;
+ border-radius: 10px;
+ box-shadow: var(--mediaItemShadow-Shadow);
+ display: flex;
+ flex-flow: column;
+ max-height: 500px;
+ max-width: 360px;
+ background: #121212;
+ width: 100%;
+ position: relative;
+}
+.modal-fullscreen .modal-window:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ box-shadow: var(--mediaItemShadow);
+ z-index: 1;
+ border-radius: inherit;
+}
+.modal-fullscreen .modal-window .modal-header {
+ width: 100%;
+ padding: 6px;
+}
+.modal-fullscreen .modal-window .modal-content {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ overflow-y: overlay;
+}
+.spatialproperties-panel .modal-window {
+ height: 700px;
+ max-height: 700px;
+ width: 800px;
+ max-width: 800px;
+ overflow: hidden;
+}
+.spatialproperties-panel .modal-window .info-header {
+ padding-left: 12px;
+}
+.spatialproperties-panel .modal-window .visual-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+}
+.spatialproperties-panel .modal-window .visual {
+ position: relative;
+ height: 250px;
+ width: 300px;
+ display: inline-flex;
+ align-items: flex-end;
+ justify-content: center;
+ filter: drop-shadow(2px 12px 6px rgba(0, 0, 0, 0.25));
+ margin: 0 auto;
+}
+.spatialproperties-panel .modal-window .visual .face {
+ position: absolute;
+ width: calc(12px * 6);
+ height: calc(12px * 6);
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+}
+.spatialproperties-panel .modal-window .visual .listener {
+ position: absolute;
+ width: 32px;
+ height: 32px;
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+ background: white;
+ color: black;
+ z-index: 2;
+}
+.spatialproperties-panel .modal-window .visual .audiosource {
+ position: absolute;
+ width: 32px;
+ height: 32px;
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+ background: yellow;
+ z-index: 2;
+}
+.spatialproperties-panel .modal-window .visual .face:nth-of-type(1) {
+ background: linear-gradient(45deg, #28223a, #1f2038);
+ z-index: 1;
+}
+.spatialproperties-panel .modal-window .visual .face:nth-of-type(2) {
+ background: linear-gradient(45deg, #7d53ad, #5763ff);
+ transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px);
+ opacity: 0.7;
+ z-index: 3;
+}
+.spatialproperties-panel .modal-window .modal-header {
+ padding: 16px;
+ position: relative;
+ overflow: hidden;
+}
+.spatialproperties-panel .modal-window .modal-header .modal-title {
+ text-align: center;
+}
+.spatialproperties-panel .modal-window .modal-header .close-btn {
+ width: 50px;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.spatialproperties-panel .modal-window .modal-header .close-btn:hover {
+ background-color: #c42b1c;
+}
+.addtoplaylist-panel .modal-window {
+ max-height: 600px;
+ max-width: 400px;
+ background: rgba(18, 18, 18, 0.9);
+ overflow: hidden;
+ backdrop-filter: blur(16px) saturate(180%);
+}
+.addtoplaylist-panel .modal-window .modal-header {
+ padding: 16px;
+ position: relative;
+}
+.addtoplaylist-panel .modal-window .modal-header .modal-title {
+ text-align: center;
+}
+.addtoplaylist-panel .modal-window .modal-header .close-btn {
+ width: 50px;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.addtoplaylist-panel .modal-window .modal-header .close-btn:hover {
+ background-color: #c42b1c;
+}
+.addtoplaylist-panel .modal-window .modal-search {
+ width: 100%;
+ padding: 0px 16px;
+ position: relative;
+}
+.addtoplaylist-panel .modal-window .playlist-item {
+ appearance: none;
+ border: 0px;
+ text-align: left;
+ width: 100%;
+ margin: 0;
+ display: flex;
+ background: rgba(32, 32, 32, 0.46);
+ color: #eee;
+ font-family: inherit;
+ font-size: 0.98em;
+ padding: 6px 12px;
+ align-items: center;
+ flex-flow: row;
+}
+.addtoplaylist-panel .modal-window .playlist-item .icon {
+ pointer-events: none;
+ width: 32px;
+ height: 32px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 6px;
+}
+.addtoplaylist-panel .modal-window .playlist-item .name {
+ position: relative;
+}
+.addtoplaylist-panel .modal-window .playlist-item:hover {
+ background: var(--selected);
+}
+.addtoplaylist-panel .modal-window .playlist-item:active {
+ background: var(--selected-click);
+}
+.addtoplaylist-panel .modal-window .playlist-item.focused {
+ background: var(--keyColor);
+}
+.addtoplaylist-panel .modal-window .playlist-item:last-child {
+ border-bottom: 0px;
+}
+.menu-panel {
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 100001;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-app-region: no-drag;
+}
+.menu-panel .menu-header-body {
+ padding: 6px;
+ display: flex;
+ background: rgba(200, 200, 200, 0.1);
+}
+.menu-panel .menu-header-body .menu-option-header {
+ width: 40px;
+ height: 40px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: var(--mediaItemRadius);
+ appearance: none;
+ border: 0;
+ background: transparent;
+}
+.menu-panel .menu-header-body .menu-option-header.active .sidebar-icon > .svg-icon {
+ --color: var(--keyColor);
+}
+.menu-panel .menu-header-body .menu-option-header:hover {
+ background: var(--selected);
+}
+.menu-panel .menu-header-body .menu-option-header:active {
+ background: var(--selected-click);
+}
+.menu-panel .menu-panel-body {
+ display: flex;
+ flex-flow: column;
+ background: #262626;
+ position: relative;
+ min-width: 200px;
+ box-shadow: var(--ciderShadow-Generic);
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ font-size: 13px;
+}
+.menu-panel .menu-panel-body .menu-option {
+ text-align: left;
+ display: flex;
+ width: 100%;
+ padding: 9px 16px;
+ appearance: none;
+ border: 0px;
+ font: inherit;
+ background: transparent;
+ color: inherit;
+}
+.menu-panel .menu-panel-body .menu-option:hover {
+ background: var(--selected);
+}
+.menu-panel .menu-panel-body .menu-option:active {
+ background: var(--selected-click);
+}
+.menu-panel .menu-header-text {
+ margin: 18px 6px;
+}
+.menu-panel .menu-header-text .close-btn {
+ width: 50px;
+ height: 42px;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.menu-panel .menu-header-text .close-btn:hover {
+ background-color: #c42b1c;
+}
+.menu-panel .menu-body {
+ overflow: overlay;
+ height: 100%;
+}
+.menu-panel .menu-footer {
+ width: 100%;
+ padding: 12px;
+}
+.queue-panel {
+ height: 100%;
+ width: 100%;
+ display: flex;
+ flex-flow: column;
+}
+.queue-panel .queue-header-text {
+ margin: 18px 6px;
+}
+.queue-panel .queue-body {
+ overflow: overlay;
+ height: 100%;
+}
+.queue-panel .queue-footer {
+ width: 100%;
+ padding: 12px;
+}
+.queue-panel .autoplay {
+ background: rgba(200, 200, 200, 0.15);
+ display: flex;
+ justify-content: center;
+ appearance: none;
+ border: 0;
+ border-radius: 6px;
+ height: 32px;
+ width: 32px;
+}
+.queue-panel .infinity {
+ content: url("assets/infinity.svg");
+ margin: auto;
+}
diff --git a/src/renderer/less/helpers.less b/src/renderer/less/helpers.less
new file mode 100644
index 00000000..211e8cd9
--- /dev/null
+++ b/src/renderer/less/helpers.less
@@ -0,0 +1,413 @@
+.notyf__toast {
+ -webkit-app-region: no-drag;
+ cursor: pointer;
+}
+
+.notyf-info {
+ background: var(--keyColor);
+}
+
+.tooltip-inner {
+ background: #2f2f2f;
+ opacity: 1;
+ border: 1px solid rgb(0 0 0 / 35%);
+ transition: all 0.3s ease-in-out;
+ box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25);
+}
+
+.modal-fullscreen {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.3);
+ z-index: 1000;
+
+ .modal-window {
+ background: #333;
+ border-radius: 10px;
+ box-shadow: var(--mediaItemShadow-Shadow);
+ display: flex;
+ flex-flow: column;
+ max-height: 500px;
+ max-width: 360px;
+ background: #121212;
+ width: 100%;
+ position: relative;
+
+ &:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ box-shadow: var(--mediaItemShadow);
+ z-index: 1;
+ border-radius: inherit;
+ }
+
+ .modal-header {
+ width: 100%;
+ padding: 6px;
+ }
+
+ .modal-content {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ overflow-y: overlay;
+ }
+
+ .modal-footer {
+ }
+ }
+}
+
+.spatialproperties-panel {
+ .modal-window {
+ height: 700px;
+ max-height: 700px;
+ width: 800px;
+ max-width: 800px;
+ overflow: hidden;
+
+ .info-header {
+ padding-left: 12px;
+ }
+
+ .visual-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+ }
+
+ .visual {
+ position: relative;
+ height: 250px;
+ width: 300px;
+ display: inline-flex;
+ align-items: flex-end;
+ justify-content: center;
+ filter: drop-shadow(2px 12px 6px rgb(0 0 0 / 25%));
+ margin: 0 auto;
+
+ .face {
+ position: absolute;
+ width: calc(12px * 6);
+ height: calc(12px * 6);
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+ }
+
+ .listener {
+ position: absolute;
+ width: 32px;
+ height: 32px;
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+ background: white;
+ color: black;
+ z-index: 2;
+ }
+
+ .audiosource {
+ position: absolute;
+ width: 32px;
+ height: 32px;
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+ background: yellow;
+ z-index: 2;
+ }
+
+ .face:nth-of-type(1) {
+ background: linear-gradient(45deg, #28223a, #1f2038);
+ z-index: 1;
+ }
+
+ .face:nth-of-type(2) {
+ background: linear-gradient(45deg, #7d53ad, #5763ff);
+ transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px);
+ opacity: 0.7;
+ z-index: 3;
+ }
+ }
+
+ .modal-header {
+ padding: 16px;
+ position: relative;
+ overflow: hidden;
+
+ .modal-title {
+ text-align: center;
+ }
+
+ .close-btn {
+ width: 50px;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+
+ &:hover {
+ background-color: rgb(196, 43, 28)
+ }
+ }
+ }
+ }
+}
+
+.addtoplaylist-panel {
+ .modal-window {
+ max-height: 600px;
+ max-width: 400px;
+ background: rgb(18 18 18 / 90%);
+ overflow: hidden;
+ backdrop-filter: blur(16px) saturate(180%);
+
+ .modal-header {
+ padding: 16px;
+ position: relative;
+
+ .modal-title {
+ text-align: center;
+ }
+
+ .close-btn {
+ width: 50px;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+
+ &:hover {
+ background-color: rgb(196, 43, 28)
+ }
+ }
+ }
+
+ .modal-search {
+ width: 100%;
+ padding: 0px 16px;
+ position: relative;
+ }
+
+ .playlist-item {
+ appearance: none;
+ border: 0px;
+ text-align: left;
+ width: 100%;
+ margin: 0;
+ display: flex;
+ background: rgba(32, 32, 32, 0.46);
+ color: #eee;
+ font-family: inherit;
+ font-size: 0.98em;
+ padding: 6px 12px;
+ align-items: center;
+ flex-flow: row;
+
+ .icon {
+ pointer-events: none;
+ width: 32px;
+ height: 32px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 6px;
+ }
+
+ .name {
+ position: relative;
+ }
+
+ &:hover {
+ background: var(--selected);
+ }
+
+ &:active {
+ background: var(--selected-click);
+ }
+
+ &.focused {
+ background: var(--keyColor);
+ }
+ }
+
+ .playlist-item:last-child {
+ border-bottom: 0px;
+ }
+ }
+}
+
+.menu-panel {
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 100001;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-app-region: no-drag;
+
+ .menu-header-body {
+ padding: 6px;
+ display: flex;
+ background: rgb(200 200 200 / 10%);
+
+ .menu-option-header {
+ width: 40px;
+ height: 40px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: var(--mediaItemRadius);
+ appearance: none;
+ border: 0;
+ background: transparent;
+
+ &.active {
+ .sidebar-icon > .svg-icon {
+ --color: var(--keyColor);
+ }
+ }
+
+ &:hover {
+ background: var(--selected);
+ }
+
+ &:active {
+ background: var(--selected-click);
+ }
+ }
+ }
+
+ .menu-panel-body {
+ display: flex;
+ flex-flow: column;
+ background: #262626;
+ position: relative;
+ min-width: 200px;
+ box-shadow: var(--ciderShadow-Generic);
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ font-size: 13px;
+
+ .menu-option {
+ text-align: left;
+ display: flex;
+ width: 100%;
+ padding: 9px 16px;
+ appearance: none;
+ border: 0px;
+ font: inherit;
+ background: transparent;
+ color: inherit;
+
+ &:hover {
+ background: var(--selected);
+ }
+
+ &:active {
+ background: var(--selected-click);
+ }
+ }
+ }
+
+
+ .menu-header-text {
+ margin: 18px 6px;
+
+ .close-btn {
+ width: 50px;
+ height: 42px;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+
+ &:hover {
+ background-color: rgb(196, 43, 28)
+ }
+ }
+ }
+
+ .menu-body {
+ overflow: overlay;
+ height: 100%;
+ }
+
+ .menu-footer {
+ width: 100%;
+ padding: 12px;
+ }
+}
+
+.queue-panel {
+ height: 100%;
+ width: 100%;
+ display: flex;
+ flex-flow: column;
+
+ .queue-header-text {
+ margin: 18px 6px;
+ }
+
+ .queue-body {
+ overflow: overlay;
+ height: 100%;
+ }
+
+ .queue-footer {
+ width: 100%;
+ padding: 12px;
+ }
+
+ .autoplay {
+ background: rgb(200 200 200 / 15%);
+ display: flex;
+ justify-content: center;
+ appearance: none;
+ border: 0;
+ border-radius: 6px;
+ height: 32px;
+ width: 32px;
+ }
+
+ .infinity {
+ content: url("./assets/infinity.svg");
+ margin: auto;
+ }
+}
diff --git a/src/renderer/less/linux.less b/src/renderer/less/linux.less
new file mode 100644
index 00000000..6b26d1ee
--- /dev/null
+++ b/src/renderer/less/linux.less
@@ -0,0 +1,6 @@
+// Linux
+body[platform="linux"] {
+ #window-controls-container {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/src/renderer/less/macos.less b/src/renderer/less/macos.less
new file mode 100644
index 00000000..af21338b
--- /dev/null
+++ b/src/renderer/less/macos.less
@@ -0,0 +1,17 @@
+body[platform="darwin"] {
+ html {
+ background: transparent!important;
+ }
+
+ &.notransparency::before {
+ display: none;
+ }
+ #app {
+ &.simplebg {
+ background: transparent;
+ }
+ &::before {
+ display: none;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less
new file mode 100644
index 00000000..b2ff7c4e
--- /dev/null
+++ b/src/renderer/less/pages.less
@@ -0,0 +1,1185 @@
+// Helpers
+.content-inner {
+ position : absolute;
+ top : var(--navigationBarHeight);
+ left : 0;
+ padding : 32px;
+ width : 100%;
+ transition: zoom 1s;
+ zoom : 1;
+}
+
+.content-inner.centered {
+ height : 100%;
+ display : flex;
+ flex-flow : column;
+ justify-content: center;
+ align-items : center;
+}
+
+// End Helpers
+
+// GitHub Themes
+.github-themes-page {
+ display : flex;
+ flex-direction: column;
+ padding : 0px;
+ height : calc(100% - var(--navigationBarHeight));
+
+ .github-avatar {
+ height : 42px;
+ width : 42px;
+ margin : 6px;
+ border-radius: 32px;
+ }
+
+ .repo-name {
+ margin : 0px;
+ font-weight : 500;
+ overflow : hidden;
+ text-overflow: ellipsis;
+ white-space : break-spaces;
+ }
+
+ .repo-url {
+ color : var(--textColor);
+ font-size: 0.8em;
+ }
+
+ .repo-preview-name {
+ margin: 0px;
+ }
+
+ .repos-list {
+ height : 100%;
+ overflow-y: overlay;
+ width : 320px;
+ font-size : 14px;
+
+ >.list-group {
+ margin: 0px;
+ }
+
+ .list-group-item {
+ padding: 12px 6px;
+
+ &:hover {
+ filter: brightness(1.2);
+ }
+
+ &:active {
+ filter: brightness(0.8);
+ }
+ }
+ }
+
+ .github-preview {
+ height : 100%;
+ flex : 1;
+ background: var(--color2);
+ padding : 16px 32px;
+ overflow-y: overlay;
+ }
+
+ .gh-content {
+ display : flex;
+ flex-direction: row;
+ flex : 1;
+ overflow : hidden;
+ }
+
+ .gh-header {
+ padding: 16px;
+ }
+}
+
+// Library - Songs page
+.library-page {
+ padding: 0px;
+
+ .library-header {
+ position : sticky;
+ top : 0;
+ left : 0;
+ border-bottom : 1px solid rgba(200, 200, 200, 0.05);
+ z-index : 6;
+ background : black;
+ padding : 0px 2em;
+ backdrop-filter: blur(32px);
+ background : rgba(0, 0, 0, 0.25);
+ top : var(--navigationBarHeight);
+ }
+
+ .well {
+ margin: 2em;
+ }
+}
+
+// Podcast Page
+.content-inner.podcasts-page {
+ display: flex;
+ height : calc(100% - var(--navigationBarHeight));
+ padding: 0px;
+
+ .list-flat {
+ border-radius: 0px;
+ }
+
+ .podcast-artwork {
+ width : 200px;
+ margin: 16px auto;
+ height: 200px;
+ }
+
+ .podcasts-list {
+ height : 100%;
+ width : 280px;
+ background : rgb(200 200 200 / 10%);
+ overflow-y : overlay;
+ border-right: 1px solid var(--color2);
+ flex : none;
+ overflow-x : hidden;
+
+ .podcast-list-header {
+ border-bottom : 1px solid var(--color2);
+ font-size : 0.7em;
+ padding : 6px;
+ background : #ffffff17;
+ text-transform: uppercase;
+ font-weight : 600;
+ opacity : 0.5;
+ }
+
+ .podcasts-search {
+ padding : 10px;
+ position : sticky;
+ top : 0;
+ left : 0;
+ width : 100%;
+ border-bottom: 1px solid var(--color2);
+ z-index : 2;
+ background : #303030;
+ }
+ }
+
+ .episodes-list {
+ height : 100%;
+ width : 100%;
+ background: rgb(200 200 200 / 6%);
+ overflow-y: overlay;
+ overflow-x: hidden;
+
+ .episodes-inline-info {
+ padding: 14px 14px 0px 14px;
+
+ .podcast-show-info {
+ display : flex;
+ justify-content: center;
+ flex-direction : column;
+ }
+
+ .podcast-show-description {
+ margin : 32px 6px;
+ font-size : 0.8rem;
+ white-space: pre-wrap;
+ display : block;
+ }
+
+ .podcast-artwork {
+ width : 120px;
+ margin: 0px auto;
+ height: 120px;
+ }
+ }
+
+ .podcast-no-search-results {
+ text-align: center;
+ margin-top: 40px;
+ }
+ }
+
+ .podcasts-details {
+ width : 300px;
+ flex : none;
+ background : rgb(255 255 255 / 5%);
+ overflow-y : overlay;
+ overflow-x : hidden;
+ top : 2%;
+ z-index : 2;
+ border-left : 1px solid var(--color2);
+ padding-bottom: 1em;
+
+ .meta-btn {
+ font-size: 0.75em;
+ }
+
+ .podcasts-details-header {
+ display : flex;
+ justify-content: end;
+ align-items : center;
+ position : sticky;
+ top : 0;
+ z-index : 2;
+ }
+
+ .close-btn {
+ width : 50px;
+ height : 42px;
+ background-image : var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat : no-repeat;
+ -webkit-app-region : no-drag;
+ appearance : none;
+ border : 0;
+ background-color : transparent;
+ position : absolute;
+ top : 0;
+ right : 0;
+
+ &:hover {
+ background-color: rgb(196, 43, 28)
+ }
+ }
+
+ .podcast-genre {
+ text-align : center;
+ margin : 6px;
+ font-size : 0.8em;
+ font-weight: 500;
+ opacity : 0.8;
+ }
+
+ .podcast-metainfo {
+ text-align: center;
+ font-size : 0.7em;
+ opacity : 0.8;
+ }
+
+ .podcast-header {
+ text-align: center;
+ }
+
+ .podcast-play-btn {
+ width : 50%;
+ display: block;
+ margin : 0 auto;
+ }
+
+ .podcast-description {
+ margin : 12px;
+ font-size : 0.75em;
+ white-space: pre-wrap;
+ display : block;
+ line-break : anywhere;
+ }
+
+
+ }
+
+}
+
+@media only screen and (max-width: 1230px) {
+ .content-inner.podcasts-page {
+ .podcasts-details {
+ height : 96%;
+ width : 300px;
+ flex : none;
+ background : rgb(20 20 20 / 97%);
+ overflow-y : overlay;
+ overflow-x : hidden;
+ position : absolute;
+ right : 2%;
+ top : 2%;
+ border-radius: 10px;
+ box-shadow : var(--ciderShadow-Generic);
+ z-index : 2;
+ }
+ }
+}
+
+/* Album / Playlist Page */
+.playlist-page {
+ --bgColor : transparent;
+ padding : 0px;
+ //background: linear-gradient(180deg, var(--bgColor) 32px, var(--bgColor) 18px, transparent 60px, transparent 100%);
+ top : 0;
+ padding-top : var(--navigationBarHeight);
+
+ .playlist-body {
+ padding : var(--contentInnerPadding) 2em;
+ margin-top: -75px;
+ }
+
+ .floating-header {
+ position : sticky;
+ top : 0;
+ left : 0;
+ border-bottom : 1px solid rgba(200, 200, 200, 0.05);
+ z-index : 6;
+ padding : 0px 1em;
+ backdrop-filter: blur(32px);
+ background : rgba(0, 0, 0, 0.25);
+ top : var(--navigationBarHeight);
+ transition : opacity 0.1s var(--appleEase);
+ }
+
+ .playlist-display {
+ padding : var(--contentInnerPadding);
+ min-height: 300px;
+ position : relative;
+
+ .artworkContainer {
+ position : absolute;
+ top : 0;
+ left : 0;
+ bottom : 0;
+ right : 0;
+ margin : 0;
+ margin-top : calc(var(--navigationBarHeight) * -1);
+ margin-bottom : -10px;
+ padding : 0;
+ -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%);
+ opacity : .7;
+ animation : playlistArtworkFadeIn 1s var(--appleEase);
+
+ .artworkMaterial>img {
+ filter : brightness(100%) blur(80px) saturate(100%) contrast(1);
+ object-position: center;
+ object-fit : cover;
+ width : 100%;
+ height : 100%;
+ transform : unset;
+ }
+ }
+
+ .playlistInfo {
+ z-index : 1;
+ position : absolute;
+ bottom : 0;
+ left : 0;
+ right : 0;
+ top : 0;
+ display : flex;
+ justify-content: center;
+ align-items : center;
+ width : 100%;
+ height : 100%;
+
+ >.row {
+ width: calc(100% - 32px);
+ }
+
+ .playlist-info {
+ flex-shrink : unset;
+ display : flex;
+ flex-flow : column;
+ justify-content: flex-end;
+
+ .playlist-name {
+ font-weight : 700;
+ font-size : 1.6rem;
+ //margin-bottom: 6px;
+ margin-right : 6px;
+ flex-shrink : unset;
+ }
+
+ .nameEdit {
+ font-weight : 700;
+ font-size : 1.6rem;
+ margin-bottom: 6px;
+ margin-right : 6px;
+ flex-shrink : unset;
+ background : transparent;
+ border : 0px;
+ color : inherit;
+ font-family : inherit;
+ }
+
+ .playlist-artist {
+ font-size : 20px;
+ margin-bottom: 6px;
+ margin-right : 6px;
+ flex-shrink : unset;
+ }
+
+ .playlist-desc {
+ box-sizing : border-box;
+ font-size : 14px;
+ flex-shrink : unset;
+ margin-right: 5px;
+ max-height : 100px;
+ position : relative;
+
+ .content {
+ height : 100px;
+ -webkit-mask-image: -webkit-gradient(linear, left 50%, left 90%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));
+ }
+
+ .more-btn {
+ appearance : none;
+ position : absolute;
+ right : 0;
+ bottom : 0;
+ padding : 0 5px;
+ font-size : 14px;
+ color : var(--keyColor);
+ background-color: transparent;
+ border : 0px;
+ cursor : pointer;
+ width : 100%;
+ height : 100%;
+ overflow : hidden;
+ display : flex;
+ justify-content : flex-end;
+ align-items : flex-end;
+ font-weight : 600;
+ font-family : inherit;
+ text-transform : uppercase;
+ }
+ }
+
+ .playlist-desc-expanded {
+ box-sizing: border-box;
+ font-size : 14px;
+ position : relative;
+
+ .more-btn {
+ appearance : none;
+ position : absolute;
+ right : 0;
+ bottom : 0;
+ padding : 0 5px;
+ font-size : 14px;
+ color : var(--keyColor);
+ background-color: transparent;
+ border : 0px;
+ cursor : pointer;
+ width : 100%;
+ height : 100%;
+ overflow : hidden;
+ display : flex;
+ justify-content : flex-end;
+ align-items : flex-end;
+ font-weight : 600;
+ font-family : inherit;
+ text-transform : uppercase;
+ }
+ }
+ }
+ }
+
+
+ }
+
+ .friends-info {
+ display : flex;
+ flex-flow: column;
+
+ .badge-container {
+ display : flex;
+ flex-flow: wrap;
+
+ .socialBadge {
+ width : 40px;
+ height : 40px;
+ border-radius: 100%;
+ overflow : hidden;
+ box-shadow : var(--mediaItemShadow-ShadowSubtle);
+ transition : transform .2s var(--appleEase);
+ margin : 6px;
+
+ &:hover {
+ transform: scale(1.2);
+ }
+ }
+ }
+
+ .friends-name {
+ text-align: center;
+ font-size : 0.9em;
+ margin : 8px;
+ }
+ }
+
+ .playlist-time {
+ font-size: 0.9em;
+ margin : 6px;
+ opacity : 0.7;
+ }
+
+ &.inline-playlist {
+ overflow : hidden;
+ width : 100%;
+ height : 100%;
+ background : rgba(0, 0, 0, 0.5);
+ display : flex;
+ justify-content: center;
+ align-items : center;
+ z-index : 10;
+ position : sticky;
+ margin-top : calc(var(--navigationBarHeight) * -1);
+
+ .floating-header {
+ opacity : 1;
+ top : 0px;
+ z-index : 6;
+ padding : 1em;
+ backdrop-filter: unset;
+ background : black;
+
+ h3 {
+ display: none;
+ }
+ }
+
+ .playlist-inner {
+ background : black;
+ width : 80%;
+ height : 100%;
+ overflow : overlay;
+ box-shadow : var(--ciderShadow-Generic);
+ border-radius: var(--mediaItemRadius) var(--mediaItemRadius) 0px 0px;
+
+ .close-btn {
+ position : sticky;
+ top : 16px;
+ left : 16px;
+ margin-left: 16px;
+ z-index : 7;
+ }
+ }
+ }
+}
+
+@keyframes playlistArtworkFadeIn {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 0.7;
+ }
+}
+
+// Collection Page
+.collection-page {
+ padding-bottom: 128px;
+
+ .top-fab {
+ height : 52px;
+ width : 52px;
+ position : fixed;
+ bottom : 32px;
+ right : 32px;
+ border-radius: 100%;
+ background : rgb(60 60 60);
+ border : 0px;
+ appearance : none;
+ box-shadow : var(--ciderShadow-Generic);
+
+ >svg {
+ height : 50%;
+ color : #eee;
+ pointer-events: none;
+ }
+
+ &:hover {
+ background: rgb(100 100 100);
+ }
+
+ &:active {
+ background: var(--keyColor);
+ }
+ }
+
+ .header-text {
+ margin-bottom: 32px;
+ }
+}
+
+/* Artist Page */
+
+.artist-page {
+ padding: 0px;
+ top : 0;
+
+ .floating-header {
+ position : sticky;
+ top : 0;
+ left : 0;
+ border-bottom : 1px solid rgba(200, 200, 200, 0.05);
+ z-index : 6;
+ padding : 0px 1em;
+ backdrop-filter: blur(32px);
+ background : rgba(0, 0, 0, 0.25);
+ top : var(--navigationBarHeight);
+ transition : opacity 0.1s var(--appleEase);
+ }
+
+ &.animated .artist-header .more-btn-round {
+ position: absolute;
+ bottom : 22px !important;
+ right : 28px;
+ }
+
+ .artist-header {
+ //background: linear-gradient(45deg, var(--keyColor), #0e0e0e);
+ color : white;
+ display : flex;
+ align-items : center;
+ justify-content: space-between;
+ min-height : 400px;
+ position : relative;
+ pointer-events : none;
+
+ .header-content {
+ z-index : 1;
+ margin-top: -16px;
+ }
+
+
+ .artworkContainer {
+ position : absolute;
+ top : 0;
+ left : 0;
+ bottom : 0;
+ right : 0;
+ margin : 0;
+ padding : 0;
+ -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%);
+ opacity : .7;
+ animation : playlistArtworkFadeIn 1s var(--appleEase);
+
+ .artworkMaterial>img {
+ filter : brightness(100%) blur(80px) saturate(100%) contrast(1);
+ object-position: center;
+ object-fit : cover;
+ width : 100%;
+ height : 100%;
+ transform : unset;
+ }
+ }
+
+ .more-btn-round {
+ position: absolute;
+ bottom : 82px;
+ right : 28px;
+ }
+
+ .animated {
+ width : 100%;
+ height : 100%;
+ align-self: center;
+ position : absolute;
+ overflow : hidden;
+ box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset;
+
+ video {
+ overflow : hidden;
+ height : 100%;
+ width : 100%;
+ min-height: 56.25vw;
+ position : absolute;
+ top : 50%;
+ left : 50%;
+ transform : translate(-50%, -50%);
+ }
+ }
+
+ .row .col.flex-center {
+ z-index: 4;
+ }
+ }
+
+ .artist-image {
+ width : 200px;
+ height : 200px;
+ margin : 32px;
+ position: relative;
+
+ .overlay-play {
+ position : absolute;
+ top : 0;
+ left : 0;
+ width : 100%;
+ height : 100%;
+ opacity : 0;
+ background : rgb(0 0 0 / 50%);
+ transition : opacity 0.1s var(--appleEase);
+ border-radius : 100%;
+ z-index : 1;
+ display : flex;
+ align-items : center;
+ justify-content: center;
+ cursor : pointer;
+ appearance : none;
+ border : 0px;
+ padding : 0px;
+
+ &:hover {
+ opacity: 1;
+ }
+
+ &:active {
+ background: var(--selected-click);
+ }
+
+ >svg {
+ width: 70%;
+ }
+ }
+ }
+
+ .artist-play {
+ width : 32px;
+ height : 32px;
+ background : rgba(100, 100, 100, 0.5);
+ box-shadow : var(--ciderShadow-Generic);
+ border-radius: 100%;
+ box-shadow : var(--mediaItemShadow);
+ display : none;
+ cursor : pointer;
+ appearance : none;
+ border : 0px;
+ padding : 0px;
+
+ &:hover {
+ filter: brightness(125%);
+ }
+
+ &:active {
+ filter : brightness(75%);
+ transform : scale(0.98);
+ transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
+ }
+ }
+
+ .artist-title {
+
+ .artist-play {
+ transform: translateY(3px);
+ margin : 14px;
+ }
+
+ &.artist-animation-on {
+ width : 100%;
+ flex : unset;
+ margin-left: 0.5em;
+ color : whitesmoke;
+ position : absolute;
+ bottom : 0;
+
+ .artist-play {
+ display: block;
+ }
+ }
+ }
+
+ .artist-body {
+ padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
+ margin : -140px 20px;
+
+ .arow {
+ display : flex;
+ overflow: hidden;
+ padding : 16px 32px;
+ >.latestRelease {
+ width: 250px;
+ }
+ >.topSongs {
+ width: calc(100% - 250px);
+ }
+
+ &.arowb>.topSongs {
+ width: 100%;
+ }
+ }
+ }
+
+ &.animated>.artist-body {
+ padding : 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
+ margin-top: -57px;
+ }
+
+ .showmoreless {
+ font-family : inherit;
+ font-size : 16px;
+ font-weight : 500;
+ background : transparent;
+ border : 0px;
+ border-radius: 6px;
+ appearance : none;
+ color : var(--keyColor);
+ padding : 8px 12px;
+ cursor : pointer;
+ margin-top : 12px;
+ float : right;
+ }
+
+ .showmoreless:hover {
+ background: rgb(200 200 200 / 10%);
+ }
+}
+
+/* Artist Page End */
+
+// Settings page
+.settings-page {
+ padding: 0px;
+
+ .md-option-header {
+ padding : 1.25em 1.25em;
+ border-bottom: unset;
+ border-top : unset;
+ font-weight : 600;
+ font-size : 1.0em;
+ background : rgb(255 255 255 / 3%);
+ }
+
+ .settings-option-body {
+ margin: 16px;
+ }
+}
+
+// AudioLabs page
+.audiolabs-page {
+ padding: 0px;
+
+ .md-option-header {
+ padding : 1.25em 1.25em;
+ border-bottom: unset;
+ border-top : unset;
+ font-weight : 600;
+ font-size : 1.0em;
+ background : rgb(255 255 255 / 3%);
+ }
+
+ .carousel-item>img {
+ object-fit: cover;
+ width:100%;
+ }
+
+ .spprofile-line {
+ height: 300px;
+ width: 100%;
+ max-width: 1024px;
+ padding: 16px;
+ margin: 0 auto;
+
+ .spprofile-viewport {
+ height: 100%;
+ position: relative;
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ box-shadow: var(--mediaItemShadow-Shadow);
+ background: black;
+
+ .spprev, .nextprev {
+ position: absolute;
+ height: 100%;
+ width: 64px;
+ top: 0;
+ background: rgb(0 0 0 / 20%);
+ z-index: 1;
+ border: 0px;
+ transition: background 0.2s var(--appleEase), transform 0.2s var(--appleEase);
+ &:hover {
+ background: var(--selected);
+ transform: scale(1.1);
+ }
+
+ &:active {
+ transition: background 0s var(--appleEase);
+ background: var(--selected-click);
+ }
+
+ &:before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: #eee;
+ opacity: 1;
+ -webkit-mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-size: 1em;
+ }
+ }
+
+ .spprev {
+ left: 0;
+ &:before {
+ -webkit-mask-image: url("./views/svg/chevron-left.svg");
+ }
+
+ }
+
+ .nextprev {
+ right: 0;
+ &:before {
+ -webkit-mask-image: url("./views/svg/chevron-right.svg");
+ }
+
+ }
+
+ .spslide {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ background: black;
+
+ >img {
+ WIDTH: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+
+ .sptitle {
+ position: absolute;
+ bottom: 0px;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ font-size: 18px;
+ text-shadow: 0px 2px 4px #00000033;
+ }
+ }
+
+ .spfade-enter-active,
+ .spfade-leave-active {
+ --transitionTime: 0.2s;
+ transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase);
+ will-change: opacity, transform;
+ }
+
+ .spfade-enter {
+ opacity: 0;
+ transform: scale(1.2) translate3d(0,0,0);
+ will-change: opacity, transform;
+ }
+ .spfade-leave-to {
+ opacity: 1;
+ transform: scale(1) translate3d(0,0,0);
+ will-change: opacity, transform;
+ }
+ }
+ }
+
+ .settings-option-body {
+ margin: 16px;
+ }
+}
+
+
+//Home
+.home-page {
+ top : 0;
+ padding-top: var(--navbarHeight);
+
+ .md-btn-replay {
+ background : var(--replayGradient);
+ border : 0px;
+ box-shadow : inset 0px 0px 0px 1px rgba(200, 200, 200, 0.2);
+ text-transform: uppercase;
+ font-weight : bold;
+ }
+
+ .md-btn-replay--hero {
+ font-size : 1em;
+ padding : 16px;
+ background : var(--replayGradient);
+ border : 0px;
+ box-shadow : inset 0px 0px 0px 1px rgb(200 200 200 / 20%);
+ margin-top : 1em;
+ font-size : 0.9em;
+ text-transform: uppercase;
+ font-weight : bold;
+ }
+
+ .artist-feed-card {
+ position : absolute;
+ bottom : 0;
+ left : 10%;
+ z-index : 1;
+ background : black;
+ width : 80%;
+ height : 96%;
+ overflow : scroll;
+ border-radius: 10px;
+ }
+
+ .col.madeforyou-col {
+ width : 420px;
+ min-width: 0px;
+ max-width: 420px;
+ }
+
+ .well.artistfeed-well {
+ margin-top : 0px;
+ height : 392px;
+ align-content: flex-start;
+ }
+
+ .hint-text {
+ font-size: 0.9rem;
+ color : rgb(200 200 200 / 70%);
+ }
+
+ .user-icon {
+ border-radius: 100%;
+ width : 128px;
+ height : 128px;
+ overflow : hidden;
+ box-shadow : var(--mediaItemShadow-Shadow);
+ margin : 16px;
+ }
+
+ .well.profile-well {
+ flex-direction : column;
+ justify-content: center;
+ align-items : center;
+
+ .name {
+ margin : 4px;
+ font-weight: 500;
+ }
+
+ .handle {
+ margin : 4px;
+ opacity : 0.7;
+ font-weight: 500;
+ }
+ }
+}
+
+// Replay
+.replay-page {
+ --replayTextShadow: 0px 3px 2px #6f3f52;
+
+ .replay-period {
+ height : 200px;
+ width : 200px;
+ margin : 6px;
+ border-radius : var(--mediaItemRadius);
+ overflow : hidden;
+ cursor : pointer;
+ transition : transform .2s var(--appleEase);
+ transition-delay: .1s;
+ align-self : center;
+
+ &:hover {
+ transform : translateY(-6px);
+ transition-delay: 0s;
+ }
+
+ .artwork-container {
+ height: 200px;
+ width : 200px;
+ }
+ }
+
+ .replay-playlist-container {
+ .cd-mediaitem-square {
+ height: 230px;
+ width : 230px;
+
+ .info-rect {
+ display: none;
+ }
+ }
+ }
+
+ .replay-video {
+ max-height: 300px;
+ max-width : 800px;
+ margin : 0 auto;
+
+ .mediaitem-artwork {
+ max-height: 300px;
+ max-width : 800px;
+ }
+
+ .mediaitem-artwork .animatedartwork-view-box .animated video {
+ object-fit: cover;
+ }
+ }
+
+ .top-genres-container {
+
+ .genre-name {
+ font-size : 0.9em;
+ margin : 6px 0px;
+ font-weight: 500;
+ }
+
+ .genre-count {
+ width : 100%;
+ height : 32px;
+ background : #ffffff14;
+ border-radius: 10px;
+ overflow : hidden;
+
+ .genre-count-bar {
+ height : 100%;
+ width : 0%;
+ background : var(--keyColor);
+ display : flex;
+ justify-content: center;
+ align-items : center;
+ min-width : 32px;
+ font-size : 0.9em;
+ font-weight : 500;
+ }
+ }
+ }
+
+ .cd-mediaitem-square {
+ .mediaitem-artwork {
+ animation: replayFadeIn .5s var(--appleEase);
+ }
+
+ transition : transform .2s var(--appleEase);
+ transition-delay: .1s;
+
+ &:hover {
+ transform : scale(1.1);
+ transition-delay: 0s;
+ }
+ }
+
+ @keyframes replayFadeIn {
+ 0% {
+ //border-radius: 100%;
+ transform: translateY(10px) scale(0.9);
+ opacity : 0;
+ }
+
+ 100% {
+ //border-radius: var(--mediaItemRadius);
+ transform: scale(1);
+ opacity : 1;
+ }
+ }
+
+ .replay-viewport {
+ background : var(--replayGradient);
+ padding : 16px 40px;
+ border-radius: 10px;
+ box-shadow : var(--mediaItemShadow), var(--mediaItemShadow-Shadow);
+ color : rgb(238 238 238 / 86%);
+
+ .replay-header {
+ text-align : center;
+ font-size : 3em;
+ text-shadow: var(--replayTextShadow);
+ }
+ }
+
+ .replay-card {
+ background: transparent;
+ border : 0px;
+ }
+}
\ No newline at end of file
diff --git a/src/renderer/js/bootbox.min.js b/src/renderer/lib/bootbox.min.js
similarity index 100%
rename from src/renderer/js/bootbox.min.js
rename to src/renderer/lib/bootbox.min.js
diff --git a/src/renderer/lib/bootstrap-vue.min.js b/src/renderer/lib/bootstrap-vue.min.js
new file mode 100644
index 00000000..74575d56
--- /dev/null
+++ b/src/renderer/lib/bootstrap-vue.min.js
@@ -0,0 +1,11 @@
+/*!
+ * BootstrapVue 2.21.2
+ *
+ * @link https://bootstrap-vue.org
+ * @source https://github.com/bootstrap-vue/bootstrap-vue
+ * @copyright (c) 2016-2021 BootstrapVue
+ * @license MIT
+ * https://github.com/bootstrap-vue/bootstrap-vue/blob/master/LICENSE
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define(["vue"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrapVue=e(t.Vue)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=e(t);function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var i=0;it.length)&&(e=t.length);for(var i=0,n=new Array(e);i0,W=(/msie|trident/.test(j),function(){var t=!1;if(M)try{var e={get passive(){t=!0}};H.addEventListener("test",e,e),H.removeEventListener("test",e,e)}catch(e){t=!1}return t}()),Y=M&&("ontouchstart"in z.documentElement||N.maxTouchPoints>0),U=M&&Boolean(H.PointerEvent||H.MSPointerEvent),q=M&&"IntersectionObserver"in H&&"IntersectionObserverEntry"in H&&"intersectionRatio"in H.IntersectionObserverEntry.prototype,K="BvConfig",X=["xs","sm","md","lg","xl"],Z=/\[(\d+)]/g,J=/^(BV?)/,Q=/^\d+$/,tt=/^\..+/,et=/^#/,it=/^#[A-Za-z]+[\w\-:.]*$/,nt=/(<([^>]+)>)/gi,ot=/\B([A-Z])/g,rt=/([a-z])([A-Z])/g,st=/^[0-9]*\.?[0-9]+$/,at=/\+/g,lt=/[-/\\^$*+?.()|[\]{}]/g,ct=/[\s\uFEFF\xA0]+/g,ut=/\s+/,dt=/\/\*$/,ht=/(\s|^)(\w)/g,ft=/^\s+/,pt=/_/g,mt=/-(\w)/g,vt=/^\d+-\d\d?-\d\d?(?:\s|T|$)/,bt=/-|\s|T/,gt=/^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/,yt=/^.*(#[^#]+)$/,wt=/%2C/g,Tt=/[!'()*]/g,Ct=/^(\?|#|&)/,xt=/^\d+(\.\d*)?[/:]\d+(\.\d*)?$/,St=/[/:]/,kt=/^col-/,$t=/^BIcon/,Bt=/-u-.+/,Element=V?H.Element:function(t){u(Element,t);var e=g(Element);function Element(){return o(this,Element),e.apply(this,arguments)}return Element}(m(Object)),HTMLElement=V?H.HTMLElement:function(t){u(HTMLElement,t);var e=g(HTMLElement);function HTMLElement(){return o(this,HTMLElement),e.apply(this,arguments)}return HTMLElement}(Element),SVGElement=V?H.SVGElement:function(t){u(SVGElement,t);var e=g(SVGElement);function SVGElement(){return o(this,SVGElement),e.apply(this,arguments)}return SVGElement}(Element),_t=V?H.File:function(t){u(i,t);var e=g(i);function i(){return o(this,i),e.apply(this,arguments)}return i}(m(Object)),Dt=function(t){return n(t)},Ft=function(t){return void 0===t},It=function(t){return null===t},Pt=function(t){return Ft(t)||It(t)},Ot=function(t){return"function"===Dt(t)},Vt=function(t){return"boolean"===Dt(t)},Et=function(t){return"string"===Dt(t)},Lt=function(t){return"number"===Dt(t)},At=function(t){return st.test(String(t))},Rt=function(t){return Array.isArray(t)},Mt=function(t){return null!==t&&"object"===n(t)},Ht=function(t){return"[object Object]"===Object.prototype.toString.call(t)},zt=function(t){return t instanceof Date},Nt=function(t){return t instanceof Event},jt=function(t){return"RegExp"===function(t){return Object.prototype.toString.call(t).slice(8,-1)}(t)},Gt=function(){return Object.assign.apply(Object,arguments)},Wt=function(t,e){return Object.create(t,e)},Yt=function(t,e){return Object.defineProperties(t,e)},Ut=function(t,e,i){return Object.defineProperty(t,e,i)},qt=function(t){return Object.getOwnPropertyNames(t)},Kt=function(t){return Object.keys(t)},Xt=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},Zt=function(t){return c({},t)},Jt=function(t,e){return Kt(t).filter((function(t){return-1!==e.indexOf(t)})).reduce((function(e,i){return c(c({},e),{},a({},i,t[i]))}),{})},Qt=function(t,e){return Kt(t).filter((function(t){return-1===e.indexOf(t)})).reduce((function(e,i){return c(c({},e),{},a({},i,t[i]))}),{})},te=function t(e,i){return Mt(e)&&Mt(i)&&Kt(i).forEach((function(n){Mt(i[n])?(e[n]&&Mt(e[n])||(e[n]=i[n]),t(e[n],i[n])):Gt(e,a({},n,i[n]))})),e},ee=function(t){return Kt(t).sort().reduce((function(e,i){return c(c({},e),{},a({},i,t[i]))}),{})},ie=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return Rt(e)?e.reduce((function(e,i){return[].concat(T(e),[t(i,i)])}),[]):Ht(e)?Kt(e).reduce((function(i,n){return c(c({},i),{},a({},n,t(e[n],e[n])))}),{}):i},ne=function(t){return t},oe=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if(!(e=Rt(e)?e.join("."):e)||!Mt(t))return i;if(e in t)return t[e];var n=(e=String(e).replace(Z,".$1")).split(".").filter(ne);return 0===n.length?i:n.every((function(e){return Mt(t)&&e in t&&!Pt(t=t[e])}))?t:It(t)?null:i},re=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=oe(t,e);return Pt(n)?i:n},se=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i="undefined"!=typeof process&&process&&process.env||{};return t?i[t]||e:i},ae=function(){return se("BOOTSTRAP_VUE_NO_WARN")||"production"===se("NODE_ENV")},le=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;ae()||console.warn("[BootstrapVue warn]: ".concat(e?"".concat(e," - "):"").concat(t))},ce=function(t){return!M&&(le("".concat(t,": Can not be called during SSR.")),!0)},ue=function(t){return!A&&(le("".concat(t,": Requires Promise support.")),!0)},de=function(){function t(){o(this,t),this.$_config={}}return s(t,[{key:"setConfig",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Ht(e)){var i=qt(e);i.forEach((function(i){var n=e[i];"breakpoints"===i?!Rt(n)||n.length<2||n.some((function(t){return!Et(t)||0===t.length}))?le('"breakpoints" must be an array of at least 2 breakpoint names',K):t.$_config[i]=ie(n):Ht(n)&&(t.$_config[i]=qt(n).reduce((function(t,e){return Ft(n[e])||(t[e]=ie(n[e])),t}),t.$_config[i]||{}))}))}}},{key:"resetConfig",value:function(){this.$_config={}}},{key:"getConfig",value:function(){return ie(this.$_config)}},{key:"getConfigValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return ie(oe(this.$_config,t,e))}}]),t}(),he=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.default;e.prototype.$bvConfig=i.default.prototype.$bvConfig=e.prototype.$bvConfig||i.default.prototype.$bvConfig||new de,e.prototype.$bvConfig.setConfig(t)},fe=(I=!1,P=["Multiple instances of Vue detected!","You may need to set up an alias for Vue in your bundler config.","See: https://bootstrap-vue.org/docs#using-module-bundlers"].join("\n"),function(t){I||i.default===t||G||le(P),I=!0}),pe=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.components,i=t.directives,n=t.plugins,o=function t(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.installed||(t.installed=!0,fe(o),he(r,o),ge(o,e),we(o,i),ve(o,n))};return o.installed=!1,o},me=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(c({},e),{},{install:pe(t)})},ve=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)i&&e[i]&&t.use(e[i])},be=function(t,e,i){t&&e&&i&&t.component(e,i)},ge=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)be(t,i,e[i])},ye=function(t,e,i){t&&e&&i&&t.directive(e.replace(/^VB/,"B"),i)},we=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)ye(t,i,e[i])},Te="BAlert",Ce="BAspect",xe="BAvatar",Se="BAvatarGroup",ke="BBadge",$e="BBreadcrumb",Be="BBreadcrumbItem",_e="BBreadcrumbLink",De="BButton",Fe="BButtonClose",Ie="BButtonGroup",Pe="BButtonToolbar",Oe="BCalendar",Ve="BCard",Ee="BCardBody",Le="BCardFooter",Ae="BCardGroup",Re="BCardHeader",Me="BCardImg",He="BCardImgLazy",ze="BCardSubTitle",Ne="BCardText",je="BCardTitle",Ge="BCarousel",We="BCarouselSlide",Ye="BCol",Ue="BCollapse",qe="BContainer",Ke="BDropdown",Xe="BDropdownDivider",Ze="BDropdownForm",Je="BDropdownGroup",Qe="BDropdownHeader",ti="BDropdownItem",ei="BDropdownItemButton",ii="BDropdownText",ni="BEmbed",oi="BForm",ri="BFormCheckbox",si="BFormCheckboxGroup",ai="BFormDatalist",li="BFormDatepicker",ci="BFormFile",ui="BFormGroup",di="BFormInput",hi="BFormInvalidFeedback",fi="BFormRadio",pi="BFormRadioGroup",mi="BFormRating",vi="BFormRow",bi="BFormSelect",gi="BFormSelectOption",yi="BFormSelectOptionGroup",wi="BFormSpinbutton",Ti="BFormTag",Ci="BFormTags",xi="BFormText",Si="BFormTextarea",ki="BFormTimepicker",$i="BFormValidFeedback",Bi="BIcon",_i="BImg",Di="BImgLazy",Fi="BInputGroup",Ii="BInputGroupAddon",Pi="BInputGroupAppend",Oi="BInputGroupPrepend",Vi="BInputGroupText",Ei="BJumbotron",Li="BLink",Ai="BListGroup",Ri="BListGroupItem",Mi="BMedia",Hi="BMediaAside",zi="BMediaBody",Ni="BModal",ji="BNav",Gi="BNavbar",Wi="BNavbarBrand",Yi="BNavbarNav",Ui="BNavbarToggle",qi="BNavForm",Ki="BNavItem",Xi="BNavItemDropdown",Zi="BOverlay",Ji="BPagination",Qi="BPaginationNav",tn="BPopover",en="BProgress",nn="BProgressBar",on="BRow",rn="BSidebar",sn="BSkeleton",an="BSkeletonIcon",ln="BSkeletonImg",cn="BSkeletonTable",un="BSkeletonWrapper",dn="BSpinner",hn="BTab",fn="BTable",pn="BTableCell",mn="BTableLite",vn="BTableSimple",bn="BTabs",gn="BTbody",yn="BTfoot",wn="BThead",Tn="BTime",Cn="BToast",xn="BToaster",Sn="BTooltip",kn="cancel",$n="change",Bn="click",_n="close",Dn="context",Fn="context-changed",In="destroyed",Pn="disable",On="disabled",Vn="enable",En="enabled",Ln="filtered",An="first",Rn="focusin",Mn="focusout",Hn="head-clicked",zn="hidden",Nn="hide",jn="input",Gn="last",Wn="mouseenter",Yn="mouseleave",Un="next",qn="open",Kn="page-click",Xn="prev",Zn="refreshed",Jn="row-clicked",Qn="selected",to="show",eo="shown",io="sliding-end",no="toggle",oo="hook:beforeDestroy",ro="hook:destroyed",so="bv",ao={passive:!0},lo={passive:!0,capture:!1},co=void 0,uo=Array,ho=Boolean,fo=Date,po=Function,mo=Number,vo=Object,bo=RegExp,go=String,yo=[uo,po],wo=[uo,vo],To=[uo,vo,go],Co=[uo,go],xo=[ho,mo],So=[ho,mo,go],ko=[ho,go],$o=[fo,go],Bo=[po,go],_o=[mo,go],Do=[mo,vo,go],Fo=[vo,po],Io=[vo,go],Po="append",Oo="badge",Vo="bottom-row",Eo="button-content",Lo="custom-foot",Ao="default",Ro="empty",Mo="file-name",Ho="first",zo="footer",No="header",jo="label",Go="lead",Wo="modal-cancel",Yo="modal-ok",Uo="modal-title",qo="prepend",Ko="row-details",Xo="table-busy",Zo="table-caption",Jo="table-colgroup",Qo="thead-top",tr="title",er="top-row",ir=function(){return Array.from.apply(Array,arguments)},nr=function(t,e){return-1!==t.indexOf(e)},or=function(){for(var t=arguments.length,e=new Array(t),i=0;i1&&void 0!==arguments[1]?arguments[1]:NaN,i=parseInt(t,10);return isNaN(i)?e:i},cr=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN,i=parseFloat(t);return isNaN(i)?e:i},ur=function(t,e){return cr(t).toFixed(lr(e,0))},dr=function(t){return t.replace(ot,"-$1").toLowerCase()},hr=function(t){return(t=dr(t).replace(mt,(function(t,e){return e?e.toUpperCase():""}))).charAt(0).toUpperCase()+t.slice(1)},fr=function(t){return t.replace(pt," ").replace(rt,(function(t,e,i){return e+" "+i})).replace(ht,(function(t,e,i){return e+i.toUpperCase()}))},pr=function(t){return(t=Et(t)?t.trim():String(t)).charAt(0).toUpperCase()+t.slice(1)},mr=function(t){return t.replace(lt,"\\$&")},vr=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return Pt(t)?"":Rt(t)||Ht(t)&&t.toString===Object.prototype.toString?JSON.stringify(t,null,e):String(t)},br=function(t){return vr(t).trim()},gr=function(t){return vr(t).toLowerCase()},yr=Element.prototype,wr=["button","[href]:not(.disabled)","input","select","textarea","[tabindex]","[contenteditable]"].map((function(t){return"".concat(t,":not(:disabled):not([disabled])")})).join(", "),Tr=yr.matches||yr.msMatchesSelector||yr.webkitMatchesSelector,Cr=yr.closest||function(t){var e=this;do{if(Vr(e,t))return e;e=e.parentElement||e.parentNode}while(!It(e)&&e.nodeType===Node.ELEMENT_NODE);return null},xr=H.requestAnimationFrame||H.webkitRequestAnimationFrame||H.mozRequestAnimationFrame||H.msRequestAnimationFrame||H.oRequestAnimationFrame||function(t){return setTimeout(t,16)},Sr=H.MutationObserver||H.WebKitMutationObserver||H.MozMutationObserver||null,kr=function(t){return!(!t||t.nodeType!==Node.ELEMENT_NODE)},$r=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=z.activeElement;return e&&!t.some((function(t){return t===e}))?e:null},Br=function(t,e){return vr(t).toLowerCase()===vr(e).toLowerCase()},_r=function(t){return kr(t)&&t===$r()},Dr=function(t){if(!kr(t)||!t.parentNode||!Lr(z.body,t))return!1;if("none"===Ur(t,"display"))return!1;var e=qr(t);return!!(e&&e.height>0&&e.width>0)},Fr=function(t){return!kr(t)||t.disabled||Gr(t,"disabled")||Hr(t,"disabled")},Ir=function(t){return kr(t)&&t.offsetHeight},Pr=function(t,e){return ir((kr(e)?e:z).querySelectorAll(t))},Or=function(t,e){return(kr(e)?e:z).querySelector(t)||null},Vr=function(t,e){return!!kr(t)&&Tr.call(t,e)},Er=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!kr(e))return null;var n=Cr.call(e,t);return i?n:n===e?null:n},Lr=function(t,e){return!(!t||!Ot(t.contains))&&t.contains(e)},Ar=function(t){return z.getElementById(/^#/.test(t)?t.slice(1):t)||null},Rr=function(t,e){e&&kr(t)&&t.classList&&t.classList.add(e)},Mr=function(t,e){e&&kr(t)&&t.classList&&t.classList.remove(e)},Hr=function(t,e){return!!(e&&kr(t)&&t.classList)&&t.classList.contains(e)},zr=function(t,e,i){e&&kr(t)&&t.setAttribute(e,i)},Nr=function(t,e){e&&kr(t)&&t.removeAttribute(e)},jr=function(t,e){return e&&kr(t)?t.getAttribute(e):null},Gr=function(t,e){return e&&kr(t)?t.hasAttribute(e):null},Wr=function(t,e,i){e&&kr(t)&&(t.style[e]=i)},Yr=function(t,e){e&&kr(t)&&(t.style[e]="")},Ur=function(t,e){return e&&kr(t)&&t.style[e]||null},qr=function(t){return kr(t)?t.getBoundingClientRect():null},Kr=function(t){var e=H.getComputedStyle;return e&&kr(t)?e(t):{}},Xr=function(){return H.getSelection?H.getSelection():null},Zr=function(t){var e={top:0,left:0};if(!kr(t)||0===t.getClientRects().length)return e;var i=qr(t);if(i){var n=t.ownerDocument.defaultView;e.top=i.top+n.pageYOffset,e.left=i.left+n.pageXOffset}return e},Jr=function(t){var e={top:0,left:0};if(!kr(t))return e;var i={top:0,left:0},n=Kr(t);if("fixed"===n.position)e=qr(t)||e;else{e=Zr(t);for(var o=t.ownerDocument,r=t.offsetParent||o.documentElement;r&&(r===o.body||r===o.documentElement)&&"static"===Kr(r).position;)r=r.parentNode;if(r&&r!==t&&r.nodeType===Node.ELEMENT_NODE){i=Zr(r);var s=Kr(r);i.top+=cr(s.borderTopWidth,0),i.left+=cr(s.borderLeftWidth,0)}}return{top:e.top-i.top-cr(n.marginTop,0),left:e.left-i.left-cr(n.marginLeft,0)}},Qr=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return Pr(wr,t).filter(Dr).filter((function(t){return t.tabIndex>-1&&!t.disabled}))},ts=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{t.focus(e)}catch(t){}return _r(t)},es=function(t){try{t.blur()}catch(t){}return!_r(t)},is=function(t){var e=Wt(null);return function(){for(var i=arguments.length,n=new Array(i),o=0;o1&&void 0!==arguments[1]?arguments[1]:void 0,i=ns.$bvConfig;return i?i.getConfigValue(t,e):ie(e)},rs=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return e?os("".concat(t,".").concat(e),i):os(t,{})},ss=function(){return os("breakpoints",X)},as=is((function(){return ss()})),ls=is((function(){var t=ie(as());return t[0]="",t})),cs=function(t,e){return t+pr(e)},us=function(t,e){return i=e.replace(t,""),(i=Et(i)?i.trim():String(i)).charAt(0).toLowerCase()+i.slice(1);var i},ds=function(t,e){return e+(t?pr(t):"")},hs=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:co,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=!0===i;return n=o?n:i,c(c(c({},t?{type:t}:{}),o?{required:o}:Ft(e)?{}:{default:Mt(e)?function(){return e}:e}),Ft(n)?{}:{validator:n})},fs=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ne;if(Rt(t))return t.map(e);var i={};for(var n in t)Xt(t,n)&&(i[e(n)]=Mt(t[n])?Zt(t[n]):t[n]);return i},ps=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ne;return(Rt(t)?t.slice():Kt(t)).reduce((function(t,n){return t[i(n)]=e[n],t}),{})},ms=function(t,e,i){return c(c({},ie(t)),{},{default:function(){var n=rs(i,e,t.default);return Ot(n)?n():n}})},vs=function(t,e){return Kt(t).reduce((function(i,n){return c(c({},i),{},a({},n,ms(t[n],n,e)))}),{})},bs=ms({},"","").default.name,gs=function(t){return Ot(t)&&t.name!==bs},ys=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.type,o=void 0===n?co:n,r=e.defaultValue,s=void 0===r?void 0:r,l=e.validator,c=void 0===l?void 0:l,u=e.event,d=void 0===u?jn:u,h=a({},t,hs(o,s,c)),f=i.default.extend({model:{prop:t,event:d},props:h});return{mixin:f,props:h,prop:t,event:d}},ws=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(t=or(t).filter(ne)).some((function(t){return e[t]||i[t]}))},Ts=function(t){var e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t=or(t).filter(ne);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:Ao,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.$scopedSlots,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.$slots;return ws(t,e,i)},normalizeSlot:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ao,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.$scopedSlots,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.$slots,o=Ts(t,e,i,n);return o?or(o):o}}}),xs=function(t){return W?Mt(t)?t:{capture:!!t||!1}:!!(Mt(t)?t.capture:t)},Ss=function(t,e,i,n){t&&t.addEventListener&&t.addEventListener(e,i,xs(n))},ks=function(t,e,i,n){t&&t.removeEventListener&&t.removeEventListener(e,i,xs(n))},$s=function(t){for(var e=t?Ss:ks,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{},i=e.preventDefault,n=void 0===i||i,o=e.propagation,r=void 0===o||o,s=e.immediatePropagation,a=void 0!==s&&s;n&&t.preventDefault(),r&&t.stopPropagation(),a&&t.stopImmediatePropagation()},_s=function(t){return dr(t.replace(J,""))},Ds=function(t,e){return[so,_s(t),e].join("::")},Fs=function(t,e){return[so,e,_s(t)].join("::")},Is=vs({ariaLabel:hs(go,"Close"),content:hs(go,"×"),disabled:hs(ho,!1),textVariant:hs(go)},Fe),Ps=i.default.extend({name:Fe,functional:!0,props:Is,render:function(t,e){var i=e.props,n=e.data,o=e.slots,r=e.scopedSlots,s=o(),l=r||{},c={staticClass:"close",class:a({},"text-".concat(i.textVariant),i.textVariant),attrs:{type:"button",disabled:i.disabled,"aria-label":i.ariaLabel?String(i.ariaLabel):null},on:{click:function(t){i.disabled&&Nt(t)&&Bs(t)}}};return ws(Ao,l,s)||(c.domProps={innerHTML:i.content}),t("button",F(n,c),Ts(Ao,{},l,s))}}),Os={name:"",enterClass:"",enterActiveClass:"",enterToClass:"show",leaveClass:"show",leaveActiveClass:"",leaveToClass:""},Vs=c(c({},Os),{},{enterActiveClass:"fade",leaveActiveClass:"fade"}),Es={appear:hs(ho,!1),mode:hs(go),noFade:hs(ho,!1),transProps:hs(vo)},Ls=i.default.extend({name:"BVTransition",functional:!0,props:Es,render:function(t,e){var i=e.children,n=e.data,o=e.props,r=o.transProps;return Ht(r)||(r=o.noFade?Os:Vs,o.appear&&(r=c(c({},r),{},{appear:!0,appearClass:r.enterClass,appearActiveClass:r.enterActiveClass,appearToClass:r.enterToClass}))),t("transition",F(n,{props:r=c(c({mode:o.mode},r),{},{css:!0})}),i)}}),As=ys("show",{type:So,defaultValue:!1}),Rs=As.mixin,Ms=As.props,Hs=As.prop,zs=As.event,Ns=function(t){return""===t||Vt(t)?0:(t=lr(t,0))>0?t:0},js=function(t){return""===t||!0===t||!(lr(t,0)<1)&&!!t},Gs=vs(ee(c(c({},Ms),{},{dismissLabel:hs(go,"Close"),dismissible:hs(ho,!1),fade:hs(ho,!1),variant:hs(go,"info")})),Te),Ws=me({components:{BAlert:i.default.extend({name:Te,mixins:[Rs,Cs],props:Gs,data:function(){return{countDown:0,localShow:js(this[Hs])}},watch:(O={},a(O,Hs,(function(t){this.countDown=Ns(t),this.localShow=js(t)})),a(O,"countDown",(function(t){var e=this;this.clearCountDownInterval();var i=this[Hs];At(i)&&(this.$emit("dismiss-count-down",t),i!==t&&this.$emit(zs,t),t>0?(this.localShow=!0,this.$_countDownTimeout=setTimeout((function(){e.countDown--}),1e3)):this.$nextTick((function(){xr((function(){e.localShow=!1}))})))})),a(O,"localShow",(function(t){var e=this[Hs];t||!this.dismissible&&!At(e)||this.$emit("dismissed"),At(e)||e===t||this.$emit(zs,t)})),O),created:function(){this.$_filterTimer=null;var t=this[Hs];this.countDown=Ns(t),this.localShow=js(t)},beforeDestroy:function(){this.clearCountDownInterval()},methods:{dismiss:function(){this.clearCountDownInterval(),this.countDown=0,this.localShow=!1},clearCountDownInterval:function(){clearTimeout(this.$_countDownTimeout),this.$_countDownTimeout=null}},render:function(t){var e=t();if(this.localShow){var i=this.dismissible,n=this.variant,o=t();i&&(o=t(Ps,{attrs:{"aria-label":this.dismissLabel},on:{click:this.dismiss}},[this.normalizeSlot("dismiss")])),e=t("div",{staticClass:"alert",class:a({"alert-dismissible":i},"alert-".concat(n),n),attrs:{role:"alert","aria-live":"polite","aria-atomic":!0},key:this._uid},[o,this.normalizeSlot()])}return t(Ls,{props:{noFade:!this.fade}},[e])}})}}),Ys=Math.min,Us=Math.max,qs=Math.abs,Ks=Math.ceil,Xs=Math.floor,Zs=Math.pow,Js=Math.round,Qs="b-aspect",ta=vs({aspect:hs(_o,"1:1"),tag:hs(go,"div")},Ce),ea=i.default.extend({name:Ce,mixins:[Cs],props:ta,computed:{padding:function(){var t=this.aspect,e=1;if(xt.test(t)){var i=w(t.split(St).map((function(t){return cr(t)||1})),2);e=i[0]/i[1]}else e=cr(t)||1;return"".concat(100/qs(e),"%")}},render:function(t){var e=t("div",{staticClass:"".concat(Qs,"-sizer flex-grow-1"),style:{paddingBottom:this.padding,height:0}}),i=t("div",{staticClass:"".concat(Qs,"-content flex-grow-1 w-100 mw-100"),style:{marginLeft:"-100%"}},this.normalizeSlot());return t(this.tag,{staticClass:"".concat(Qs," d-flex")},[e,i])}}),ia=me({components:{BAspect:ea}}),na=function(t){return"%"+t.charCodeAt(0).toString(16)},oa=function(t){return encodeURIComponent(vr(t)).replace(Tt,na).replace(wt,",")},ra=decodeURIComponent,sa=function(t){if(!Ht(t))return"";var e=Kt(t).map((function(e){var i=t[e];return Ft(i)?"":It(i)?oa(e):Rt(i)?i.reduce((function(t,i){return It(i)?t.push(oa(e)):Ft(i)||t.push(oa(e)+"="+oa(i)),t}),[]).join("&"):oa(e)+"="+oa(i)})).filter((function(t){return t.length>0})).join("&");return e?"?".concat(e):""},aa=function(t){var e={};return(t=vr(t).trim().replace(Ct,""))?(t.split("&").forEach((function(t){var i=t.replace(at," ").split("="),n=ra(i.shift()),o=i.length>0?ra(i.join("=")):null;Ft(e[n])?e[n]=o:Rt(e[n])?e[n].push(o):e[n]=[e[n],o]})),e):e},la=function(t){return!(!t.href&&!t.to)},ca=function(t){return!(!t||Br(t,"a"))},ua=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.href,i=t.to,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"a",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"/";if(e)return e;if(ca(n))return null;if(Et(i))return i||r;if(Ht(i)&&(i.path||i.query||i.hash)){var s=vr(i.path),a=sa(i.query),l=vr(i.hash);return l=l&&"#"!==l.charAt(0)?"#".concat(l):l,"".concat(s).concat(a).concat(l)||r}return o},da={viewBox:"0 0 16 16",width:"1em",height:"1em",focusable:"false",role:"img","aria-label":"icon"},ha={width:null,height:null,focusable:null,role:null,"aria-label":null},fa={animation:hs(go),content:hs(go),flipH:hs(ho,!1),flipV:hs(ho,!1),fontScale:hs(_o,1),rotate:hs(_o,0),scale:hs(_o,1),shiftH:hs(_o,0),shiftV:hs(_o,0),stacked:hs(ho,!1),title:hs(go),variant:hs(go)},pa=i.default.extend({name:"BIconBase",functional:!0,props:fa,render:function(t,e){var i,n=e.data,o=e.props,r=e.children,s=o.animation,l=o.content,c=o.flipH,u=o.flipV,d=o.stacked,h=o.title,f=o.variant,p=Us(cr(o.fontScale,1),0)||1,m=Us(cr(o.scale,1),0)||1,v=cr(o.rotate,0),b=cr(o.shiftH,0),g=cr(o.shiftV,0),y=c||u||1!==m,w=y||v,T=b||g,C=!Pt(l),x=t("g",{attrs:{transform:[w?"translate(8 8)":null,y?"scale(".concat((c?-1:1)*m," ").concat((u?-1:1)*m,")"):null,v?"rotate(".concat(v,")"):null,w?"translate(-8 -8)":null].filter(ne).join(" ")||null},domProps:C?{innerHTML:l||""}:{}},r);T&&(x=t("g",{attrs:{transform:"translate(".concat(16*b/16," ").concat(-16*g/16,")")}},[x])),d&&(x=t("g",[x]));var S=[h?t("title",h):null,x].filter(ne);return t("svg",F({staticClass:"b-icon bi",class:(i={},a(i,"text-".concat(f),f),a(i,"b-icon-animation-".concat(s),s),i),attrs:da,style:d?{}:{fontSize:1===p?null:"".concat(100*p,"%")}},n,d?{attrs:ha}:{},{attrs:{xmlns:d?null:"http://www.w3.org/2000/svg",fill:"currentColor"}}),S)}}),ma=function(t,e){var n=dr(t),o="BIcon".concat(hr(t)),r="bi-".concat(n),s=n.replace(/-/g," "),a=br(e||"");return i.default.extend({name:o,functional:!0,props:Qt(fa,["content"]),render:function(t,e){var i=e.data,n=e.props;return t(pa,F({props:{title:s},attrs:{"aria-label":s}},i,{staticClass:r,props:c(c({},n),{},{content:a})}))}})},va=ma("Blank",""),ba=ma("Calendar",' '),ga=ma("CalendarFill",' '),ya=ma("ChevronBarLeft",' '),wa=ma("ChevronDoubleLeft",' '),Ta=ma("ChevronDown",' '),Ca=ma("ChevronLeft",' '),xa=ma("ChevronUp",' '),Sa=ma("CircleFill",' '),ka=ma("Clock",' '),$a=ma("ClockFill",' '),Ba=ma("Dash",' '),_a=ma("PersonFill",' '),Da=ma("Plus",' '),Fa=ma("Star",' '),Ia=ma("StarFill",' '),Pa=ma("StarHalf",' '),Oa=ma("X",' '),Va=function t(e,i){return e?(e.$options||{}).components[i]||t(e.$parent,i):null},Ea=Qt(fa,["content"]),La=vs(ee(c(c({},Ea),{},{icon:hs(go)})),Bi),Aa=i.default.extend({name:Bi,functional:!0,props:La,render:function(t,e){var i=e.data,n=e.props,o=e.parent,r=hr(br(n.icon||"")).replace($t,"");return t(r&&Va(o,"BIcon".concat(r))||va,F(i,{props:ps(Ea,n)}))}}),Ra=40,Ma=35,Ha=13,za=36,Na=37,ja=39,Ga=32,Wa=38,Ya=function(t,e){if(t.length!==e.length)return!1;for(var i=!0,n=0;i&&n1?i-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},e=t.target,i=t.rel;return"_blank"===e&&It(i)?"noopener":i||null}({target:this.target,rel:this.rel})},computedHref:function(){var t=this.to,e=this.href;return ua({to:t,href:e},this.computedTag)},computedProps:function(){var t=this.prefetch;return this.isRouterLink?c(c({},ps(c(c({},el),il),this)),{},{prefetch:Vt(t)?t:void 0,tag:this.routerTag}):{}},computedAttrs:function(){var t=this.bvAttrs,e=this.computedHref,i=this.computedRel,n=this.disabled,o=this.target,r=this.routerTag,s=this.isRouterLink;return c(c(c(c({},t),e?{href:e}:{}),s&&!Br(r,"a")?{}:{rel:i,target:o}),{},{tabindex:n?"-1":Ft(t.tabindex)?null:t.tabindex,"aria-disabled":n?"true":null})},computedListeners:function(){return c(c({},this.bvListeners),{},{click:this.onClick})}},methods:{onClick:function(t){var e=arguments,i=Nt(t),n=this.isRouterLink,o=this.bvListeners.click;i&&this.disabled?Bs(t,{immediatePropagation:!0}):(n&&t.currentTarget.__vue__&&t.currentTarget.__vue__.$emit(Bn,t),or(o).filter((function(t){return Ot(t)})).forEach((function(t){t.apply(void 0,T(e))})),this.emitOnRoot(tl,t),this.emitOnRoot("clicked::link",t)),i&&!n&&"#"===this.computedHref&&Bs(t,{propagation:!1})},focus:function(){ts(this.$el)},blur:function(){es(this.$el)}},render:function(t){var e=this.active,i=this.disabled;return t(this.computedTag,a({class:{active:e,disabled:i},attrs:this.computedAttrs,props:this.computedProps},this.isRouterLink?"nativeOn":"on",this.computedListeners),this.normalizeSlot())}}),rl=Qt(nl,["event","routerTag"]);delete rl.href.default,delete rl.to.default;var sl=vs(ee(c(c({},rl),{},{block:hs(ho,!1),disabled:hs(ho,!1),pill:hs(ho,!1),pressed:hs(ho,null),size:hs(go),squared:hs(ho,!1),tag:hs(go,"button"),type:hs(go,"button"),variant:hs(go,"secondary")})),De),al=function(t){"focusin"===t.type?Rr(t.target,"focus"):"focusout"===t.type&&Mr(t.target,"focus")},ll=function(t){return la(t)||Br(t.tag,"a")},cl=function(t){return Vt(t.pressed)},ul=function(t){return!(ll(t)||t.tag&&!Br(t.tag,"button"))},dl=function(t){return!ll(t)&&!ul(t)},hl=function(t){var e;return["btn-".concat(t.variant||"secondary"),(e={},a(e,"btn-".concat(t.size),t.size),a(e,"btn-block",t.block),a(e,"rounded-pill",t.pill),a(e,"rounded-0",t.squared&&!t.pill),a(e,"disabled",t.disabled),a(e,"active",t.pressed),e)]},fl=function(t){return ll(t)?ps(rl,t):{}},pl=function(t,e){var i=ul(t),n=ll(t),o=cl(t),r=dl(t),s=n&&"#"===t.href,a=e.attrs&&e.attrs.role?e.attrs.role:null,l=e.attrs?e.attrs.tabindex:null;return(r||s)&&(l="0"),{type:i&&!n?t.type:null,disabled:i?t.disabled:null,role:r||s?"button":a,"aria-disabled":r?String(t.disabled):null,"aria-pressed":o?String(t.pressed):null,autocomplete:o?"off":null,tabindex:t.disabled&&!i?"-1":l}},ml=i.default.extend({name:De,functional:!0,props:sl,render:function(t,e){var i=e.props,n=e.data,o=e.listeners,r=e.children,s=cl(i),a=ll(i),l=dl(i),c=a&&"#"===i.href,u={keydown:function(t){if(!i.disabled&&(l||c)){var e=t.keyCode;if(e===Ga||e===Ha&&l){var n=t.currentTarget||t.target;Bs(t,{propagation:!1}),n.click()}}},click:function(t){i.disabled&&Nt(t)?Bs(t):s&&o&&o["update:pressed"]&&or(o["update:pressed"]).forEach((function(t){Ot(t)&&t(!i.pressed)}))}};s&&(u.focusin=al,u.focusout=al);var d={staticClass:"btn",class:hl(i),props:fl(i),attrs:pl(i,n),on:u};return t(a?ol:i.tag,F(n,d),r)}}),vl="b-avatar",bl=["sm",null,"lg"],gl=function(t){return t=Et(t)&&At(t)?cr(t,0):t,Lt(t)?"".concat(t,"px"):t||null},yl=Qt(nl,["active","event","routerTag"]),wl=vs(ee(c(c({},yl),{},{alt:hs(go,"avatar"),ariaLabel:hs(go),badge:hs(ko,!1),badgeLeft:hs(ho,!1),badgeOffset:hs(go),badgeTop:hs(ho,!1),badgeVariant:hs(go,"primary"),button:hs(ho,!1),buttonType:hs(go,"button"),icon:hs(go),rounded:hs(ko,!1),size:hs(_o),square:hs(ho,!1),src:hs(go),text:hs(go),variant:hs(go,"secondary")})),xe),Tl=i.default.extend({name:xe,mixins:[Cs],inject:{bvAvatarGroup:{default:null}},props:wl,data:function(){return{localSrc:this.src||null}},computed:{computedSize:function(){var t=this.bvAvatarGroup;return gl(t?t.size:this.size)},computedVariant:function(){var t=this.bvAvatarGroup;return t&&t.variant?t.variant:this.variant},computedRounded:function(){var t=this.bvAvatarGroup,e=!(!t||!t.square)||this.square,i=t&&t.rounded?t.rounded:this.rounded;return e?"0":""===i||(i||"circle")},fontStyle:function(){var t=this.computedSize,e=-1===bl.indexOf(t)?"calc(".concat(t," * ").concat(.4,")"):null;return e?{fontSize:e}:{}},marginStyle:function(){var t=this.computedSize,e=this.bvAvatarGroup,i=e?e.overlapScale:0,n=t&&i?"calc(".concat(t," * -").concat(i,")"):null;return n?{marginLeft:n,marginRight:n}:{}},badgeStyle:function(){var t=this.computedSize,e=this.badgeTop,i=this.badgeLeft,n=this.badgeOffset||"0px";return{fontSize:-1===bl.indexOf(t)?"calc(".concat(t," * ").concat(.27999999999999997," )"):null,top:e?n:null,bottom:e?null:n,left:i?n:null,right:i?null:n}}},watch:{src:function(t,e){t!==e&&(this.localSrc=t||null)}},methods:{onImgError:function(t){this.localSrc=null,this.$emit("img-error",t)},onClick:function(t){this.$emit(Bn,t)}},render:function(t){var e,i=this.computedVariant,n=this.disabled,o=this.computedRounded,r=this.icon,s=this.localSrc,l=this.text,u=this.fontStyle,d=this.marginStyle,h=this.computedSize,f=this.button,p=this.buttonType,m=this.badge,v=this.badgeVariant,b=this.badgeStyle,g=!f&&la(this),y=f?ml:g?ol:"span",w=this.alt,T=this.ariaLabel||null,C=null;this.hasNormalizedSlot()?C=t("span",{staticClass:"b-avatar-custom"},[this.normalizeSlot()]):s?(C=t("img",{style:i?{}:{width:"100%",height:"100%"},attrs:{src:s,alt:w},on:{error:this.onImgError}}),C=t("span",{staticClass:"b-avatar-img"},[C])):C=r?t(Aa,{props:{icon:r},attrs:{"aria-hidden":"true",alt:w}}):l?t("span",{staticClass:"b-avatar-text",style:u},[t("span",l)]):t(_a,{attrs:{"aria-hidden":"true",alt:w}});var x=t(),S=this.hasNormalizedSlot(Oo);if(m||""===m||S){var k=!0===m?"":m;x=t("span",{staticClass:"b-avatar-badge",class:a({},"badge-".concat(v),v),style:b},[S?this.normalizeSlot(Oo):k])}return t(y,{staticClass:vl,class:(e={},a(e,"".concat(vl,"-").concat(h),h&&-1!==bl.indexOf(h)),a(e,"badge-".concat(i),!f&&i),a(e,"rounded",!0===o),a(e,"rounded-".concat(o),o&&!0!==o),a(e,"disabled",n),e),style:c(c({},d),{},{width:h,height:h}),attrs:{"aria-label":T||null},props:f?{variant:i,disabled:n,type:p}:g?ps(yl,this):{},on:f||g?{click:this.onClick}:{}},[C,x])}}),Cl=vs({overlap:hs(_o,.3),rounded:hs(ko,!1),size:hs(go),square:hs(ho,!1),tag:hs(go,"div"),variant:hs(go)},Se),xl=me({components:{BAvatar:Tl,BAvatarGroup:i.default.extend({name:Se,mixins:[Cs],provide:function(){return{bvAvatarGroup:this}},props:Cl,computed:{computedSize:function(){return gl(this.size)},overlapScale:function(){return Ys(Us(cr(this.overlap,0),0),1)/2},paddingStyle:function(){var t=this.computedSize;return(t=t?"calc(".concat(t," * ").concat(this.overlapScale,")"):null)?{paddingLeft:t,paddingRight:t}:{}}},render:function(t){var e=t("div",{staticClass:"b-avatar-group-inner",style:this.paddingStyle},this.normalizeSlot());return t(this.tag,{staticClass:"b-avatar-group",attrs:{role:"group"}},[e])}})}}),Sl=Qt(nl,["event","routerTag"]);delete Sl.href.default,delete Sl.to.default;var kl,$l=vs(ee(c(c({},Sl),{},{pill:hs(ho,!1),tag:hs(go,"span"),variant:hs(go,"secondary")})),ke),Bl=i.default.extend({name:ke,functional:!0,props:$l,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.active,s=i.disabled,a=la(i),l=a?ol:i.tag,c=i.variant||"secondary";return t(l,F(n,{staticClass:"badge",class:["badge-".concat(c),{"badge-pill":i.pill,active:r,disabled:s}],props:a?ps(Sl,i):{}}),o)}}),_l=me({components:{BBadge:Bl}}),Dl=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return String(t).replace(nt,"")},Fl=function(t,e){return t?{innerHTML:t}:e?{textContent:e}:{}},Il=vs(ee(c(c({},Qt(nl,["event","routerTag"])),{},{ariaCurrent:hs(go,"location"),html:hs(go),text:hs(go)})),_e),Pl=i.default.extend({name:_e,functional:!0,props:Il,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.active,s=r?"span":ol,a={attrs:{"aria-current":r?i.ariaCurrent:null},props:ps(Il,i)};return o||(a.domProps=Fl(i.html,i.text)),t(s,F(n,a),o)}}),Ol=vs(Il,Be),Vl=i.default.extend({name:Be,functional:!0,props:Ol,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("li",F(n,{staticClass:"breadcrumb-item",class:{active:i.active}}),[t(Pl,{props:i},o)])}}),El=vs({items:hs(uo)},$e),Ll=me({components:{BBreadcrumb:i.default.extend({name:$e,functional:!0,props:El,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.items,s=o;if(Rt(r)){var a=!1;s=r.map((function(e,i){Mt(e)||(e={text:vr(e)});var n=e.active;return n&&(a=!0),n||a||(n=i+1===r.length),t(Vl,{props:c(c({},e),{},{active:n})})}))}return t("ol",F(n,{staticClass:"breadcrumb"}),s)}}),BBreadcrumbItem:Vl,BBreadcrumbLink:Pl}}),Al=me({components:{BButton:ml,BBtn:ml,BButtonClose:Ps,BBtnClose:Ps}}),Rl=vs(ee(c(c({},Jt(sl,["size"])),{},{ariaRole:hs(go,"group"),size:hs(go),tag:hs(go,"div"),vertical:hs(ho,!1)})),Ie),Ml=i.default.extend({name:Ie,functional:!0,props:Rl,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{class:a({"btn-group":!i.vertical,"btn-group-vertical":i.vertical},"btn-group-".concat(i.size),i.size),attrs:{role:i.ariaRole}}),o)}}),Hl=me({components:{BButtonGroup:Ml,BBtnGroup:Ml}}),zl=[".btn:not(.disabled):not([disabled]):not(.dropdown-item)",".form-control:not(.disabled):not([disabled])","select:not(.disabled):not([disabled])",'input[type="checkbox"]:not(.disabled)','input[type="radio"]:not(.disabled)'].join(","),Nl=vs({justify:hs(ho,!1),keyNav:hs(ho,!1)},Pe),jl=i.default.extend({name:Pe,mixins:[Cs],props:Nl,mounted:function(){this.keyNav&&this.getItems()},methods:{getItems:function(){var t=Pr(zl,this.$el);return t.forEach((function(t){t.tabIndex=-1})),t.filter((function(t){return Dr(t)}))},focusFirst:function(){var t=this.getItems();ts(t[0])},focusPrev:function(t){var e=this.getItems(),i=e.indexOf(t.target);i>-1&&(e=e.slice(0,i).reverse(),ts(e[0]))},focusNext:function(t){var e=this.getItems(),i=e.indexOf(t.target);i>-1&&(e=e.slice(i+1),ts(e[0]))},focusLast:function(){var t=this.getItems().reverse();ts(t[0])},onFocusin:function(t){var e=this.$el;t.target!==e||Lr(e,t.relatedTarget)||(Bs(t),this.focusFirst(t))},onKeydown:function(t){var e=t.keyCode,i=t.shiftKey;e===Wa||e===Na?(Bs(t),i?this.focusFirst(t):this.focusPrev(t)):e!==Ra&&e!==ja||(Bs(t),i?this.focusLast(t):this.focusNext(t))}},render:function(t){var e=this.keyNav;return t("div",{staticClass:"btn-toolbar",class:{"justify-content-between":this.justify},attrs:{role:"toolbar",tabindex:e?"0":null},on:e?{focusin:this.onFocusin,keydown:this.onKeydown}:{}},[this.normalizeSlot()])}}),Gl=me({components:{BButtonToolbar:jl,BBtnToolbar:jl}}),Wl="gregory",Yl="long",Ul="short",ql="2-digit",Kl="numeric",Xl=function(){for(var t=arguments.length,e=new Array(t),i=0;i1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return t=Zl(t),e=Zl(e)||t,i=Zl(i)||t,t?ti?i:t:null},dc=["ar","az","ckb","fa","he","ks","lrc","mzn","ps","sd","te","ug","ur","yi"].map((function(t){return t.toLowerCase()})),hc=function(t){var e=vr(t).toLowerCase().replace(Bt,"").split("-"),i=e.slice(0,2).join("-"),n=e[0];return nr(dc,i)||nr(dc,n)},fc={id:hs(go)},pc=i.default.extend({props:fc,data:function(){return{localId_:null}},computed:{safeId:function(){var t=this.id||this.localId_;return function(e){return t?(e=String(e||"").replace(/\s+/g,"_"))?t+"_"+e:t:null}}},mounted:function(){var t=this;this.$nextTick((function(){t.localId_="__BVID__".concat(t._uid)}))}}),mc=ys("value",{type:$o}),vc=mc.mixin,bc=mc.props,gc=mc.prop,yc=mc.event,wc=vs(ee(c(c(c({},fc),bc),{},{ariaControls:hs(go),block:hs(ho,!1),dateDisabledFn:hs(po),dateFormatOptions:hs(vo,{year:Kl,month:Yl,day:Kl,weekday:Yl}),dateInfoFn:hs(po),direction:hs(go),disabled:hs(ho,!1),hidden:hs(ho,!1),hideHeader:hs(ho,!1),initialDate:hs($o),labelCalendar:hs(go,"Calendar"),labelCurrentMonth:hs(go,"Current month"),labelHelp:hs(go,"Use cursor keys to navigate calendar dates"),labelNav:hs(go,"Calendar navigation"),labelNextDecade:hs(go,"Next decade"),labelNextMonth:hs(go,"Next month"),labelNextYear:hs(go,"Next year"),labelNoDateSelected:hs(go,"No date selected"),labelPrevDecade:hs(go,"Previous decade"),labelPrevMonth:hs(go,"Previous month"),labelPrevYear:hs(go,"Previous year"),labelSelected:hs(go,"Selected date"),labelToday:hs(go,"Today"),locale:hs(Co),max:hs($o),min:hs($o),navButtonVariant:hs(go,"secondary"),noHighlightToday:hs(ho,!1),noKeyNav:hs(ho,!1),readonly:hs(ho,!1),roleDescription:hs(go),selectedVariant:hs(go,"primary"),showDecadeNav:hs(ho,!1),startWeekday:hs(_o,0),todayVariant:hs(go),valueAsDate:hs(ho,!1),weekdayHeaderFormat:hs(go,Ul,(function(t){return nr([Yl,Ul,"narrow"],t)})),width:hs(go,"270px")})),Oe),Tc=i.default.extend({name:Oe,mixins:[Za,pc,vc,Cs],props:wc,data:function(){var t=Jl(this[gc])||"";return{selectedYMD:t,activeYMD:t||Jl(uc(this.initialDate||this.getToday()),this.min,this.max),gridHasFocus:!1,isLive:!1}},computed:{valueId:function(){return this.safeId()},widgetId:function(){return this.safeId("_calendar-wrapper_")},navId:function(){return this.safeId("_calendar-nav_")},gridId:function(){return this.safeId("_calendar-grid_")},gridCaptionId:function(){return this.safeId("_calendar-grid-caption_")},gridHelpId:function(){return this.safeId("_calendar-grid-help_")},activeId:function(){return this.activeYMD?this.safeId("_cell-".concat(this.activeYMD,"_")):null},selectedDate:function(){return Zl(this.selectedYMD)},activeDate:function(){return Zl(this.activeYMD)},computedMin:function(){return Zl(this.min)},computedMax:function(){return Zl(this.max)},computedWeekStarts:function(){return Us(lr(this.startWeekday,0),0)%7},computedLocale:function(){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Wl;return t=or(t).filter(ne),new Intl.DateTimeFormat(t,{calendar:e}).resolvedOptions().locale}(or(this.locale).filter(ne),Wl)},computedDateDisabledFn:function(){var t=this.dateDisabledFn;return gs(t)?t:function(){return!1}},computedDateInfoFn:function(){var t=this.dateInfoFn;return gs(t)?t:function(){return{}}},calendarLocale:function(){var t=new Intl.DateTimeFormat(this.computedLocale,{calendar:Wl}),e=t.resolvedOptions().calendar,i=t.resolvedOptions().locale;return e!==Wl&&(i=i.replace(/-u-.+$/i,"").concat("-u-ca-gregory")),i},calendarYear:function(){return this.activeDate.getFullYear()},calendarMonth:function(){return this.activeDate.getMonth()},calendarFirstDay:function(){return Xl(this.calendarYear,this.calendarMonth,1,12)},calendarDaysInMonth:function(){var t=Xl(this.calendarFirstDay);return t.setMonth(t.getMonth()+1,0),t.getDate()},computedVariant:function(){return"btn-".concat(this.selectedVariant||"primary")},computedTodayVariant:function(){return"btn-outline-".concat(this.todayVariant||this.selectedVariant||"primary")},computedNavButtonVariant:function(){return"btn-outline-".concat(this.navButtonVariant||"primary")},isRTL:function(){var t=vr(this.direction).toLowerCase();return"rtl"===t||"ltr"!==t&&hc(this.computedLocale)},context:function(){var t=this.selectedYMD,e=this.activeYMD,i=Zl(t),n=Zl(e);return{selectedYMD:t,selectedDate:i,selectedFormatted:i?this.formatDateString(i):this.labelNoDateSelected,activeYMD:e,activeDate:n,activeFormatted:n?this.formatDateString(n):"",disabled:this.dateDisabled(n),locale:this.computedLocale,calendarLocale:this.calendarLocale,rtl:this.isRTL}},dateOutOfRange:function(){var t=this.computedMin,e=this.computedMax;return function(i){return i=Zl(i),t&&ie}},dateDisabled:function(){var t=this,e=this.dateOutOfRange;return function(i){i=Zl(i);var n=Jl(i);return!(!e(i)&&!t.computedDateDisabledFn(n,i))}},formatDateString:function(){return Ql(this.calendarLocale,c(c({year:Kl,month:ql,day:ql},this.dateFormatOptions),{},{hour:void 0,minute:void 0,second:void 0,calendar:Wl}))},formatYearMonth:function(){return Ql(this.calendarLocale,{year:Kl,month:Yl,calendar:Wl})},formatWeekdayName:function(){return Ql(this.calendarLocale,{weekday:Yl,calendar:Wl})},formatWeekdayNameShort:function(){return Ql(this.calendarLocale,{weekday:this.weekdayHeaderFormat||Ul,calendar:Wl})},formatDay:function(){var t=new Intl.NumberFormat([this.computedLocale],{style:"decimal",minimumIntegerDigits:1,minimumFractionDigits:0,maximumFractionDigits:0,notation:"standard"});return function(e){return t.format(e.getDate())}},prevDecadeDisabled:function(){var t=this.computedMin;return this.disabled||t&&ic(lc(this.activeDate))t},nextYearDisabled:function(){var t=this.computedMax;return this.disabled||t&&ec(ac(this.activeDate))>t},nextDecadeDisabled:function(){var t=this.computedMax;return this.disabled||t&&ec(cc(this.activeDate))>t},calendar:function(){for(var t=[],e=this.calendarFirstDay,i=e.getFullYear(),n=e.getMonth(),o=this.calendarDaysInMonth,r=e.getDay(),s=0-((this.computedWeekStarts>r?7:0)-this.computedWeekStarts)-r,a=0;a<6&&s ',Ec=vs({alt:hs(go),blank:hs(ho,!1),blankColor:hs(go,"transparent"),block:hs(ho,!1),center:hs(ho,!1),fluid:hs(ho,!1),fluidGrow:hs(ho,!1),height:hs(_o),left:hs(ho,!1),right:hs(ho,!1),rounded:hs(ko,!1),sizes:hs(Co),src:hs(go),srcset:hs(Co),thumbnail:hs(ho,!1),width:hs(_o)},_i),Lc=i.default.extend({name:_i,functional:!0,props:Ec,render:function(t,e){var i,n=e.props,o=e.data,r=n.alt,s=n.src,l=n.block,c=n.fluidGrow,u=n.rounded,d=lr(n.width)||null,h=lr(n.height)||null,f=null,p=or(n.srcset).filter(ne).join(","),m=or(n.sizes).filter(ne).join(",");return n.blank&&(!h&&d?h=d:!d&&h&&(d=h),d||h||(d=1,h=1),s=function(t,e,i){var n=encodeURIComponent(Vc.replace("%{w}",vr(t)).replace("%{h}",vr(e)).replace("%{f}",i));return"data:image/svg+xml;charset=UTF-8,".concat(n)}(d,h,n.blankColor||"transparent"),p=null,m=null),n.left?f="float-left":n.right?f="float-right":n.center&&(f="mx-auto",l=!0),t("img",F(o,{attrs:{src:s,alt:r,width:d?vr(d):null,height:h?vr(h):null,srcset:p||null,sizes:m||null},class:(i={"img-thumbnail":n.thumbnail,"img-fluid":n.fluid||c,"w-100":c,rounded:""===u||!0===u},a(i,"rounded-".concat(u),Et(u)&&""!==u),a(i,f,f),a(i,"d-block",l),i)}))}}),Ac=vs(ee(c(c({},Jt(Ec,["src","alt","width","height","left","right"])),{},{bottom:hs(ho,!1),end:hs(ho,!1),start:hs(ho,!1),top:hs(ho,!1)})),Me),Rc=i.default.extend({name:Me,functional:!0,props:Ac,render:function(t,e){var i=e.props,n=e.data,o=i.src,r=i.alt,s=i.width,a=i.height,l="card-img";return i.top?l+="-top":i.right||i.end?l+="-right":i.bottom?l+="-bottom":(i.left||i.start)&&(l+="-left"),t("img",F(n,{class:l,attrs:{src:o,alt:r,width:s,height:a}}))}}),Mc=fs(Ac,cs.bind(null,"img"));Mc.imgSrc.required=!1;var Hc,zc,Nc,jc=vs(ee(c(c(c(c(c(c({},_c),Fc),Pc),Mc),xc),{},{align:hs(go),noBody:hs(ho,!1)})),Ve),Gc=i.default.extend({name:Ve,functional:!0,props:jc,render:function(t,e){var i,n=e.props,o=e.data,r=e.slots,s=e.scopedSlots,l=n.imgSrc,c=n.imgLeft,u=n.imgRight,d=n.imgStart,h=n.imgEnd,f=n.imgBottom,p=n.header,m=n.headerHtml,v=n.footer,b=n.footerHtml,g=n.align,y=n.textVariant,w=n.bgVariant,T=n.borderVariant,C=s||{},x=r(),S={},k=t(),$=t();if(l){var B=t(Rc,{props:ps(Mc,n,us.bind(null,"img"))});f?$=B:k=B}var _=t(),D=ws(No,C,x);(D||p||m)&&(_=t(Ic,{props:ps(Fc,n),domProps:D?{}:Fl(m,p)},Ts(No,S,C,x)));var I=Ts(Ao,S,C,x);n.noBody||(I=t(Dc,{props:ps(_c,n)},I),n.overlay&&l&&(I=t("div",{staticClass:"position-relative"},[k,I,$]),k=t(),$=t()));var P=t();return(ws(zo,C,x)||v||b)&&(P=t(Oc,{props:ps(Pc,n),domProps:D?{}:Fl(b,v)},Ts(zo,S,C,x))),t(n.tag,F(o,{staticClass:"card",class:(i={"flex-row":c||d,"flex-row-reverse":(u||h)&&!(c||d)},a(i,"text-".concat(g),g),a(i,"bg-".concat(w),w),a(i,"border-".concat(T),T),a(i,"text-".concat(y),y),i)}),[k,_,I,P,$])}}),Wc="__bv__visibility_observer",Yc=function(){function t(e,i,n){o(this,t),this.el=e,this.callback=i.callback,this.margin=i.margin||0,this.once=i.once||!1,this.observer=null,this.visible=void 0,this.doneOnce=!1,this.createObserver(n)}return s(t,[{key:"createObserver",value:function(t){var e=this;if(this.observer&&this.stop(),!this.doneOnce&&Ot(this.callback)){try{this.observer=new IntersectionObserver(this.handler.bind(this),{root:null,rootMargin:this.margin,threshold:0})}catch(t){return this.doneOnce=!0,this.observer=void 0,void this.callback(null)}t.context.$nextTick((function(){xr((function(){e.observer&&e.observer.observe(e.el)}))}))}}},{key:"handler",value:function(t){var e=t?t[0]:{},i=Boolean(e.isIntersecting||e.intersectionRatio>0);i!==this.visible&&(this.visible=i,this.callback(i),this.once&&this.visible&&(this.doneOnce=!0,this.stop()))}},{key:"stop",value:function(){this.observer&&this.observer.disconnect(),this.observer=null}}]),t}(),Uc=function(t){var e=t[Wc];e&&e.stop&&e.stop(),delete t[Wc]},qc=function(t,e,i){var n=e.value,o=e.modifiers,r={margin:"0px",once:!1,callback:n};Kt(o).forEach((function(t){Q.test(t)?r.margin="".concat(t,"px"):"once"===t.toLowerCase()&&(r.once=!0)})),Uc(t),t[Wc]=new Yc(t,r,i),t[Wc]._prevModifiers=Zt(o)},Kc={bind:qc,componentUpdated:function(t,e,i){var n=e.value,o=e.oldValue,r=e.modifiers;r=Zt(r),!t||n===o&&t[Wc]&&Ua(r,t[Wc]._prevModifiers)||qc(t,{value:n,modifiers:r},i)},unbind:function(t){Uc(t)}},Xc="show",Zc=Qt(Ec,["blank"]),Jc=vs(c(c({},Zc),{},a({blankColor:hs(go,"transparent"),blankHeight:hs(_o),blankSrc:hs(go,null),blankWidth:hs(_o),offset:hs(_o,360)},Xc,hs(ho,!1))),Di),Qc=i.default.extend({name:Di,directives:{"b-visible":Kc},props:Jc,data:function(){return{isShown:this.show}},computed:{computedSrc:function(){var t=this.blankSrc;return!t||this.isShown?this.src:t},computedBlank:function(){return!(this.isShown||this.blankSrc)},computedWidth:function(){var t=this.width;return this.isShown?t:this.blankWidth||t},computedHeight:function(){var t=this.height;return this.isShown?t:this.blankHeight||t},computedSrcset:function(){var t=or(this.srcset).filter(ne).join(",");return!this.blankSrc||this.isShown?t:null},computedSizes:function(){var t=or(this.sizes).filter(ne).join(",");return!this.blankSrc||this.isShown?t:null}},watch:(Hc={},a(Hc,Xc,(function(t,e){if(t!==e){var i=!q||t;this.isShown=i,i!==t&&this.$nextTick(this.updateShowProp)}})),a(Hc,"isShown",(function(t,e){t!==e&&this.updateShowProp()})),Hc),mounted:function(){this.isShown=!q||this.show},methods:{updateShowProp:function(){this.$emit("update:show",this.isShown)},doShow:function(t){!t&&null!==t||this.isShown||(this.isShown=!0)}},render:function(t){var e,i=[];this.isShown||i.push({name:"b-visible",value:this.doShow,modifiers:(e={},a(e,"".concat(lr(this.offset,0)),!0),a(e,"once",!0),e)});return t(Lc,{directives:i,props:c({src:this.computedSrc,blank:this.computedBlank,width:this.computedWidth,height:this.computedHeight,srcset:this.computedSrcset||null,sizes:this.computedSizes||null},ps(Zc,this.$props))})}}),tu=vs(ee(c(c({},Qt(Jc,Kt(Ec))),Qt(Ac,["src","alt","width","height"]))),He),eu=i.default.extend({name:He,functional:!0,props:tu,render:function(t,e){var i=e.props,n=e.data,o="card-img";return i.top?o+="-top":i.right||i.end?o+="-right":i.bottom?o+="-bottom":(i.left||i.start)&&(o+="-left"),t(Qc,F(n,{class:[o],props:Qt(i,["left","right"])}))}}),iu=vs({textTag:hs(go,"p")},Ne),nu=i.default.extend({name:Ne,functional:!0,props:iu,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.textTag,F(n,{staticClass:"card-text"}),o)}}),ou=vs({columns:hs(ho,!1),deck:hs(ho,!1),tag:hs(go,"div")},Ae),ru=me({components:{BCard:Gc,BCardHeader:Ic,BCardBody:Dc,BCardTitle:kc,BCardSubTitle:Bc,BCardFooter:Oc,BCardImg:Rc,BCardImgLazy:eu,BCardText:nu,BCardGroup:i.default.extend({name:Ae,functional:!0,props:ou,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{class:i.deck?"card-deck":i.columns?"card-columns":"card-group"}),o)}})}}),su=function(){},au=function(t,e,i){if(t=t?t.$el||t:null,!kr(t))return null;if(n="observeDom",!R&&(le("".concat(n,": Requires MutationObserver support.")),1))return null;var n,o=new Sr((function(t){for(var i=!1,n=0;n0||o.removedNodes.length>0))&&(i=!0)}i&&e()}));return o.observe(t,c({childList:!0,subtree:!0},i)),o},lu=ys("value",{type:mo,defaultValue:0}),cu=lu.mixin,uu=lu.props,du=lu.prop,hu=lu.event,fu={next:{dirClass:"carousel-item-left",overlayClass:"carousel-item-next"},prev:{dirClass:"carousel-item-right",overlayClass:"carousel-item-prev"}},pu={TOUCH:"touch",PEN:"pen"},mu={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend oTransitionEnd",transition:"transitionend"},vu=vs(ee(c(c(c({},fc),uu),{},{background:hs(go),controls:hs(ho,!1),fade:hs(ho,!1),imgHeight:hs(_o),imgWidth:hs(_o),indicators:hs(ho,!1),interval:hs(mo,5e3),labelGotoSlide:hs(go,"Goto slide"),labelIndicators:hs(go,"Select a slide to display"),labelNext:hs(go,"Next slide"),labelPrev:hs(go,"Previous slide"),noAnimation:hs(ho,!1),noHoverPause:hs(ho,!1),noTouch:hs(ho,!1),noWrap:hs(ho,!1)})),Ge),bu=i.default.extend({name:Ge,mixins:[pc,cu,Cs],provide:function(){return{bvCarousel:this}},props:vu,data:function(){return{index:this[du]||0,isSliding:!1,transitionEndEvent:null,slides:[],direction:null,isPaused:!(lr(this.interval,0)>0),touchStartX:0,touchDeltaX:0}},computed:{numSlides:function(){return this.slides.length}},watch:(zc={},a(zc,du,(function(t,e){t!==e&&this.setSlide(lr(t,0))})),a(zc,"interval",(function(t,e){t!==e&&(t?(this.pause(!0),this.start(!1)):this.pause(!1))})),a(zc,"isPaused",(function(t,e){t!==e&&this.$emit(t?"paused":"unpaused")})),a(zc,"index",(function(t,e){t===e||this.isSliding||this.doSlide(t,e)})),zc),created:function(){this.$_interval=null,this.$_animationTimeout=null,this.$_touchTimeout=null,this.$_observer=null,this.isPaused=!(lr(this.interval,0)>0)},mounted:function(){this.transitionEndEvent=function(t){for(var e in mu)if(!Ft(t.style[e]))return mu[e];return null}(this.$el)||null,this.updateSlides(),this.setObserver(!0)},beforeDestroy:function(){this.clearInterval(),this.clearAnimationTimeout(),this.clearTouchTimeout(),this.setObserver(!1)},methods:{clearInterval:function(t){function e(){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(){clearInterval(this.$_interval),this.$_interval=null})),clearAnimationTimeout:function(){clearTimeout(this.$_animationTimeout),this.$_animationTimeout=null},clearTouchTimeout:function(){clearTimeout(this.$_touchTimeout),this.$_touchTimeout=null},setObserver:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,t&&(this.$_observer=au(this.$refs.inner,this.updateSlides.bind(this),{subtree:!1,childList:!0,attributes:!0,attributeFilter:["id"]}))},setSlide:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!(M&&document.visibilityState&&document.hidden)){var n=this.noWrap,o=this.numSlides;t=Xs(t),0!==o&&(this.isSliding?this.$once(io,(function(){xr((function(){return e.setSlide(t,i)}))})):(this.direction=i,this.index=t>=o?n?o-1:0:t<0?n?0:o-1:t,n&&this.index!==t&&this.index!==this[du]&&this.$emit(hu,this.index)))}},prev:function(){this.setSlide(this.index-1,"prev")},next:function(){this.setSlide(this.index+1,"next")},pause:function(t){t||(this.isPaused=!0),this.clearInterval()},start:function(t){t||(this.isPaused=!1),this.clearInterval(),this.interval&&this.numSlides>1&&(this.$_interval=setInterval(this.next,Us(1e3,this.interval)))},restart:function(){this.$el.contains($r())||this.start()},doSlide:function(t,e){var i=this,n=Boolean(this.interval),o=this.calcDirection(this.direction,e,t),r=o.overlayClass,s=o.dirClass,a=this.slides[e],l=this.slides[t];if(a&&l){if(this.isSliding=!0,n&&this.pause(!1),this.$emit("sliding-start",t),this.$emit(hu,this.index),this.noAnimation)Rr(l,"active"),Mr(a,"active"),this.isSliding=!1,this.$nextTick((function(){return i.$emit(io,t)}));else{Rr(l,r),Ir(l),Rr(a,s),Rr(l,s);var c=!1,u=function e(){if(!c){if(c=!0,i.transitionEndEvent)i.transitionEndEvent.split(/\s+/).forEach((function(t){return ks(l,t,e,lo)}));i.clearAnimationTimeout(),Mr(l,s),Mr(l,r),Rr(l,"active"),Mr(a,"active"),Mr(a,s),Mr(a,r),zr(a,"aria-current","false"),zr(l,"aria-current","true"),zr(a,"aria-hidden","true"),zr(l,"aria-hidden","false"),i.isSliding=!1,i.direction=null,i.$nextTick((function(){return i.$emit(io,t)}))}};if(this.transitionEndEvent)this.transitionEndEvent.split(/\s+/).forEach((function(t){return Ss(l,t,u,lo)}));this.$_animationTimeout=setTimeout(u,650)}n&&this.start(!1)}},updateSlides:function(){this.pause(!0),this.slides=Pr(".carousel-item",this.$refs.inner);var t=this.slides.length,e=Us(0,Ys(Xs(this.index),t-1));this.slides.forEach((function(i,n){var o=n+1;n===e?(Rr(i,"active"),zr(i,"aria-current","true")):(Mr(i,"active"),zr(i,"aria-current","false")),zr(i,"aria-posinset",String(o)),zr(i,"aria-setsize",String(t))})),this.setSlide(e),this.start(this.isPaused)},calcDirection:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t?fu[t]:i>e?fu.next:fu.prev},handleClick:function(t,e){var i=t.keyCode;"click"!==t.type&&i!==Ga&&i!==Ha||(Bs(t),e())},handleSwipe:function(){var t=qs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0?this.prev():e<0&&this.next()}},touchStart:function(t){U&&pu[t.pointerType.toUpperCase()]?this.touchStartX=t.clientX:U||(this.touchStartX=t.touches[0].clientX)},touchMove:function(t){t.touches&&t.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=t.touches[0].clientX-this.touchStartX},touchEnd:function(t){U&&pu[t.pointerType.toUpperCase()]&&(this.touchDeltaX=t.clientX-this.touchStartX),this.handleSwipe(),this.pause(!1),this.clearTouchTimeout(),this.$_touchTimeout=setTimeout(this.start,500+Us(1e3,this.interval))}},render:function(t){var e=this,i=this.indicators,n=this.background,o=this.noAnimation,r=this.noHoverPause,s=this.noTouch,a=this.index,l=this.isSliding,c=this.pause,u=this.restart,d=this.touchStart,h=this.touchEnd,f=this.safeId("__BV_inner_"),p=t("div",{staticClass:"carousel-inner",attrs:{id:f,role:"list"},ref:"inner"},[this.normalizeSlot()]),m=t();if(this.controls){var v=function(i,n,o){var r=function(t){l?Bs(t,{propagation:!1}):e.handleClick(t,o)};return t("a",{staticClass:"carousel-control-".concat(i),attrs:{href:"#",role:"button","aria-controls":f,"aria-disabled":l?"true":null},on:{click:r,keydown:r}},[t("span",{staticClass:"carousel-control-".concat(i,"-icon"),attrs:{"aria-hidden":"true"}}),t("span",{class:"sr-only"},[n])])};m=[v("prev",this.labelPrev,this.prev),v("next",this.labelNext,this.next)]}var b=t("ol",{staticClass:"carousel-indicators",directives:[{name:"show",value:i}],attrs:{id:this.safeId("__BV_indicators_"),"aria-hidden":i?"false":"true","aria-label":this.labelIndicators,"aria-owns":f}},this.slides.map((function(n,o){var r=function(t){e.handleClick(t,(function(){e.setSlide(o)}))};return t("li",{class:{active:o===a},attrs:{role:"button",id:e.safeId("__BV_indicator_".concat(o+1,"_")),tabindex:i?"0":"-1","aria-current":o===a?"true":"false","aria-label":"".concat(e.labelGotoSlide," ").concat(o+1),"aria-describedby":n.id||null,"aria-controls":f},on:{click:r,keydown:r},key:"slide_".concat(o)})}))),g={mouseenter:r?su:c,mouseleave:r?su:u,focusin:c,focusout:u,keydown:function(t){if(!/input|textarea/i.test(t.target.tagName)){var i=t.keyCode;i!==Na&&i!==ja||(Bs(t),e[i===Na?"prev":"next"]())}}};return Y&&!s&&(U?(g["&pointerdown"]=d,g["&pointerup"]=h):(g["&touchstart"]=d,g["&touchmove"]=this.touchMove,g["&touchend"]=h)),t("div",{staticClass:"carousel",class:{slide:!o,"carousel-fade":!o&&this.fade,"pointer-event":Y&&U&&!s},style:{background:n},attrs:{role:"region",id:this.safeId(),"aria-busy":l?"true":"false"},on:g},[p,m,b])}}),gu={imgAlt:hs(go),imgBlank:hs(ho,!1),imgBlankColor:hs(go,"transparent"),imgHeight:hs(_o),imgSrc:hs(go),imgWidth:hs(_o)},yu=vs(ee(c(c(c({},fc),gu),{},{background:hs(go),caption:hs(go),captionHtml:hs(go),captionTag:hs(go,"h3"),contentTag:hs(go,"div"),contentVisibleUp:hs(go),text:hs(go),textHtml:hs(go),textTag:hs(go,"p")})),We),wu=me({components:{BCarousel:bu,BCarouselSlide:i.default.extend({name:We,mixins:[pc,Cs],inject:{bvCarousel:{default:function(){return{noTouch:!0}}}},props:yu,computed:{contentClasses:function(){return[this.contentVisibleUp?"d-none":"",this.contentVisibleUp?"d-".concat(this.contentVisibleUp,"-block"):""]},computedWidth:function(){return this.imgWidth||this.bvCarousel.imgWidth||null},computedHeight:function(){return this.imgHeight||this.bvCarousel.imgHeight||null}},render:function(t){var e=this.normalizeSlot("img");if(!e&&(this.imgSrc||this.imgBlank)){var i={};!this.bvCarousel.noTouch&&Y&&(i.dragstart=function(t){return Bs(t,{propagation:!1})}),e=t(Lc,{props:c(c({},ps(gu,this.$props,us.bind(null,"img"))),{},{width:this.computedWidth,height:this.computedHeight,fluidGrow:!0,block:!0}),on:i})}var n=[!(!this.caption&&!this.captionHtml)&&t(this.captionTag,{domProps:Fl(this.captionHtml,this.caption)}),!(!this.text&&!this.textHtml)&&t(this.textTag,{domProps:Fl(this.textHtml,this.text)}),this.normalizeSlot()||!1],o=t();return n.some(ne)&&(o=t(this.contentTag,{staticClass:"carousel-caption",class:this.contentClasses},n.map((function(e){return e||t()})))),t("div",{staticClass:"carousel-item",style:{background:this.background||this.bvCarousel.background||null},attrs:{id:this.safeId(),role:"listitem"}},[e,o])}})}}),Tu="show",Cu={css:!0,enterClass:"",enterActiveClass:"collapsing",enterToClass:"collapse show",leaveClass:"collapse show",leaveActiveClass:"collapsing",leaveToClass:"collapse"},xu={enter:function(t){Wr(t,"height",0),xr((function(){Ir(t),Wr(t,"height","".concat(t.scrollHeight,"px"))}))},afterEnter:function(t){Yr(t,"height")},leave:function(t){Wr(t,"height","auto"),Wr(t,"display","block"),Wr(t,"height","".concat(qr(t).height,"px")),Ir(t),Wr(t,"height",0)},afterLeave:function(t){Yr(t,"height")}},Su={appear:hs(ho,!1)},ku=i.default.extend({name:"BVCollapse",functional:!0,props:Su,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("transition",F(n,{props:Cu,on:xu},{props:i}),o)}}),$u=Fs(Ue,"toggle"),Bu=Fs(Ue,"request-state"),_u=Ds(Ue,"accordion"),Du=Ds(Ue,"state"),Fu=Ds(Ue,"sync-state"),Iu=ys("visible",{type:ho,defaultValue:!1}),Pu=Iu.mixin,Ou=Iu.props,Vu=Iu.prop,Eu=Iu.event,Lu=vs(ee(c(c(c({},fc),Ou),{},{accordion:hs(go),appear:hs(ho,!1),isNav:hs(ho,!1),tag:hs(go,"div")})),Ue),Au=i.default.extend({name:Ue,mixins:[pc,Pu,Cs,Ja],props:Lu,data:function(){return{show:this[Vu],transitioning:!1}},computed:{classObject:function(){var t=this.transitioning;return{"navbar-collapse":this.isNav,collapse:!t,show:this.show&&!t}},slotScope:function(){var t=this;return{visible:this.show,close:function(){t.show=!1}}}},watch:(Nc={},a(Nc,Vu,(function(t){t!==this.show&&(this.show=t)})),a(Nc,"show",(function(t,e){t!==e&&this.emitState()})),Nc),created:function(){this.show=this[Vu]},mounted:function(){var t=this;this.show=this[Vu],this.listenOnRoot($u,this.handleToggleEvt),this.listenOnRoot(_u,this.handleAccordionEvt),this.isNav&&(this.setWindowEvents(!0),this.handleResize()),this.$nextTick((function(){t.emitState()})),this.listenOnRoot(Bu,(function(e){e===t.safeId()&&t.$nextTick(t.emitSync)}))},updated:function(){this.emitSync()},deactivated:function(){this.isNav&&this.setWindowEvents(!1)},activated:function(){this.isNav&&this.setWindowEvents(!0),this.emitSync()},beforeDestroy:function(){this.show=!1,this.isNav&&M&&this.setWindowEvents(!1)},methods:{setWindowEvents:function(t){$s(t,window,"resize",this.handleResize,lo),$s(t,window,"orientationchange",this.handleResize,lo)},toggle:function(){this.show=!this.show},onEnter:function(){this.transitioning=!0,this.$emit(to)},onAfterEnter:function(){this.transitioning=!1,this.$emit(eo)},onLeave:function(){this.transitioning=!0,this.$emit(Nn)},onAfterLeave:function(){this.transitioning=!1,this.$emit(zn)},emitState:function(){var t=this.show,e=this.accordion,i=this.safeId();this.$emit(Eu,t),this.emitOnRoot(Du,i,t),e&&t&&this.emitOnRoot(_u,i,e)},emitSync:function(){this.emitOnRoot(Fu,this.safeId(),this.show)},checkDisplayBlock:function(){var t=this.$el,e=Hr(t,Tu);Mr(t,Tu);var i="block"===Kr(t).display;return e&&Rr(t,Tu),i},clickHandler:function(t){var e=t.target;this.isNav&&e&&"block"===Kr(this.$el).display&&(!Vr(e,".nav-link,.dropdown-item")&&!Er(".nav-link,.dropdown-item",e)||this.checkDisplayBlock()||(this.show=!1))},handleToggleEvt:function(t){t===this.safeId()&&this.toggle()},handleAccordionEvt:function(t,e){var i=this.accordion,n=this.show;if(i&&i===e){var o=t===this.safeId();(o&&!n||!o&&n)&&this.toggle()}},handleResize:function(){this.show="block"===Kr(this.$el).display}},render:function(t){var e=this.appear,i=t(this.tag,{class:this.classObject,directives:[{name:"show",value:this.show}],attrs:{id:this.safeId()},on:{click:this.clickHandler}},this.normalizeSlot(Ao,this.slotScope));return t(ku,{props:{appear:e},on:{enter:this.onEnter,afterEnter:this.onAfterEnter,leave:this.onLeave,afterLeave:this.onAfterLeave}},[i])}}),Ru="collapsed",Mu="not-collapsed",Hu="__BV_toggle",zu="".concat(Hu,"_HANDLER__"),Nu="".concat(Hu,"_CLICK__"),ju="".concat(Hu,"_STATE__"),Gu="".concat(Hu,"_TARGETS__"),Wu="aria-controls",Yu="aria-expanded",Uu="role",qu="tabindex",Ku="overflow-anchor",Xu=Fs(Ue,"toggle"),Zu=Ds(Ue,"state"),Ju=Ds(Ue,"sync-state"),Qu=Fs(Ue,"request-state"),td=[Ha,Ga],ed=function(t){return!nr(["button","a"],t.tagName.toLowerCase())},id=function(t){var e=t[Nu];e&&(ks(t,"click",e,ao),ks(t,"keydown",e,ao)),t[Nu]=null},nd=function(t,e){t[zu]&&e.context&&e.context.$root.$off([Zu,Ju],t[zu]),t[zu]=null},od=function(t,e){e?(Mr(t,Ru),Rr(t,Mu),zr(t,Yu,"true")):(Mr(t,Mu),Rr(t,Ru),zr(t,Yu,"false"))},rd=function(t,e){t[e]=null,delete t[e]},sd=function(t,e,i){if(M&&i.context){ed(t)&&(Gr(t,Uu)||zr(t,Uu,"button"),Gr(t,qu)||zr(t,qu,"0")),od(t,t[ju]);var n=function(t,e){var i=t.modifiers,n=t.arg,o=t.value,r=Kt(i||{});if(o=Et(o)?o.split(ut):o,Br(e.tagName,"a")){var s=jr(e,"href")||"";it.test(s)&&r.push(s.replace(et,""))}return or(n,o).forEach((function(t){return Et(t)&&r.push(t)})),r.filter((function(t,e,i){return t&&i.indexOf(t)===e}))}(e,t);n.length>0?(zr(t,Wu,n.join(" ")),Wr(t,Ku,"none")):(Nr(t,Wu),Yr(t,Ku)),xr((function(){!function(t,e){if(id(t),e.context){var i=function(i){"keydown"===i.type&&!nr(td,i.keyCode)||Fr(t)||(t[Gu]||[]).forEach((function(t){e.context.$root.$emit(Xu,t)}))};t[Nu]=i,Ss(t,"click",i,ao),ed(t)&&Ss(t,"keydown",i,ao)}}(t,i)})),Ua(n,t[Gu])||(t[Gu]=n,n.forEach((function(t){i.context.$root.$emit(Qu,t)})))}},ad={bind:function(t,e,i){t[ju]=!1,t[Gu]=[],function(t,e){if(nd(t,e),e.context){var i=function(e,i){nr(t[Gu]||[],e)&&(t[ju]=i,od(t,i))};t[zu]=i,e.context.$root.$on([Zu,Ju],i)}}(t,i),sd(t,e,i)},componentUpdated:sd,updated:sd,unbind:function(t,e,i){id(t),nd(t,i),rd(t,zu),rd(t,Nu),rd(t,ju),rd(t,Gu),Mr(t,Ru),Mr(t,Mu),Nr(t,Yu),Nr(t,Wu),Nr(t,Uu),Yr(t,Ku)}},ld=me({directives:{VBToggle:ad}}),cd=me({components:{BCollapse:Au},plugins:{VBTogglePlugin:ld}}),ud="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,dd=function(){for(var t=["Edge","Trident","Firefox"],e=0;e=0)return 1;return 0}();var hd=ud&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),dd))}};function fd(t){return t&&"[object Function]"==={}.toString.call(t)}function pd(t,e){if(1!==t.nodeType)return[];var i=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?i[e]:i}function md(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function vd(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=pd(t),i=e.overflow,n=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(i+o+n)?t:vd(md(t))}function bd(t){return t&&t.referenceNode?t.referenceNode:t}var gd=ud&&!(!window.MSInputMethodContext||!document.documentMode),yd=ud&&/MSIE 10/.test(navigator.userAgent);function wd(t){return 11===t?gd:10===t?yd:gd||yd}function Td(t){if(!t)return document.documentElement;for(var e=wd(10)?document.body:null,i=t.offsetParent||null;i===e&&t.nextElementSibling;)i=(t=t.nextElementSibling).offsetParent;var n=i&&i.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(i.nodeName)&&"static"===pd(i,"position")?Td(i):i:t?t.ownerDocument.documentElement:document.documentElement}function Cd(t){return null!==t.parentNode?Cd(t.parentNode):t}function xd(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var i=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,n=i?t:e,o=i?e:t,r=document.createRange();r.setStart(n,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||n.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&Td(s.firstElementChild)!==s?Td(l):l;var c=Cd(t);return c.host?xd(c.host,e):xd(t,Cd(e).host)}function Sd(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",i="top"===e?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[i]}return t[i]}function kd(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=Sd(e,"top"),o=Sd(e,"left"),r=i?-1:1;return t.top+=n*r,t.bottom+=n*r,t.left+=o*r,t.right+=o*r,t}function $d(t,e){var i="x"===e?"Left":"Top",n="Left"===i?"Right":"Bottom";return parseFloat(t["border"+i+"Width"])+parseFloat(t["border"+n+"Width"])}function Bd(t,e,i,n){return Math.max(e["offset"+t],e["scroll"+t],i["client"+t],i["offset"+t],i["scroll"+t],wd(10)?parseInt(i["offset"+t])+parseInt(n["margin"+("Height"===t?"Top":"Left")])+parseInt(n["margin"+("Height"===t?"Bottom":"Right")]):0)}function _d(t){var e=t.body,i=t.documentElement,n=wd(10)&&getComputedStyle(i);return{height:Bd("Height",e,i,n),width:Bd("Width",e,i,n)}}var Dd=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Fd=function(){function t(t,e){for(var i=0;i2&&void 0!==arguments[2]&&arguments[2],n=wd(10),o="HTML"===e.nodeName,r=Vd(t),s=Vd(e),a=vd(t),l=pd(e),c=parseFloat(l.borderTopWidth),u=parseFloat(l.borderLeftWidth);i&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var d=Od({top:r.top-s.top-c,left:r.left-s.left-u,width:r.width,height:r.height});if(d.marginTop=0,d.marginLeft=0,!n&&o){var h=parseFloat(l.marginTop),f=parseFloat(l.marginLeft);d.top-=c-h,d.bottom-=c-h,d.left-=u-f,d.right-=u-f,d.marginTop=h,d.marginLeft=f}return(n&&!i?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(d=kd(d,e)),d}function Ld(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=t.ownerDocument.documentElement,n=Ed(t,i),o=Math.max(i.clientWidth,window.innerWidth||0),r=Math.max(i.clientHeight,window.innerHeight||0),s=e?0:Sd(i),a=e?0:Sd(i,"left"),l={top:s-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:o,height:r};return Od(l)}function Ad(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===pd(t,"position"))return!0;var i=md(t);return!!i&&Ad(i)}function Rd(t){if(!t||!t.parentElement||wd())return document.documentElement;for(var e=t.parentElement;e&&"none"===pd(e,"transform");)e=e.parentElement;return e||document.documentElement}function Md(t,e,i,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Rd(t):xd(t,bd(e));if("viewport"===n)r=Ld(s,o);else{var a=void 0;"scrollParent"===n?"BODY"===(a=vd(md(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===n?t.ownerDocument.documentElement:n;var l=Ed(a,s,o);if("HTML"!==a.nodeName||Ad(s))r=l;else{var c=_d(t.ownerDocument),u=c.height,d=c.width;r.top+=l.top-l.marginTop,r.bottom=u+l.top,r.left+=l.left-l.marginLeft,r.right=d+l.left}}var h="number"==typeof(i=i||0);return r.left+=h?i:i.left||0,r.top+=h?i:i.top||0,r.right-=h?i:i.right||0,r.bottom-=h?i:i.bottom||0,r}function Hd(t){return t.width*t.height}function zd(t,e,i,n,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Md(i,n,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map((function(t){return Pd({key:t},a[t],{area:Hd(a[t])})})).sort((function(t,e){return e.area-t.area})),c=l.filter((function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight})),u=c.length>0?c[0].key:l[0].key,d=t.split("-")[1];return u+(d?"-"+d:"")}function Nd(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=n?Rd(e):xd(e,bd(i));return Ed(i,o,n)}function jd(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),i=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),n=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+n,height:t.offsetHeight+i}}function Gd(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function Wd(t,e,i){i=i.split("-")[0];var n=jd(t),o={width:n.width,height:n.height},r=-1!==["right","left"].indexOf(i),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-n[l]/2,o[a]=i===a?e[a]-n[c]:e[Gd(a)],o}function Yd(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Ud(t,e,i){return(void 0===i?t:t.slice(0,function(t,e,i){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===i}));var n=Yd(t,(function(t){return t[e]===i}));return t.indexOf(n)}(t,"name",i))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var i=t.function||t.fn;t.enabled&&fd(i)&&(e.offsets.popper=Od(e.offsets.popper),e.offsets.reference=Od(e.offsets.reference),e=i(e,t))})),e}function qd(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Nd(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=zd(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Wd(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Ud(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function Kd(t,e){return t.some((function(t){var i=t.name;return t.enabled&&i===e}))}function Xd(t){for(var e=[!1,"ms","Webkit","Moz","O"],i=t.charAt(0).toUpperCase()+t.slice(1),n=0;n1&&void 0!==arguments[1]&&arguments[1],i=lh.indexOf(t),n=lh.slice(i+1).concat(lh.slice(0,i));return e?n.reverse():n}var uh="flip",dh="clockwise",hh="counterclockwise";function fh(t,e,i,n){var o=[0,0],r=-1!==["right","left"].indexOf(n),s=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=s.indexOf(Yd(s,(function(t){return-1!==t.search(/,|\s/)})));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map((function(t,n){var o=(1===n?!r:r)?"height":"width",s=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,i,n){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=i;break;case"%":case"%r":default:a=n}return Od(a)[e]/100*r}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,i)}))}))).forEach((function(t,e){t.forEach((function(i,n){nh(i)&&(o[e]+=i*("-"===t[n-1]?-1:1))}))})),o}var ph={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,i=e.split("-")[0],n=e.split("-")[1];if(n){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(i),l=a?"left":"top",c=a?"width":"height",u={start:Id({},l,r[l]),end:Id({},l,r[l]+r[c]-s[c])};t.offsets.popper=Pd({},s,u[n])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var i=e.offset,n=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=n.split("-")[0],l=void 0;return l=nh(+i)?[+i,0]:fh(i,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var i=e.boundariesElement||Td(t.instance.popper);t.instance.reference===i&&(i=Td(i));var n=Xd("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[n];o.top="",o.left="",o[n]="";var l=Md(t.instance.popper,t.instance.reference,e.padding,i,t.positionFixed);o.top=r,o.left=s,o[n]=a,e.boundaries=l;var c=e.priority,u=t.offsets.popper,d={primary:function(t){var i=u[t];return u[t]l[t]&&!e.escapeWithReference&&(n=Math.min(u[i],l[t]-("right"===t?u.width:u.height))),Id({},i,n)}};return c.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=Pd({},u,d[e](t))})),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,i=e.popper,n=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return i[a]r(n[a])&&(t.offsets.popper[l]=r(n[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var i;if(!sh(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",u=l?"Top":"Left",d=u.toLowerCase(),h=l?"left":"top",f=l?"bottom":"right",p=jd(n)[c];a[f]-ps[f]&&(t.offsets.popper[d]+=a[d]+p-s[f]),t.offsets.popper=Od(t.offsets.popper);var m=a[d]+a[c]/2-p/2,v=pd(t.instance.popper),b=parseFloat(v["margin"+u]),g=parseFloat(v["border"+u+"Width"]),y=m-t.offsets.popper[d]-b-g;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=n,t.offsets.arrow=(Id(i={},d,Math.round(y)),Id(i,h,""),i),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Kd(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var i=Md(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),n=t.placement.split("-")[0],o=Gd(n),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case uh:s=[n,o];break;case dh:s=ch(n);break;case hh:s=ch(n,!0);break;default:s=e.behavior}return s.forEach((function(a,l){if(n!==a||s.length===l+1)return t;n=t.placement.split("-")[0],o=Gd(n);var c=t.offsets.popper,u=t.offsets.reference,d=Math.floor,h="left"===n&&d(c.right)>d(u.left)||"right"===n&&d(c.left)d(u.top)||"bottom"===n&&d(c.top)d(i.right),m=d(c.top)d(i.bottom),b="left"===n&&f||"right"===n&&p||"top"===n&&m||"bottom"===n&&v,g=-1!==["top","bottom"].indexOf(n),y=!!e.flipVariations&&(g&&"start"===r&&f||g&&"end"===r&&p||!g&&"start"===r&&m||!g&&"end"===r&&v),w=!!e.flipVariationsByContent&&(g&&"start"===r&&p||g&&"end"===r&&f||!g&&"start"===r&&v||!g&&"end"===r&&m),T=y||w;(h||b||T)&&(t.flipped=!0,(h||b)&&(n=s[l+1]),T&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=n+(r?"-"+r:""),t.offsets.popper=Pd({},t.offsets.popper,Wd(t.instance.popper,t.offsets.reference,t.placement)),t=Ud(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,i=e.split("-")[0],n=t.offsets,o=n.popper,r=n.reference,s=-1!==["left","right"].indexOf(i),a=-1===["top","left"].indexOf(i);return o[s?"left":"top"]=r[i]-(a?o[s?"width":"height"]:0),t.placement=Gd(e),t.offsets.popper=Od(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!sh(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,i=Yd(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomi.right||e.top>i.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};Dd(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=hd(this.update.bind(this)),this.options=Pd({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=i&&i.jquery?i[0]:i,this.options.modifiers={},Object.keys(Pd({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){n.options.modifiers[e]=Pd({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return Pd({name:t},n.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&fd(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Fd(t,[{key:"update",value:function(){return qd.call(this)}},{key:"destroy",value:function(){return Zd.call(this)}},{key:"enableEventListeners",value:function(){return eh.call(this)}},{key:"disableEventListeners",value:function(){return ih.call(this)}}]),t}();mh.Utils=("undefined"!=typeof window?window:global).PopperUtils,mh.placements=ah,mh.Defaults=ph;var vh,bh,gh,yh,wh,Th,Ch,xh,Sh,kh,$h,Bh,BvEvent=function(){function BvEvent(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o(this,BvEvent),!t)throw new TypeError("Failed to construct '".concat(this.constructor.name,"'. 1 argument required, ").concat(arguments.length," given."));Gt(this,BvEvent.Defaults,this.constructor.Defaults,e,{type:t}),Yt(this,{type:{enumerable:!0,configurable:!1,writable:!1},cancelable:{enumerable:!0,configurable:!1,writable:!1},nativeEvent:{enumerable:!0,configurable:!1,writable:!1},target:{enumerable:!0,configurable:!1,writable:!1},relatedTarget:{enumerable:!0,configurable:!1,writable:!1},vueTarget:{enumerable:!0,configurable:!1,writable:!1},componentId:{enumerable:!0,configurable:!1,writable:!1}});var i=!1;this.preventDefault=function(){this.cancelable&&(i=!0)},Ut(this,"defaultPrevented",{enumerable:!0,get:function(){return i}})}return s(BvEvent,null,[{key:"Defaults",get:function(){return{type:"",cancelable:!0,nativeEvent:null,target:null,relatedTarget:null,vueTarget:null,componentId:null}}}]),BvEvent}(),_h=i.default.extend({data:function(){return{listenForClickOut:!1}},watch:{listenForClickOut:function(t,e){t!==e&&(ks(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo),t&&Ss(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo))}},beforeCreate:function(){this.clickOutElement=null,this.clickOutEventName=null},mounted:function(){this.clickOutElement||(this.clickOutElement=document),this.clickOutEventName||(this.clickOutEventName="click"),this.listenForClickOut&&Ss(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo)},beforeDestroy:function(){ks(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo)},methods:{isClickOut:function(t){return!Lr(this.$el,t.target)},_clickOutHandler:function(t){this.clickOutHandler&&this.isClickOut(t)&&this.clickOutHandler(t)}}}),Dh=i.default.extend({data:function(){return{listenForFocusIn:!1}},watch:{listenForFocusIn:function(t,e){t!==e&&(ks(this.focusInElement,"focusin",this._focusInHandler,lo),t&&Ss(this.focusInElement,"focusin",this._focusInHandler,lo))}},beforeCreate:function(){this.focusInElement=null},mounted:function(){this.focusInElement||(this.focusInElement=document),this.listenForFocusIn&&Ss(this.focusInElement,"focusin",this._focusInHandler,lo)},beforeDestroy:function(){ks(this.focusInElement,"focusin",this._focusInHandler,lo)},methods:{_focusInHandler:function(t){this.focusInHandler&&this.focusInHandler(t)}}}),Fh=Ds(Ke,eo),Ih=Ds(Ke,zn),Ph=[".dropdown-item",".b-dropdown-form"].map((function(t){return"".concat(t,":not(.disabled):not([disabled])")})).join(", "),Oh=vs(ee(c(c({},fc),{},{boundary:hs([HTMLElement,go],"scrollParent"),disabled:hs(ho,!1),dropleft:hs(ho,!1),dropright:hs(ho,!1),dropup:hs(ho,!1),noFlip:hs(ho,!1),offset:hs(_o,0),popperOpts:hs(vo,{}),right:hs(ho,!1)})),Ke),Vh=i.default.extend({mixins:[pc,Ja,_h,Dh],provide:function(){return{bvDropdown:this}},inject:{bvNavbar:{default:null}},props:Oh,data:function(){return{visible:!1,visibleChangePrevented:!1}},computed:{inNavbar:function(){return!It(this.bvNavbar)},toggler:function(){var t=this.$refs.toggle;return t?t.$el||t:null},directionClass:function(){return this.dropup?"dropup":this.dropright?"dropright":this.dropleft?"dropleft":""},boundaryClass:function(){return"scrollParent"===this.boundary||this.inNavbar?"":"position-static"}},watch:{visible:function(t,e){if(this.visibleChangePrevented)this.visibleChangePrevented=!1;else if(t!==e){var i=new BvEvent(t?to:Nn,{cancelable:!0,vueTarget:this,target:this.$refs.menu,relatedTarget:null,componentId:this.safeId?this.safeId():this.id||null});if(this.emitEvent(i),i.defaultPrevented)return this.visibleChangePrevented=!0,this.visible=e,void this.$off(zn,this.focusToggler);t?this.showMenu():this.hideMenu()}},disabled:function(t,e){t!==e&&t&&this.visible&&(this.visible=!1)}},created:function(){this.$_popper=null,this.$_hideTimeout=null},deactivated:function(){this.visible=!1,this.whileOpenListen(!1),this.destroyPopper()},beforeDestroy:function(){this.visible=!1,this.whileOpenListen(!1),this.destroyPopper(),this.clearHideTimeout()},methods:{emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(Ke,e),t),this.$emit(e,t)},showMenu:function(){var t=this;if(!this.disabled){if(!this.inNavbar)if("undefined"==typeof mh)le("Popper.js not found. Falling back to CSS positioning",Ke);else{var e=this.dropup&&this.right||this.split?this.$el:this.$refs.toggle;e=e.$el||e,this.createPopper(e)}this.emitOnRoot(Fh,this),this.whileOpenListen(!0),this.$nextTick((function(){t.focusMenu(),t.$emit(eo)}))}},hideMenu:function(){this.whileOpenListen(!1),this.emitOnRoot(Ih,this),this.$emit(zn),this.destroyPopper()},createPopper:function(t){this.destroyPopper(),this.$_popper=new mh(t,this.$refs.menu,this.getPopperConfig())},destroyPopper:function(){this.$_popper&&this.$_popper.destroy(),this.$_popper=null},updatePopper:function(){try{this.$_popper.scheduleUpdate()}catch(t){}},clearHideTimeout:function(){clearTimeout(this.$_hideTimeout),this.$_hideTimeout=null},getPopperConfig:function(){var t="bottom-start";this.dropup?t=this.right?"top-end":"top-start":this.dropright?t="right-start":this.dropleft?t="left-start":this.right&&(t="bottom-end");var e={placement:t,modifiers:{offset:{offset:this.offset||0},flip:{enabled:!this.noFlip}}},i=this.boundary;return i&&(e.modifiers.preventOverflow={boundariesElement:i}),te(e,this.popperOpts||{})},whileOpenListen:function(t){this.listenForClickOut=t,this.listenForFocusIn=t;var e=t?"$on":"$off";this.$root[e](Fh,this.rootCloseListener)},rootCloseListener:function(t){t!==this&&(this.visible=!1)},show:function(){var t=this;this.disabled||xr((function(){t.visible=!0}))},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.disabled||(this.visible=!1,t&&this.$once(zn,this.focusToggler))},toggle:function(t){var e=t=t||{},i=e.type,n=e.keyCode;("click"===i||"keydown"===i&&-1!==[Ha,Ga,Ra].indexOf(n))&&(this.disabled?this.visible=!1:(this.$emit(no,t),Bs(t),this.visible?this.hide(!0):this.show()))},onMousedown:function(t){Bs(t,{propagation:!1})},onKeydown:function(t){var e=t.keyCode;27===e?this.onEsc(t):e===Ra?this.focusNext(t,!1):e===Wa&&this.focusNext(t,!0)},onEsc:function(t){this.visible&&(this.visible=!1,Bs(t),this.$once(zn,this.focusToggler))},onSplitClick:function(t){this.disabled?this.visible=!1:this.$emit(Bn,t)},hideHandler:function(t){var e=this,i=t.target;!this.visible||Lr(this.$refs.menu,i)||Lr(this.toggler,i)||(this.clearHideTimeout(),this.$_hideTimeout=setTimeout((function(){return e.hide()}),this.inNavbar?300:0))},clickOutHandler:function(t){this.hideHandler(t)},focusInHandler:function(t){this.hideHandler(t)},focusNext:function(t,e){var i=this,n=t.target;!this.visible||t&&Er(".dropdown form",n)||(Bs(t),this.$nextTick((function(){var t=i.getItems();if(!(t.length<1)){var o=t.indexOf(n);e&&o>0?o--:!e&&o1&&void 0!==arguments[1]?arguments[1]:null;if(Ht(t)){var i=re(t,this.valueField),n=re(t,this.textField);return{value:Ft(i)?e||n:i,text:Dl(String(Ft(n)?e:n)),html:re(t,this.htmlField),disabled:Boolean(re(t,this.disabledField))}}return{value:e||t,text:Dl(String(t)),disabled:!1}},normalizeOptions:function(t){var e=this;return Rt(t)?t.map((function(t){return e.normalizeOption(t)})):Ht(t)?(le('Setting prop "options" to an object is deprecated. Use the array format instead.',this.$options.name),Kt(t).map((function(i){return e.normalizeOption(t[i]||{},i)}))):[]}}}),lf=vs(ee(c(c({},sf),{},{id:hs(go,void 0,!0)})),ai),cf=i.default.extend({name:ai,mixins:[af,Cs],props:lf,render:function(t){var e=this.id,i=this.formOptions.map((function(e,i){var n=e.value,o=e.text,r=e.html,s=e.disabled;return t("option",{attrs:{value:n,disabled:s},domProps:Fl(r,o),key:"option_".concat(i)})}));return t("datalist",{attrs:{id:e}},[i,this.normalizeSlot()])}}),uf=vs({id:hs(go),inline:hs(ho,!1),tag:hs(go,"small"),textVariant:hs(go,"muted")},xi),df=i.default.extend({name:xi,functional:!0,props:uf,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{class:a({"form-text":!i.inline},"text-".concat(i.textVariant),i.textVariant),attrs:{id:i.id}}),o)}}),hf=vs({ariaLive:hs(go),forceShow:hs(ho,!1),id:hs(go),role:hs(go),state:hs(ho,null),tag:hs(go,"div"),tooltip:hs(ho,!1)},hi),ff=i.default.extend({name:hi,functional:!0,props:hf,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.tooltip,s=i.ariaLive,a=!0===i.forceShow||!1===i.state;return t(i.tag,F(n,{class:{"d-block":a,"invalid-feedback":!r,"invalid-tooltip":r},attrs:{id:i.id||null,role:i.role||null,"aria-live":s||null,"aria-atomic":s?"true":null}}),o)}}),pf=vs({ariaLive:hs(go),forceShow:hs(ho,!1),id:hs(go),role:hs(go),state:hs(ho,null),tag:hs(go,"div"),tooltip:hs(ho,!1)},$i),mf=i.default.extend({name:$i,functional:!0,props:pf,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.tooltip,s=i.ariaLive,a=!0===i.forceShow||!0===i.state;return t(i.tag,F(n,{class:{"d-block":a,"valid-feedback":!r,"valid-tooltip":r},attrs:{id:i.id||null,role:i.role||null,"aria-live":s||null,"aria-atomic":s?"true":null}}),o)}}),vf=vs({tag:hs(go,"div")},vi),bf=i.default.extend({name:vi,functional:!0,props:vf,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{staticClass:"form-row"}),o)}}),gf=me({components:{BForm:Uh,BFormDatalist:cf,BDatalist:cf,BFormText:df,BFormInvalidFeedback:ff,BFormFeedback:ff,BFormValidFeedback:mf,BFormRow:bf}}),yf=function(t,e){for(var i=0;i-1:Ua(e,t)},isRadio:function(){return!1}},watch:a({},Lf,(function(t,e){Ua(t,e)||this.setIndeterminate(t)})),mounted:function(){this.setIndeterminate(this.indeterminate)},methods:{computedLocalCheckedWatcher:function(t,e){if(!Ua(t,e)){this.$emit(Of,t);var i=this.$refs.input;i&&this.$emit(Af,i.indeterminate)}},handleChange:function(t){var e=this,i=t.target,n=i.checked,o=i.indeterminate,r=this.value,s=this.uncheckedValue,a=this.computedLocalChecked;if(Rt(a)){var l=yf(a,r);n&&l<0?a=a.concat(r):!n&&l>-1&&(a=a.slice(0,l).concat(a.slice(l+1)))}else a=n?r:s;this.computedLocalChecked=a,this.$nextTick((function(){e.$emit($n,a),e.isGroup&&e.bvGroup.$emit($n,a),e.$emit(Af,o)}))},setIndeterminate:function(t){Rt(this.computedLocalChecked)&&(t=!1);var e=this.$refs.input;e&&(e.indeterminate=t,this.$emit(Af,t))}}}),Hf=vs(ee(c(c(c(c(c({},fc),Tf),Vf),kf),Bf)),fi),zf=i.default.extend({name:fi,mixins:[pc,Ef,Cf,$f,_f],inject:{bvGroup:{from:"bvRadioGroup",default:!1}},props:Hf,watch:{computedLocalChecked:function(t,e){Ua(t,e)||this.$emit(Of,t)}}}),Nf=["aria-describedby","aria-labelledby"],jf=ys("checked"),Gf=jf.mixin,Wf=jf.props,Yf=jf.prop,Uf=jf.event,qf=vs(ee(c(c(c(c(c(c(c(c({},fc),Wf),Tf),sf),kf),Bf),xf),{},{ariaInvalid:hs(ko,!1),buttonVariant:hs(go),buttons:hs(ho,!1),stacked:hs(ho,!1),validated:hs(ho,!1)})),"formRadioCheckGroups"),Kf=i.default.extend({mixins:[pc,Gf,Cs,Cf,af,$f,_f,Sf],inheritAttrs:!1,props:qf,data:function(){return{localChecked:this[Yf]}},computed:{inline:function(){return!this.stacked},groupName:function(){return this.name||this.safeId()},groupClasses:function(){var t=this.inline,e=this.size,i={"was-validated":this.validated};return this.buttons&&(i=[i,"btn-group-toggle",a({"btn-group":t,"btn-group-vertical":!t},"btn-group-".concat(e),e)]),i}},watch:(yh={},a(yh,Yf,(function(t){Ua(t,this.localChecked)||(this.localChecked=t)})),a(yh,"localChecked",(function(t,e){Ua(t,e)||this.$emit(Uf,t)})),yh),render:function(t){var e=this,i=this.isRadioGroup,n=Jt(this.$attrs,Nf),o=i?zf:Mf,r=this.formOptions.map((function(i,r){var s="BV_option_".concat(r);return t(o,{props:{disabled:i.disabled||!1,id:e.safeId(s),value:i.value},attrs:n,key:s},[t("span",{domProps:Fl(i.html,i.text)})])}));return t("div",{class:[this.groupClasses,"bv-no-focus-ring"],attrs:c(c({},Qt(this.$attrs,Nf)),{},{"aria-invalid":this.computedAriaInvalid,"aria-required":this.required?"true":null,id:this.safeId(),role:i?"radiogroup":"group",tabindex:"-1"})},[this.normalizeSlot(Ho),r,this.normalizeSlot()])}}),Xf=vs(ee(c(c({},qf),{},(a(wh={},Yf,hs(uo,[])),a(wh,"switches",hs(ho,!1)),wh))),si),Zf=i.default.extend({name:si,mixins:[Kf],provide:function(){return{bvCheckGroup:this}},props:Xf,computed:{isRadioGroup:function(){return!1}}}),Jf=me({components:{BFormCheckbox:Mf,BCheckbox:Mf,BCheck:Mf,BFormCheckboxGroup:Zf,BCheckboxGroup:Zf,BCheckGroup:Zf}}),Qf="__BV_hover_handler__",tp="mouseenter",ep=function(t,e,i){$s(t,e,tp,i,lo),$s(t,e,"mouseleave",i,lo)},ip=function(t,e){var i=e.value,n=void 0===i?null:i;if(M){var o=t[Qf],r=Ot(o),s=!(r&&o.fn===n);r&&s&&(ep(!1,t,o),delete t[Qf]),Ot(n)&&s&&(t[Qf]=function(t){var e=function(e){t(e.type===tp,e)};return e.fn=t,e}(n),ep(!0,t,t[Qf]))}},np={bind:ip,componentUpdated:ip,unbind:function(t){ip(t,{value:null})}},op=ee(c(c(c(c(c(c({},fc),kf),Bf),Qt(Oh,["disabled"])),Qt(Tf,["autofocus"])),{},{buttonOnly:hs(ho,!1),buttonVariant:hs(go,"secondary"),formattedValue:hs(go),labelSelected:hs(go),lang:hs(go),menuClass:hs(To),placeholder:hs(go),readonly:hs(ho,!1),rtl:hs(ho,null),value:hs(go,"")})),rp=i.default.extend({name:"BVFormBtnLabelControl",directives:{"b-hover":np},mixins:[pc,$f,_f,Vh,Cs],props:op,data:function(){return{isHovered:!1,hasFocus:!1}},computed:{idButton:function(){return this.safeId()},idLabel:function(){return this.safeId("_value_")},idMenu:function(){return this.safeId("_dialog_")},idWrapper:function(){return this.safeId("_outer_")},computedDir:function(){return!0===this.rtl?"rtl":!1===this.rtl?"ltr":null}},methods:{focus:function(){this.disabled||ts(this.$refs.toggle)},blur:function(){this.disabled||es(this.$refs.toggle)},setFocus:function(t){this.hasFocus="focus"===t.type},handleHover:function(t){this.isHovered=t}},render:function(t){var e,i=this.idButton,n=this.idLabel,o=this.idMenu,r=this.idWrapper,s=this.disabled,l=this.readonly,c=this.required,u=this.name,d=this.state,h=this.visible,f=this.size,p=this.isHovered,m=this.hasFocus,v=this.labelSelected,b=this.buttonVariant,g=this.buttonOnly,y=vr(this.value)||"",w=!1===d||c&&!y,T={isHovered:p,hasFocus:m,state:d,opened:h},C=t("button",{staticClass:"btn",class:(e={},a(e,"btn-".concat(b),g),a(e,"btn-".concat(f),f),a(e,"h-auto",!g),a(e,"dropdown-toggle",g),a(e,"dropdown-toggle-no-caret",g),e),attrs:{id:i,type:"button",disabled:s,"aria-haspopup":"dialog","aria-expanded":h?"true":"false","aria-invalid":w?"true":null,"aria-required":c?"true":null},directives:[{name:"b-hover",value:this.handleHover}],on:{mousedown:this.onMousedown,click:this.toggle,keydown:this.toggle,"!focus":this.setFocus,"!blur":this.setFocus},ref:"toggle"},[this.hasNormalizedSlot(Eo)?this.normalizeSlot(Eo,T):t(Ta,{props:{scale:1.25}})]),x=t();u&&!s&&(x=t("input",{attrs:{type:"hidden",name:u||null,form:this.form||null,value:y}}));var S=t("div",{staticClass:"dropdown-menu",class:[this.menuClass,{show:h,"dropdown-menu-right":this.right}],attrs:{id:o,role:"dialog",tabindex:"-1","aria-modal":"false","aria-labelledby":n},on:{keydown:this.onKeydown},ref:"menu"},[this.normalizeSlot(Ao,{opened:h})]),k=t("label",{class:g?"sr-only":["form-control",{"text-muted":!y},this.stateClass,this.sizeFormClass],attrs:{id:n,for:i,"aria-invalid":w?"true":null,"aria-required":c?"true":null},directives:[{name:"b-hover",value:this.handleHover}],on:{"!click":function(t){Bs(t,{preventDefault:!1})}}},[y?this.formattedValue||y:this.placeholder||"",y&&v?t("bdi",{staticClass:"sr-only"},v):""]);return t("div",{staticClass:"b-form-btn-label-control dropdown",class:[this.directionClass,this.boundaryClass,[{"btn-group":g,"form-control":!g,focus:m&&!g,show:h,"is-valid":!0===d,"is-invalid":!1===d},g?null:this.sizeFormClass]],attrs:{id:r,role:g?null:"group",lang:this.lang||null,dir:this.computedDir,"aria-disabled":s,"aria-readonly":l&&!s,"aria-labelledby":n,"aria-invalid":!1===d||c&&!y?"true":null,"aria-required":c?"true":null}},[C,x,S,k])}}),sp=ys("value",{type:$o}),ap=sp.mixin,lp=sp.props,cp=sp.prop,up=sp.event,dp=Qt(wc,["block","hidden","id","noKeyNav","roleDescription","value","width"]),hp=Qt(op,["formattedValue","id","lang","rtl","value"]),fp=vs(ee(c(c(c(c(c({},fc),lp),dp),hp),{},{calendarWidth:hs(go,"270px"),closeButton:hs(ho,!1),closeButtonVariant:hs(go,"outline-secondary"),dark:hs(ho,!1),labelCloseButton:hs(go,"Close"),labelResetButton:hs(go,"Reset"),labelTodayButton:hs(go,"Select today"),noCloseOnSelect:hs(ho,!1),resetButton:hs(ho,!1),resetButtonVariant:hs(go,"outline-danger"),resetValue:hs($o),todayButton:hs(ho,!1),todayButtonVariant:hs(go,"outline-primary")})),li),pp=i.default.extend({name:li,mixins:[pc,ap],props:fp,data:function(){return{localYMD:Jl(this[cp])||"",isVisible:!1,localLocale:null,isRTL:!1,formattedValue:"",activeYMD:""}},computed:{calendarYM:function(){return this.activeYMD.slice(0,-3)},computedLang:function(){return(this.localLocale||"").replace(/-u-.*$/i,"")||null},computedResetValue:function(){return Jl(uc(this.resetValue))||""}},watch:(Th={},a(Th,cp,(function(t){this.localYMD=Jl(t)||""})),a(Th,"localYMD",(function(t){this.isVisible&&this.$emit(up,this.valueAsDate?Zl(t)||null:t||"")})),a(Th,"calendarYM",(function(t,e){if(t!==e&&e)try{this.$refs.control.updatePopper()}catch(t){}})),Th),methods:{focus:function(){this.disabled||ts(this.$refs.control)},blur:function(){this.disabled||es(this.$refs.control)},setAndClose:function(t){var e=this;this.localYMD=t,this.noCloseOnSelect||this.$nextTick((function(){e.$refs.control.hide(!0)}))},onSelected:function(t){var e=this;this.$nextTick((function(){e.setAndClose(t)}))},onInput:function(t){this.localYMD!==t&&(this.localYMD=t)},onContext:function(t){var e=t.activeYMD,i=t.isRTL,n=t.locale,o=t.selectedYMD,r=t.selectedFormatted;this.isRTL=i,this.localLocale=n,this.formattedValue=r,this.localYMD=o,this.activeYMD=e,this.$emit(Dn,t)},onTodayButton:function(){this.setAndClose(Jl(uc(Xl(),this.min,this.max)))},onResetButton:function(){this.setAndClose(this.computedResetValue)},onCloseButton:function(){this.$refs.control.hide(!0)},onShow:function(){this.isVisible=!0},onShown:function(){var t=this;this.$nextTick((function(){ts(t.$refs.calendar),t.$emit(eo)}))},onHidden:function(){this.isVisible=!1,this.$emit(zn)},defaultButtonFn:function(t){var e=t.isHovered,i=t.hasFocus;return this.$createElement(e||i?ga:ba,{attrs:{"aria-hidden":"true"}})}},render:function(t){var e=this.localYMD,i=this.disabled,n=this.readonly,o=this.dark,r=this.$props,s=this.$scopedSlots,l=Pt(this.placeholder)?this.labelNoDateSelected:this.placeholder,u=[];if(this.todayButton){var d=this.labelTodayButton;u.push(t(ml,{props:{disabled:i||n,size:"sm",variant:this.todayButtonVariant},attrs:{"aria-label":d||null},on:{click:this.onTodayButton}},d))}if(this.resetButton){var h=this.labelResetButton;u.push(t(ml,{props:{disabled:i||n,size:"sm",variant:this.resetButtonVariant},attrs:{"aria-label":h||null},on:{click:this.onResetButton}},h))}if(this.closeButton){var f=this.labelCloseButton;u.push(t(ml,{props:{disabled:i,size:"sm",variant:this.closeButtonVariant},attrs:{"aria-label":f||null},on:{click:this.onCloseButton}},f))}u.length>0&&(u=[t("div",{staticClass:"b-form-date-controls d-flex flex-wrap",class:{"justify-content-between":u.length>1,"justify-content-end":u.length<2}},u)]);var p=t(Tc,{staticClass:"b-form-date-calendar w-100",props:c(c({},ps(dp,r)),{},{hidden:!this.isVisible,value:e,valueAsDate:!1,width:this.calendarWidth}),on:{selected:this.onSelected,input:this.onInput,context:this.onContext},scopedSlots:Jt(s,["nav-prev-decade","nav-prev-year","nav-prev-month","nav-this-month","nav-next-month","nav-next-year","nav-next-decade"]),key:"calendar",ref:"calendar"},u);return t(rp,{staticClass:"b-form-datepicker",props:c(c({},ps(hp,r)),{},{formattedValue:e?this.formattedValue:"",id:this.safeId(),lang:this.computedLang,menuClass:[{"bg-dark":o,"text-light":o},this.menuClass],placeholder:l,rtl:this.isRTL,value:e}),on:{show:this.onShow,shown:this.onShown,hidden:this.onHidden},scopedSlots:a({},Eo,s["button-content"]||this.defaultButtonFn),ref:"control"},[p])}}),mp=me({components:{BFormDatepicker:pp,BDatepicker:pp}}),vp=ys("value",{type:[uo,_t],defaultValue:null,validator:function(t){return""===t?(le(Tp,ci),!0):Pt(t)||Cp(t)}}),bp=vp.mixin,gp=vp.props,yp=vp.prop,wp=vp.event,Tp='Setting "value"/"v-model" to an empty string for reset is deprecated. Set to "null" instead.',Cp=function t(e){return function(t){return t instanceof _t}(e)||Rt(e)&&e.every((function(e){return t(e)}))},xp=function(t){return Ot(t.getAsEntry)?t.getAsEntry():Ot(t.webkitGetAsEntry)?t.webkitGetAsEntry():null},Sp=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise((function(n){var o=[];!function r(){e.readEntries((function(e){0===e.length?n(Promise.all(o).then((function(t){return sr(t)}))):(o.push(Promise.all(e.map((function(e){if(e){if(e.isDirectory)return t(e.createReader(),"".concat(i).concat(e.name,"/"));if(e.isFile)return new Promise((function(t){e.file((function(e){e.$path="".concat(i).concat(e.name),t(e)}))}))}return null})).filter(ne))),r())}))}()}))},kp=vs(ee(c(c(c(c(c(c(c({},fc),gp),Tf),xf),Bf),kf),{},{accept:hs(go,""),browseText:hs(go,"Browse"),capture:hs(ho,!1),directory:hs(ho,!1),dropPlaceholder:hs(go,"Drop files here"),fileNameFormatter:hs(po),multiple:hs(ho,!1),noDrop:hs(ho,!1),noDropPlaceholder:hs(go,"Not allowed"),noTraverse:hs(ho,!1),placeholder:hs(go,"No file chosen")})),ci),$p=i.default.extend({name:ci,mixins:[Za,pc,bp,Cs,Cf,_f,Sf,Cs],inheritAttrs:!1,props:kp,data:function(){return{files:[],dragging:!1,dropAllowed:!this.noDrop,hasFocus:!1}},computed:{computedAccept:function(){var t=this.accept;return 0===(t=(t||"").trim().split(/[,\s]+/).filter(ne)).length?null:t.map((function(t){var e="name",i="^",n="$";return tt.test(t)?i="":(e="type",dt.test(t)&&(n=".+$",t=t.slice(0,-1))),t=mr(t),{rx:new RegExp("".concat(i).concat(t).concat(n)),prop:e}}))},computedCapture:function(){var t=this.capture;return!0===t||""===t||(t||null)},computedAttrs:function(){var t=this.name,e=this.disabled,i=this.required,n=this.form,o=this.computedCapture,r=this.accept,s=this.multiple,a=this.directory;return c(c({},this.bvAttrs),{},{type:"file",id:this.safeId(),name:t,disabled:e,required:i,form:n||null,capture:o,accept:r||null,multiple:s,directory:a,webkitdirectory:a,"aria-required":i?"true":null})},computedFileNameFormatter:function(){var t=this.fileNameFormatter;return gs(t)?t:this.defaultFileNameFormatter},clonedFiles:function(){return ie(this.files)},flattenedFiles:function(){return ar(this.files)},fileNames:function(){return this.flattenedFiles.map((function(t){return t.name}))},labelContent:function(){if(this.dragging&&!this.noDrop)return this.normalizeSlot("drop-placeholder",{allowed:this.dropAllowed})||(this.dropAllowed?this.dropPlaceholder:this.$createElement("span",{staticClass:"text-danger"},this.noDropPlaceholder));if(0===this.files.length)return this.normalizeSlot("placeholder")||this.placeholder;var t=this.flattenedFiles,e=this.clonedFiles,i=this.fileNames,n=this.computedFileNameFormatter;return this.hasNormalizedSlot(Mo)?this.normalizeSlot(Mo,{files:t,filesTraversed:e,names:i}):n(t,e,i)}},watch:(Ch={},a(Ch,yp,(function(t){(!t||Rt(t)&&0===t.length)&&this.reset()})),a(Ch,"files",(function(t,e){if(!Ua(t,e)){var i=this.multiple,n=this.noTraverse,o=!i||n?ar(t):t;this.$emit(wp,i?o:o[0]||null)}})),Ch),created:function(){this.$_form=null},mounted:function(){var t=Er("form",this.$el);t&&(Ss(t,"reset",this.reset,ao),this.$_form=t)},beforeDestroy:function(){var t=this.$_form;t&&ks(t,"reset",this.reset,ao)},methods:{isFileValid:function(t){if(!t)return!1;var e=this.computedAccept;return!e||e.some((function(e){return e.rx.test(t[e.prop])}))},isFilesArrayValid:function(t){var e=this;return Rt(t)?t.every((function(t){return e.isFileValid(t)})):this.isFileValid(t)},defaultFileNameFormatter:function(t,e,i){return i.join(", ")},setFiles:function(t){this.dropAllowed=!this.noDrop,this.dragging=!1,this.files=this.multiple?this.directory?t:ar(t):ar(t).slice(0,1)},setInputFiles:function(t){try{var e=new ClipboardEvent("").clipboardData||new DataTransfer;ar(ie(t)).forEach((function(t){delete t.$path,e.items.add(t)})),this.$refs.input.files=e.files}catch(t){}},reset:function(){try{var t=this.$refs.input;t.value="",t.type="",t.type="file"}catch(t){}this.files=[]},handleFiles:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e){var i=t.filter(this.isFilesArrayValid);i.length>0&&(this.setFiles(i),this.setInputFiles(i))}else this.setFiles(t)},focusHandler:function(t){this.plain||"focusout"===t.type?this.hasFocus=!1:this.hasFocus=!0},onChange:function(t){var e=this,i=t.type,n=t.target,o=t.dataTransfer,r=void 0===o?{}:o,s="drop"===i;this.$emit($n,t);var a=ir(r.items||[]);if(A&&a.length>0&&!It(xp(a[0])))(function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Promise.all(ir(t).filter((function(t){return"file"===t.kind})).map((function(t){var i=xp(t);if(i){if(i.isDirectory&&e)return Sp(i.createReader(),"".concat(i.name,"/"));if(i.isFile)return new Promise((function(t){i.file((function(e){e.$path="",t(e)}))}))}return null})).filter(ne))})(a,this.directory).then((function(t){return e.handleFiles(t,s)}));else{var l=ir(n.files||r.files||[]).map((function(t){return t.$path=t.webkitRelativePath||"",t}));this.handleFiles(l,s)}},onDragenter:function(t){Bs(t),this.dragging=!0;var e=t.dataTransfer,i=void 0===e?{}:e;if(this.noDrop||this.disabled||!this.dropAllowed)return i.dropEffect="none",void(this.dropAllowed=!1);i.dropEffect="copy"},onDragover:function(t){Bs(t),this.dragging=!0;var e=t.dataTransfer,i=void 0===e?{}:e;if(this.noDrop||this.disabled||!this.dropAllowed)return i.dropEffect="none",void(this.dropAllowed=!1);i.dropEffect="copy"},onDragleave:function(t){var e=this;Bs(t),this.$nextTick((function(){e.dragging=!1,e.dropAllowed=!e.noDrop}))},onDrop:function(t){var e=this;Bs(t),this.dragging=!1,this.noDrop||this.disabled||!this.dropAllowed?this.$nextTick((function(){e.dropAllowed=!e.noDrop})):this.onChange(t)}},render:function(t){var e=this.custom,i=this.plain,n=this.size,o=this.dragging,r=this.stateClass,s=this.bvAttrs,l=t("input",{class:[{"form-control-file":i,"custom-file-input":e,focus:e&&this.hasFocus},r],style:e?{zIndex:-5}:{},attrs:this.computedAttrs,on:{change:this.onChange,focusin:this.focusHandler,focusout:this.focusHandler,reset:this.reset},ref:"input"});if(i)return l;var c=t("label",{staticClass:"custom-file-label",class:{dragging:o},attrs:{for:this.safeId(),"data-browse":this.browseText||null}},[t("span",{staticClass:"d-block form-file-text",style:{pointerEvents:"none"}},[this.labelContent])]);return t("div",{staticClass:"custom-file b-form-file",class:[a({},"b-custom-control-".concat(n),n),r,s.class],style:s.style,attrs:{id:this.safeId("_BV_file_outer_")},on:{dragenter:this.onDragenter,dragover:this.onDragover,dragleave:this.onDragleave,drop:this.onDrop}},[l,c])}}),Bp=me({components:{BFormFile:$p,BFile:$p}}),_p=function(t){return"\\"+t},Dp=function(t){var e=(t=vr(t)).length,i=t.charCodeAt(0);return t.split("").reduce((function(n,o,r){var s=t.charCodeAt(r);return 0===s?n+"īŋŊ":127===s||s>=1&&s<=31||0===r&&s>=48&&s<=57||1===r&&s>=48&&s<=57&&45===i?n+_p("".concat(s.toString(16)," ")):0===r&&45===s&&1===e?n+_p(o):s>=128||45===s||95===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?n+o:n+_p(o)}),"")},Fp=["auto","start","end","center","baseline","stretch"],Ip=is((function(t,e,i){var n=t;if(!Pt(i)&&!1!==i)return e&&(n+="-".concat(e)),"col"!==t||""!==i&&!0!==i?(n+="-".concat(i),gr(n)):gr(n)})),Pp=Wt(null),Op={name:Ye,functional:!0,get props(){return delete this.props,this.props=(t=ls().filter(ne),e=t.reduce((function(t,e){return t[e]=hs(So),t}),Wt(null)),i=t.reduce((function(t,e){return t[ds(e,"offset")]=hs(_o),t}),Wt(null)),n=t.reduce((function(t,e){return t[ds(e,"order")]=hs(_o),t}),Wt(null)),Pp=Gt(Wt(null),{col:Kt(e),offset:Kt(i),order:Kt(n)}),vs(ee(c(c(c(c({},e),i),n),{},{alignSelf:hs(go,null,(function(t){return nr(Fp,t)})),col:hs(ho,!1),cols:hs(_o),offset:hs(_o),order:hs(_o),tag:hs(go,"div")})),Ye));var t,e,i,n},render:function(t,e){var i,n=e.props,o=e.data,r=e.children,s=n.cols,l=n.offset,c=n.order,u=n.alignSelf,d=[];for(var h in Pp)for(var f=Pp[h],p=0;p0||Kt(this.labelColProps).length>0}},watch:{ariaDescribedby:function(t,e){t!==e&&this.updateAriaDescribedby(t,e)}},mounted:function(){var t=this;this.$nextTick((function(){t.updateAriaDescribedby(t.ariaDescribedby)}))},methods:{getAlignClasses:function(t,e){return ls().reduce((function(i,n){var o=t[ds(n,"".concat(e,"Align"))]||null;return o&&i.push(["text",n,o].filter(ne).join("-")),i}),[])},getColProps:function(t,e){return ls().reduce((function(i,n){var o=t[ds(n,"".concat(e,"Cols"))];return Vt(o=""===o||(o||!1))||"auto"===o||(o=(o=lr(o,0))>0&&o),o&&(i[n||(Vt(o)?"col":"cols")]=o),i}),{})},updateAriaDescribedby:function(t,e){var i=this.labelFor;if(M&&i){var n=Or("#".concat(Dp(i)),this.$refs.content);if(n){var o="aria-describedby",r=(t||"").split(ut),s=(e||"").split(ut),a=(jr(n,o)||"").split(ut).filter((function(t){return!nr(s,t)})).concat(r).filter((function(t,e,i){return i.indexOf(t)===e})).filter(ne).join(" ").trim();a?zr(n,o,a):Nr(n,o)}}},onLegendClick:function(t){if(!this.labelFor){var e=t.target,i=e?e.tagName:"";if(-1===Lp.indexOf(i)){var n=Pr(Ep,this.$refs.content).filter(Dr);1===n.length&&ts(n[0])}}}},render:function(t){var e=this.computedState,i=this.feedbackAriaLive,n=this.isHorizontal,o=this.labelFor,r=this.normalizeSlot,s=this.safeId,a=this.tooltip,l=s(),u=!o,d=t(),h=r(jo)||this.label,f=h?s("_BV_label_"):null;if(h||n){var p=this.labelSize,m=this.labelColProps,v=u?"legend":"label";this.labelSrOnly?(h&&(d=t(v,{class:"sr-only",attrs:{id:f,for:o||null}},[h])),d=t(n?Op:"div",{props:n?m:{}},[d])):d=t(n?Op:v,{on:u?{click:this.onLegendClick}:{},props:n?c(c({},m),{},{tag:v}):{},attrs:{id:f,for:o||null,tabindex:u?"-1":null},class:[u?"bv-no-focus-ring":"",n||u?"col-form-label":"",!n&&u?"pt-0":"",n||u?"":"d-block",p?"col-form-label-".concat(p):"",this.labelAlignClasses,this.labelClass]},[h])}var b=t(),g=r("invalid-feedback")||this.invalidFeedback,y=g?s("_BV_feedback_invalid_"):null;g&&(b=t(ff,{props:{ariaLive:i,id:y,role:i?"alert":null,state:e,tooltip:a},attrs:{tabindex:g?"-1":null}},[g]));var w=t(),T=r("valid-feedback")||this.validFeedback,C=T?s("_BV_feedback_valid_"):null;T&&(w=t(mf,{props:{ariaLive:i,id:C,role:i?"alert":null,state:e,tooltip:a},attrs:{tabindex:T?"-1":null}},[T]));var x=t(),S=r("description")||this.description,k=S?s("_BV_description_"):null;S&&(x=t(df,{attrs:{id:k,tabindex:"-1"}},[S]));var $=this.ariaDescribedby=[k,!1===e?y:null,!0===e?C:null].filter(ne).join(" ")||null,B=t(n?Op:"div",{props:n?this.contentColProps:{},ref:"content"},[r(Ao,{ariaDescribedby:$,descriptionId:k,id:l,labelId:f})||t(),b,w,x]);return t(u?"fieldset":n?bf:"div",{staticClass:"form-group",class:[{"was-validated":this.validated},this.stateClass],attrs:{id:l,disabled:u?this.disabled:null,role:u?null:"group","aria-invalid":this.computedAriaInvalid,"aria-labelledby":u&&n?f:null}},n&&u?[t(bf,[d,B])]:[d,B])}},Rp=me({components:{BFormGroup:Ap,BFormFieldset:Ap}}),Mp=i.default.extend({computed:{selectionStart:{cache:!1,get:function(){return this.$refs.input.selectionStart},set:function(t){this.$refs.input.selectionStart=t}},selectionEnd:{cache:!1,get:function(){return this.$refs.input.selectionEnd},set:function(t){this.$refs.input.selectionEnd=t}},selectionDirection:{cache:!1,get:function(){return this.$refs.input.selectionDirection},set:function(t){this.$refs.input.selectionDirection=t}}},methods:{select:function(){var t;(t=this.$refs.input).select.apply(t,arguments)},setSelectionRange:function(){var t;(t=this.$refs.input).setSelectionRange.apply(t,arguments)},setRangeText:function(){var t;(t=this.$refs.input).setRangeText.apply(t,arguments)}}}),Hp=ys("value",{type:_o,defaultValue:"",event:"update"}),zp=Hp.mixin,Np=Hp.props,jp=Hp.prop,Gp=Hp.event,Wp=vs(ee(c(c({},Np),{},{ariaInvalid:hs(ko,!1),autocomplete:hs(go),debounce:hs(_o,0),formatter:hs(po),lazy:hs(ho,!1),lazyFormatter:hs(ho,!1),number:hs(ho,!1),placeholder:hs(go),plaintext:hs(ho,!1),readonly:hs(ho,!1),trim:hs(ho,!1)})),"formTextControls"),Yp=i.default.extend({mixins:[zp],props:Wp,data:function(){var t=this[jp];return{localValue:vr(t),vModelValue:this.modifyValue(t)}},computed:{computedClass:function(){var t=this.plaintext,e=this.type,i="range"===e,n="color"===e;return[{"custom-range":i,"form-control-plaintext":t&&!i&&!n,"form-control":n||!t&&!i},this.sizeFormClass,this.stateClass]},computedDebounce:function(){return Us(lr(this.debounce,0),0)},hasFormatter:function(){return gs(this.formatter)}},watch:a({},jp,(function(t){var e=vr(t),i=this.modifyValue(t);e===this.localValue&&i===this.vModelValue||(this.clearDebounce(),this.localValue=e,this.vModelValue=i)})),created:function(){this.$_inputDebounceTimer=null},mounted:function(){this.$on(oo,this.clearDebounce)},beforeDestroy:function(){this.clearDebounce()},methods:{clearDebounce:function(){clearTimeout(this.$_inputDebounceTimer),this.$_inputDebounceTimer=null},formatValue:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t=vr(t),!this.hasFormatter||this.lazyFormatter&&!i||(t=this.formatter(t,e)),t},modifyValue:function(t){return t=vr(t),this.trim&&(t=t.trim()),this.number&&(t=cr(t,t)),t},updateValue:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.lazy;if(!n||i){this.clearDebounce();var o=function(){if((t=e.modifyValue(t))!==e.vModelValue)e.vModelValue=t,e.$emit(Gp,t);else if(e.hasFormatter){var i=e.$refs.input;i&&t!==i.value&&(i.value=t)}},r=this.computedDebounce;r>0&&!n&&!i?this.$_inputDebounceTimer=setTimeout(o,r):o()}},onInput:function(t){if(!t.target.composing){var e=t.target.value,i=this.formatValue(e,t);!1===i||t.defaultPrevented?Bs(t,{propagation:!1}):(this.localValue=i,this.updateValue(i),this.$emit(jn,i))}},onChange:function(t){var e=t.target.value,i=this.formatValue(e,t);!1===i||t.defaultPrevented?Bs(t,{propagation:!1}):(this.localValue=i,this.updateValue(i,!0),this.$emit($n,i))},onBlur:function(t){var e=t.target.value,i=this.formatValue(e,t,!0);!1!==i&&(this.localValue=vr(this.modifyValue(i)),this.updateValue(i,!0)),this.$emit("blur",t)},focus:function(){this.disabled||ts(this.$el)},blur:function(){this.disabled||es(this.$el)}}}),Up=i.default.extend({computed:{validity:{cache:!1,get:function(){return this.$refs.input.validity}},validationMessage:{cache:!1,get:function(){return this.$refs.input.validationMessage}},willValidate:{cache:!1,get:function(){return this.$refs.input.willValidate}}},methods:{setCustomValidity:function(){var t;return(t=this.$refs.input).setCustomValidity.apply(t,arguments)},checkValidity:function(){var t;return(t=this.$refs.input).checkValidity.apply(t,arguments)},reportValidity:function(){var t;return(t=this.$refs.input).reportValidity.apply(t,arguments)}}}),qp=["text","password","email","number","url","tel","search","range","color","date","time","datetime","datetime-local","month","week"],Kp=vs(ee(c(c(c(c(c(c({},fc),Tf),kf),Bf),Wp),{},{list:hs(go),max:hs(_o),min:hs(_o),noWheel:hs(ho,!1),step:hs(_o),type:hs(go,"text",(function(t){return nr(qp,t)}))})),di),Xp=i.default.extend({name:di,mixins:[Qa,pc,Cf,$f,_f,Yp,Mp,Up],props:Kp,computed:{localType:function(){var t=this.type;return nr(qp,t)?t:"text"},computedAttrs:function(){var t=this.localType,e=this.name,i=this.form,n=this.disabled,o=this.placeholder,r=this.required,s=this.min,a=this.max,l=this.step;return{id:this.safeId(),name:e,form:i,type:t,disabled:n,placeholder:o,required:r,autocomplete:this.autocomplete||null,readonly:this.readonly||this.plaintext,min:s,max:a,step:l,list:"password"!==t?this.list:null,"aria-required":r?"true":null,"aria-invalid":this.computedAriaInvalid}},computedListeners:function(){return c(c({},this.bvListeners),{},{input:this.onInput,change:this.onChange,blur:this.onBlur})}},watch:{noWheel:function(t){this.setWheelStopper(t)}},mounted:function(){this.setWheelStopper(this.noWheel)},deactivated:function(){this.setWheelStopper(!1)},activated:function(){this.setWheelStopper(this.noWheel)},beforeDestroy:function(){this.setWheelStopper(!1)},methods:{setWheelStopper:function(t){var e=this.$el;$s(t,e,"focus",this.onWheelFocus),$s(t,e,"blur",this.onWheelBlur),t||ks(document,"wheel",this.stopWheel)},onWheelFocus:function(){Ss(document,"wheel",this.stopWheel)},onWheelBlur:function(){ks(document,"wheel",this.stopWheel)},stopWheel:function(t){Bs(t,{propagation:!1}),es(this.$el)}},render:function(t){return t("input",{class:this.computedClass,attrs:this.computedAttrs,domProps:{value:this.localValue},on:this.computedListeners,ref:"input"})}}),Zp=me({components:{BFormInput:Xp,BInput:Xp}}),Jp=vs(qf,pi),Qp=i.default.extend({name:pi,mixins:[Kf],provide:function(){return{bvRadioGroup:this}},props:Jp,computed:{isRadioGroup:function(){return!0}}}),tm=me({components:{BFormRadio:zf,BRadio:zf,BFormRadioGroup:Qp,BRadioGroup:Qp}}),em=ys("value",{type:_o,event:$n}),im=em.mixin,nm=em.props,om=em.prop,rm=em.event,sm=function(t){return Us(3,lr(t,5))},am=function(t,e,i){return Us(Ys(t,i),e)},lm=i.default.extend({name:"BVFormRatingStar",mixins:[Cs],props:{disabled:hs(ho,!1),focused:hs(ho,!1),hasClear:hs(ho,!1),rating:hs(mo,0),readonly:hs(ho,!1),star:hs(mo,0),variant:hs(go)},methods:{onClick:function(t){this.disabled||this.readonly||(Bs(t,{propagation:!1}),this.$emit(Qn,this.star))}},render:function(t){var e=this.rating,i=this.star,n=this.focused,o=this.hasClear,r=this.variant,s=this.disabled,a=this.readonly,l=o?0:1,c=e>=i?"full":e>=i-.5?"half":"empty",u={variant:r,disabled:s,readonly:a};return t("span",{staticClass:"b-rating-star",class:{focused:n&&e===i||!lr(e)&&i===l,"b-rating-star-empty":"empty"===c,"b-rating-star-half":"half"===c,"b-rating-star-full":"full"===c},attrs:{tabindex:s||a?null:"-1"},on:{click:this.onClick}},[t("span",{staticClass:"b-rating-icon"},[this.normalizeSlot(c,u)])])}}),cm=vs(ee(c(c(c(c(c({},fc),nm),Qt(Tf,["required","autofocus"])),kf),{},{color:hs(go),iconClear:hs(go,"x"),iconEmpty:hs(go,"star"),iconFull:hs(go,"star-fill"),iconHalf:hs(go,"star-half"),inline:hs(ho,!1),locale:hs(Co),noBorder:hs(ho,!1),precision:hs(_o),readonly:hs(ho,!1),showClear:hs(ho,!1),showValue:hs(ho,!1),showValueMax:hs(ho,!1),stars:hs(_o,5,(function(t){return lr(t)>=3})),variant:hs(go)})),mi),um=i.default.extend({name:mi,components:{BIconStar:Fa,BIconStarHalf:Pa,BIconStarFill:Ia,BIconX:Oa},mixins:[pc,im,$f],props:cm,data:function(){var t=cr(this[om],null),e=sm(this.stars);return{localValue:It(t)?null:am(t,0,e),hasFocus:!1}},computed:{computedStars:function(){return sm(this.stars)},computedRating:function(){var t=cr(this.localValue,0),e=lr(this.precision,3);return am(cr(t.toFixed(e)),0,this.computedStars)},computedLocale:function(){var t=or(this.locale).filter(ne);return new Intl.NumberFormat(t).resolvedOptions().locale},isInteractive:function(){return!this.disabled&&!this.readonly},isRTL:function(){return hc(this.computedLocale)},formattedRating:function(){var t=lr(this.precision),e=this.showValueMax,i=this.computedLocale,n={notation:"standard",minimumFractionDigits:isNaN(t)?0:t,maximumFractionDigits:isNaN(t)?3:t},o=this.computedStars.toLocaleString(i),r=this.localValue;return r=It(r)?e?"-":"":r.toLocaleString(i,n),e?"".concat(r,"/").concat(o):r}},watch:(xh={},a(xh,om,(function(t,e){if(t!==e){var i=cr(t,null);this.localValue=It(i)?null:am(i,0,this.computedStars)}})),a(xh,"localValue",(function(t,e){t!==e&&t!==(this.value||0)&&this.$emit(rm,t||null)})),a(xh,"disabled",(function(t){t&&(this.hasFocus=!1,this.blur())})),xh),methods:{focus:function(){this.disabled||ts(this.$el)},blur:function(){this.disabled||es(this.$el)},onKeydown:function(t){var e=t.keyCode;if(this.isInteractive&&nr([Na,Ra,ja,Wa],e)){Bs(t,{propagation:!1});var i=lr(this.localValue,0),n=this.showClear?0:1,o=this.computedStars,r=this.isRTL?-1:1;e===Na?this.localValue=am(i-r,n,o)||null:e===ja?this.localValue=am(i+r,n,o):e===Ra?this.localValue=am(i-1,n,o)||null:e===Wa&&(this.localValue=am(i+1,n,o))}},onSelected:function(t){this.isInteractive&&(this.localValue=t)},onFocus:function(t){this.hasFocus=!!this.isInteractive&&"focus"===t.type},renderIcon:function(t){return this.$createElement(Aa,{props:{icon:t,variant:this.disabled||this.color?null:this.variant||null}})},iconEmptyFn:function(){return this.renderIcon(this.iconEmpty)},iconHalfFn:function(){return this.renderIcon(this.iconHalf)},iconFullFn:function(){return this.renderIcon(this.iconFull)},iconClearFn:function(){return this.$createElement(Aa,{props:{icon:this.iconClear}})}},render:function(t){var e=this,i=this.disabled,n=this.readonly,o=this.name,r=this.form,s=this.inline,a=this.variant,l=this.color,c=this.noBorder,u=this.hasFocus,d=this.computedRating,h=this.computedStars,f=this.formattedRating,p=this.showClear,m=this.isRTL,v=this.isInteractive,b=this.$scopedSlots,g=[];if(p&&!i&&!n){var y=t("span",{staticClass:"b-rating-icon"},[(b["icon-clear"]||this.iconClearFn)()]);g.push(t("span",{staticClass:"b-rating-star b-rating-star-clear flex-grow-1",class:{focused:u&&0===d},attrs:{tabindex:v?"-1":null},on:{click:function(){return e.onSelected(null)}},key:"clear"},[y]))}for(var w=0;w1&&void 0!==arguments[1]?arguments[1]:null;if(Ht(t)){var i=re(t,this.valueField),n=re(t,this.textField),o=re(t,this.optionsField,null);return It(o)?{value:Ft(i)?e||n:i,text:String(Ft(n)?e:n),html:re(t,this.htmlField),disabled:Boolean(re(t,this.disabledField))}:{label:String(re(t,this.labelField)||n),options:this.normalizeOptions(o)}}return{value:e||t,text:String(t),disabled:!1}}}}),ym=vs({disabled:hs(ho,!1),value:hs(co,void 0,!0)},gi),wm=i.default.extend({name:gi,functional:!0,props:ym,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.value;return t("option",F(n,{attrs:{disabled:i.disabled},domProps:{value:r}}),o)}}),Tm=vs(ee(c(c({},sf),{},{label:hs(go,void 0,!0)})),yi),Cm=i.default.extend({name:yi,mixins:[Cs,af],props:Tm,render:function(t){var e=this.label,i=this.formOptions.map((function(e,i){var n=e.value,o=e.text,r=e.html,s=e.disabled;return t(wm,{attrs:{value:n,disabled:s},domProps:Fl(r,o),key:"option_".concat(i)})}));return t("optgroup",{attrs:{label:e}},[this.normalizeSlot(Ho),i,this.normalizeSlot()])}}),xm=vs(ee(c(c(c(c(c(c(c({},fc),pm),Tf),xf),kf),Bf),{},{ariaInvalid:hs(ko,!1),multiple:hs(ho,!1),selectSize:hs(mo,0)})),bi),Sm=i.default.extend({name:bi,mixins:[pc,fm,Cf,$f,_f,Sf,gm,Cs],props:xm,data:function(){return{localValue:this[mm]}},computed:{computedSelectSize:function(){return this.plain||0!==this.selectSize?this.selectSize:null},inputClass:function(){return[this.plain?"form-control":"custom-select",this.size&&this.plain?"form-control-".concat(this.size):null,this.size&&!this.plain?"custom-select-".concat(this.size):null,this.stateClass]}},watch:{value:function(t){this.localValue=t},localValue:function(){this.$emit(vm,this.localValue)}},methods:{focus:function(){ts(this.$refs.input)},blur:function(){es(this.$refs.input)},onChange:function(t){var e=this,i=t.target,n=ir(i.options).filter((function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));this.localValue=i.multiple?n:n[0],this.$nextTick((function(){e.$emit($n,e.localValue)}))}},render:function(t){var e=this.name,i=this.disabled,n=this.required,o=this.computedSelectSize,r=this.localValue,s=this.formOptions.map((function(e,i){var n=e.value,o=e.label,r=e.options,s=e.disabled,a="option_".concat(i);return Rt(r)?t(Cm,{props:{label:o,options:r},key:a}):t(wm,{props:{value:n,disabled:s},domProps:Fl(e.html,e.text),key:a})}));return t("select",{class:this.inputClass,attrs:{id:this.safeId(),name:e,form:this.form||null,multiple:this.multiple||null,size:o,disabled:i,required:n,"aria-required":n?"true":null,"aria-invalid":this.computedAriaInvalid},on:{change:this.onChange},directives:[{name:"model",value:r}],ref:"input"},[this.normalizeSlot(Ho),s,this.normalizeSlot()])}}),km=me({components:{BFormSelect:Sm,BFormSelectOption:wm,BFormSelectOptionGroup:Cm,BSelect:Sm,BSelectOption:wm,BSelectOptionGroup:Cm}}),$m=ys("value",{type:xo}),Bm=$m.mixin,_m=$m.props,Dm=$m.prop,Fm=$m.event,Im=[Wa,Ra,za,Ma,33,34],Pm=vs(ee(c(c(c(c(c(c({},fc),_m),Qt(Tf,["required","autofocus"])),kf),Bf),{},{ariaControls:hs(go),ariaLabel:hs(go),formatterFn:hs(po),inline:hs(ho,!1),labelDecrement:hs(go,"Decrement"),labelIncrement:hs(go,"Increment"),locale:hs(Co),max:hs(_o,100),min:hs(_o,1),placeholder:hs(go),readonly:hs(ho,!1),repeatDelay:hs(_o,500),repeatInterval:hs(_o,100),repeatStepMultiplier:hs(_o,4),repeatThreshold:hs(_o,10),step:hs(_o,1),vertical:hs(ho,!1),wrap:hs(ho,!1)})),wi),Om=i.default.extend({name:wi,mixins:[Za,pc,Bm,$f,_f,Cs],inheritAttrs:!1,props:Pm,data:function(){return{localValue:cr(this[Dm],null),hasFocus:!1}},computed:{spinId:function(){return this.safeId()},computedInline:function(){return this.inline&&!this.vertical},computedReadonly:function(){return this.readonly&&!this.disabled},computedRequired:function(){return this.required&&!this.computedReadonly&&!this.disabled},computedStep:function(){return cr(this.step,1)},computedMin:function(){return cr(this.min,1)},computedMax:function(){var t=cr(this.max,100),e=this.computedStep,i=this.computedMin;return Xs((t-i)/e)*e+i},computedDelay:function(){var t=lr(this.repeatDelay,0);return t>0?t:500},computedInterval:function(){var t=lr(this.repeatInterval,0);return t>0?t:100},computedThreshold:function(){return Us(lr(this.repeatThreshold,10),1)},computedStepMultiplier:function(){return Us(lr(this.repeatStepMultiplier,4),1)},computedPrecision:function(){var t=this.computedStep;return Xs(t)===t?0:(t.toString().split(".")[1]||"").length},computedMultiplier:function(){return Zs(10,this.computedPrecision||0)},valueAsFixed:function(){var t=this.localValue;return It(t)?"":t.toFixed(this.computedPrecision)},computedLocale:function(){var t=or(this.locale).filter(ne);return new Intl.NumberFormat(t).resolvedOptions().locale},computedRTL:function(){return hc(this.computedLocale)},defaultFormatter:function(){var t=this.computedPrecision;return new Intl.NumberFormat(this.computedLocale,{style:"decimal",useGrouping:!1,minimumIntegerDigits:1,minimumFractionDigits:t,maximumFractionDigits:t,notation:"standard"}).format},computedFormatter:function(){var t=this.formatterFn;return gs(t)?t:this.defaultFormatter},computedAttrs:function(){return c(c({},this.bvAttrs),{},{role:"group",lang:this.computedLocale,tabindex:this.disabled?null:"-1",title:this.ariaLabel})},computedSpinAttrs:function(){var t=this.spinId,e=this.localValue,i=this.computedRequired,n=this.disabled,o=this.state,r=this.computedFormatter,s=!It(e);return c(c({dir:this.computedRTL?"rtl":"ltr"},this.bvAttrs),{},{id:t,role:"spinbutton",tabindex:n?null:"0","aria-live":"off","aria-label":this.ariaLabel||null,"aria-controls":this.ariaControls||null,"aria-invalid":!1===o||!s&&i?"true":null,"aria-required":i?"true":null,"aria-valuemin":vr(this.computedMin),"aria-valuemax":vr(this.computedMax),"aria-valuenow":s?e:null,"aria-valuetext":s?r(e):null})}},watch:(Sh={},a(Sh,Dm,(function(t){this.localValue=cr(t,null)})),a(Sh,"localValue",(function(t){this.$emit(Fm,t)})),a(Sh,"disabled",(function(t){t&&this.clearRepeat()})),a(Sh,"readonly",(function(t){t&&this.clearRepeat()})),Sh),created:function(){this.$_autoDelayTimer=null,this.$_autoRepeatTimer=null,this.$_keyIsDown=!1},beforeDestroy:function(){this.clearRepeat()},deactivated:function(){this.clearRepeat()},methods:{focus:function(){this.disabled||ts(this.$refs.spinner)},blur:function(){this.disabled||es(this.$refs.spinner)},emitChange:function(){this.$emit($n,this.localValue)},stepValue:function(t){var e=this.localValue;if(!this.disabled&&!It(e)){var i=this.computedStep*t,n=this.computedMin,o=this.computedMax,r=this.computedMultiplier,s=this.wrap;e=Js((e-n)/i)*i+n+i,e=Js(e*r)/r,this.localValue=e>o?s?n:o:e0&&void 0!==arguments[0]?arguments[0]:1,e=this.localValue;It(e)?this.localValue=this.computedMin:this.stepValue(1*t)},stepDown:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=this.localValue;It(e)?this.localValue=this.wrap?this.computedMax:this.computedMin:this.stepValue(-1*t)},onKeydown:function(t){var e=t.keyCode,i=t.altKey,n=t.ctrlKey,o=t.metaKey;if(!(this.disabled||this.readonly||i||n||o)&&nr(Im,e)){if(Bs(t,{propagation:!1}),this.$_keyIsDown)return;this.resetTimers(),nr([Wa,Ra],e)?(this.$_keyIsDown=!0,e===Wa?this.handleStepRepeat(t,this.stepUp):e===Ra&&this.handleStepRepeat(t,this.stepDown)):33===e?this.stepUp(this.computedStepMultiplier):34===e?this.stepDown(this.computedStepMultiplier):e===za?this.localValue=this.computedMin:e===Ma&&(this.localValue=this.computedMax)}},onKeyup:function(t){var e=t.keyCode,i=t.altKey,n=t.ctrlKey,o=t.metaKey;this.disabled||this.readonly||i||n||o||nr(Im,e)&&(Bs(t,{propagation:!1}),this.resetTimers(),this.$_keyIsDown=!1,this.emitChange())},handleStepRepeat:function(t,e){var i=this,n=t||{},o=n.type,r=n.button;if(!this.disabled&&!this.readonly){if("mousedown"===o&&r)return;this.resetTimers(),e(1);var s=this.computedThreshold,a=this.computedStepMultiplier,l=this.computedDelay,c=this.computedInterval;this.$_autoDelayTimer=setTimeout((function(){var t=0;i.$_autoRepeatTimer=setInterval((function(){e(t0&&i.indexOf(t)===e}))},Wm=function(t){return Et(t)?t:Nt(t)&&t.target.value||""},Ym=vs(ee(c(c(c(c(c(c({},fc),Mm),Tf),kf),Bf),{},{addButtonText:hs(go,"Add"),addButtonVariant:hs(go,"outline-secondary"),addOnChange:hs(ho,!1),duplicateTagText:hs(go,"Duplicate tag(s)"),ignoreInputFocusSelector:hs(Co,jm),inputAttrs:hs(vo,{}),inputClass:hs(To),inputId:hs(go),inputType:hs(go,"text",(function(t){return nr(Nm,t)})),invalidTagText:hs(go,"Invalid tag(s)"),limit:hs(mo),limitTagsText:hs(go,"Tag limit reached"),noAddOnEnter:hs(ho,!1),noOuterFocus:hs(ho,!1),noTagRemove:hs(ho,!1),placeholder:hs(go,"Add tag..."),removeOnDelete:hs(ho,!1),separator:hs(Co),tagClass:hs(To),tagPills:hs(ho,!1),tagRemoveLabel:hs(go,"Remove tag"),tagRemovedLabel:hs(go,"Tag removed"),tagValidator:hs(po),tagVariant:hs(go,"secondary")})),Ci),Um=i.default.extend({name:Ci,mixins:[pc,Rm,Cf,$f,_f,Cs],props:Ym,data:function(){return{hasFocus:!1,newTag:"",tags:[],removedTags:[],tagsState:{all:[],valid:[],invalid:[],duplicate:[]}}},computed:{computedInputId:function(){return this.inputId||this.safeId("__input__")},computedInputType:function(){return nr(Nm,this.inputType)?this.inputType:"text"},computedInputAttrs:function(){var t=this.disabled,e=this.form;return c(c({},this.inputAttrs),{},{id:this.computedInputId,value:this.newTag,disabled:t,form:e})},computedInputHandlers:function(){return{input:this.onInputInput,change:this.onInputChange,keydown:this.onInputKeydown,reset:this.reset}},computedSeparator:function(){return or(this.separator).filter(Et).filter(ne).join("")},computedSeparatorRegExp:function(){var t=this.computedSeparator;return t?new RegExp("[".concat(mr(t).replace(ct,"\\s"),"]+")):null},computedJoiner:function(){var t=this.computedSeparator.charAt(0);return" "!==t?"".concat(t," "):t},computeIgnoreInputFocusSelector:function(){return or(this.ignoreInputFocusSelector).filter(ne).join(",").trim()},disableAddButton:function(){var t=this,e=br(this.newTag);return""===e||!this.splitTags(e).some((function(e){return!nr(t.tags,e)&&t.validateTag(e)}))},duplicateTags:function(){return this.tagsState.duplicate},hasDuplicateTags:function(){return this.duplicateTags.length>0},invalidTags:function(){return this.tagsState.invalid},hasInvalidTags:function(){return this.invalidTags.length>0},isLimitReached:function(){var t=this.limit;return Lt(t)&&t>=0&&this.tags.length>=t}},watch:(kh={},a(kh,Hm,(function(t){this.tags=Gm(t)})),a(kh,"tags",(function(t,e){Ua(t,this[Hm])||this.$emit(zm,t),Ua(t,e)||(t=or(t).filter(ne),e=or(e).filter(ne),this.removedTags=e.filter((function(e){return!nr(t,e)})))})),a(kh,"tagsState",(function(t,e){Ua(t,e)||this.$emit("tag-state",t.valid,t.invalid,t.duplicate)})),kh),created:function(){this.tags=Gm(this[Hm])},mounted:function(){var t=this,e=Er("form",this.$el);e&&(Ss(e,"reset",this.reset,ao),this.$on(oo,(function(){ks(e,"reset",t.reset,ao)})))},methods:{addTag:function(t){if(t=Et(t)?t:this.newTag,!this.disabled&&""!==br(t)&&!this.isLimitReached){var e=this.parseTags(t);if(e.valid.length>0||0===e.all.length)if(Vr(this.getInput(),"select"))this.newTag="";else{var i=[].concat(T(e.invalid),T(e.duplicate));this.newTag=e.all.filter((function(t){return nr(i,t)})).join(this.computedJoiner).concat(i.length>0?this.computedJoiner.charAt(0):"")}e.valid.length>0&&(this.tags=or(this.tags,e.valid)),this.tagsState=e,this.focus()}},removeTag:function(t){var e=this;this.disabled||(this.tags=this.tags.filter((function(e){return e!==t})),this.$nextTick((function(){e.focus()})))},reset:function(){var t=this;this.newTag="",this.tags=[],this.$nextTick((function(){t.removedTags=[],t.tagsState={all:[],valid:[],invalid:[],duplicate:[]}}))},onInputInput:function(t){if(!(this.disabled||Nt(t)&&t.target.composing)){var e=Wm(t),i=this.computedSeparatorRegExp;this.newTag!==e&&(this.newTag=e),e=vr(e).replace(ft,""),i&&i.test(e.slice(-1))?this.addTag():this.tagsState=""===e?{all:[],valid:[],invalid:[],duplicate:[]}:this.parseTags(e)}},onInputChange:function(t){if(!this.disabled&&this.addOnChange){var e=Wm(t);this.newTag!==e&&(this.newTag=e),this.addTag()}},onInputKeydown:function(t){if(!this.disabled&&Nt(t)){var e=t.keyCode,i=t.target.value||"";this.noAddOnEnter||e!==Ha?!this.removeOnDelete||8!==e&&46!==e||""!==i||(Bs(t,{propagation:!1}),this.tags=this.tags.slice(0,-1)):(Bs(t,{propagation:!1}),this.addTag())}},onClick:function(t){var e=this,i=this.computeIgnoreInputFocusSelector,n=t.target;this.disabled||_r(n)||i&&Er(i,n,!0)||this.$nextTick((function(){e.focus()}))},onFocusin:function(){this.hasFocus=!0},onFocusout:function(){this.hasFocus=!1},handleAutofocus:function(){var t=this;this.$nextTick((function(){xr((function(){t.autofocus&&!t.disabled&&t.focus()}))}))},focus:function(){this.disabled||ts(this.getInput())},blur:function(){this.disabled||es(this.getInput())},splitTags:function(t){t=vr(t);var e=this.computedSeparatorRegExp;return(e?t.split(e):[t]).map(br).filter(ne)},parseTags:function(t){var e=this,i=this.splitTags(t),n={all:i,valid:[],invalid:[],duplicate:[]};return i.forEach((function(t){nr(e.tags,t)||nr(n.valid,t)?nr(n.duplicate,t)||n.duplicate.push(t):e.validateTag(t)?n.valid.push(t):nr(n.invalid,t)||n.invalid.push(t)})),n},validateTag:function(t){var e=this.tagValidator;return!gs(e)||e(t)},getInput:function(){return Or("#".concat(Dp(this.computedInputId)),this.$el)},defaultRender:function(t){var e=t.addButtonText,i=t.addButtonVariant,n=t.addTag,o=t.disableAddButton,r=t.disabled,s=t.duplicateTagText,a=t.inputAttrs,l=t.inputClass,u=t.inputHandlers,d=t.inputType,h=t.invalidTagText,f=t.isDuplicate,p=t.isInvalid,m=t.isLimitReached,v=t.limitTagsText,b=t.noTagRemove,g=t.placeholder,y=t.removeTag,w=t.tagClass,T=t.tagPills,C=t.tagRemoveLabel,x=t.tagVariant,S=t.tags,k=this.$createElement,$=S.map((function(t){return t=vr(t),k(Lm,{class:w,props:{disabled:r,noRemove:b,pill:T,removeLabel:C,tag:"li",title:t,variant:x},on:{remove:function(){return y(t)}},key:"tags_".concat(t)},t)})),B=h&&p?this.safeId("__invalid_feedback__"):null,_=s&&f?this.safeId("__duplicate_feedback__"):null,D=v&&m?this.safeId("__limit_feedback__"):null,F=[a["aria-describedby"],B,_,D].filter(ne).join(" "),I=k("input",{staticClass:"b-form-tags-input w-100 flex-grow-1 p-0 m-0 bg-transparent border-0",class:l,style:{outline:0,minWidth:"5rem"},attrs:c(c({},a),{},{"aria-describedby":F||null,type:d,placeholder:g||null}),domProps:{value:a.value},on:u,directives:[{name:"model",value:a.value}],ref:"input"}),P=k(ml,{staticClass:"b-form-tags-button py-0",class:{invisible:o},style:{fontSize:"90%"},props:{disabled:o||m,variant:i},on:{click:function(){return n()}},ref:"button"},[this.normalizeSlot("add-button-text")||e]),O=this.safeId("__tag_list__"),V=k("li",{staticClass:"b-from-tags-field flex-grow-1",attrs:{role:"none","aria-live":"off","aria-controls":O},key:"tags_field"},[k("div",{staticClass:"d-flex",attrs:{role:"group"}},[I,P])]),E=k("ul",{staticClass:"b-form-tags-list list-unstyled mb-0 d-flex flex-wrap align-items-center",attrs:{id:O},key:"tags_list"},[$,V]),L=k();if(h||s||v){var A=this.computedJoiner,R=k();B&&(R=k(ff,{props:{id:B,forceShow:!0},key:"tags_invalid_feedback"},[this.invalidTagText,": ",this.invalidTags.join(A)]));var M=k();_&&(M=k(df,{props:{id:_},key:"tags_duplicate_feedback"},[this.duplicateTagText,": ",this.duplicateTags.join(A)]));var H=k();D&&(H=k(df,{props:{id:D},key:"tags_limit_feedback"},[v])),L=k("div",{attrs:{"aria-live":"polite","aria-atomic":"true"},key:"tags_feedback"},[R,M,H])}return[E,L]}},render:function(t){var e=this.name,i=this.disabled,n=this.required,o=this.form,r=this.tags,s=this.computedInputId,a=this.hasFocus,l=this.noOuterFocus,u=c({tags:r.slice(),inputAttrs:this.computedInputAttrs,inputType:this.computedInputType,inputHandlers:this.computedInputHandlers,removeTag:this.removeTag,addTag:this.addTag,reset:this.reset,inputId:s,isInvalid:this.hasInvalidTags,invalidTags:this.invalidTags.slice(),isDuplicate:this.hasDuplicateTags,duplicateTags:this.duplicateTags.slice(),isLimitReached:this.isLimitReached,disableAddButton:this.disableAddButton},Jt(this.$props,["addButtonText","addButtonVariant","disabled","duplicateTagText","form","inputClass","invalidTagText","limit","limitTagsText","noTagRemove","placeholder","required","separator","size","state","tagClass","tagPills","tagRemoveLabel","tagVariant"])),d=this.normalizeSlot(Ao,u)||this.defaultRender(u),h=t("output",{staticClass:"sr-only",attrs:{id:this.safeId("__selected_tags__"),role:"status",for:s,"aria-live":a?"polite":"off","aria-atomic":"true","aria-relevant":"additions text"}},this.tags.join(", ")),f=t("div",{staticClass:"sr-only",attrs:{id:this.safeId("__removed_tags__"),role:"status","aria-live":a?"assertive":"off","aria-atomic":"true"}},this.removedTags.length>0?"(".concat(this.tagRemovedLabel,") ").concat(this.removedTags.join(", ")):""),p=t();if(e&&!i){var m=r.length>0;p=(m?r:[""]).map((function(i){return t("input",{class:{"sr-only":!m},attrs:{type:m?"hidden":"text",value:i,required:n,name:e,form:o},key:"tag_input_".concat(i)})}))}return t("div",{staticClass:"b-form-tags form-control h-auto",class:[{focus:a&&!l&&!i,disabled:i},this.sizeFormClass,this.stateClass],attrs:{id:this.safeId(),role:"group",tabindex:i||l?null:"-1","aria-describedby":this.safeId("__selected_tags__")},on:{click:this.onClick,focusin:this.onFocusin,focusout:this.onFocusout}},[h,f,d,p])}}),qm=me({components:{BFormTags:Um,BTags:Um,BFormTag:Lm,BTag:Lm}}),Km=vs(ee(c(c(c(c(c(c({},fc),Tf),kf),Bf),Wp),{},{maxRows:hs(_o),noAutoShrink:hs(ho,!1),noResize:hs(ho,!1),rows:hs(_o,2),wrap:hs(go,"soft")})),Si),Xm=i.default.extend({name:Si,directives:{"b-visible":Kc},mixins:[Qa,pc,Ja,Cf,$f,_f,Yp,Mp,Up],props:Km,data:function(){return{heightInPx:null}},computed:{computedStyle:function(){var t={resize:!this.computedRows||this.noResize?"none":null};return this.computedRows||(t.height=this.heightInPx,t.overflowY="scroll"),t},computedMinRows:function(){return Us(lr(this.rows,2),2)},computedMaxRows:function(){return Us(this.computedMinRows,lr(this.maxRows,0))},computedRows:function(){return this.computedMinRows===this.computedMaxRows?this.computedMinRows:null},computedAttrs:function(){var t=this.disabled,e=this.required;return{id:this.safeId(),name:this.name||null,form:this.form||null,disabled:t,placeholder:this.placeholder||null,required:e,autocomplete:this.autocomplete||null,readonly:this.readonly||this.plaintext,rows:this.computedRows,wrap:this.wrap||null,"aria-required":this.required?"true":null,"aria-invalid":this.computedAriaInvalid}},computedListeners:function(){return c(c({},this.bvListeners),{},{input:this.onInput,change:this.onChange,blur:this.onBlur})}},watch:{localValue:function(){this.setHeight()}},mounted:function(){this.setHeight()},methods:{visibleCallback:function(t){t&&this.$nextTick(this.setHeight)},setHeight:function(){var t=this;this.$nextTick((function(){xr((function(){t.heightInPx=t.computeHeight()}))}))},computeHeight:function(){if(this.$isServer||!It(this.computedRows))return null;var t=this.$el;if(!Dr(t))return null;var e=Kr(t),i=cr(e.lineHeight,1),n=cr(e.borderTopWidth,0)+cr(e.borderBottomWidth,0),o=cr(e.paddingTop,0)+cr(e.paddingBottom,0),r=n+o,s=i*this.computedMinRows+r,a=Ur(t,"height")||e.height;Wr(t,"height","auto");var l=t.scrollHeight;Wr(t,"height",a);var c=Us((l-o)/i,2),u=Ys(Us(c,this.computedMinRows),this.computedMaxRows),d=Us(Ks(u*i+r),s);return this.noAutoShrink&&cr(a,0)>d?a:"".concat(d,"px")}},render:function(t){return t("textarea",{class:this.computedClass,style:this.computedStyle,directives:[{name:"b-visible",value:this.visibleCallback,modifiers:{640:!0}}],attrs:this.computedAttrs,domProps:{value:this.localValue},on:this.computedListeners,ref:"input"})}}),Zm=me({components:{BFormTextarea:Xm,BTextarea:Xm}}),Jm=ys("value",{type:go,defaultValue:""}),Qm=Jm.mixin,tv=Jm.props,ev=Jm.prop,iv=Jm.event,nv="numeric",ov=function(t){return"00".concat(t||"").slice(-2)},rv=function(t){t=vr(t);var e=null,i=null,n=null;if(gt.test(t)){var o=w(t.split(":").map((function(t){return lr(t,null)})),3);e=o[0],i=o[1],n=o[2]}return{hours:Pt(e)?null:e,minutes:Pt(i)?null:i,seconds:Pt(n)?null:n,ampm:Pt(e)||e<12?0:1}},sv=vs(ee(c(c(c(c({},fc),tv),Jt(Pm,["labelIncrement","labelDecrement"])),{},{ariaLabelledby:hs(go),disabled:hs(ho,!1),hidden:hs(ho,!1),hideHeader:hs(ho,!1),hour12:hs(ho,null),labelAm:hs(go,"AM"),labelAmpm:hs(go,"AM/PM"),labelHours:hs(go,"Hours"),labelMinutes:hs(go,"Minutes"),labelNoTimeSelected:hs(go,"No time selected"),labelPm:hs(go,"PM"),labelSeconds:hs(go,"Seconds"),labelSelected:hs(go,"Selected time"),locale:hs(Co),minutesStep:hs(_o,1),readonly:hs(ho,!1),secondsStep:hs(_o,1),showSeconds:hs(ho,!1)})),Tn),av=i.default.extend({name:Tn,mixins:[pc,Qm,Cs],props:sv,data:function(){var t=rv(this[ev]||"");return{modelHours:t.hours,modelMinutes:t.minutes,modelSeconds:t.seconds,modelAmpm:t.ampm,isLive:!1}},computed:{computedHMS:function(){return function(t){var e=t.hours,i=t.minutes,n=t.seconds,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return It(e)||It(i)||o&&It(n)?"":[e,i,o?n:0].map(ov).join(":")}({hours:this.modelHours,minutes:this.modelMinutes,seconds:this.modelSeconds},this.showSeconds)},resolvedOptions:function(){var t=or(this.locale).filter(ne),e={hour:nv,minute:nv,second:nv};Pt(this.hour12)||(e.hour12=!!this.hour12);var i=new Intl.DateTimeFormat(t,e).resolvedOptions(),n=i.hour12||!1,o=i.hourCycle||(n?"h12":"h23");return{locale:i.locale,hour12:n,hourCycle:o}},computedLocale:function(){return this.resolvedOptions.locale},computedLang:function(){return(this.computedLocale||"").replace(/-u-.*$/,"")},computedRTL:function(){return hc(this.computedLang)},computedHourCycle:function(){return this.resolvedOptions.hourCycle},is12Hour:function(){return!!this.resolvedOptions.hour12},context:function(){return{locale:this.computedLocale,isRTL:this.computedRTL,hourCycle:this.computedHourCycle,hour12:this.is12Hour,hours:this.modelHours,minutes:this.modelMinutes,seconds:this.showSeconds?this.modelSeconds:0,value:this.computedHMS,formatted:this.formattedTimeString}},valueId:function(){return this.safeId()||null},computedAriaLabelledby:function(){return[this.ariaLabelledby,this.valueId].filter(ne).join(" ")||null},timeFormatter:function(){var t={hour12:this.is12Hour,hourCycle:this.computedHourCycle,hour:nv,minute:nv,timeZone:"UTC"};return this.showSeconds&&(t.second=nv),Ql(this.computedLocale,t)},numberFormatter:function(){return new Intl.NumberFormat(this.computedLocale,{style:"decimal",minimumIntegerDigits:2,minimumFractionDigits:0,maximumFractionDigits:0,notation:"standard"}).format},formattedTimeString:function(){var t=this.modelHours,e=this.modelMinutes,i=this.showSeconds&&this.modelSeconds||0;return this.computedHMS?this.timeFormatter(Xl(Date.UTC(0,0,1,t,e,i))):this.labelNoTimeSelected||" "},spinScopedSlots:function(){var t=this.$createElement;return{increment:function(e){var i=e.hasFocus;return t(xa,{props:{scale:i?1.5:1.25},attrs:{"aria-hidden":"true"}})},decrement:function(e){var i=e.hasFocus;return t(xa,{props:{flipV:!0,scale:i?1.5:1.25},attrs:{"aria-hidden":"true"}})}}}},watch:($h={},a($h,ev,(function(t,e){if(t!==e&&!Ua(rv(t),rv(this.computedHMS))){var i=rv(t),n=i.hours,o=i.minutes,r=i.seconds,s=i.ampm;this.modelHours=n,this.modelMinutes=o,this.modelSeconds=r,this.modelAmpm=s}})),a($h,"computedHMS",(function(t,e){t!==e&&this.$emit(iv,t)})),a($h,"context",(function(t,e){Ua(t,e)||this.$emit(Dn,t)})),a($h,"modelAmpm",(function(t,e){var i=this;if(t!==e){var n=It(this.modelHours)?0:this.modelHours;this.$nextTick((function(){0===t&&n>11?i.modelHours=n-12:1===t&&n<12&&(i.modelHours=n+12)}))}})),a($h,"modelHours",(function(t,e){t!==e&&(this.modelAmpm=t>11?1:0)})),$h),created:function(){var t=this;this.$nextTick((function(){t.$emit(Dn,t.context)}))},mounted:function(){this.setLive(!0)},activated:function(){this.setLive(!0)},deactivated:function(){this.setLive(!1)},beforeDestroy:function(){this.setLive(!1)},methods:{focus:function(){this.disabled||ts(this.$refs.spinners[0])},blur:function(){if(!this.disabled){var t=$r();Lr(this.$el,t)&&es(t)}},formatHours:function(t){var e=this.computedHourCycle;return t=0===(t=this.is12Hour&&t>12?t-12:t)&&"h12"===e?12:0===t&&"h24"===e?24:12===t&&"h11"===e?0:t,this.numberFormatter(t)},formatMinutes:function(t){return this.numberFormatter(t)},formatSeconds:function(t){return this.numberFormatter(t)},formatAmpm:function(t){return 0===t?this.labelAm:1===t?this.labelPm:""},setHours:function(t){this.modelHours=t},setMinutes:function(t){this.modelMinutes=t},setSeconds:function(t){this.modelSeconds=t},setAmpm:function(t){this.modelAmpm=t},onSpinLeftRight:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.type,i=t.keyCode;if(!this.disabled&&"keydown"===e&&(i===Na||i===ja)){Bs(t);var n=this.$refs.spinners||[],o=n.map((function(t){return!!t.hasFocus})).indexOf(!0);o=(o+=i===Na?-1:1)>=n.length?0:o<0?n.length-1:o,ts(n[o])}},setLive:function(t){var e=this;t?this.$nextTick((function(){xr((function(){e.isLive=!0}))})):this.isLive=!1}},render:function(t){var e=this;if(this.hidden)return t();var i=this.valueId,n=this.computedAriaLabelledby,o=[],r=function(n,r,s){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},l=e.safeId("_spinbutton_".concat(r,"_"))||null;return o.push(l),t(Om,{class:s,props:c({id:l,placeholder:"--",vertical:!0,required:!0,disabled:e.disabled,readonly:e.readonly,locale:e.computedLocale,labelIncrement:e.labelIncrement,labelDecrement:e.labelDecrement,wrap:!0,ariaControls:i,min:0},a),scopedSlots:e.spinScopedSlots,on:{change:n},key:r,ref:"spinners",refInFor:!0})},s=function(){return t("div",{staticClass:"d-flex flex-column",class:{"text-muted":e.disabled||e.readonly},attrs:{"aria-hidden":"true"}},[t(Sa,{props:{shiftV:4,scale:.5}}),t(Sa,{props:{shiftV:-4,scale:.5}})])},a=[];a.push(r(this.setHours,"hours","b-time-hours",{value:this.modelHours,max:23,step:1,formatterFn:this.formatHours,ariaLabel:this.labelHours})),a.push(s()),a.push(r(this.setMinutes,"minutes","b-time-minutes",{value:this.modelMinutes,max:59,step:this.minutesStep||1,formatterFn:this.formatMinutes,ariaLabel:this.labelMinutes})),this.showSeconds&&(a.push(s()),a.push(r(this.setSeconds,"seconds","b-time-seconds",{value:this.modelSeconds,max:59,step:this.secondsStep||1,formatterFn:this.formatSeconds,ariaLabel:this.labelSeconds}))),this.is12Hour&&a.push(r(this.setAmpm,"ampm","b-time-ampm",{value:this.modelAmpm,max:1,formatterFn:this.formatAmpm,ariaLabel:this.labelAmpm,required:!1})),a=t("div",{staticClass:"d-flex align-items-center justify-content-center mx-auto",attrs:{role:"group",tabindex:this.disabled||this.readonly?null:"-1","aria-labelledby":n},on:{keydown:this.onSpinLeftRight,click:function(t){t.target===t.currentTarget&&e.focus()}}},a);var l=t("output",{staticClass:"form-control form-control-sm text-center",class:{disabled:this.disabled||this.readonly},attrs:{id:i,role:"status",for:o.filter(ne).join(" ")||null,tabindex:this.disabled?null:"-1","aria-live":this.isLive?"polite":"off","aria-atomic":"true"},on:{click:this.focus,focus:this.focus}},[t("bdi",this.formattedTimeString),this.computedHMS?t("span",{staticClass:"sr-only"}," (".concat(this.labelSelected,") ")):""]),u=t("header",{staticClass:"b-time-header",class:{"sr-only":this.hideHeader}},[l]),d=this.normalizeSlot();return d=d?t("footer",{staticClass:"b-time-footer"},d):t(),t("div",{staticClass:"b-time d-inline-flex flex-column text-center",attrs:{role:"group",lang:this.computedLang||null,"aria-labelledby":n||null,"aria-disabled":this.disabled?"true":null,"aria-readonly":this.readonly&&!this.disabled?"true":null}},[u,a,d])}}),lv=ys("value",{type:go,defaultValue:""}),cv=lv.mixin,uv=lv.props,dv=lv.prop,hv=lv.event,fv=Qt(sv,["hidden","id","value"]),pv=Qt(op,["formattedValue","id","lang","rtl","value"]),mv=vs(ee(c(c(c(c(c({},fc),uv),fv),pv),{},{closeButtonVariant:hs(go,"outline-secondary"),labelCloseButton:hs(go,"Close"),labelNowButton:hs(go,"Select now"),labelResetButton:hs(go,"Reset"),noCloseButton:hs(ho,!1),nowButton:hs(ho,!1),nowButtonVariant:hs(go,"outline-primary"),resetButton:hs(ho,!1),resetButtonVariant:hs(go,"outline-danger"),resetValue:hs($o)})),ki),vv=i.default.extend({name:ki,mixins:[pc,cv],props:mv,data:function(){return{localHMS:this[dv]||"",localLocale:null,isRTL:!1,formattedValue:"",isVisible:!1}},computed:{computedLang:function(){return(this.localLocale||"").replace(/-u-.*$/i,"")||null}},watch:(Bh={},a(Bh,dv,(function(t){this.localHMS=t||""})),a(Bh,"localHMS",(function(t){this.isVisible&&this.$emit(hv,t||"")})),Bh),methods:{focus:function(){this.disabled||ts(this.$refs.control)},blur:function(){this.disabled||es(this.$refs.control)},setAndClose:function(t){var e=this;this.localHMS=t,this.$nextTick((function(){e.$refs.control.hide(!0)}))},onInput:function(t){this.localHMS!==t&&(this.localHMS=t)},onContext:function(t){var e=t.isRTL,i=t.locale,n=t.value,o=t.formatted;this.isRTL=e,this.localLocale=i,this.formattedValue=o,this.localHMS=n||"",this.$emit(Dn,t)},onNowButton:function(){var t=new Date,e=[t.getHours(),t.getMinutes(),this.showSeconds?t.getSeconds():0].map((function(t){return"00".concat(t||"").slice(-2)})).join(":");this.setAndClose(e)},onResetButton:function(){this.setAndClose(this.resetValue)},onCloseButton:function(){this.$refs.control.hide(!0)},onShow:function(){this.isVisible=!0},onShown:function(){var t=this;this.$nextTick((function(){ts(t.$refs.time),t.$emit(eo)}))},onHidden:function(){this.isVisible=!1,this.$emit(zn)},defaultButtonFn:function(t){var e=t.isHovered,i=t.hasFocus;return this.$createElement(e||i?$a:ka,{attrs:{"aria-hidden":"true"}})}},render:function(t){var e=this.localHMS,i=this.disabled,n=this.readonly,o=this.$props,r=Pt(this.placeholder)?this.labelNoTimeSelected:this.placeholder,s=[];if(this.nowButton){var l=this.labelNowButton;s.push(t(ml,{props:{size:"sm",disabled:i||n,variant:this.nowButtonVariant},attrs:{"aria-label":l||null},on:{click:this.onNowButton},key:"now-btn"},l))}if(this.resetButton){s.length>0&&s.push(t("span"," "));var u=this.labelResetButton;s.push(t(ml,{props:{size:"sm",disabled:i||n,variant:this.resetButtonVariant},attrs:{"aria-label":u||null},on:{click:this.onResetButton},key:"reset-btn"},u))}if(!this.noCloseButton){s.length>0&&s.push(t("span"," "));var d=this.labelCloseButton;s.push(t(ml,{props:{size:"sm",disabled:i,variant:this.closeButtonVariant},attrs:{"aria-label":d||null},on:{click:this.onCloseButton},key:"close-btn"},d))}s.length>0&&(s=[t("div",{staticClass:"b-form-date-controls d-flex flex-wrap",class:{"justify-content-between":s.length>1,"justify-content-end":s.length<2}},s)]);var h=t(av,{staticClass:"b-form-time-control",props:c(c({},ps(fv,o)),{},{value:e,hidden:!this.isVisible}),on:{input:this.onInput,context:this.onContext},ref:"time"},s);return t(rp,{staticClass:"b-form-timepicker",props:c(c({},ps(pv,o)),{},{id:this.safeId(),value:e,formattedValue:e?this.formattedValue:"",placeholder:r,rtl:this.isRTL,lang:this.computedLang}),on:{show:this.onShow,shown:this.onShown,hidden:this.onHidden},scopedSlots:a({},Eo,this.$scopedSlots["button-content"]||this.defaultButtonFn),ref:"control"},[h])}}),bv=me({components:{BFormTimepicker:vv,BTimepicker:vv}}),gv=me({components:{BImg:Lc,BImgLazy:Qc}}),yv=vs({tag:hs(go,"div")},Vi),wv=i.default.extend({name:Vi,functional:!0,props:yv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{staticClass:"input-group-text"}),o)}}),Tv=vs({append:hs(ho,!1),id:hs(go),isText:hs(ho,!1),tag:hs(go,"div")},Ii),Cv=i.default.extend({name:Ii,functional:!0,props:Tv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.append;return t(i.tag,F(n,{class:{"input-group-append":r,"input-group-prepend":!r},attrs:{id:i.id}}),i.isText?[t(wv,o)]:o)}}),xv=vs(Qt(Tv,["append"]),Pi),Sv=i.default.extend({name:Pi,functional:!0,props:xv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(Cv,F(n,{props:c(c({},i),{},{append:!0})}),o)}}),kv=vs(Qt(Tv,["append"]),Oi),$v=i.default.extend({name:Oi,functional:!0,props:kv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(Cv,F(n,{props:c(c({},i),{},{append:!1})}),o)}}),Bv=vs({append:hs(go),appendHtml:hs(go),id:hs(go),prepend:hs(go),prependHtml:hs(go),size:hs(go),tag:hs(go,"div")},Fi),_v=me({components:{BInputGroup:i.default.extend({name:Fi,functional:!0,props:Bv,render:function(t,e){var i=e.props,n=e.data,o=e.slots,r=e.scopedSlots,s=i.prepend,l=i.prependHtml,c=i.append,u=i.appendHtml,d=i.size,h=r||{},f=o(),p={},m=t(),v=ws(qo,h,f);(v||s||l)&&(m=t($v,[v?Ts(qo,p,h,f):t(wv,{domProps:Fl(l,s)})]));var b=t(),g=ws(Po,h,f);return(g||c||u)&&(b=t(Sv,[g?Ts(Po,p,h,f):t(wv,{domProps:Fl(u,c)})])),t(i.tag,F(n,{staticClass:"input-group",class:a({},"input-group-".concat(d),d),attrs:{id:i.id||null,role:"group"}}),[m,Ts(Ao,p,h,f),b])}}),BInputGroupAddon:Cv,BInputGroupPrepend:$v,BInputGroupAppend:Sv,BInputGroupText:wv}}),Dv=vs({fluid:hs(ko,!1),tag:hs(go,"div")},qe),Fv=i.default.extend({name:qe,functional:!0,props:Dv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.fluid;return t(i.tag,F(n,{class:a({container:!(r||""===r),"container-fluid":!0===r||""===r},"container-".concat(r),r&&!0!==r)}),o)}}),Iv=vs({bgVariant:hs(go),borderVariant:hs(go),containerFluid:hs(ko,!1),fluid:hs(ho,!1),header:hs(go),headerHtml:hs(go),headerLevel:hs(_o,3),headerTag:hs(go,"h1"),lead:hs(go),leadHtml:hs(go),leadTag:hs(go,"p"),tag:hs(go,"div"),textVariant:hs(go)},Ei),Pv=me({components:{BJumbotron:i.default.extend({name:Ei,functional:!0,props:Iv,render:function(t,e){var i,n=e.props,o=e.data,r=e.slots,s=e.scopedSlots,l=n.header,c=n.headerHtml,u=n.lead,d=n.leadHtml,h=n.textVariant,f=n.bgVariant,p=n.borderVariant,m=s||{},v=r(),b={},g=t(),y=ws(No,m,v);if(y||l||c){var w=n.headerLevel;g=t(n.headerTag,{class:a({},"display-".concat(w),w),domProps:y?{}:Fl(c,l)},Ts(No,b,m,v))}var T=t(),C=ws(Go,m,v);(C||u||d)&&(T=t(n.leadTag,{staticClass:"lead",domProps:C?{}:Fl(d,u)},Ts(Go,b,m,v)));var x=[g,T,Ts(Ao,b,m,v)];return n.fluid&&(x=[t(Fv,{props:{fluid:n.containerFluid}},x)]),t(n.tag,F(o,{staticClass:"jumbotron",class:(i={"jumbotron-fluid":n.fluid},a(i,"text-".concat(h),h),a(i,"bg-".concat(f),f),a(i,"border-".concat(p),p),a(i,"border",p),i)}),x)}})}}),Ov=["start","end","center"],Vv=is((function(t,e){return(e=br(vr(e)))?gr(["row-cols",t,e].filter(ne).join("-")):null})),Ev=is((function(t){return gr(t.replace("cols",""))})),Lv=[],Av=me({components:{BContainer:Fv,BRow:{name:on,functional:!0,get props(){var t;return delete this.props,this.props=(t=ls().reduce((function(t,e){return t[ds(e,"cols")]=hs(_o),t}),Wt(null)),Lv=Kt(t),vs(ee(c(c({},t),{},{alignContent:hs(go,null,(function(t){return nr(or(Ov,"between","around","stretch"),t)})),alignH:hs(go,null,(function(t){return nr(or(Ov,"between","around"),t)})),alignV:hs(go,null,(function(t){return nr(or(Ov,"baseline","stretch"),t)})),noGutters:hs(ho,!1),tag:hs(go,"div")})),on)),this.props},render:function(t,e){var i,n=e.props,o=e.data,r=e.children,s=n.alignV,l=n.alignH,c=n.alignContent,u=[];return Lv.forEach((function(t){var e=Vv(Ev(t),n[t]);e&&u.push(e)})),u.push((a(i={"no-gutters":n.noGutters},"align-items-".concat(s),s),a(i,"justify-content-".concat(l),l),a(i,"align-content-".concat(c),c),i)),t(n.tag,F(o,{staticClass:"row",class:u}),r)}},BCol:Op,BFormRow:bf}}),Rv=me({components:{BLink:ol}}),Mv=vs({flush:hs(ho,!1),horizontal:hs(ko,!1),tag:hs(go,"div")},Ai),Hv=i.default.extend({name:Ai,functional:!0,props:Mv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=""===i.horizontal||i.horizontal;r=!i.flush&&r;var s={staticClass:"list-group",class:a({"list-group-flush":i.flush,"list-group-horizontal":!0===r},"list-group-horizontal-".concat(r),Et(r))};return t(i.tag,F(n,s),o)}}),zv=["a","router-link","button","b-link"],Nv=Qt(nl,["event","routerTag"]);delete Nv.href.default,delete Nv.to.default;var jv=vs(ee(c(c({},Nv),{},{action:hs(ho,!1),button:hs(ho,!1),tag:hs(go,"div"),variant:hs(go)})),Ri),Gv=me({components:{BListGroup:Hv,BListGroupItem:i.default.extend({name:Ri,functional:!0,props:jv,render:function(t,e){var i,n=e.props,o=e.data,r=e.children,s=n.button,l=n.variant,c=n.active,u=n.disabled,d=la(n),h=s?"button":d?ol:n.tag,f=!!(n.action||d||s||nr(zv,n.tag)),p={},m={};return Br(h,"button")?(o.attrs&&o.attrs.type||(p.type="button"),n.disabled&&(p.disabled=!0)):m=ps(Nv,n),t(h,F(o,{attrs:p,props:m,staticClass:"list-group-item",class:(i={},a(i,"list-group-item-".concat(l),l),a(i,"list-group-item-action",f),a(i,"active",c),a(i,"disabled",u),i)}),r)}})}}),Wv=vs({right:hs(ho,!1),tag:hs(go,"div"),verticalAlign:hs(go,"top")},Hi),Yv=i.default.extend({name:Hi,functional:!0,props:Wv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.verticalAlign,s="top"===r?"start":"bottom"===r?"end":r;return t(i.tag,F(n,{staticClass:"media-aside",class:a({"media-aside-right":i.right},"align-self-".concat(s),s)}),o)}}),Uv=vs({tag:hs(go,"div")},zi),qv=i.default.extend({name:zi,functional:!0,props:Uv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{staticClass:"media-body"}),o)}}),Kv=vs({noBody:hs(ho,!1),rightAlign:hs(ho,!1),tag:hs(go,"div"),verticalAlign:hs(go,"top")},Mi),Xv=me({components:{BMedia:i.default.extend({name:Mi,functional:!0,props:Kv,render:function(t,e){var i=e.props,n=e.data,o=e.slots,r=e.scopedSlots,s=e.children,a=i.noBody,l=i.rightAlign,c=i.verticalAlign,u=a?s:[];if(!a){var d={},h=o(),f=r||{};u.push(t(qv,Ts(Ao,d,f,h)));var p=Ts("aside",d,f,h);p&&u[l?"push":"unshift"](t(Yv,{props:{right:l,verticalAlign:c}},p))}return t(i.tag,F(n,{staticClass:"media"}),u)}}),BMediaAside:Yv,BMediaBody:qv}}),Zv="$_bv_documentHandlers_",Jv=i.default.extend({created:function(){var t=this;M&&(this[Zv]={},this.$once(oo,(function(){var e=t[Zv]||{};delete t[Zv],Kt(e).forEach((function(t){(e[t]||[]).forEach((function(e){return ks(document,t,e,lo)}))}))})))},methods:{listenDocument:function(t,e,i){t?this.listenOnDocument(e,i):this.listenOffDocument(e,i)},listenOnDocument:function(t,e){this[Zv]&&Et(t)&&Ot(e)&&(this[Zv][t]=this[Zv][t]||[],nr(this[Zv][t],e)||(this[Zv][t].push(e),Ss(document,t,e,lo)))},listenOffDocument:function(t,e){this[Zv]&&Et(t)&&Ot(e)&&(ks(document,t,e,lo),this[Zv][t]=(this[Zv][t]||[]).filter((function(t){return t!==e})))}}}),Qv="$_bv_windowHandlers_",tb=i.default.extend({beforeCreate:function(){this[Qv]={}},beforeDestroy:function(){if(M){var t=this[Qv];delete this[Qv],Kt(t).forEach((function(e){(t[e]||[]).forEach((function(t){return ks(window,e,t,lo)}))}))}},methods:{listenWindow:function(t,e,i){t?this.listenOnWindow(e,i):this.listenOffWindow(e,i)},listenOnWindow:function(t,e){M&&this[Qv]&&Et(t)&&Ot(e)&&(this[Qv][t]=this[Qv][t]||[],nr(this[Qv][t],e)||(this[Qv][t].push(e),Ss(window,t,e,lo)))},listenOffWindow:function(t,e){M&&this[Qv]&&Et(t)&&Ot(e)&&(ks(window,t,e,lo),this[Qv][t]=(this[Qv][t]||[]).filter((function(t){return t!==e})))}}}),eb=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t&&t.$options._scopeId||e},ib=i.default.extend({computed:{scopedStyleAttrs:function(){var t=eb(this.$parent);return t?a({},t,""):{}}}}),nb=i.default.extend({abstract:!0,name:"BVTransporterTarget",props:{nodes:hs(yo)},data:function(t){return{updatedNodes:t.nodes}},destroyed:function(){var t;(t=this.$el)&&t.parentNode&&t.parentNode.removeChild(t)},render:function(t){var e=this.updatedNodes,i=Ot(e)?e({}):e;return(i=or(i).filter(ne))&&i.length>0&&!i[0].text?i[0]:t()}}),ob={container:hs([HTMLElement,go],"body"),disabled:hs(ho,!1),tag:hs(go,"div")},rb=i.default.extend({name:"BVTransporter",mixins:[Cs],props:ob,watch:{disabled:{immediate:!0,handler:function(t){t?this.unmountTarget():this.$nextTick(this.mountTarget)}}},created:function(){this.$_defaultFn=null,this.$_target=null},beforeMount:function(){this.mountTarget()},updated:function(){this.updateTarget()},beforeDestroy:function(){this.unmountTarget(),this.$_defaultFn=null},methods:{getContainer:function(){if(M){var t=this.container;return Et(t)?Or(t):t}return null},mountTarget:function(){if(!this.$_target){var t=this.getContainer();if(t){var e=document.createElement("div");t.appendChild(e),this.$_target=new nb({el:e,parent:this,propsData:{nodes:or(this.normalizeSlot())}})}}},updateTarget:function(){if(M&&this.$_target){var t=this.$scopedSlots.default;this.disabled||(t&&this.$_defaultFn!==t?this.$_target.updatedNodes=t:t||(this.$_target.updatedNodes=this.$slots.default)),this.$_defaultFn=t}},unmountTarget:function(){this.$_target&&this.$_target.$destroy(),this.$_target=null}},render:function(t){if(this.disabled){var e=or(this.normalizeSlot()).filter(ne);if(e.length>0&&!e[0].text)return e[0]}return t()}}),BvModalEvent=function(t){u(BvModalEvent,t);var e=g(BvModalEvent);function BvModalEvent(t){var i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o(this,BvModalEvent),i=e.call(this,t,n),Yt(v(i),{trigger:{enumerable:!0,configurable:!1,writable:!1}}),i}return s(BvModalEvent,null,[{key:"Defaults",get:function(){return c(c({},y(d(BvModalEvent),"Defaults",this)),{},{trigger:null})}}]),BvModalEvent}(BvEvent),sb=new(i.default.extend({data:function(){return{modals:[],baseZIndex:null,scrollbarWidth:null,isBodyOverflowing:!1}},computed:{modalCount:function(){return this.modals.length},modalsAreOpen:function(){return this.modalCount>0}},watch:{modalCount:function(t,e){M&&(this.getScrollbarWidth(),t>0&&0===e?(this.checkScrollbar(),this.setScrollbar(),Rr(document.body,"modal-open")):0===t&&e>0&&(this.resetScrollbar(),Mr(document.body,"modal-open")),zr(document.body,"data-modal-open-count",String(t)))},modals:function(t){var e=this;this.checkScrollbar(),xr((function(){e.updateModals(t||[])}))}},methods:{registerModal:function(t){var e=this;t&&-1===this.modals.indexOf(t)&&(this.modals.push(t),t.$once(oo,(function(){e.unregisterModal(t)})))},unregisterModal:function(t){var e=this.modals.indexOf(t);e>-1&&(this.modals.splice(e,1),t._isBeingDestroyed||t._isDestroyed||this.resetModal(t))},getBaseZIndex:function(){if(It(this.baseZIndex)&&M){var t=document.createElement("div");Rr(t,"modal-backdrop"),Rr(t,"d-none"),Wr(t,"display","none"),document.body.appendChild(t),this.baseZIndex=lr(Kr(t).zIndex,1040),document.body.removeChild(t)}return this.baseZIndex||1040},getScrollbarWidth:function(){if(It(this.scrollbarWidth)&&M){var t=document.createElement("div");Rr(t,"modal-scrollbar-measure"),document.body.appendChild(t),this.scrollbarWidth=qr(t).width-t.clientWidth,document.body.removeChild(t)}return this.scrollbarWidth||0},updateModals:function(t){var e=this,i=this.getBaseZIndex(),n=this.getScrollbarWidth();t.forEach((function(t,o){t.zIndex=i+o,t.scrollbarWidth=n,t.isTop=o===e.modals.length-1,t.isBodyOverflowing=e.isBodyOverflowing}))},resetModal:function(t){t&&(t.zIndex=this.getBaseZIndex(),t.isTop=!0,t.isBodyOverflowing=!1)},checkScrollbar:function(){var t=qr(document.body),e=t.left,i=t.right;this.isBodyOverflowing=e+i0&&void 0!==arguments[0]&&arguments[0];this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,t&&(this.$_observer=au(this.$refs.content,this.checkModalOverflow.bind(this),bb))},updateModel:function(t){t!==this[ub]&&this.$emit(db,t)},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new BvModalEvent(t,c(c({cancelable:!1,target:this.$refs.modal||this.$el||null,relatedTarget:null,trigger:null},e),{},{vueTarget:this,componentId:this.modalId}))},show:function(){if(!this.isVisible&&!this.isOpening)if(this.isClosing)this.$once(zn,this.show);else{this.isOpening=!0,this.$_returnFocus=this.$_returnFocus||this.getActiveElement();var t=this.buildEvent(to,{cancelable:!0});if(this.emitEvent(t),t.defaultPrevented||this.isVisible)return this.isOpening=!1,void this.updateModel(!1);this.doShow()}},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(this.isVisible&&!this.isClosing){this.isClosing=!0;var e=this.buildEvent(Nn,{cancelable:t!==hb,trigger:t||null});if(t===mb?this.$emit("ok",e):t===fb?this.$emit(kn,e):t===pb&&this.$emit(_n,e),this.emitEvent(e),e.defaultPrevented||!this.isVisible)return this.isClosing=!1,void this.updateModel(!0);this.setObserver(!1),this.isVisible=!1,this.updateModel(!1)}},toggle:function(t){t&&(this.$_returnFocus=t),this.isVisible?this.hide("toggle"):this.show()},getActiveElement:function(){var t=$r(M?[document.body]:[]);return t&&t.focus?t:null},doShow:function(){var t=this;sb.modalsAreOpen&&this.noStacking?this.listenOnRootOnce(Ds(Ni,zn),this.doShow):(sb.registerModal(this),this.isHidden=!1,this.$nextTick((function(){t.isVisible=!0,t.isOpening=!1,t.updateModel(!0),t.$nextTick((function(){t.setObserver(!0)}))})))},onBeforeEnter:function(){this.isTransitioning=!0,this.setResizeEvent(!0)},onEnter:function(){var t=this;this.isBlock=!0,xr((function(){xr((function(){t.isShow=!0}))}))},onAfterEnter:function(){var t=this;this.checkModalOverflow(),this.isTransitioning=!1,xr((function(){t.emitEvent(t.buildEvent(eo)),t.setEnforceFocus(!0),t.$nextTick((function(){t.focusFirst()}))}))},onBeforeLeave:function(){this.isTransitioning=!0,this.setResizeEvent(!1),this.setEnforceFocus(!1)},onLeave:function(){this.isShow=!1},onAfterLeave:function(){var t=this;this.isBlock=!1,this.isTransitioning=!1,this.isModalOverflowing=!1,this.isHidden=!0,this.$nextTick((function(){t.isClosing=!1,sb.unregisterModal(t),t.returnFocusTo(),t.emitEvent(t.buildEvent(zn))}))},emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(Ni,e),t,t.componentId),this.$emit(e,t)},onDialogMousedown:function(){var t=this,e=this.$refs.modal;Ss(e,"mouseup",(function i(n){ks(e,"mouseup",i,lo),n.target===e&&(t.ignoreBackdropClick=!0)}),lo)},onClickOut:function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:this.isVisible&&!this.noCloseOnBackdrop&&Lr(document.body,t.target)&&(Lr(this.$refs.content,t.target)||this.hide("backdrop"))},onOk:function(){this.hide(mb)},onCancel:function(){this.hide(fb)},onClose:function(){this.hide(pb)},onEsc:function(t){27===t.keyCode&&this.isVisible&&!this.noCloseOnEsc&&this.hide("esc")},focusHandler:function(t){var e=this.$refs.content,i=t.target;if(!(this.noEnforceFocus||!this.isTop||!this.isVisible||!e||document===i||Lr(e,i)||this.computeIgnoreEnforceFocusSelector&&Er(this.computeIgnoreEnforceFocusSelector,i,!0))){var n=Qr(this.$refs.content),o=this.$refs["bottom-trap"],r=this.$refs["top-trap"];if(o&&i===o){if(ts(n[0]))return}else if(r&&i===r&&ts(n[n.length-1]))return;ts(e,{preventScroll:!0})}},setEnforceFocus:function(t){this.listenDocument(t,"focusin",this.focusHandler)},setResizeEvent:function(t){this.listenWindow(t,"resize",this.checkModalOverflow),this.listenWindow(t,"orientationchange",this.checkModalOverflow)},showHandler:function(t,e){t===this.modalId&&(this.$_returnFocus=e||this.getActiveElement(),this.show())},hideHandler:function(t){t===this.modalId&&this.hide("event")},toggleHandler:function(t,e){t===this.modalId&&this.toggle(e)},modalListener:function(t){this.noStacking&&t.vueTarget!==this&&this.hide()},focusFirst:function(){var t=this;M&&xr((function(){var e=t.$refs.modal,i=t.$refs.content,n=t.getActiveElement();if(e&&i&&(!n||!Lr(i,n))){var o=t.$refs["ok-button"],r=t.$refs["cancel-button"],s=t.$refs["close-button"],a=t.autoFocusButton,l=a===mb&&o?o.$el||o:a===fb&&r?r.$el||r:a===pb&&s?s.$el||s:i;ts(l),l===i&&t.$nextTick((function(){e.scrollTop=0}))}}))},returnFocusTo:function(){var t=this.returnFocus||this.$_returnFocus||null;this.$_returnFocus=null,this.$nextTick((function(){(t=Et(t)?Or(t):t)&&(t=t.$el||t,ts(t))}))},checkModalOverflow:function(){if(this.isVisible){var t=this.$refs.modal;this.isModalOverflowing=t.scrollHeight>document.documentElement.clientHeight}},makeModal:function(t){var e=t();if(!this.hideHeader){var i=this.normalizeSlot("modal-header",this.slotScope);if(!i){var n=t();this.hideHeaderClose||(n=t(Ps,{props:{content:this.headerCloseContent,disabled:this.isTransitioning,ariaLabel:this.headerCloseLabel,textVariant:this.headerCloseVariant||this.headerTextVariant},on:{click:this.onClose},ref:"close-button"},[this.normalizeSlot("modal-header-close")])),i=[t(this.titleTag,{staticClass:"modal-title",class:this.titleClasses,attrs:{id:this.modalTitleId},domProps:this.hasNormalizedSlot(Uo)?{}:Fl(this.titleHtml,this.title)},this.normalizeSlot(Uo,this.slotScope)),n]}e=t("header",{staticClass:"modal-header",class:this.headerClasses,attrs:{id:this.modalHeaderId},ref:"header"},[i])}var o=t("div",{staticClass:"modal-body",class:this.bodyClasses,attrs:{id:this.modalBodyId},ref:"body"},this.normalizeSlot(Ao,this.slotScope)),r=t();if(!this.hideFooter){var s=this.normalizeSlot("modal-footer",this.slotScope);if(!s){var a=t();this.okOnly||(a=t(ml,{props:{variant:this.cancelVariant,size:this.buttonSize,disabled:this.cancelDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(Wo)?{}:Fl(this.cancelTitleHtml,this.cancelTitle),on:{click:this.onCancel},ref:"cancel-button"},this.normalizeSlot(Wo))),s=[a,t(ml,{props:{variant:this.okVariant,size:this.buttonSize,disabled:this.okDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(Yo)?{}:Fl(this.okTitleHtml,this.okTitle),on:{click:this.onOk},ref:"ok-button"},this.normalizeSlot(Yo))]}r=t("footer",{staticClass:"modal-footer",class:this.footerClasses,attrs:{id:this.modalFooterId},ref:"footer"},[s])}var l=t("div",{staticClass:"modal-content",class:this.contentClass,attrs:{id:this.modalContentId,tabindex:"-1"},ref:"content"},[e,o,r]),c=t(),u=t();this.isVisible&&!this.noEnforceFocus&&(c=t("span",{attrs:{tabindex:"0"},ref:"top-trap"}),u=t("span",{attrs:{tabindex:"0"},ref:"bottom-trap"}));var d=t("div",{staticClass:"modal-dialog",class:this.dialogClasses,on:{mousedown:this.onDialogMousedown},ref:"dialog"},[c,l,u]),h=t("div",{staticClass:"modal",class:this.modalClasses,style:this.modalStyles,attrs:this.computedModalAttrs,on:{keydown:this.onEsc,click:this.onClickOut},directives:[{name:"show",value:this.isVisible}],ref:"modal"},[d]);h=t("transition",{props:{enterClass:"",enterToClass:"",enterActiveClass:"",leaveClass:"",leaveActiveClass:"",leaveToClass:""},on:{beforeEnter:this.onBeforeEnter,enter:this.onEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,leave:this.onLeave,afterLeave:this.onAfterLeave}},[h]);var f=t();return!this.hideBackdrop&&this.isVisible&&(f=t("div",{staticClass:"modal-backdrop",attrs:{id:this.modalBackdropId}},this.normalizeSlot("modal-backdrop"))),f=t(Ls,{props:{noFade:this.noFade}},[f]),t("div",{style:this.modalOuterStyle,attrs:this.computedAttrs,key:"modal-outer-".concat(this._uid)},[h,f])}},render:function(t){return this.static?this.lazy&&this.isHidden?t():this.makeModal(t):this.isHidden?t():t(rb,[this.makeModal(t)])}}),wb=Fs(Ni,to),Tb="__bv_modal_directive__",Cb=function(t){var e=t.modifiers,i=void 0===e?{}:e,n=t.arg,o=t.value;return Et(o)?o:Et(n)?n:Kt(i).reverse()[0]},xb=function(t){return t&&Vr(t,".dropdown-menu > li, li.nav-item")&&Or("a, button",t)||t},Sb=function(t){t&&"BUTTON"!==t.tagName&&(Gr(t,"role")||zr(t,"role","button"),"A"===t.tagName||Gr(t,"tabindex")||zr(t,"tabindex","0"))},kb=function(t){var e=t[Tb]||{},i=e.trigger,n=e.handler;i&&n&&(ks(i,"click",n,ao),ks(i,"keydown",n,ao),ks(t,"click",n,ao),ks(t,"keydown",n,ao)),delete t[Tb]},$b=function(t,e,i){var n=t[Tb]||{},o=Cb(e),r=xb(t);o===n.target&&r===n.trigger||(kb(t),function(t,e,i){var n=Cb(e),o=xb(t);if(n&&o){var r=function(t){var e=t.currentTarget;if(!Fr(e)){var o=t.type,r=t.keyCode;"click"!==o&&("keydown"!==o||r!==Ha&&r!==Ga)||i.context.$root.$emit(wb,n,e)}};t[Tb]={handler:r,target:n,trigger:o},Sb(o),Ss(o,"click",r,ao),"BUTTON"!==o.tagName&&"button"===jr(o,"role")&&Ss(o,"keydown",r,ao)}}(t,e,i)),Sb(r)},Bb={inserted:$b,updated:function(){},componentUpdated:$b,unbind:kb},_b="$bvModal",Db=["id"].concat(T(Kt(Qt(gb,["busy","lazy","noStacking","static","visible"])))),Fb=function(){},Ib={msgBoxContent:"default",title:"modal-title",okTitle:"modal-ok",cancelTitle:"modal-cancel"},Pb=function(t){return Db.reduce((function(e,i){return Ft(t[i])||(e[i]=t[i]),e}),{})},Ob=me({components:{BModal:yb},directives:{VBModal:Bb},plugins:{BVModalPlugin:me({plugins:{plugin:function(t){var e=t.extend({name:"BMsgBox",extends:yb,destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},mounted:function(){var t=this,e=function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))};this.$parent.$once(ro,e),this.$once(zn,e),this.$router&&this.$route&&this.$once(oo,this.$watch("$router",e)),this.show()}}),i=function(t,i){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Fb;if(!ce(_b)&&!ue(_b)){var o=new e({parent:t,propsData:c(c(c({},Pb(rs(Ni))),{},{hideHeaderClose:!0,hideHeader:!(i.title||i.titleHtml)},Qt(i,Kt(Ib))),{},{lazy:!1,busy:!1,visible:!1,noStacking:!1,noEnforceFocus:!1})});return Kt(Ib).forEach((function(t){Ft(i[t])||(o.$slots[Ib[t]]=or(i[t]))})),new Promise((function(t,e){var i=!1;o.$once(ro,(function(){i||e(new Error("BootstrapVue MsgBox destroyed before resolve"))})),o.$on(Nn,(function(e){if(!e.defaultPrevented){var o=n(e);e.defaultPrevented||(i=!0,t(o))}}));var r=document.createElement("div");document.body.appendChild(r),o.$mount(r)}))}},n=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(e&&!ue(_b)&&!ce(_b)&&Ot(o))return i(t,c(c({},Pb(n)),{},{msgBoxContent:e}),o)},r=function(){function t(e){o(this,t),Gt(this,{_vm:e,_root:e.$root}),Yt(this,{_vm:{enumerable:!0,configurable:!1,writable:!1},_root:{enumerable:!0,configurable:!1,writable:!1}})}return s(t,[{key:"show",value:function(t){if(t&&this._root){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o1?i-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{},i=c(c({},e),{},{okOnly:!0,okDisabled:!1,hideFooter:!1,msgBoxContent:t});return n(this._vm,t,i,(function(){return!0}))}},{key:"msgBoxConfirm",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=c(c({},e),{},{okOnly:!1,okDisabled:!1,cancelDisabled:!1,hideFooter:!1});return n(this._vm,t,i,(function(t){var e=t.trigger;return"ok"===e||"cancel"!==e&&null}))}}]),t}();t.mixin({beforeCreate:function(){this._bv__modal=new r(this)}}),Xt(t.prototype,_b)||Ut(t.prototype,_b,{get:function(){return this&&this._bv__modal||le('"'.concat(_b,'" must be accessed from a Vue instance "this" context.'),Ni),this._bv__modal}})}}})}}),Vb=vs({align:hs(go),cardHeader:hs(ho,!1),fill:hs(ho,!1),justified:hs(ho,!1),pills:hs(ho,!1),small:hs(ho,!1),tabs:hs(ho,!1),tag:hs(go,"ul"),vertical:hs(ho,!1)},ji),Eb=i.default.extend({name:ji,functional:!0,props:Vb,render:function(t,e){var i,n,o=e.props,r=e.data,s=e.children,l=o.tabs,c=o.pills,u=o.vertical,d=o.align,h=o.cardHeader;return t(o.tag,F(r,{staticClass:"nav",class:(i={"nav-tabs":l,"nav-pills":c&&!l,"card-header-tabs":!u&&h&&l,"card-header-pills":!u&&h&&c&&!l,"flex-column":u,"nav-fill":!u&&o.fill,"nav-justified":!u&&o.justified},a(i,(n=d,"justify-content-".concat(n="left"===n?"start":"right"===n?"end":n)),!u&&d),a(i,"small",o.small),i)}),s)}}),Lb=Qt(nl,["event","routerTag"]),Ab=vs(ee(c(c({},Lb),{},{linkAttrs:hs(vo,{}),linkClasses:hs(To)})),Ki),Rb=i.default.extend({name:Ki,functional:!0,props:Ab,render:function(t,e){var i=e.props,n=e.data,o=e.listeners,r=e.children;return t("li",F(Qt(n,["on"]),{staticClass:"nav-item"}),[t(ol,{staticClass:"nav-link",class:i.linkClasses,attrs:i.linkAttrs,props:ps(Lb,i),on:o},r)])}}),Mb=i.default.extend({name:"BNavText",functional:!0,props:{},render:function(t,e){var i=e.data,n=e.children;return t("li",F(i,{staticClass:"navbar-text"}),n)}}),Hb=Qt(Yh,["inline"]),zb=vs(ee(c(c({},Hb),{},{formClass:hs(To)})),qi),Nb=i.default.extend({name:qi,functional:!0,props:zb,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=e.listeners,s=t(Uh,{class:i.formClass,props:c(c({},ps(Hb,i)),{},{inline:!0}),attrs:n.attrs,on:r},o);return t("li",F(Qt(n,["attrs","on"]),{staticClass:"form-inline"}),[s])}}),jb=vs(ee(c(c({},fc),Jt(Eh,[].concat(T(Kt(Oh)),["html","lazy","menuClass","noCaret","role","text","toggleClass"])))),Xi),Gb=i.default.extend({name:Xi,mixins:[pc,Vh,Cs],props:jb,computed:{toggleId:function(){return this.safeId("_BV_toggle_")},dropdownClasses:function(){return[this.directionClass,this.boundaryClass,{show:this.visible}]},menuClasses:function(){return[this.menuClass,{"dropdown-menu-right":this.right,show:this.visible}]},toggleClasses:function(){return[this.toggleClass,{"dropdown-toggle-no-caret":this.noCaret}]}},render:function(t){var e=this.toggleId,i=this.visible,n=this.hide,o=t(ol,{staticClass:"nav-link dropdown-toggle",class:this.toggleClasses,props:{href:"#".concat(this.id||""),disabled:this.disabled},attrs:{id:e,role:"button","aria-haspopup":"true","aria-expanded":i?"true":"false"},on:{mousedown:this.onMousedown,click:this.toggle,keydown:this.toggle},ref:"toggle"},[this.normalizeSlot([Eo,"text"])||t("span",{domProps:Fl(this.html,this.text)})]),r=t("ul",{staticClass:"dropdown-menu",class:this.menuClasses,attrs:{tabindex:"-1","aria-labelledby":e},on:{keydown:this.onKeydown},ref:"menu"},!this.lazy||i?this.normalizeSlot(Ao,{hide:n}):[t()]);return t("li",{staticClass:"nav-item b-nav-dropdown dropdown",class:this.dropdownClasses,attrs:{id:this.safeId()}},[o,r])}}),Wb=me({components:{BNav:Eb,BNavItem:Rb,BNavText:Mb,BNavForm:Nb,BNavItemDropdown:Gb,BNavItemDd:Gb,BNavDropdown:Gb,BNavDd:Gb},plugins:{DropdownPlugin:tf}}),Yb=vs({fixed:hs(go),print:hs(ho,!1),sticky:hs(ho,!1),tag:hs(go,"nav"),toggleable:hs(ko,!1),type:hs(go,"light"),variant:hs(go)},Gi),Ub=i.default.extend({name:Gi,mixins:[Cs],provide:function(){return{bvNavbar:this}},props:Yb,computed:{breakpointClass:function(){var t=this.toggleable,e=ss()[0],i=null;return t&&Et(t)&&t!==e?i="navbar-expand-".concat(t):!1===t&&(i="navbar-expand"),i}},render:function(t){var e,i=this.tag,n=this.type,o=this.variant,r=this.fixed;return t(i,{staticClass:"navbar",class:[(e={"d-print":this.print,"sticky-top":this.sticky},a(e,"navbar-".concat(n),n),a(e,"bg-".concat(o),o),a(e,"fixed-".concat(r),r),e),this.breakpointClass],attrs:{role:Br(i,"nav")?null:"navigation"}},[this.normalizeSlot()])}}),qb=vs(Jt(Vb,["tag","fill","justified","align","small"]),Yi),Kb=i.default.extend({name:Yi,functional:!0,props:qb,render:function(t,e){var i,n,o=e.props,r=e.data,s=e.children,l=o.align;return t(o.tag,F(r,{staticClass:"navbar-nav",class:(i={"nav-fill":o.fill,"nav-justified":o.justified},a(i,(n=l,"justify-content-".concat(n="left"===n?"start":"right"===n?"end":n)),l),a(i,"small",o.small),i)}),s)}}),Xb=Qt(nl,["event","routerTag"]);Xb.href.default=void 0,Xb.to.default=void 0;var Zb,Jb,Qb,tg,eg,ig,ng,og,rg,sg=vs(ee(c(c({},Xb),{},{tag:hs(go,"div")})),Wi),ag=i.default.extend({name:Wi,functional:!0,props:sg,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.to||i.href;return t(r?ol:i.tag,F(n,{staticClass:"navbar-brand",props:r?ps(Xb,i):{}}),o)}}),lg="navbar-toggler",cg=Ds(Ue,"state"),ug=Ds(Ue,"sync-state"),dg=vs({disabled:hs(ho,!1),label:hs(go,"Toggle navigation"),target:hs(Co,void 0,!0)},Ui),hg=i.default.extend({name:Ui,directives:{VBToggle:ad},mixins:[Ja,Cs],props:dg,data:function(){return{toggleState:!1}},created:function(){this.listenOnRoot(cg,this.handleStateEvt),this.listenOnRoot(ug,this.handleStateEvt)},methods:{onClick:function(t){this.disabled||this.$emit(Bn,t)},handleStateEvt:function(t,e){t===this.target&&(this.toggleState=e)}},render:function(t){var e=this.disabled;return t("button",{staticClass:lg,class:{disabled:e},directives:[{name:"VBToggle",value:this.target}],attrs:{type:"button",disabled:e,"aria-label":this.label},on:{click:this.onClick}},[this.normalizeSlot(Ao,{expanded:this.toggleState})||t("span",{staticClass:"".concat(lg,"-icon")})])}}),fg=me({components:{BNavbar:Ub,BNavbarNav:Kb,BNavbarBrand:ag,BNavbarToggle:hg,BNavToggle:hg},plugins:{NavPlugin:Wb,CollapsePlugin:cd,DropdownPlugin:tf}}),pg=vs({label:hs(go),role:hs(go,"status"),small:hs(ho,!1),tag:hs(go,"span"),type:hs(go,"border"),variant:hs(go)},dn),mg=i.default.extend({name:dn,functional:!0,props:pg,render:function(t,e){var i,n=e.props,o=e.data,r=e.slots,s=e.scopedSlots,l=r(),c=Ts(jo,{},s||{},l)||n.label;return c&&(c=t("span",{staticClass:"sr-only"},c)),t(n.tag,F(o,{attrs:{role:c?n.role||"status":null,"aria-hidden":c?null:"true"},class:(i={},a(i,"spinner-".concat(n.type),n.type),a(i,"spinner-".concat(n.type,"-sm"),n.small),a(i,"text-".concat(n.variant),n.variant),i)}),[c||t()])}}),vg={top:0,left:0,bottom:0,right:0},bg=vs({bgColor:hs(go),blur:hs(go,"2px"),fixed:hs(ho,!1),noCenter:hs(ho,!1),noFade:hs(ho,!1),noWrap:hs(ho,!1),opacity:hs(_o,.85,(function(t){var e=cr(t,0);return e>=0&&e<=1})),overlayTag:hs(go,"div"),rounded:hs(ko,!1),show:hs(ho,!1),spinnerSmall:hs(ho,!1),spinnerType:hs(go,"border"),spinnerVariant:hs(go),variant:hs(go,"light"),wrapTag:hs(go,"div"),zIndex:hs(_o,10)},Zi),gg=i.default.extend({name:Zi,mixins:[Cs],props:bg,computed:{computedRounded:function(){var t=this.rounded;return!0===t||""===t?"rounded":t?"rounded-".concat(t):""},computedVariant:function(){var t=this.variant;return t&&!this.bgColor?"bg-".concat(t):""},slotScope:function(){return{spinnerType:this.spinnerType||null,spinnerVariant:this.spinnerVariant||null,spinnerSmall:this.spinnerSmall}}},methods:{defaultOverlayFn:function(t){var e=t.spinnerType,i=t.spinnerVariant,n=t.spinnerSmall;return this.$createElement(mg,{props:{type:e,variant:i,small:n}})}},render:function(t){var e=this,i=this.show,n=this.fixed,o=this.noFade,r=this.noWrap,s=this.slotScope,a=t();if(i){var l=t("div",{staticClass:"position-absolute",class:[this.computedVariant,this.computedRounded],style:c(c({},vg),{},{opacity:this.opacity,backgroundColor:this.bgColor||null,backdropFilter:this.blur?"blur(".concat(this.blur,")"):null})}),u=t("div",{staticClass:"position-absolute",style:this.noCenter?c({},vg):{top:"50%",left:"50%",transform:"translateX(-50%) translateY(-50%)"}},[this.normalizeSlot("overlay",s)||this.defaultOverlayFn(s)]);a=t(this.overlayTag,{staticClass:"b-overlay",class:{"position-absolute":!r||r&&!n,"position-fixed":r&&n},style:c(c({},vg),{},{zIndex:this.zIndex||10}),on:{click:function(t){return e.$emit(Bn,t)}},key:"overlay"},[l,u])}return a=t(Ls,{props:{noFade:o,appear:!0},on:{"after-enter":function(){return e.$emit(eo)},"after-leave":function(){return e.$emit(zn)}}},[a]),r?a:t(this.wrapTag,{staticClass:"b-overlay-wrap position-relative",attrs:{"aria-busy":i?"true":null}},r?[a]:[this.normalizeSlot(),a])}}),yg=me({components:{BOverlay:gg}}),wg=ys("value",{type:So,defaultValue:null,validator:function(t){return!(!It(t)&&lr(t,0)<1)||(le('"v-model" value must be a number greater than "0"',Ji),!1)}}),Tg=wg.mixin,Cg=wg.props,xg=wg.prop,Sg=wg.event,kg=function(t){var e=lr(t)||1;return e<1?5:e},$g=function(t,e){var i=lr(t)||1;return i>e?e:i<1?1:i},Bg=function(t){if(t.keyCode===Ga)return Bs(t,{immediatePropagation:!0}),t.currentTarget.click(),!1},_g=vs(ee(c(c({},Cg),{},{align:hs(go,"left"),ariaLabel:hs(go,"Pagination"),disabled:hs(ho,!1),ellipsisClass:hs(To),ellipsisText:hs(go,"âĻ"),firstClass:hs(To),firstNumber:hs(ho,!1),firstText:hs(go,"ÂĢ"),hideEllipsis:hs(ho,!1),hideGotoEndButtons:hs(ho,!1),labelFirstPage:hs(go,"Go to first page"),labelLastPage:hs(go,"Go to last page"),labelNextPage:hs(go,"Go to next page"),labelPage:hs(Bo,"Go to page"),labelPrevPage:hs(go,"Go to previous page"),lastClass:hs(To),lastNumber:hs(ho,!1),lastText:hs(go,"Âģ"),limit:hs(_o,5,(function(t){return!(lr(t,0)<1)||(le('Prop "limit" must be a number greater than "0"',Ji),!1)})),nextClass:hs(To),nextText:hs(go,"âē"),pageClass:hs(To),pills:hs(ho,!1),prevClass:hs(To),prevText:hs(go,"âš"),size:hs(go)})),"pagination"),Dg=i.default.extend({mixins:[Tg,Cs],props:_g,data:function(){var t=lr(this[xg],0);return{currentPage:t=t>0?t:-1,localNumberOfPages:1,localLimit:5}},computed:{btnSize:function(){var t=this.size;return t?"pagination-".concat(t):""},alignment:function(){var t=this.align;return"center"===t?"justify-content-center":"end"===t||"right"===t?"justify-content-end":"fill"===t?"text-center":""},styleClass:function(){return this.pills?"b-pagination-pills":""},computedCurrentPage:function(){return $g(this.currentPage,this.localNumberOfPages)},paginationParams:function(){var t=this.localLimit,e=this.localNumberOfPages,i=this.computedCurrentPage,n=this.hideEllipsis,o=this.firstNumber,r=this.lastNumber,s=!1,a=!1,l=t,c=1;e<=t?l=e:i3?(n&&!r||(a=!0,l=t-(o?0:1)),l=Ys(l,t)):e-i+23?(n&&!o||(s=!0,l=t-(r?0:1)),c=e-l+1):(t>3&&(l=t-(n?0:2),s=!(n&&!o),a=!(n&&!r)),c=i-Xs(l/2)),c<1?(c=1,s=!1):c>e-l&&(c=e-l+1,a=!1),s&&o&&c<4&&(l+=2,c=1,s=!1);var u=c+l-1;return a&&r&&u>e-3&&(l+=u===e-2?2:3,a=!1),t<=3&&(o&&1===c?l=Ys(l+1,e,t+1):r&&e===c+l-1&&(c=Us(c-1,1),l=Ys(e-c+1,e,t+1))),{showFirstDots:s,showLastDots:a,numberOfLinks:l=Ys(l,e-c+1),startNumber:c}},pageList:function(){var t=this.paginationParams,e=t.numberOfLinks,i=t.startNumber,n=this.computedCurrentPage,o=function(t,e){return rr(e,(function(e,i){return{number:t+i,classes:null}}))}(i,e);if(o.length>3){var r=n-i,s="bv-d-xs-down-none";if(0===r)for(var a=3;ar+1;u--)o[u].classes=s}}return o}},watch:(Zb={},a(Zb,xg,(function(t,e){t!==e&&(this.currentPage=$g(t,this.localNumberOfPages))})),a(Zb,"currentPage",(function(t,e){t!==e&&this.$emit(Sg,t>0?t:null)})),a(Zb,"limit",(function(t,e){t!==e&&(this.localLimit=kg(t))})),Zb),created:function(){var t=this;this.localLimit=kg(this.limit),this.$nextTick((function(){t.currentPage=t.currentPage>t.localNumberOfPages?t.localNumberOfPages:t.currentPage}))},methods:{handleKeyNav:function(t){var e=t.keyCode,i=t.shiftKey;this.isNav||(e===Na||e===Wa?(Bs(t,{propagation:!1}),i?this.focusFirst():this.focusPrev()):e!==ja&&e!==Ra||(Bs(t,{propagation:!1}),i?this.focusLast():this.focusNext()))},getButtons:function(){return Pr("button.page-link, a.page-link",this.$el).filter((function(t){return Dr(t)}))},focusCurrent:function(){var t=this;this.$nextTick((function(){var e=t.getButtons().find((function(e){return lr(jr(e,"aria-posinset"),0)===t.computedCurrentPage}));ts(e)||t.focusFirst()}))},focusFirst:function(){var t=this;this.$nextTick((function(){var e=t.getButtons().find((function(t){return!Fr(t)}));ts(e)}))},focusLast:function(){var t=this;this.$nextTick((function(){var e=t.getButtons().reverse().find((function(t){return!Fr(t)}));ts(e)}))},focusPrev:function(){var t=this;this.$nextTick((function(){var e=t.getButtons(),i=e.indexOf($r());i>0&&!Fr(e[i-1])&&ts(e[i-1])}))},focusNext:function(){var t=this;this.$nextTick((function(){var e=t.getButtons(),i=e.indexOf($r());is,v=n<1?1:n>s?s:n,b={disabled:f,page:v,index:v-1},g=e.normalizeSlot(a,b)||vr(l)||t(),y=t(f?"span":r?ol:"button",{staticClass:"page-link",class:{"flex-grow-1":!r&&!f&&h},props:f||!r?{}:e.linkProps(n),attrs:{role:r?null:"menuitem",type:r||f?null:"button",tabindex:f||r?null:"-1","aria-label":o,"aria-controls":e.ariaControls||null,"aria-disabled":f?"true":null},on:f?{}:{"!click":function(t){e.onClick(t,n)},keydown:Bg}},[g]);return t("li",{key:d,staticClass:"page-item",class:[{disabled:f,"flex-fill":h,"d-flex":h&&!r&&!f},c],attrs:{role:r?null:"presentation","aria-hidden":f?"true":null}},[y])},b=function(i){return t("li",{staticClass:"page-item",class:["disabled","bv-d-xs-down-none",h?"flex-fill":"",e.ellipsisClass],attrs:{role:"separator"},key:"ellipsis-".concat(i?"last":"first")},[t("span",{staticClass:"page-link"},[e.normalizeSlot("ellipsis-text")||vr(e.ellipsisText)||t()])])},g=function(o,a){var l=o.number,c=p(l)&&!m,u=i?null:c||m&&0===a?"0":"-1",d={role:r?null:"menuitemradio",type:r||i?null:"button","aria-disabled":i?"true":null,"aria-controls":e.ariaControls||null,"aria-label":gs(n)?n(l):"".concat(Ot(n)?n():n," ").concat(l),"aria-checked":r?null:c?"true":"false","aria-current":r&&c?"page":null,"aria-posinset":r?null:l,"aria-setsize":r?null:s,tabindex:r?null:u},f=vr(e.makePage(l)),v={page:l,index:l-1,content:f,active:c,disabled:i},b=t(i?"span":r?ol:"button",{props:i||!r?{}:e.linkProps(l),staticClass:"page-link",class:{"flex-grow-1":!r&&!i&&h},attrs:d,on:i?{}:{"!click":function(t){e.onClick(t,l)},keydown:Bg}},[e.normalizeSlot("page",v)||f]);return t("li",{staticClass:"page-item",class:[{disabled:i,active:c,"flex-fill":h,"d-flex":h&&!r&&!i},o.classes,e.pageClass],attrs:{role:r?null:"presentation"},key:"page-".concat(l)},[b])},y=t();this.firstNumber||this.hideGotoEndButtons||(y=v(1,this.labelFirstPage,"first-text",this.firstText,this.firstClass,1,"pagination-goto-first")),f.push(y),f.push(v(a-1,this.labelPrevPage,"prev-text",this.prevText,this.prevClass,1,"pagination-goto-prev")),f.push(this.firstNumber&&1!==l[0]?g({number:1},0):t()),f.push(u?b(!1):t()),this.pageList.forEach((function(t,i){var n=u&&e.firstNumber&&1!==l[0]?1:0;f.push(g(t,i+n))})),f.push(d?b(!0):t()),f.push(this.lastNumber&&l[l.length-1]!==s?g({number:s},-1):t()),f.push(v(a+1,this.labelNextPage,"next-text",this.nextText,this.nextClass,s,"pagination-goto-next"));var w=t();this.lastNumber||this.hideGotoEndButtons||(w=v(s,this.labelLastPage,"last-text",this.lastText,this.lastClass,s,"pagination-goto-last")),f.push(w);var T=t("ul",{staticClass:"pagination",class:["b-pagination",this.btnSize,this.alignment,this.styleClass],attrs:{role:r?null:"menubar","aria-disabled":i?"true":"false","aria-label":r?null:o||null},on:r?{}:{keydown:this.handleKeyNav},ref:"ul"},f);return r?t("nav",{attrs:{"aria-disabled":i?"true":null,"aria-hidden":i?"true":"false","aria-label":r&&o||null}},[T]):T}}),Fg=function(t){return Us(lr(t)||20,1)},Ig=function(t){return Us(lr(t)||0,0)},Pg=vs(ee(c(c({},_g),{},{ariaControls:hs(go),perPage:hs(_o,20),totalRows:hs(_o,0)})),Ji),Og=i.default.extend({name:Ji,mixins:[Dg],props:Pg,computed:{numberOfPages:function(){var t=Ks(Ig(this.totalRows)/Fg(this.perPage));return t<1?1:t},pageSizeNumberOfPages:function(){return{perPage:Fg(this.perPage),totalRows:Ig(this.totalRows),numberOfPages:this.numberOfPages}}},watch:{pageSizeNumberOfPages:function(t,e){Pt(e)||(t.perPage!==e.perPage&&t.totalRows===e.totalRows||t.numberOfPages!==e.numberOfPages&&this.currentPage>t.numberOfPages)&&(this.currentPage=1),this.localNumberOfPages=t.numberOfPages}},created:function(){var t=this;this.localNumberOfPages=this.numberOfPages;var e=lr(this[xg],0);e>0?this.currentPage=e:this.$nextTick((function(){t.currentPage=0}))},methods:{onClick:function(t,e){var i=this;if(e!==this.currentPage){var n=t.target,o=new BvEvent(Kn,{cancelable:!0,vueTarget:this,target:n});this.$emit(o.type,o,e),o.defaultPrevented||(this.currentPage=e,this.$emit($n,this.currentPage),this.$nextTick((function(){Dr(n)&&i.$el.contains(n)?ts(n):i.focusCurrent()})))}},makePage:function(t){return t},linkProps:function(){return{}}}}),Vg=me({components:{BPagination:Og}}),Eg=Qt(nl,["event","routerTag"]),Lg=vs(ee(c(c(c({},_g),Eg),{},{baseUrl:hs(go,"/"),linkGen:hs(po),noPageDetect:hs(ho,!1),numberOfPages:hs(_o,1,(function(t){return!(lr(t,0)<1)||(le('Prop "number-of-pages" must be a number greater than "0"',Qi),!1)})),pageGen:hs(po),pages:hs(uo),useRouter:hs(ho,!1)})),Qi),Ag=i.default.extend({name:Qi,mixins:[Dg],props:Lg,computed:{isNav:function(){return!0},computedValue:function(){var t=lr(this.value,0);return t<1?null:t}},watch:{numberOfPages:function(){var t=this;this.$nextTick((function(){t.setNumberOfPages()}))},pages:function(){var t=this;this.$nextTick((function(){t.setNumberOfPages()}))}},created:function(){this.setNumberOfPages()},mounted:function(){var t=this;this.$router&&this.$watch("$route",(function(){t.$nextTick((function(){xr((function(){t.guessCurrentPage()}))}))}))},methods:{setNumberOfPages:function(){var t,e=this;Rt(this.pages)&&this.pages.length>0?this.localNumberOfPages=this.pages.length:this.localNumberOfPages=(t=this.numberOfPages,Us(lr(t,0),1)),this.$nextTick((function(){e.guessCurrentPage()}))},onClick:function(t,e){var i=this;if(e!==this.currentPage){var n=t.currentTarget||t.target,o=new BvEvent(Kn,{cancelable:!0,vueTarget:this,target:n});this.$emit(o.type,o,e),o.defaultPrevented||(xr((function(){i.currentPage=e,i.$emit($n,e)})),this.$nextTick((function(){es(n)})))}},getPageInfo:function(t){if(!Rt(this.pages)||0===this.pages.length||Ft(this.pages[t-1])){var e="".concat(this.baseUrl).concat(t);return{link:this.useRouter?{path:e}:e,text:vr(t)}}var i=this.pages[t-1];if(Mt(i)){var n=i.link;return{link:Mt(n)?n:this.useRouter?{path:n}:n,text:vr(i.text||t)}}return{link:vr(i),text:vr(t)}},makePage:function(t){var e=this.pageGen,i=this.getPageInfo(t);return gs(e)?e(t,i):i.text},makeLink:function(t){var e=this.linkGen,i=this.getPageInfo(t);return gs(e)?e(t,i):i.link},linkProps:function(t){var e=ps(Eg,this),i=this.makeLink(t);return this.useRouter||Mt(i)?e.to=i:e.href=i,e},resolveLink:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{(t=document.createElement("a")).href=ua({to:e},"a","/","/"),document.body.appendChild(t);var i=t,n=i.pathname,o=i.hash,r=i.search;return document.body.removeChild(t),{path:n,hash:o,query:aa(r)}}catch(e){try{t&&t.parentNode&&t.parentNode.removeChild(t)}catch(t){}return{}}},resolveRoute:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{var e=this.$router.resolve(t,this.$route).route;return{path:e.path,hash:e.hash,query:e.query}}catch(t){return{}}},guessCurrentPage:function(){var t=this.$router,e=this.$route,i=this.computedValue;if(!this.noPageDetect&&!i&&(M||!M&&t))for(var n=t&&e?{path:e.path,hash:e.hash,query:e.query}:{},o=M?window.location||document.location:null,r=o?{path:o.pathname,hash:o.hash,query:aa(o.search)}:{},s=1;!i&&s<=this.localNumberOfPages;s++){var a=this.makeLink(s);i=t&&(Mt(a)||this.useRouter)?Ua(this.resolveRoute(a),n)?s:null:M?Ua(this.resolveLink(a),r)?s:null:-1}this.currentPage=i>0?i:0}}}),Rg=me({components:{BPaginationNav:Ag}}),Mg={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left",TOPLEFT:"top",TOPRIGHT:"top",RIGHTTOP:"right",RIGHTBOTTOM:"right",BOTTOMLEFT:"bottom",BOTTOMRIGHT:"bottom",LEFTTOP:"left",LEFTBOTTOM:"left"},Hg={AUTO:0,TOPLEFT:-1,TOP:0,TOPRIGHT:1,RIGHTTOP:-1,RIGHT:0,RIGHTBOTTOM:1,BOTTOMLEFT:-1,BOTTOM:0,BOTTOMRIGHT:1,LEFTTOP:-1,LEFT:0,LEFTBOTTOM:1},zg={arrowPadding:hs(_o,6),boundary:hs([HTMLElement,go],"scrollParent"),boundaryPadding:hs(_o,5),fallbackPlacement:hs(Co,"flip"),offset:hs(_o,0),placement:hs(go,"top"),target:hs([HTMLElement,SVGElement])},Ng=i.default.extend({name:"BVPopper",props:zg,data:function(){return{noFade:!1,localShow:!0,attachment:this.getAttachment(this.placement)}},computed:{templateType:function(){return"unknown"},popperConfig:function(){var t=this,e=this.placement;return{placement:this.getAttachment(e),modifiers:{offset:{offset:this.getOffset(e)},flip:{behavior:this.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{padding:this.boundaryPadding,boundariesElement:this.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t.popperPlacementChange(e)},onUpdate:function(e){t.popperPlacementChange(e)}}}},created:function(){var t=this;this.$_popper=null,this.localShow=!0,this.$on(to,(function(e){t.popperCreate(e)}));var e=function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))};this.$parent.$once(ro,e),this.$once(zn,e)},beforeMount:function(){this.attachment=this.getAttachment(this.placement)},updated:function(){this.updatePopper()},beforeDestroy:function(){this.destroyPopper()},destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},methods:{hide:function(){this.localShow=!1},getAttachment:function(t){return Mg[String(t).toUpperCase()]||"auto"},getOffset:function(t){if(!this.offset){var e=this.$refs.arrow||Or(".arrow",this.$el),i=cr(Kr(e).width,0)+cr(this.arrowPadding,0);switch(Hg[String(t).toUpperCase()]||0){case 1:return"+50%p - ".concat(i,"px");case-1:return"-50%p + ".concat(i,"px");default:return 0}}return this.offset},popperCreate:function(t){this.destroyPopper(),this.$_popper=new mh(this.target,t,this.popperConfig)},destroyPopper:function(){this.$_popper&&this.$_popper.destroy(),this.$_popper=null},updatePopper:function(){this.$_popper&&this.$_popper.scheduleUpdate()},popperPlacementChange:function(t){this.attachment=this.getAttachment(t.placement)},renderTemplate:function(t){return t("div")}},render:function(t){var e=this,i=this.noFade;return t(Ls,{props:{appear:!0,noFade:i},on:{beforeEnter:function(t){return e.$emit(to,t)},afterEnter:function(t){return e.$emit(eo,t)},beforeLeave:function(t){return e.$emit(Nn,t)},afterLeave:function(t){return e.$emit(zn,t)}}},[this.localShow?this.renderTemplate(t):t()])}}),jg={html:hs(ho,!1),id:hs(go)},Gg=i.default.extend({name:"BVTooltipTemplate",extends:Ng,mixins:[ib],props:jg,data:function(){return{title:"",content:"",variant:null,customClass:null,interactive:!0}},computed:{templateType:function(){return"tooltip"},templateClasses:function(){var t,e=this.variant,i=this.attachment,n=this.templateType;return[(t={noninteractive:!this.interactive},a(t,"b-".concat(n,"-").concat(e),e),a(t,"bs-".concat(n,"-").concat(i),i),t),this.customClass]},templateAttributes:function(){var t=this.id;return c(c({},this.$parent.$parent.$attrs),{},{id:t,role:"tooltip",tabindex:"-1"},this.scopedStyleAttrs)},templateListeners:function(){var t=this;return{mouseenter:function(e){t.$emit(Wn,e)},mouseleave:function(e){t.$emit(Yn,e)},focusin:function(e){t.$emit(Rn,e)},focusout:function(e){t.$emit(Mn,e)}}}},methods:{renderTemplate:function(t){var e=this.title,i=Ot(e)?e({}):e,n=this.html&&!Ot(e)?{innerHTML:e}:{};return t("div",{staticClass:"tooltip b-tooltip",class:this.templateClasses,attrs:this.templateAttributes,on:this.templateListeners},[t("div",{staticClass:"arrow",ref:"arrow"}),t("div",{staticClass:"tooltip-inner",domProps:n},[i])])}}}),Wg=".modal-content",Yg=Ds(Ni,zn),Ug=[Wg,".b-sidebar"].join(", "),qg="data-original-title",Kg={title:"",content:"",variant:null,customClass:null,triggers:"",placement:"auto",fallbackPlacement:"flip",target:null,container:null,noFade:!1,boundary:"scrollParent",boundaryPadding:5,offset:0,delay:0,arrowPadding:6,interactive:!0,disabled:!1,id:null,html:!1},Xg=i.default.extend({name:"BVTooltip",mixins:[Ja],data:function(){return c(c({},Kg),{},{activeTrigger:{hover:!1,click:!1,focus:!1},localShow:!1})},computed:{templateType:function(){return"tooltip"},computedId:function(){return this.id||"__bv_".concat(this.templateType,"_").concat(this._uid,"__")},computedDelay:function(){var t={show:0,hide:0};return Ht(this.delay)?(t.show=Us(lr(this.delay.show,0),0),t.hide=Us(lr(this.delay.hide,0),0)):(Lt(this.delay)||Et(this.delay))&&(t.show=t.hide=Us(lr(this.delay,0),0)),t},computedTriggers:function(){return or(this.triggers).filter(ne).join(" ").trim().toLowerCase().split(/\s+/).sort()},isWithActiveTrigger:function(){for(var t in this.activeTrigger)if(this.activeTrigger[t])return!0;return!1},computedTemplateData:function(){return{title:this.title,content:this.content,variant:this.variant,customClass:this.customClass,noFade:this.noFade,interactive:this.interactive}}},watch:{computedTriggers:function(t,e){var i=this;Ua(t,e)||this.$nextTick((function(){i.unListen(),e.forEach((function(e){nr(t,e)||i.activeTrigger[e]&&(i.activeTrigger[e]=!1)})),i.listen()}))},computedTemplateData:function(){this.handleTemplateUpdate()},title:function(t,e){t===e||t||this.hide()},disabled:function(t){t?this.disable():this.enable()}},created:function(){var t=this;this.$_tip=null,this.$_hoverTimeout=null,this.$_hoverState="",this.$_visibleInterval=null,this.$_enabled=!this.disabled,this.$_noop=su.bind(this),this.$parent&&this.$parent.$once(oo,(function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))})),this.$nextTick((function(){var e=t.getTarget();e&&Lr(document.body,e)?(t.scopeId=eb(t.$parent),t.listen()):le(Et(t.target)?'Unable to find target element by ID "#'.concat(t.target,'" in document.'):"The provided target is no valid HTML element.",t.templateType)}))},updated:function(){this.$nextTick(this.handleTemplateUpdate)},deactivated:function(){this.forceHide()},beforeDestroy:function(){this.unListen(),this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.clearVisibilityInterval(),this.destroyTemplate(),this.$_noop=null},methods:{getTemplate:function(){return Gg},updateData:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=!1;Kt(Kg).forEach((function(n){Ft(e[n])||t[n]===e[n]||(t[n]=e[n],"title"===n&&(i=!0))})),i&&this.localShow&&this.fixTitle()},createTemplateAndShow:function(){var t=this.getContainer(),e=this.getTemplate(),i=this.$_tip=new e({parent:this,propsData:{id:this.computedId,html:this.html,placement:this.placement,fallbackPlacement:this.fallbackPlacement,target:this.getPlacementTarget(),boundary:this.getBoundary(),offset:lr(this.offset,0),arrowPadding:lr(this.arrowPadding,0),boundaryPadding:lr(this.boundaryPadding,0)}});this.handleTemplateUpdate(),i.$once(to,this.onTemplateShow),i.$once(eo,this.onTemplateShown),i.$once(Nn,this.onTemplateHide),i.$once(zn,this.onTemplateHidden),i.$once(ro,this.destroyTemplate),i.$on(Rn,this.handleEvent),i.$on(Mn,this.handleEvent),i.$on(Wn,this.handleEvent),i.$on(Yn,this.handleEvent),i.$mount(t.appendChild(document.createElement("div")))},hideTemplate:function(){this.$_tip&&this.$_tip.hide(),this.clearActiveTriggers(),this.$_hoverState=""},destroyTemplate:function(){this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.localPlacementTarget=null;try{this.$_tip.$destroy()}catch(t){}this.$_tip=null,this.removeAriaDescribedby(),this.restoreTitle(),this.localShow=!1},getTemplateElement:function(){return this.$_tip?this.$_tip.$el:null},handleTemplateUpdate:function(){var t=this,e=this.$_tip;if(e){["title","content","variant","customClass","noFade","interactive"].forEach((function(i){e[i]!==t[i]&&(e[i]=t[i])}))}},show:function(){var t=this.getTarget();if(t&&Lr(document.body,t)&&Dr(t)&&!this.dropdownOpen()&&(!Pt(this.title)&&""!==this.title||!Pt(this.content)&&""!==this.content)&&!this.$_tip&&!this.localShow){this.localShow=!0;var e=this.buildEvent(to,{cancelable:!0});this.emitEvent(e),e.defaultPrevented?this.destroyTemplate():(this.fixTitle(),this.addAriaDescribedby(),this.createTemplateAndShow())}},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.getTemplateElement();if(e&&this.localShow){var i=this.buildEvent(Nn,{cancelable:!t});this.emitEvent(i),i.defaultPrevented||this.hideTemplate()}else this.restoreTitle()},forceHide:function(){this.getTemplateElement()&&this.localShow&&(this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.$_tip&&(this.$_tip.noFade=!0),this.hide(!0))},enable:function(){this.$_enabled=!0,this.emitEvent(this.buildEvent(En))},disable:function(){this.$_enabled=!1,this.emitEvent(this.buildEvent(On))},onTemplateShow:function(){this.setWhileOpenListeners(!0)},onTemplateShown:function(){var t=this.$_hoverState;this.$_hoverState="","out"===t&&this.leave(null),this.emitEvent(this.buildEvent(eo))},onTemplateHide:function(){this.setWhileOpenListeners(!1)},onTemplateHidden:function(){this.destroyTemplate(),this.emitEvent(this.buildEvent(zn))},getTarget:function(){var t=this.target;return Et(t)?t=Ar(t.replace(/^#/,"")):Ot(t)?t=t():t&&(t=t.$el||t),kr(t)?t:null},getPlacementTarget:function(){return this.getTarget()},getTargetId:function(){var t=this.getTarget();return t&&t.id?t.id:null},getContainer:function(){var t=!!this.container&&(this.container.$el||this.container),e=document.body,i=this.getTarget();return!1===t?Er(Ug,i)||e:Et(t)&&Ar(t.replace(/^#/,""))||e},getBoundary:function(){return this.boundary?this.boundary.$el||this.boundary:"scrollParent"},isInModal:function(){var t=this.getTarget();return t&&Er(Wg,t)},isDropdown:function(){var t=this.getTarget();return t&&Hr(t,"dropdown")},dropdownOpen:function(){var t=this.getTarget();return this.isDropdown()&&t&&Or(".dropdown-menu.show",t)},clearHoverTimeout:function(){clearTimeout(this.$_hoverTimeout),this.$_hoverTimeout=null},clearVisibilityInterval:function(){clearInterval(this.$_visibleInterval),this.$_visibleInterval=null},clearActiveTriggers:function(){for(var t in this.activeTrigger)this.activeTrigger[t]=!1},addAriaDescribedby:function(){var t=this.getTarget(),e=jr(t,"aria-describedby")||"";e=e.split(/\s+/).concat(this.computedId).join(" ").trim(),zr(t,"aria-describedby",e)},removeAriaDescribedby:function(){var t=this,e=this.getTarget(),i=jr(e,"aria-describedby")||"";(i=i.split(/\s+/).filter((function(e){return e!==t.computedId})).join(" ").trim())?zr(e,"aria-describedby",i):Nr(e,"aria-describedby")},fixTitle:function(){var t=this.getTarget();if(Gr(t,"title")){var e=jr(t,"title");zr(t,"title",""),e&&zr(t,qg,e)}},restoreTitle:function(){var t=this.getTarget();if(Gr(t,qg)){var e=jr(t,qg);Nr(t,qg),e&&zr(t,"title",e)}},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new BvEvent(t,c({cancelable:!1,target:this.getTarget(),relatedTarget:this.getTemplateElement()||null,componentId:this.computedId,vueTarget:this},e))},emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(this.templateType,e),t),this.$emit(e,t)},listen:function(){var t=this,e=this.getTarget();e&&(this.setRootListener(!0),this.computedTriggers.forEach((function(i){"click"===i?Ss(e,"click",t.handleEvent,lo):"focus"===i?(Ss(e,"focusin",t.handleEvent,lo),Ss(e,"focusout",t.handleEvent,lo)):"blur"===i?Ss(e,"focusout",t.handleEvent,lo):"hover"===i&&(Ss(e,"mouseenter",t.handleEvent,lo),Ss(e,"mouseleave",t.handleEvent,lo))}),this))},unListen:function(){var t=this,e=this.getTarget();this.setRootListener(!1),["click","focusin","focusout","mouseenter","mouseleave"].forEach((function(i){e&&ks(e,i,t.handleEvent,lo)}),this)},setRootListener:function(t){var e=this.$root;if(e){var i=t?"$on":"$off",n=this.templateType;e[i](Fs(n,Nn),this.doHide),e[i](Fs(n,to),this.doShow),e[i](Fs(n,Pn),this.doDisable),e[i](Fs(n,Vn),this.doEnable)}},setWhileOpenListeners:function(t){this.setModalListener(t),this.setDropdownListener(t),this.visibleCheck(t),this.setOnTouchStartListener(t)},visibleCheck:function(t){var e=this;this.clearVisibilityInterval();var i=this.getTarget(),n=this.getTemplateElement();t&&(this.$_visibleInterval=setInterval((function(){!n||!e.localShow||i.parentNode&&Dr(i)||e.forceHide()}),100))},setModalListener:function(t){this.isInModal()&&this.$root[t?"$on":"$off"](Yg,this.forceHide)},setOnTouchStartListener:function(t){var e=this;"ontouchstart"in document.documentElement&&ir(document.body.children).forEach((function(i){$s(t,i,"mouseover",e.$_noop)}))},setDropdownListener:function(t){var e=this.getTarget();e&&this.$root&&this.isDropdown&&e.__vue__&&e.__vue__[t?"$on":"$off"](eo,this.forceHide)},handleEvent:function(t){var e=this.getTarget();if(e&&!Fr(e)&&this.$_enabled&&!this.dropdownOpen()){var i=t.type,n=this.computedTriggers;if("click"===i&&nr(n,"click"))this.click(t);else if("mouseenter"===i&&nr(n,"hover"))this.enter(t);else if("focusin"===i&&nr(n,"focus"))this.enter(t);else if("focusout"===i&&(nr(n,"focus")||nr(n,"blur"))||"mouseleave"===i&&nr(n,"hover")){var o=this.getTemplateElement(),r=t.target,s=t.relatedTarget;if(o&&Lr(o,r)&&Lr(e,s)||o&&Lr(e,r)&&Lr(o,s)||o&&Lr(o,r)&&Lr(o,s)||Lr(e,r)&&Lr(e,s))return;this.leave(t)}}},doHide:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.forceHide()},doShow:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.show()},doDisable:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.disable()},doEnable:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.enable()},click:function(t){this.$_enabled&&!this.dropdownOpen()&&(ts(t.currentTarget),this.activeTrigger.click=!this.activeTrigger.click,this.isWithActiveTrigger?this.enter(null):this.leave(null))},toggle:function(){this.$_enabled&&!this.dropdownOpen()&&(this.localShow?this.leave(null):this.enter(null))},enter:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.activeTrigger["focusin"===e.type?"focus":"hover"]=!0),this.localShow||"in"===this.$_hoverState?this.$_hoverState="in":(this.clearHoverTimeout(),this.$_hoverState="in",this.computedDelay.show?(this.fixTitle(),this.$_hoverTimeout=setTimeout((function(){"in"===t.$_hoverState?t.show():t.localShow||t.restoreTitle()}),this.computedDelay.show)):this.show())},leave:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.activeTrigger["focusout"===e.type?"focus":"hover"]=!1,"focusout"===e.type&&nr(this.computedTriggers,"blur")&&(this.activeTrigger.click=!1,this.activeTrigger.hover=!1)),this.isWithActiveTrigger||(this.clearHoverTimeout(),this.$_hoverState="out",this.computedDelay.hide?this.$_hoverTimeout=setTimeout((function(){"out"===t.$_hoverState&&t.hide()}),this.computedDelay.hide):this.hide())}}}),Zg="disabled",Jg="update:disabled",Qg="show",ty=vs((a(Jb={boundary:hs([HTMLElement,vo,go],"scrollParent"),boundaryPadding:hs(_o,50),container:hs([HTMLElement,vo,go]),customClass:hs(go),delay:hs(Do,50)},Zg,hs(ho,!1)),a(Jb,"fallbackPlacement",hs(Co,"flip")),a(Jb,"id",hs(go)),a(Jb,"noFade",hs(ho,!1)),a(Jb,"noninteractive",hs(ho,!1)),a(Jb,"offset",hs(_o,0)),a(Jb,"placement",hs(go,"top")),a(Jb,Qg,hs(ho,!1)),a(Jb,"target",hs([HTMLElement,SVGElement,po,vo,go],void 0,!0)),a(Jb,"title",hs(go)),a(Jb,"triggers",hs(Co,"hover focus")),a(Jb,"variant",hs(go)),Jb),Sn),ey=i.default.extend({name:Sn,mixins:[Cs],inheritAttrs:!1,props:ty,data:function(){return{localShow:this.show,localTitle:"",localContent:""}},computed:{templateData:function(){return c({title:this.localTitle,content:this.localContent,interactive:!this.noninteractive},Jt(this.$props,["boundary","boundaryPadding","container","customClass","delay","fallbackPlacement","id","noFade","offset","placement","target","target","triggers","variant",Zg]))},templateTitleContent:function(){return{title:this.title,content:this.content}}},watch:(Qb={},a(Qb,Qg,(function(t,e){t!==e&&t!==this.localShow&&this.$_toolpop&&(t?this.$_toolpop.show():this.$_toolpop.forceHide())})),a(Qb,Zg,(function(t){t?this.doDisable():this.doEnable()})),a(Qb,"localShow",(function(t){this.$emit("update:show",t)})),a(Qb,"templateData",(function(){var t=this;this.$nextTick((function(){t.$_toolpop&&t.$_toolpop.updateData(t.templateData)}))})),a(Qb,"templateTitleContent",(function(){this.$nextTick(this.updateContent)})),Qb),created:function(){this.$_toolpop=null},updated:function(){this.$nextTick(this.updateContent)},beforeDestroy:function(){this.$off(qn,this.doOpen),this.$off(_n,this.doClose),this.$off(Pn,this.doDisable),this.$off(Vn,this.doEnable),this.$_toolpop&&(this.$_toolpop.$destroy(),this.$_toolpop=null)},mounted:function(){var t=this;this.$nextTick((function(){var e=t.getComponent();t.updateContent();var i=eb(t)||eb(t.$parent),n=t.$_toolpop=new e({parent:t,_scopeId:i||void 0});n.updateData(t.templateData),n.$on(to,t.onShow),n.$on(eo,t.onShown),n.$on(Nn,t.onHide),n.$on(zn,t.onHidden),n.$on(On,t.onDisabled),n.$on(En,t.onEnabled),t.disabled&&t.doDisable(),t.$on(qn,t.doOpen),t.$on(_n,t.doClose),t.$on(Pn,t.doDisable),t.$on(Vn,t.doEnable),t.localShow&&n.show()}))},methods:{getComponent:function(){return Xg},updateContent:function(){this.setTitle(this.normalizeSlot()||this.title)},setTitle:function(t){t=Pt(t)?"":t,this.localTitle!==t&&(this.localTitle=t)},setContent:function(t){t=Pt(t)?"":t,this.localContent!==t&&(this.localContent=t)},onShow:function(t){this.$emit(to,t),t&&(this.localShow=!t.defaultPrevented)},onShown:function(t){this.localShow=!0,this.$emit(eo,t)},onHide:function(t){this.$emit(Nn,t)},onHidden:function(t){this.$emit(zn,t),this.localShow=!1},onDisabled:function(t){t&&t.type===On&&(this.$emit(Jg,!0),this.$emit(On,t))},onEnabled:function(t){t&&t.type===En&&(this.$emit(Jg,!1),this.$emit(En,t))},doOpen:function(){!this.localShow&&this.$_toolpop&&this.$_toolpop.show()},doClose:function(){this.localShow&&this.$_toolpop&&this.$_toolpop.hide()},doDisable:function(){this.$_toolpop&&this.$_toolpop.disable()},doEnable:function(){this.$_toolpop&&this.$_toolpop.enable()}},render:function(t){return t()}}),iy=i.default.extend({name:"BVPopoverTemplate",extends:Gg,computed:{templateType:function(){return"popover"}},methods:{renderTemplate:function(t){var e=this.title,i=this.content,n=Ot(e)?e({}):e,o=Ot(i)?i({}):i,r=this.html&&!Ot(e)?{innerHTML:e}:{},s=this.html&&!Ot(i)?{innerHTML:i}:{};return t("div",{staticClass:"popover b-popover",class:this.templateClasses,attrs:this.templateAttributes,on:this.templateListeners},[t("div",{staticClass:"arrow",ref:"arrow"}),Pt(n)||""===n?t():t("h3",{staticClass:"popover-header",domProps:r},[n]),Pt(o)||""===o?t():t("div",{staticClass:"popover-body",domProps:s},[o])])}}}),ny=i.default.extend({name:"BVPopover",extends:Xg,computed:{templateType:function(){return"popover"}},methods:{getTemplate:function(){return iy}}}),oy=vs(ee(c(c({},ty),{},{content:hs(go),placement:hs(go,"right"),triggers:hs(Co,Bn)})),tn),ry=i.default.extend({name:tn,extends:ey,inheritAttrs:!1,props:oy,methods:{getComponent:function(){return ny},updateContent:function(){this.setContent(this.normalizeSlot()||this.content),this.setTitle(this.normalizeSlot(tr)||this.title)}}}),sy="__BV_Popover__",ay={focus:!0,hover:!0,click:!0,blur:!0,manual:!0},ly=/^html$/i,cy=/^nofade$/i,uy=/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i,dy=/^(window|viewport|scrollParent)$/i,hy=/^d\d+$/i,fy=/^ds\d+$/i,py=/^dh\d+$/i,my=/^o-?\d+$/i,vy=/^v-.+$/i,by=/\s+/,gy=function(t,e,i){if(M){var n=function(t,e){var i={title:void 0,content:void 0,trigger:"",placement:"right",fallbackPlacement:"flip",container:!1,animation:!0,offset:0,disabled:!1,id:null,html:!1,delay:rs(tn,"delay",50),boundary:String(rs(tn,"boundary","scrollParent")),boundaryPadding:lr(rs(tn,"boundaryPadding",5),0),variant:rs(tn,"variant"),customClass:rs(tn,"customClass")};if(Et(t.value)||Lt(t.value)||Ot(t.value)?i.content=t.value:Ht(t.value)&&(i=c(c({},i),t.value)),t.arg&&(i.container="#".concat(t.arg)),Ft(i.title)){var n=e.data||{};i.title=n.attrs&&!Pt(n.attrs.title)?n.attrs.title:void 0}Ht(i.delay)||(i.delay={show:lr(i.delay,0),hide:lr(i.delay,0)}),Kt(t.modifiers).forEach((function(t){if(ly.test(t))i.html=!0;else if(cy.test(t))i.animation=!1;else if(uy.test(t))i.placement=t;else if(dy.test(t))t="scrollparent"===t?"scrollParent":t,i.boundary=t;else if(hy.test(t)){var e=lr(t.slice(1),0);i.delay.show=e,i.delay.hide=e}else fy.test(t)?i.delay.show=lr(t.slice(2),0):py.test(t)?i.delay.hide=lr(t.slice(2),0):my.test(t)?i.offset=lr(t.slice(1),0):vy.test(t)&&(i.variant=t.slice(2)||null)}));var o={};return or(i.trigger||"").filter(ne).join(" ").trim().toLowerCase().split(by).forEach((function(t){ay[t]&&(o[t]=!0)})),Kt(t.modifiers).forEach((function(t){t=t.toLowerCase(),ay[t]&&(o[t]=!0)})),i.trigger=Kt(o).join(" "),"blur"===i.trigger&&(i.trigger="focus"),i.trigger||(i.trigger="click"),i}(e,i);if(!t[sy]){var o=i.context;t[sy]=new ny({parent:o,_scopeId:eb(o,void 0)}),t[sy].__bv_prev_data__={},t[sy].$on(to,(function(){var e={};Ot(n.title)&&(e.title=n.title(t)),Ot(n.content)&&(e.content=n.content(t)),Kt(e).length>0&&t[sy].updateData(e)}))}var r={title:n.title,content:n.content,triggers:n.trigger,placement:n.placement,fallbackPlacement:n.fallbackPlacement,variant:n.variant,customClass:n.customClass,container:n.container,boundary:n.boundary,delay:n.delay,offset:n.offset,noFade:!n.animation,id:n.id,disabled:n.disabled,html:n.html},s=t[sy].__bv_prev_data__;if(t[sy].__bv_prev_data__=r,!Ua(r,s)){var a={target:t};Kt(r).forEach((function(e){r[e]!==s[e]&&(a[e]="title"!==e&&"content"!==e||!Ot(r[e])?r[e]:r[e](t))})),t[sy].updateData(a)}}},yy=me({directives:{VBPopover:{bind:function(t,e,i){gy(t,e,i)},componentUpdated:function(t,e,i){i.context.$nextTick((function(){gy(t,e,i)}))},unbind:function(t){!function(t){t[sy]&&(t[sy].$destroy(),t[sy]=null),delete t[sy]}(t)}}}}),wy=me({components:{BPopover:ry},plugins:{VBPopoverPlugin:yy}}),Ty=vs({animated:hs(ho,null),label:hs(go),labelHtml:hs(go),max:hs(_o,null),precision:hs(_o,null),showProgress:hs(ho,null),showValue:hs(ho,null),striped:hs(ho,null),value:hs(_o,0),variant:hs(go)},nn),Cy=i.default.extend({name:nn,mixins:[Cs],inject:{bvProgress:{default:function(){return{}}}},props:Ty,computed:{progressBarClasses:function(){var t=this.computedAnimated,e=this.computedVariant;return[e?"bg-".concat(e):"",this.computedStriped||t?"progress-bar-striped":"",t?"progress-bar-animated":""]},progressBarStyles:function(){return{width:this.computedValue/this.computedMax*100+"%"}},computedValue:function(){return cr(this.value,0)},computedMax:function(){var t=cr(this.max)||cr(this.bvProgress.max,0);return t>0?t:100},computedPrecision:function(){return Us(lr(this.precision,lr(this.bvProgress.precision,0)),0)},computedProgress:function(){var t=this.computedPrecision,e=Zs(10,t);return ur(100*e*this.computedValue/this.computedMax/e,t)},computedVariant:function(){return this.variant||this.bvProgress.variant},computedStriped:function(){return Vt(this.striped)?this.striped:this.bvProgress.striped||!1},computedAnimated:function(){return Vt(this.animated)?this.animated:this.bvProgress.animated||!1},computedShowProgress:function(){return Vt(this.showProgress)?this.showProgress:this.bvProgress.showProgress||!1},computedShowValue:function(){return Vt(this.showValue)?this.showValue:this.bvProgress.showValue||!1}},render:function(t){var e,i=this.label,n=this.labelHtml,o=this.computedValue,r=this.computedPrecision,s={};return this.hasNormalizedSlot()?e=this.normalizeSlot():i||n?s=Fl(n,i):this.computedShowProgress?e=this.computedProgress:this.computedShowValue&&(e=ur(o,r)),t("div",{staticClass:"progress-bar",class:this.progressBarClasses,style:this.progressBarStyles,attrs:{role:"progressbar","aria-valuemin":"0","aria-valuemax":vr(this.computedMax),"aria-valuenow":ur(o,r)},domProps:s},e)}}),xy=Qt(Ty,["label","labelHtml"]),Sy=vs(ee(c(c({},xy),{},{animated:hs(ho,!1),height:hs(go),max:hs(_o,100),precision:hs(_o,0),showProgress:hs(ho,!1),showValue:hs(ho,!1),striped:hs(ho,!1)})),en),ky=me({components:{BProgress:i.default.extend({name:en,mixins:[Cs],provide:function(){return{bvProgress:this}},props:Sy,computed:{progressHeight:function(){return{height:this.height||null}}},render:function(t){var e=this.normalizeSlot();return e||(e=t(Cy,{props:ps(xy,this.$props)})),t("div",{staticClass:"progress",style:this.progressHeight},[e])}}),BProgressBar:Cy}}),$y="b-sidebar",By=Fs(Ue,"request-state"),_y=Fs(Ue,"toggle"),Dy=Ds(Ue,"state"),Fy=Ds(Ue,"sync-state"),Iy=ys("visible",{type:ho,defaultValue:!1,event:$n}),Py=Iy.mixin,Oy=Iy.props,Vy=Iy.prop,Ey=Iy.event,Ly=vs(ee(c(c(c({},fc),Oy),{},{ariaLabel:hs(go),ariaLabelledby:hs(go),backdrop:hs(ho,!1),backdropVariant:hs(go,"dark"),bgVariant:hs(go,"light"),bodyClass:hs(To),closeLabel:hs(go),footerClass:hs(To),headerClass:hs(To),lazy:hs(ho,!1),noCloseOnBackdrop:hs(ho,!1),noCloseOnEsc:hs(ho,!1),noCloseOnRouteChange:hs(ho,!1),noEnforceFocus:hs(ho,!1),noHeader:hs(ho,!1),noHeaderClose:hs(ho,!1),noSlide:hs(ho,!1),right:hs(ho,!1),shadow:hs(ko,!1),sidebarClass:hs(To),tag:hs(go,"div"),textVariant:hs(go,"dark"),title:hs(go),width:hs(go),zIndex:hs(_o)})),rn),Ay=function(t,e){if(e.noHeader)return t();var i=e.normalizeSlot(No,e.slotScope);if(!i){var n=function(t,e){var i=e.normalizeSlot(tr,e.slotScope)||e.title;return i?t("strong",{attrs:{id:e.safeId("__title__")}},[i]):t("span")}(t,e),o=function(t,e){if(e.noHeaderClose)return t();var i=e.closeLabel,n=e.textVariant,o=e.hide;return t(Ps,{props:{ariaLabel:i,textVariant:n},on:{click:o},ref:"close-button"},[e.normalizeSlot("header-close")||t(Oa)])}(t,e);i=e.right?[o,n]:[n,o]}return t("header",{staticClass:"".concat($y,"-header"),class:e.headerClass,key:"header"},i)},Ry=function(t,e){return t("div",{staticClass:"".concat($y,"-body"),class:e.bodyClass,key:"body"},[e.normalizeSlot(Ao,e.slotScope)])},My=function(t,e){var i=e.normalizeSlot(zo,e.slotScope);return i?t("footer",{staticClass:"".concat($y,"-footer"),class:e.footerClass,key:"footer"},[i]):t()},Hy=function(t,e){var i=Ay(t,e);return e.lazy&&!e.isOpen?i:[i,Ry(t,e),My(t,e)]},zy=function(t,e){if(!e.backdrop)return t();var i=e.backdropVariant;return t("div",{directives:[{name:"show",value:e.localShow}],staticClass:"b-sidebar-backdrop",class:a({},"bg-".concat(i),i),on:{click:e.onBackdropClick}})},Ny=me({components:{BSidebar:i.default.extend({name:rn,mixins:[Za,pc,Py,Ja,Cs],inheritAttrs:!1,props:Ly,data:function(){var t=!!this[Vy];return{localShow:t,isOpen:t}},computed:{transitionProps:function(){return this.noSlide?{css:!0}:{css:!0,enterClass:"",enterActiveClass:"slide",enterToClass:"show",leaveClass:"show",leaveActiveClass:"slide",leaveToClass:""}},slotScope:function(){return{hide:this.hide,right:this.right,visible:this.localShow}},hasTitle:function(){var t=this.$scopedSlots,e=this.$slots;return!(this.noHeader||this.hasNormalizedSlot(No)||!this.normalizeSlot(tr,this.slotScope,t,e)&&!this.title)},titleId:function(){return this.hasTitle?this.safeId("__title__"):null},computedAttrs:function(){return c(c({},this.bvAttrs),{},{id:this.safeId(),tabindex:"-1",role:"dialog","aria-modal":this.backdrop?"true":"false","aria-hidden":this.localShow?null:"true","aria-label":this.ariaLabel||null,"aria-labelledby":this.ariaLabelledby||this.titleId||null})}},watch:(tg={},a(tg,Vy,(function(t,e){t!==e&&(this.localShow=t)})),a(tg,"localShow",(function(t,e){t!==e&&(this.emitState(t),this.$emit(Ey,t))})),a(tg,"$route",(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.noCloseOnRouteChange||t.fullPath===e.fullPath||this.hide()})),tg),created:function(){this.$_returnFocusEl=null},mounted:function(){var t=this;this.listenOnRoot(_y,this.handleToggle),this.listenOnRoot(By,this.handleSync),this.$nextTick((function(){t.emitState(t.localShow)}))},activated:function(){this.emitSync()},beforeDestroy:function(){this.localShow=!1,this.$_returnFocusEl=null},methods:{hide:function(){this.localShow=!1},emitState:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.localShow;this.emitOnRoot(Dy,this.safeId(),t)},emitSync:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.localShow;this.emitOnRoot(Fy,this.safeId(),t)},handleToggle:function(t){t&&t===this.safeId()&&(this.localShow=!this.localShow)},handleSync:function(t){var e=this;t&&t===this.safeId()&&this.$nextTick((function(){e.emitSync(e.localShow)}))},onKeydown:function(t){var e=t.keyCode;!this.noCloseOnEsc&&27===e&&this.localShow&&this.hide()},onBackdropClick:function(){this.localShow&&!this.noCloseOnBackdrop&&this.hide()},onTopTrapFocus:function(){var t=Qr(this.$refs.content);this.enforceFocus(t.reverse()[0])},onBottomTrapFocus:function(){var t=Qr(this.$refs.content);this.enforceFocus(t[0])},onBeforeEnter:function(){this.$_returnFocusEl=$r(M?[document.body]:[]),this.isOpen=!0},onAfterEnter:function(t){Lr(t,$r())||this.enforceFocus(t),this.$emit(eo)},onAfterLeave:function(){this.enforceFocus(this.$_returnFocusEl),this.$_returnFocusEl=null,this.isOpen=!1,this.$emit(zn)},enforceFocus:function(t){this.noEnforceFocus||ts(t)}},render:function(t){var e,i=this.bgVariant,n=this.width,o=this.textVariant,r=this.localShow,s=""===this.shadow||this.shadow,l=t(this.tag,{staticClass:$y,class:[(e={shadow:!0===s},a(e,"shadow-".concat(s),s&&!0!==s),a(e,"".concat($y,"-right"),this.right),a(e,"bg-".concat(i),i),a(e,"text-".concat(o),o),e),this.sidebarClass],style:{width:n},attrs:this.computedAttrs,directives:[{name:"show",value:r}],ref:"content"},[Hy(t,this)]);l=t("transition",{props:this.transitionProps,on:{beforeEnter:this.onBeforeEnter,afterEnter:this.onAfterEnter,afterLeave:this.onAfterLeave}},[l]);var c=t(Ls,{props:{noFade:this.noSlide}},[zy(t,this)]),u=t(),d=t();return this.backdrop&&r&&(u=t("div",{attrs:{tabindex:"0"},on:{focus:this.onTopTrapFocus}}),d=t("div",{attrs:{tabindex:"0"},on:{focus:this.onBottomTrapFocus}})),t("div",{staticClass:"b-sidebar-outer",style:{zIndex:this.zIndex},attrs:{tabindex:"-1"},on:{keydown:this.onKeydown}},[u,l,d,c])}})},plugins:{VBTogglePlugin:ld}}),jy=vs({animation:hs(go,"wave"),height:hs(go),size:hs(go),type:hs(go,"text"),variant:hs(go),width:hs(go)},sn),Gy=i.default.extend({name:sn,functional:!0,props:jy,render:function(t,e){var i,n=e.data,o=e.props,r=o.size,s=o.animation,l=o.variant;return t("div",F(n,{staticClass:"b-skeleton",style:{width:r||o.width,height:r||o.height},class:(i={},a(i,"b-skeleton-".concat(o.type),!0),a(i,"b-skeleton-animate-".concat(s),s),a(i,"bg-".concat(l),l),i)}))}}),Wy=(vs(Qt(fa,["content","stacked"]),"BIconstack"),vs({animation:hs(go,"wave"),icon:hs(go),iconProps:hs(vo,{})},an)),Yy=i.default.extend({name:an,functional:!0,props:Wy,render:function(t,e){var i=e.props,n=i.icon,o=i.animation,r=t(Aa,{staticClass:"b-skeleton-icon",props:c(c({},i.iconProps),{},{icon:n})});return t("div",{staticClass:"b-skeleton-icon-wrapper position-relative d-inline-block overflow-hidden",class:a({},"b-skeleton-animate-".concat(o),o)},[r])}}),Uy=vs({animation:hs(go),aspect:hs(go,"16:9"),cardImg:hs(go),height:hs(go),noAspect:hs(ho,!1),variant:hs(go),width:hs(go)},ln),qy=i.default.extend({name:ln,functional:!0,props:Uy,render:function(t,e){var i=e.props,n=i.aspect,o=i.width,r=i.height,s=i.animation,l=i.variant,c=i.cardImg,u=t(Gy,{props:{type:"img",width:o,height:r,animation:s,variant:l},class:a({},"card-img-".concat(c),c)});return i.noAspect?u:t(ea,{props:{aspect:n}},[u])}}),Ky=i.default.extend({methods:{hasListener:function(t){var e=this.$listeners||{},i=this._events||{};return!Ft(e[t])||Rt(i[t])&&i[t].length>0}}}),Xy="light",Zy="dark",Jy=vs({variant:hs(go)},"BTr"),Qy=i.default.extend({name:"BTr",mixins:[Za,Qa,Cs],provide:function(){return{bvTableTr:this}},inject:{bvTableRowGroup:{default:function(){return{}}}},inheritAttrs:!1,props:Jy,computed:{inTbody:function(){return this.bvTableRowGroup.isTbody},inThead:function(){return this.bvTableRowGroup.isThead},inTfoot:function(){return this.bvTableRowGroup.isTfoot},isDark:function(){return this.bvTableRowGroup.isDark},isStacked:function(){return this.bvTableRowGroup.isStacked},isResponsive:function(){return this.bvTableRowGroup.isResponsive},isStickyHeader:function(){return this.bvTableRowGroup.isStickyHeader},hasStickyHeader:function(){return!this.isStacked&&this.bvTableRowGroup.hasStickyHeader},tableVariant:function(){return this.bvTableRowGroup.tableVariant},headVariant:function(){return this.inThead?this.bvTableRowGroup.headVariant:null},footVariant:function(){return this.inTfoot?this.bvTableRowGroup.footVariant:null},isRowDark:function(){return this.headVariant!==Xy&&this.footVariant!==Xy&&(this.headVariant===Zy||this.footVariant===Zy||this.isDark)},trClasses:function(){var t=this.variant;return[t?"".concat(this.isRowDark?"bg":"table","-").concat(t):null]},trAttrs:function(){return c({role:"row"},this.bvAttrs)}},render:function(t){return t("tr",{class:this.trClasses,attrs:this.trAttrs,on:this.bvListeners},this.normalizeSlot())}}),tw={},ew=i.default.extend({props:tw,methods:{renderBottomRow:function(){var t=this.computedFields,e=this.stacked,i=this.tbodyTrClass,n=this.tbodyTrAttr,o=this.$createElement;return this.hasNormalizedSlot(Vo)&&!0!==e&&""!==e?o(Qy,{staticClass:"b-table-bottom-row",class:[Ot(i)?i(null,"row-bottom"):i],attrs:Ot(n)?n(null,"row-bottom"):n,key:"b-bottom-row"},this.normalizeSlot(Vo,{columns:t.length,fields:t})):o()}}}),iw=function(t){return(t=lr(t,0))>0?t:null},nw=function(t){return Pt(t)||iw(t)>0},ow=vs({colspan:hs(_o,null,nw),rowspan:hs(_o,null,nw),stackedHeading:hs(go),stickyColumn:hs(ho,!1),variant:hs(go)},pn),rw=i.default.extend({name:pn,mixins:[Za,Qa,Cs],inject:{bvTableTr:{default:function(){return{}}}},inheritAttrs:!1,props:ow,computed:{tag:function(){return"td"},inTbody:function(){return this.bvTableTr.inTbody},inThead:function(){return this.bvTableTr.inThead},inTfoot:function(){return this.bvTableTr.inTfoot},isDark:function(){return this.bvTableTr.isDark},isStacked:function(){return this.bvTableTr.isStacked},isStackedCell:function(){return this.inTbody&&this.isStacked},isResponsive:function(){return this.bvTableTr.isResponsive},isStickyHeader:function(){return this.bvTableTr.isStickyHeader},hasStickyHeader:function(){return this.bvTableTr.hasStickyHeader},isStickyColumn:function(){return!this.isStacked&&(this.isResponsive||this.hasStickyHeader)&&this.stickyColumn},rowVariant:function(){return this.bvTableTr.variant},headVariant:function(){return this.bvTableTr.headVariant},footVariant:function(){return this.bvTableTr.footVariant},tableVariant:function(){return this.bvTableTr.tableVariant},computedColspan:function(){return iw(this.colspan)},computedRowspan:function(){return iw(this.rowspan)},cellClasses:function(){var t=this.variant,e=this.headVariant,i=this.isStickyColumn;return(!t&&this.isStickyHeader&&!e||!t&&i&&this.inTfoot&&!this.footVariant||!t&&i&&this.inThead&&!e||!t&&i&&this.inTbody)&&(t=this.rowVariant||this.tableVariant||"b-table-default"),[t?"".concat(this.isDark?"bg":"table","-").concat(t):null,i?"b-table-sticky-column":null]},cellAttrs:function(){var t=this.stackedHeading,e=this.inThead||this.inTfoot,i=this.computedColspan,n=this.computedRowspan,o="cell",r=null;return e?(o="columnheader",r=i>0?"colspan":"col"):Br(this.tag,"th")&&(o="rowheader",r=n>0?"rowgroup":"row"),c(c({colspan:i,rowspan:n,role:o,scope:r},this.bvAttrs),{},{"data-label":this.isStackedCell&&!Pt(t)?vr(t):null})}},render:function(t){var e=[this.normalizeSlot()];return t(this.tag,{class:this.cellClasses,attrs:this.cellAttrs,on:this.bvListeners},[this.isStackedCell?t("div",[e]):e])}}),sw="busy",aw=a({},sw,hs(ho,!1)),lw=i.default.extend({props:aw,data:function(){return{localBusy:!1}},computed:{computedBusy:function(){return this.busy||this.localBusy}},watch:{localBusy:function(t,e){t!==e&&this.$emit("update:busy",t)}},methods:{stopIfBusy:function(t){return!!this.computedBusy&&(Bs(t),!0)},renderBusy:function(){var t=this.tbodyTrClass,e=this.tbodyTrAttr,i=this.$createElement;return this.computedBusy&&this.hasNormalizedSlot(Xo)?i(Qy,{staticClass:"b-table-busy-slot",class:[Ot(t)?t(null,Xo):t],attrs:Ot(e)?e(null,Xo):e,key:"table-busy-slot"},[i(rw,{props:{colspan:this.computedFields.length||null}},[this.normalizeSlot(Xo)])]):null}}}),cw={caption:hs(go),captionHtml:hs(go)},uw=i.default.extend({props:cw,computed:{captionId:function(){return this.isStacked?this.safeId("_caption_"):null}},methods:{renderCaption:function(){var t=this.caption,e=this.captionHtml,i=this.$createElement,n=i(),o=this.hasNormalizedSlot(Zo);return(o||t||e)&&(n=i("caption",{attrs:{id:this.captionId},domProps:o?{}:Fl(e,t),key:"caption",ref:"caption"},this.normalizeSlot(Zo))),n}}}),dw={},hw=i.default.extend({methods:{renderColgroup:function(){var t=this.computedFields,e=this.$createElement,i=e();return this.hasNormalizedSlot(Jo)&&(i=e("colgroup",{key:"colgroup"},[this.normalizeSlot(Jo,{columns:t.length,fields:t})])),i}}}),fw={emptyFilteredHtml:hs(go),emptyFilteredText:hs(go,"There are no records matching your request"),emptyHtml:hs(go),emptyText:hs(go,"There are no records to show"),showEmpty:hs(ho,!1)},pw=i.default.extend({props:fw,methods:{renderEmpty:function(){var t=this.computedItems,e=this.$createElement,i=e();if(this.showEmpty&&(!t||0===t.length)&&(!this.computedBusy||!this.hasNormalizedSlot(Xo))){var n=this.computedFields,o=this.isFiltered,r=this.emptyText,s=this.emptyHtml,a=this.emptyFilteredText,l=this.emptyFilteredHtml,c=this.tbodyTrClass,u=this.tbodyTrAttr;(i=this.normalizeSlot(o?"emptyfiltered":Ro,{emptyFilteredHtml:l,emptyFilteredText:a,emptyHtml:s,emptyText:r,fields:n,items:t}))||(i=e("div",{class:["text-center","my-2"],domProps:o?Fl(l,a):Fl(s,r)})),i=e(rw,{props:{colspan:n.length||null}},[e("div",{attrs:{role:"alert","aria-live":"polite"}},[i])]),i=e(Qy,{staticClass:"b-table-empty-row",class:[Ot(c)?c(null,"row-empty"):c],attrs:Ot(u)?u(null,"row-empty"):u,key:o?"b-empty-filtered-row":"b-empty-row"},[i])}return i}}}),mw=function t(e){return Pt(e)?"":Mt(e)&&!zt(e)?Kt(e).sort().map((function(i){return t(e[i])})).filter((function(t){return!!t})).join(" "):vr(e)},vw="_cellVariants",bw="_rowVariant",gw="_showDetails",yw=[vw,bw,gw].reduce((function(t,e){return c(c({},t),{},a({},e,!0))}),{}),ww=["a","a *","button","button *","input:not(.disabled):not([disabled])","select:not(.disabled):not([disabled])","textarea:not(.disabled):not([disabled])",'[role="link"]','[role="link"] *','[role="button"]','[role="button"] *',"[tabindex]:not(.disabled):not([disabled])"].join(","),Tw=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=Kt(n).reduce((function(e,i){var o=n[i],r=o.filterByFormatted,s=Ot(r)?r:r?o.formatter:null;return Ot(s)&&(e[i]=s(t[i],i,t)),e}),Zt(t)),r=Kt(o).filter((function(t){return!(yw[t]||Rt(e)&&e.length>0&&nr(e,t)||Rt(i)&&i.length>0&&!nr(i,t))}));return Jt(o,r)},Cw={filter:hs([].concat(T(To),[bo])),filterDebounce:hs(_o,0,(function(t){return Q.test(String(t))})),filterFunction:hs(po),filterIgnoredFields:hs(uo,[]),filterIncludedFields:hs(uo,[])},xw=i.default.extend({props:Cw,data:function(){return{isFiltered:!1,localFilter:this.filterSanitize(this.filter)}},computed:{computedFilterIgnored:function(){return or(this.filterIgnoredFields||[]).filter(ne)},computedFilterIncluded:function(){return or(this.filterIncludedFields||[]).filter(ne)},computedFilterDebounce:function(){var t=lr(this.filterDebounce,0);return t>0&&le('Prop "filter-debounce" is deprecated. Use the debounce feature of "" instead.',fn),t},localFiltering:function(){return!this.hasProvider||!!this.noProviderFiltering},filteredCheck:function(){return{filteredItems:this.filteredItems,localItems:this.localItems,localFilter:this.localFilter}},localFilterFn:function(){var t=this.filterFunction;return gs(t)?t:null},filteredItems:function(){var t=this.localItems,e=this.localFilter,i=this.localFiltering?this.filterFnFactory(this.localFilterFn,e)||this.defaultFilterFnFactory(e):null;return i&&t.length>0?t.filter(i):t}},watch:{computedFilterDebounce:function(t){!t&&this.$_filterTimer&&(this.clearFilterTimer(),this.localFilter=this.filterSanitize(this.filter))},filter:{deep:!0,handler:function(t){var e=this,i=this.computedFilterDebounce;this.clearFilterTimer(),i&&i>0?this.$_filterTimer=setTimeout((function(){e.localFilter=e.filterSanitize(t)}),i):this.localFilter=this.filterSanitize(t)}},filteredCheck:function(t){var e=t.filteredItems,i=t.localFilter,n=!1;i?Ua(i,[])||Ua(i,{})?n=!1:i&&(n=!0):n=!1,n&&this.$emit(Ln,e,e.length),this.isFiltered=n},isFiltered:function(t,e){if(!1===t&&!0===e){var i=this.localItems;this.$emit(Ln,i,i.length)}}},created:function(){var t=this;this.$_filterTimer=null,this.$nextTick((function(){t.isFiltered=Boolean(t.localFilter)}))},beforeDestroy:function(){this.clearFilterTimer()},methods:{clearFilterTimer:function(){clearTimeout(this.$_filterTimer),this.$_filterTimer=null},filterSanitize:function(t){return!this.localFiltering||this.localFilterFn||Et(t)||jt(t)?ie(t):""},filterFnFactory:function(t,e){if(!t||!Ot(t)||!e||Ua(e,[])||Ua(e,{}))return null;return function(i){return t(i,e)}},defaultFilterFnFactory:function(t){var e=this;if(!t||!Et(t)&&!jt(t))return null;var i=t;if(Et(i)){var n=mr(t).replace(ct,"\\s+");i=new RegExp(".*".concat(n,".*"),"i")}return function(t){return i.lastIndex=0,i.test((n=t,o=e.computedFilterIgnored,r=e.computedFilterIncluded,s=e.computedFieldsObj,Mt(n)?mw(Tw(n,o,r,s)):""));var n,o,r,s}}}}),Sw=function(t,e){var i=[];if(Rt(t)&&t.filter(ne).forEach((function(t){if(Et(t))i.push({key:t,label:fr(t)});else if(Mt(t)&&t.key&&Et(t.key))i.push(Zt(t));else if(Mt(t)&&1===Kt(t).length){var e=Kt(t)[0],n=function(t,e){var i=null;return Et(e)?i={key:t,label:e}:Ot(e)?i={key:t,formatter:e}:Mt(e)?(i=Zt(e)).key=i.key||t:!1!==e&&(i={key:t}),i}(e,t[e]);n&&i.push(n)}})),0===i.length&&Rt(e)&&e.length>0){var n=e[0];Kt(n).forEach((function(t){yw[t]||i.push({key:t,label:fr(t)})}))}var o={};return i.filter((function(t){return!o[t.key]&&(o[t.key]=!0,t.label=Et(t.label)?t.label:fr(t.key),!0)}))},kw=ys("value",{type:uo,defaultValue:[]}),$w=kw.mixin,Bw=kw.props,_w=kw.prop,Dw=kw.event,Fw=ee(c(c({},Bw),{},a({fields:hs(uo,null),items:hs(uo,[]),primaryKey:hs(go)},_w,hs(uo,[])))),Iw=i.default.extend({mixins:[$w],props:Fw,data:function(){var t=this.items;return{localItems:Rt(t)?t.slice():[]}},computed:{computedFields:function(){return Sw(this.fields,this.localItems)},computedFieldsObj:function(){var t=this.$parent;return this.computedFields.reduce((function(e,i){if(e[i.key]=Zt(i),i.formatter){var n=i.formatter;Et(n)&&Ot(t[n])?n=t[n]:Ot(n)||(n=void 0),e[i.key].formatter=n}return e}),{})},computedItems:function(){return(this.paginatedItems||this.sortedItems||this.filteredItems||this.localItems||[]).slice()},context:function(){return{filter:this.localFilter,sortBy:this.localSortBy,sortDesc:this.localSortDesc,perPage:Us(lr(this.perPage,0),0),currentPage:Us(lr(this.currentPage,0),1),apiUrl:this.apiUrl}}},watch:{items:function(t){this.localItems=Rt(t)?t.slice():[]},computedItems:function(t,e){Ua(t,e)||this.$emit(Dw,t)},context:function(t,e){Ua(t,e)||this.$emit(Fn,t)}},mounted:function(){this.$emit(Dw,this.computedItems)},methods:{getFieldFormatter:function(t){var e=this.computedFieldsObj[t];return e?e.formatter:void 0}}}),Pw={currentPage:hs(_o,1),perPage:hs(_o,0)},Ow=i.default.extend({props:Pw,computed:{localPaging:function(){return!this.hasProvider||!!this.noProviderPaging},paginatedItems:function(){var t=this.sortedItems||this.filteredItems||this.localItems||[],e=Us(lr(this.currentPage,1),1),i=Us(lr(this.perPage,0),0);return this.localPaging&&i&&(t=t.slice((e-1)*i,e*i)),t}}}),Vw=Ds(fn,Zn),Ew=Fs(fn,"refresh"),Lw={apiUrl:hs(go),items:hs(yo,[]),noProviderFiltering:hs(ho,!1),noProviderPaging:hs(ho,!1),noProviderSorting:hs(ho,!1)},Aw=i.default.extend({mixins:[Ja],props:Lw,computed:{hasProvider:function(){return Ot(this.items)},providerTriggerContext:function(){var t={apiUrl:this.apiUrl,filter:null,sortBy:null,sortDesc:null,perPage:null,currentPage:null};return this.noProviderFiltering||(t.filter=this.localFilter),this.noProviderSorting||(t.sortBy=this.localSortBy,t.sortDesc=this.localSortDesc),this.noProviderPaging||(t.perPage=this.perPage,t.currentPage=this.currentPage),Zt(t)}},watch:{items:function(t){(this.hasProvider||Ot(t))&&this.$nextTick(this._providerUpdate)},providerTriggerContext:function(t,e){Ua(t,e)||this.$nextTick(this._providerUpdate)}},mounted:function(){var t=this;!this.hasProvider||this.localItems&&0!==this.localItems.length||this._providerUpdate(),this.listenOnRoot(Ew,(function(e){e!==t.id&&e!==t||t.refresh()}))},methods:{refresh:function(){var t=this.items,e=this.refresh;this.$off(Zn,e),this.computedBusy?this.localBusy&&this.hasProvider&&this.$on(Zn,e):(this.clearSelected(),this.hasProvider?this.$nextTick(this._providerUpdate):this.localItems=Rt(t)?t.slice():[])},_providerSetLocal:function(t){this.localItems=Rt(t)?t.slice():[],this.localBusy=!1,this.$emit(Zn),this.id&&this.emitOnRoot(Vw,this.id)},_providerUpdate:function(){var t=this;this.hasProvider&&(this.computedBusy?this.$nextTick(this.refresh):(this.localBusy=!0,this.$nextTick((function(){try{var e=t.items(t.context,t._providerSetLocal);!Pt(i=e)&&Ot(i.then)&&Ot(i.catch)?e.then((function(e){t._providerSetLocal(e)})):Rt(e)?t._providerSetLocal(e):2!==t.items.length&&(le("Provider function didn't request callback and did not return a promise or data.",fn),t.localBusy=!1)}catch(e){le("Provider function error [".concat(e.name,"] ").concat(e.message,"."),fn),t.localBusy=!1,t.$off(Zn,t.refresh)}var i}))))}}}),Rw=["range","multi","single"],Mw={noSelectOnClick:hs(ho,!1),selectMode:hs(go,"multi",(function(t){return nr(Rw,t)})),selectable:hs(ho,!1),selectedVariant:hs(go,"active")},Hw=i.default.extend({props:Mw,data:function(){return{selectedRows:[],selectedLastRow:-1}},computed:{isSelectable:function(){return this.selectable&&this.selectMode},hasSelectableRowClick:function(){return this.isSelectable&&!this.noSelectOnClick},supportsSelectableRows:function(){return!0},selectableHasSelection:function(){var t=this.selectedRows;return this.isSelectable&&t&&t.length>0&&t.some(ne)},selectableIsMultiSelect:function(){return this.isSelectable&&nr(["range","multi"],this.selectMode)},selectableTableClasses:function(){var t,e=this.isSelectable;return a(t={"b-table-selectable":e},"b-table-select-".concat(this.selectMode),e),a(t,"b-table-selecting",this.selectableHasSelection),a(t,"b-table-selectable-no-click",e&&!this.hasSelectableRowClick),t},selectableTableAttrs:function(){return{"aria-multiselectable":this.isSelectable?this.selectableIsMultiSelect?"true":"false":null}}},watch:{computedItems:function(t,e){var i=!1;if(this.isSelectable&&this.selectedRows.length>0){i=Rt(t)&&Rt(e)&&t.length===e.length;for(var n=0;i&&n=0&&t0&&(this.selectedLastClicked=-1,this.selectedRows=this.selectableIsMultiSelect?rr(t,!0):[!0])},isRowSelected:function(t){return!(!Lt(t)||!this.selectedRows[t])},clearSelected:function(){this.selectedLastClicked=-1,this.selectedRows=[]},selectableRowClasses:function(t){if(this.isSelectable&&this.isRowSelected(t)){var e=this.selectedVariant;return a({"b-table-row-selected":!0},"".concat(this.dark?"bg":"table","-").concat(e),e)}return{}},selectableRowAttrs:function(t){return{"aria-selected":this.isSelectable?this.isRowSelected(t)?"true":"false":null}},setSelectionHandlers:function(t){var e=t&&!this.noSelectOnClick?"$on":"$off";this[e](Jn,this.selectionHandler),this[e](Ln,this.clearSelected),this[e](Fn,this.clearSelected)},selectionHandler:function(t,e,i){if(this.isSelectable&&!this.noSelectOnClick){var n=this.selectMode,o=this.selectedLastRow,r=this.selectedRows.slice(),s=!r[e];if("single"===n)r=[];else if("range"===n)if(o>-1&&i.shiftKey){for(var a=Ys(o,e);a<=Us(o,e);a++)r[a]=!0;s=!0}else i.ctrlKey||i.metaKey||(r=[],s=!0),this.selectedLastRow=s?e:-1;r[e]=s,this.selectedRows=r}else this.clearSelected()}}}),zw=function(t,e){return t.map((function(t,e){return[e,t]})).sort(function(t,e){return this(t[1],e[1])||t[0]-e[0]}.bind(e)).map((function(t){return t[1]}))},Nw=function(t){return Pt(t)?"":At(t)?cr(t,t):t},jw="sortBy",Gw="sortDesc",Ww="asc",Yw="desc",Uw=[Ww,Yw,"last"],qw=(a(eg={labelSortAsc:hs(go,"Click to sort Ascending"),labelSortClear:hs(go,"Click to clear sorting"),labelSortDesc:hs(go,"Click to sort Descending"),noFooterSorting:hs(ho,!1),noLocalSorting:hs(ho,!1),noSortReset:hs(ho,!1)},jw,hs(go)),a(eg,"sortCompare",hs(po)),a(eg,"sortCompareLocale",hs(Co)),a(eg,"sortCompareOptions",hs(vo,{numeric:!0})),a(eg,Gw,hs(ho,!1)),a(eg,"sortDirection",hs(go,Ww,(function(t){return nr(Uw,t)}))),a(eg,"sortIconLeft",hs(ho,!1)),a(eg,"sortNullLast",hs(ho,!1)),eg),Kw=i.default.extend({props:qw,data:function(){return{localSortBy:this.sortBy||"",localSortDesc:this.sortDesc||!1}},computed:{localSorting:function(){return this.hasProvider?!!this.noProviderSorting:!this.noLocalSorting},isSortable:function(){return this.computedFields.some((function(t){return t.sortable}))},sortedItems:function(){var t=this.localSortBy,e=this.localSortDesc,i=this.sortCompareLocale,n=this.sortNullLast,o=this.sortCompare,r=this.localSorting,s=(this.filteredItems||this.localItems||[]).slice(),a=c(c({},this.sortCompareOptions),{},{usage:"sort"});if(t&&r){var l=(this.computedFieldsObj[t]||{}).sortByFormatted,u=Ot(l)?l:l?this.getFieldFormatter(t):void 0;return zw(s,(function(r,s){var l=null;return Ot(o)&&(l=o(r,s,t,e,u,a,i)),(Pt(l)||!1===l)&&(l=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i.sortBy,o=void 0===n?null:n,r=i.formatter,s=void 0===r?null:r,a=i.locale,l=void 0===a?void 0:a,c=i.localeOptions,u=void 0===c?{}:c,d=i.nullLast,h=void 0!==d&&d,f=re(t,o,null),p=re(e,o,null);return Ot(s)&&(f=s(f,o,t),p=s(p,o,e)),f=Nw(f),p=Nw(p),zt(f)&&zt(p)||Lt(f)&&Lt(p)?fp?1:0:h&&""===f&&""!==p?1:h&&""!==f&&""===p?-1:mw(f).localeCompare(mw(p),l,u)}(r,s,{sortBy:t,formatter:u,locale:i,localeOptions:a,nullLast:n})),(l||0)*(e?-1:1)}))}return s}},watch:(ig={isSortable:function(t){t?this.isSortable&&this.$on(Hn,this.handleSort):this.$off(Hn,this.handleSort)}},a(ig,Gw,(function(t){t!==this.localSortDesc&&(this.localSortDesc=t||!1)})),a(ig,jw,(function(t){t!==this.localSortBy&&(this.localSortBy=t||"")})),a(ig,"localSortDesc",(function(t,e){t!==e&&this.$emit("update:sortDesc",t)})),a(ig,"localSortBy",(function(t,e){t!==e&&this.$emit("update:sortBy",t)})),ig),created:function(){this.isSortable&&this.$on(Hn,this.handleSort)},methods:{handleSort:function(t,e,i,n){var o=this;if(this.isSortable&&(!n||!this.noFooterSorting)){var r=!1,s=function(){var t=e.sortDirection||o.sortDirection;t===Ww?o.localSortDesc=!1:t===Yw&&(o.localSortDesc=!0)};if(e.sortable){var a=!this.localSorting&&e.sortKey?e.sortKey:t;this.localSortBy===a?this.localSortDesc=!this.localSortDesc:(this.localSortBy=a,s()),r=!0}else this.localSortBy&&!this.noSortReset&&(this.localSortBy="",s(),r=!0);r&&this.$emit("sort-changed",this.context)}},sortTheadThClasses:function(t,e,i){return{"b-table-sort-icon-left":e.sortable&&this.sortIconLeft&&!(i&&this.noFooterSorting)}},sortTheadThAttrs:function(t,e,i){if(!this.isSortable||i&&this.noFooterSorting)return{};var n=e.sortable;return{"aria-sort":n&&this.localSortBy===t?this.localSortDesc?"descending":"ascending":n?"none":null}},sortTheadThLabel:function(t,e,i){if(!this.isSortable||i&&this.noFooterSorting)return null;var n="";if(e.sortable)if(this.localSortBy===t)n=this.localSortDesc?this.labelSortAsc:this.labelSortDesc;else{n=this.localSortDesc?this.labelSortDesc:this.labelSortAsc;var o=this.sortDirection||e.sortDirection;o===Ww?n=this.labelSortAsc:o===Yw&&(n=this.labelSortDesc)}else this.noSortReset||(n=this.localSortBy?this.labelSortClear:"");return br(n)||null}}}),Xw={stacked:hs(ko,!1)},Zw=i.default.extend({props:Xw,computed:{isStacked:function(){var t=this.stacked;return""===t||t},isStackedAlways:function(){return!0===this.isStacked},stackedTableClasses:function(){var t=this.isStackedAlways;return a({"b-table-stacked":t},"b-table-stacked-".concat(this.stacked),!t&&this.isStacked)}}}),Jw={bordered:hs(ho,!1),borderless:hs(ho,!1),captionTop:hs(ho,!1),dark:hs(ho,!1),fixed:hs(ho,!1),hover:hs(ho,!1),noBorderCollapse:hs(ho,!1),outlined:hs(ho,!1),responsive:hs(ko,!1),small:hs(ho,!1),stickyHeader:hs(ko,!1),striped:hs(ho,!1),tableClass:hs(To),tableVariant:hs(go)},Qw=i.default.extend({mixins:[Za],provide:function(){return{bvTable:this}},inheritAttrs:!1,props:Jw,computed:{isResponsive:function(){var t=this.responsive;return""===t||t},isStickyHeader:function(){var t=this.stickyHeader;return t=""===t||t,!this.isStacked&&t},wrapperClasses:function(){var t=this.isResponsive;return[this.isStickyHeader?"b-table-sticky-header":"",!0===t?"table-responsive":t?"table-responsive-".concat(this.responsive):""].filter(ne)},wrapperStyles:function(){var t=this.isStickyHeader;return t&&!Vt(t)?{maxHeight:t}:{}},tableClasses:function(){var t=this.hover,e=this.tableVariant;return t=this.isTableSimple?t:t&&this.computedItems.length>0&&!this.computedBusy,[this.tableClass,{"table-striped":this.striped,"table-hover":t,"table-dark":this.dark,"table-bordered":this.bordered,"table-borderless":this.borderless,"table-sm":this.small,border:this.outlined,"b-table-fixed":this.fixed,"b-table-caption-top":this.captionTop,"b-table-no-border-collapse":this.noBorderCollapse},e?"".concat(this.dark?"bg":"table","-").concat(e):"",this.stackedTableClasses,this.selectableTableClasses]},tableAttrs:function(){var t=this.computedItems,e=this.filteredItems,i=this.computedFields,n=this.selectableTableAttrs,o=this.isTableSimple?{}:{"aria-busy":this.computedBusy?"true":"false","aria-colcount":vr(i.length),"aria-describedby":this.bvAttrs["aria-describedby"]||this.$refs.caption?this.captionId:null};return c(c(c({"aria-rowcount":t&&e&&e.length>t.length?vr(e.length):null},this.bvAttrs),{},{id:this.safeId(),role:"table"},o),n)}},render:function(t){var e=this.wrapperClasses,i=this.renderCaption,n=this.renderColgroup,o=this.renderThead,r=this.renderTbody,s=this.renderTfoot,a=[];this.isTableSimple?a.push(this.normalizeSlot()):(a.push(i?i():null),a.push(n?n():null),a.push(o?o():null),a.push(r?r():null),a.push(s?s():null));var l=t("table",{staticClass:"table b-table",class:this.tableClasses,attrs:this.tableAttrs,key:"b-table"},a.filter(ne));return e.length>0?t("div",{class:e,style:this.wrapperStyles,key:"wrap"},[l]):l}}),tT=vs({tbodyTransitionHandlers:hs(vo),tbodyTransitionProps:hs(vo)},gn),eT=i.default.extend({name:gn,mixins:[Za,Qa,Cs],provide:function(){return{bvTableRowGroup:this}},inject:{bvTable:{default:function(){return{}}}},inheritAttrs:!1,props:tT,computed:{isTbody:function(){return!0},isDark:function(){return this.bvTable.dark},isStacked:function(){return this.bvTable.isStacked},isResponsive:function(){return this.bvTable.isResponsive},isStickyHeader:function(){return!1},hasStickyHeader:function(){return!this.isStacked&&this.bvTable.stickyHeader},tableVariant:function(){return this.bvTable.tableVariant},isTransitionGroup:function(){return this.tbodyTransitionProps||this.tbodyTransitionHandlers},tbodyAttrs:function(){return c({role:"rowgroup"},this.bvAttrs)},tbodyProps:function(){var t=this.tbodyTransitionProps;return t?c(c({},t),{},{tag:"tbody"}):{}}},render:function(t){var e={props:this.tbodyProps,attrs:this.tbodyAttrs};return this.isTransitionGroup?(e.on=this.tbodyTransitionHandlers||{},e.nativeOn=this.bvListeners):e.on=this.bvListeners,t(this.isTransitionGroup?"transition-group":"tbody",e,this.normalizeSlot())}}),iT=["TD","TH","TR"],nT=function(t){if(!t||!t.target)return!1;var e=t.target;if(e.disabled||-1!==iT.indexOf(e.tagName))return!1;if(Er(".dropdown-menu",e))return!0;var i="LABEL"===e.tagName?e:Er("label",e);if(i){var n=jr(i,"for"),o=n?Ar(n):Or("input, select, textarea",i);if(o&&!o.disabled)return!0}return Vr(e,ww)},oT=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,e=Xr();return!!(e&&""!==e.toString().trim()&&e.containsNode&&kr(t))&&e.containsNode(t,!0)},rT=vs(ow,"BTh"),sT=i.default.extend({name:"BTh",extends:rw,props:rT,computed:{tag:function(){return"th"}}}),aT={detailsTdClass:hs(To),tbodyTrAttr:hs(Fo),tbodyTrClass:hs([].concat(T(To),[po]))},lT=i.default.extend({props:aT,methods:{getTdValues:function(t,e,i,n){var o=this.$parent;if(i){var r=re(t,e,"");return Ot(i)?i(r,e,t):Et(i)&&Ot(o[i])?o[i](r,e,t):i}return n},getThValues:function(t,e,i,n,o){var r=this.$parent;if(i){var s=re(t,e,"");return Ot(i)?i(s,e,t,n):Et(i)&&Ot(r[i])?r[i](s,e,t,n):i}return o},getFormattedValue:function(t,e){var i=e.key,n=this.getFieldFormatter(i),o=re(t,i,null);return Ot(n)&&(o=n(o,i,t)),Pt(o)?"":o},toggleDetailsFactory:function(t,e){var i=this;return function(){t&&i.$set(e,gw,!e[gw])}},rowHovered:function(t){this.tbodyRowEvtStopped(t)||this.emitTbodyRowEvent("row-hovered",t)},rowUnhovered:function(t){this.tbodyRowEvtStopped(t)||this.emitTbodyRowEvent("row-unhovered",t)},renderTbodyRowCell:function(t,e,i,n){var o=this,r=this.isStacked,s=t.key,a=t.label,l=t.isRowHeader,u=this.$createElement,d=this.hasNormalizedSlot(Ko),h=this.getFormattedValue(i,t),f=!r&&(this.isResponsive||this.stickyHeader)&&t.stickyColumn,p=f?l?sT:rw:l?"th":"td",m=i[vw]&&i[vw][s]?i[vw][s]:t.variant||null,v={class:[t.class?t.class:"",this.getTdValues(i,s,t.tdClass,"")],props:{},attrs:c({"aria-colindex":String(e+1)},l?this.getThValues(i,s,t.thAttr,"row",{}):this.getTdValues(i,s,t.tdAttr,{})),key:"row-".concat(n,"-cell-").concat(e,"-").concat(s)};f?v.props={stackedHeading:r?a:null,stickyColumn:!0,variant:m}:(v.attrs["data-label"]=r&&!Pt(a)?vr(a):null,v.attrs.role=l?"rowheader":"cell",v.attrs.scope=l?"row":null,m&&v.class.push("".concat(this.dark?"bg":"table","-").concat(m)));var b={item:i,index:n,field:t,unformatted:re(i,s,""),value:h,toggleDetails:this.toggleDetailsFactory(d,i),detailsShowing:Boolean(i[gw])};this.supportsSelectableRows&&(b.rowSelected=this.isRowSelected(n),b.selectRow=function(){return o.selectRow(n)},b.unselectRow=function(){return o.unselectRow(n)});var g=this.$_bodyFieldSlotNameCache[s],y=g?this.normalizeSlot(g,b):vr(h);return this.isStacked&&(y=[u("div",[y])]),u(p,v,[y])},renderTbodyRow:function(t,e){var i=this,n=this.computedFields,o=this.striped,r=this.primaryKey,s=this.currentPage,a=this.perPage,l=this.tbodyTrClass,u=this.tbodyTrAttr,d=this.$createElement,h=this.hasNormalizedSlot(Ko),f=t[gw]&&h,p=this.$listeners["row-clicked"]||this.hasSelectableRowClick,m=[],v=f?this.safeId("_details_".concat(e,"_")):null,b=n.map((function(n,o){return i.renderTbodyRowCell(n,o,t,e)})),g=null;s&&a&&a>0&&(g=String((s-1)*a+e+1));var y=vr(re(t,r))||null,w=y||vr(e),T=y?this.safeId("_row_".concat(y)):null,C=this.selectableRowClasses?this.selectableRowClasses(e):{},x=this.selectableRowAttrs?this.selectableRowAttrs(e):{},S=Ot(l)?l(t,"row"):l,k=Ot(u)?u(t,"row"):u;if(m.push(d(Qy,{class:[S,C,f?"b-table-has-details":""],props:{variant:t[bw]||null},attrs:c(c({id:T},k),{},{tabindex:p?"0":null,"data-pk":y||null,"aria-details":v,"aria-owns":v,"aria-rowindex":g},x),on:{mouseenter:this.rowHovered,mouseleave:this.rowUnhovered},key:"__b-table-row-".concat(w,"__"),ref:"item-rows",refInFor:!0},b)),f){var $={item:t,index:e,fields:n,toggleDetails:this.toggleDetailsFactory(h,t)};this.supportsSelectableRows&&($.rowSelected=this.isRowSelected(e),$.selectRow=function(){return i.selectRow(e)},$.unselectRow=function(){return i.unselectRow(e)});var B=d(rw,{props:{colspan:n.length},class:this.detailsTdClass},[this.normalizeSlot(Ko,$)]);o&&m.push(d("tr",{staticClass:"d-none",attrs:{"aria-hidden":"true",role:"presentation"},key:"__b-table-details-stripe__".concat(w)}));var _=Ot(this.tbodyTrClass)?this.tbodyTrClass(t,Ko):this.tbodyTrClass,D=Ot(this.tbodyTrAttr)?this.tbodyTrAttr(t,Ko):this.tbodyTrAttr;m.push(d(Qy,{staticClass:"b-table-details",class:[_],props:{variant:t[bw]||null},attrs:c(c({},D),{},{id:v,tabindex:"-1"}),key:"__b-table-details__".concat(w)},[B]))}else h&&(m.push(d()),o&&m.push(d()));return m}}}),cT=function(t){return"cell(".concat(t||"",")")},uT=ee(c(c(c({},tT),aT),{},{tbodyClass:hs(To)})),dT=i.default.extend({mixins:[lT],props:uT,beforeDestroy:function(){this.$_bodyFieldSlotNameCache=null},methods:{getTbodyTrs:function(){var t=this.$refs,e=t.tbody?t.tbody.$el||t.tbody:null,i=(t["item-rows"]||[]).map((function(t){return t.$el||t}));return e&&e.children&&e.children.length>0&&i&&i.length>0?ir(e.children).filter((function(t){return nr(i,t)})):[]},getTbodyTrIndex:function(t){if(!kr(t))return-1;var e="TR"===t.tagName?t:Er("tr",t,!0);return e?this.getTbodyTrs().indexOf(e):-1},emitTbodyRowEvent:function(t,e){if(t&&this.hasListener(t)&&e&&e.target){var i=this.getTbodyTrIndex(e.target);if(i>-1){var n=this.computedItems[i];this.$emit(t,n,i,e)}}},tbodyRowEvtStopped:function(t){return this.stopIfBusy&&this.stopIfBusy(t)},onTbodyRowKeydown:function(t){var e=t.target,i=t.keyCode;if(!this.tbodyRowEvtStopped(t)&&"TR"===e.tagName&&_r(e)&&0===e.tabIndex)if(nr([Ha,Ga],i))Bs(t),this.onTBodyRowClicked(t);else if(nr([Wa,Ra,za,Ma],i)){var n=this.getTbodyTrIndex(e);if(n>-1){Bs(t);var o=this.getTbodyTrs(),r=t.shiftKey;i===za||r&&i===Wa?ts(o[0]):i===Ma||r&&i===Ra?ts(o[o.length-1]):i===Wa&&n>0?ts(o[n-1]):i===Ra&&n0&&void 0!==arguments[0]&&arguments[0],i=this.computedFields,n=this.isSortable,o=this.isSelectable,r=this.headVariant,s=this.footVariant,a=this.headRowVariant,l=this.footRowVariant,u=this.$createElement;if(this.isStackedAlways||0===i.length)return u();var d=n||this.hasListener(Hn),h=o?this.selectAllRows:su,f=o?this.clearSelected:su,p=function(i,o){var r=i.label,s=i.labelHtml,a=i.variant,l=i.stickyColumn,p=i.key,m=null;i.label.trim()||i.headerTitle||(m=fr(i.key));var v={};d&&(v.click=function(n){t.headClicked(n,i,e)},v.keydown=function(n){var o=n.keyCode;o!==Ha&&o!==Ga||t.headClicked(n,i,e)});var b=n?t.sortTheadThAttrs(p,i,e):{},g=n?t.sortTheadThClasses(p,i,e):null,y=n?t.sortTheadThLabel(p,i,e):null,w={class:[t.fieldClasses(i),g],props:{variant:a,stickyColumn:l},style:i.thStyle||{},attrs:c(c({tabindex:d&&i.sortable?"0":null,abbr:i.headerAbbr||null,title:i.headerTitle||null,"aria-colindex":o+1,"aria-label":m},t.getThValues(null,p,i.thAttr,e?"foot":"head",{})),b),on:v,key:p},C=[gT(p),gT(p.toLowerCase()),gT()];e&&(C=[yT(p),yT(p.toLowerCase()),yT()].concat(T(C)));var x={label:r,column:p,field:i,isFoot:e,selectAllRows:h,clearSelected:f},S=t.normalizeSlot(C,x)||u("div",{domProps:Fl(s,r)}),k=y?u("span",{staticClass:"sr-only"}," (".concat(y,")")):null;return u(sT,w,[S,k].filter(ne))},m=i.map(p).filter(ne),v=[];if(e)v.push(u(Qy,{class:this.tfootTrClass,props:{variant:Pt(l)?a:l}},m));else{var b={columns:i.length,fields:i,selectAllRows:h,clearSelected:f};v.push(this.normalizeSlot(Qo,b)||u()),v.push(u(Qy,{class:this.theadTrClass,props:{variant:a}},m))}return u(e?fT:bT,{class:(e?this.tfootClass:this.theadClass)||null,props:e?{footVariant:s||r||null}:{headVariant:r||null},key:e?"bv-tfoot":"bv-thead"},v)}}}),CT=i.default.extend({methods:{renderTopRow:function(){var t=this.computedFields,e=this.stacked,i=this.tbodyTrClass,n=this.tbodyTrAttr,o=this.$createElement;return this.hasNormalizedSlot(er)&&!0!==e&&""!==e?o(Qy,{staticClass:"b-table-top-row",class:[Ot(i)?i(null,"row-top"):i],attrs:Ot(n)?n(null,"row-top"):n,key:"b-top-row"},[this.normalizeSlot(er,{columns:t.length,fields:t})]):o()}}}),xT=vs(ee(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c({},fc),tw),aw),cw),dw),fw),Cw),Fw),Pw),Lw),Mw),qw),Xw),Jw),uT),pT),wT),{})),fn),ST=i.default.extend({name:fn,mixins:[Za,Ky,pc,Cs,Iw,Qw,Zw,TT,mT,dT,Zw,xw,Kw,Ow,uw,hw,Hw,pw,CT,ew,lw,Aw],props:xT}),kT=vs(ee(c(c(c(c(c(c(c(c(c({},fc),cw),dw),Fw),Xw),Jw),uT),pT),wT)),mn),$T=i.default.extend({name:mn,mixins:[Za,Ky,pc,Cs,Iw,Qw,Zw,TT,mT,dT,uw,hw],props:kT}),BT=vs(ee(c(c(c({},fc),Xw),Jw)),vn),_T=i.default.extend({name:vn,mixins:[Za,Ky,pc,Cs,Qw,Zw],props:BT,computed:{isTableSimple:function(){return!0}}}),DT=me({components:{BTable:ST},plugins:{TableLitePlugin:me({components:{BTableLite:$T}}),TableSimplePlugin:me({components:{BTableSimple:_T,BTbody:eT,BThead:bT,BTfoot:fT,BTr:Qy,BTd:rw,BTh:sT}})}}),FT=function(t){return t>0},IT=vs({animation:hs(go),columns:hs(mo,5,FT),hideHeader:hs(ho,!1),rows:hs(mo,3,FT),showFooter:hs(ho,!1),tableProps:hs(vo,{})},cn),PT=i.default.extend({name:cn,functional:!0,props:IT,render:function(t,e){var i=e.props,n=i.animation,o=i.columns,r=t("th",[t(Gy,{props:{animation:n}})]),s=t("tr",rr(o,r)),a=t("td",[t(Gy,{props:{width:"75%",animation:n}})]),l=t("tr",rr(o,a)),u=t("tbody",rr(i.rows,l)),d=i.hideHeader?t():t("thead",[s]),h=i.showFooter?t("tfoot",[s]):t();return t(_T,{props:c({},i.tableProps)},[d,u,h])}}),OT=vs({loading:hs(ho,!1)},un),VT=me({components:{BSkeleton:Gy,BSkeletonIcon:Yy,BSkeletonImg:qy,BSkeletonTable:PT,BSkeletonWrapper:i.default.extend({name:un,functional:!0,props:OT,render:function(t,e){var i=e.data,n=e.props,o=e.slots,r=e.scopedSlots,s=o(),a=r||{},l={};return n.loading?t("div",F(i,{attrs:{role:"alert","aria-live":"polite","aria-busy":!0},staticClass:"b-skeleton-wrapper",key:"loading"}),Ts("loading",l,a,s)):Ts(Ao,l,a,s)}})}}),ET=me({components:{BSpinner:mg}}),LT=ys("value",{type:mo}),AT=LT.mixin,RT=LT.props,MT=LT.prop,HT=LT.event,zT=function(t){return!t.disabled},NT=i.default.extend({name:"BVTabButton",inject:{bvTabs:{default:function(){return{}}}},props:{controls:hs(go),id:hs(go),noKeyNav:hs(ho,!1),posInSet:hs(mo),setSize:hs(mo),tab:hs(),tabIndex:hs(mo)},methods:{focus:function(){ts(this.$refs.link)},handleEvt:function(t){if(!this.tab.disabled){var e=t.type,i=t.keyCode,n=t.shiftKey;"click"===e||"keydown"===e&&i===Ga?(Bs(t),this.$emit(Bn,t)):"keydown"!==e||this.noKeyNav||(-1!==[Wa,Na,za].indexOf(i)?(Bs(t),n||i===za?this.$emit(An,t):this.$emit(Xn,t)):-1!==[Ra,ja,Ma].indexOf(i)&&(Bs(t),n||i===Ma?this.$emit(Gn,t):this.$emit(Un,t)))}}},render:function(t){var e=this.id,i=this.tabIndex,n=this.setSize,o=this.posInSet,r=this.controls,s=this.handleEvt,a=this.tab,l=a.title,u=a.localActive,d=a.disabled,h=a.titleItemClass,f=a.titleLinkClass,p=a.titleLinkAttributes,m=t(ol,{staticClass:"nav-link",class:[{active:u&&!d,disabled:d},f,u?this.bvTabs.activeNavItemClass:null],props:{disabled:d},attrs:c(c({},p),{},{id:e,role:"tab",tabindex:i,"aria-selected":u&&!d?"true":"false","aria-setsize":n,"aria-posinset":o,"aria-controls":r}),on:{click:s,keydown:s},ref:"link"},[this.tab.normalizeSlot(tr)||l]);return t("li",{staticClass:"nav-item",class:[h],attrs:{role:"presentation"}},[m])}}),jT=Qt(Vb,["tabs","isNavBar","cardHeader"]),GT=vs(ee(c(c(c(c({},fc),RT),jT),{},{activeNavItemClass:hs(To),activeTabClass:hs(To),card:hs(ho,!1),contentClass:hs(To),end:hs(ho,!1),lazy:hs(ho,!1),navClass:hs(To),navWrapperClass:hs(To),noFade:hs(ho,!1),noKeyNav:hs(ho,!1),noNavStyle:hs(ho,!1),tag:hs(go,"div")})),bn),WT=i.default.extend({name:bn,mixins:[pc,AT,Cs],provide:function(){return{bvTabs:this}},props:GT,data:function(){return{currentTab:lr(this[MT],-1),tabs:[],registeredTabs:[]}},computed:{fade:function(){return!this.noFade},localNavClass:function(){var t=[];return this.card&&this.vertical&&t.push("card-header","h-100","border-bottom-0","rounded-0"),[].concat(t,[this.navClass])}},watch:(ng={},a(ng,MT,(function(t,e){if(t!==e){t=lr(t,-1),e=lr(e,0);var i=this.tabs[t];i&&!i.disabled?this.activateTab(i):t0&&void 0!==arguments[0])||arguments[0];if(this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,e){var i=function(){t.$nextTick((function(){xr((function(){t.updateTabs()}))}))};this.$_observer=au(this.$refs.content,i,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["id"]})}},getTabs:function(){var t=this.registeredTabs.filter((function(t){return 0===t.$children.filter((function(t){return t._isTab})).length})),e=[];if(M&&t.length>0){var i=t.map((function(t){return"#".concat(t.safeId())})).join(", ");e=Pr(i,this.$el).map((function(t){return t.id})).filter(ne)}return zw(t,(function(t,i){return e.indexOf(t.safeId())-e.indexOf(i.safeId())}))},updateTabs:function(){var t=this.getTabs(),e=t.indexOf(t.slice().reverse().find((function(t){return t.localActive&&!t.disabled})));if(e<0){var i=this.currentTab;i>=t.length?e=t.indexOf(t.slice().reverse().find(zT)):t[i]&&!t[i].disabled&&(e=i)}e<0&&(e=t.indexOf(t.find(zT))),t.forEach((function(t,i){t.localActive=i===e})),this.tabs=t,this.currentTab=e},getButtonForTab:function(t){return(this.$refs.buttons||[]).find((function(e){return e.tab===t}))},updateButton:function(t){var e=this.getButtonForTab(t);e&&e.$forceUpdate&&e.$forceUpdate()},activateTab:function(t){var e=this.currentTab,i=this.tabs,n=!1;if(t){var o=i.indexOf(t);if(o!==e&&o>-1&&!t.disabled){var r=new BvEvent("activate-tab",{cancelable:!0,vueTarget:this,componentId:this.safeId()});this.$emit(r.type,o,e,r),r.defaultPrevented||(this.currentTab=o,n=!0)}}return n||this[MT]===e||this.$emit(HT,e),n},deactivateTab:function(t){return!!t&&this.activateTab(this.tabs.filter((function(e){return e!==t})).find(zT))},focusButton:function(t){var e=this;this.$nextTick((function(){ts(e.getButtonForTab(t))}))},emitTabClick:function(t,e){Nt(e)&&t&&t.$emit&&!t.disabled&&t.$emit(Bn,e)},clickTab:function(t,e){this.activateTab(t),this.emitTabClick(t,e)},firstTab:function(t){var e=this.tabs.find(zT);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))},previousTab:function(t){var e=Us(this.currentTab,0),i=this.tabs.slice(0,e).reverse().find(zT);this.activateTab(i)&&t&&(this.focusButton(i),this.emitTabClick(i,t))},nextTab:function(t){var e=Us(this.currentTab,-1),i=this.tabs.slice(e+1).find(zT);this.activateTab(i)&&t&&(this.focusButton(i),this.emitTabClick(i,t))},lastTab:function(t){var e=this.tabs.slice().reverse().find(zT);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))}},render:function(t){var e=this,i=this.align,n=this.card,o=this.end,r=this.fill,s=this.firstTab,l=this.justified,c=this.lastTab,u=this.nextTab,d=this.noKeyNav,h=this.noNavStyle,f=this.pills,p=this.previousTab,m=this.small,v=this.tabs,b=this.vertical,g=v.find((function(t){return t.localActive&&!t.disabled})),y=v.find((function(t){return!t.disabled})),w=v.map((function(i,n){var o,r=i.safeId,l=null;return d||(l=-1,(i===g||!g&&i===y)&&(l=null)),t(NT,{props:{controls:r?r():null,id:i.controlledBy||(r?r("_BV_tab_button_"):null),noKeyNav:d,posInSet:n+1,setSize:v.length,tab:i,tabIndex:l},on:(o={},a(o,Bn,(function(t){e.clickTab(i,t)})),a(o,An,s),a(o,Xn,p),a(o,Un,u),a(o,Gn,c),o),key:i._uid||n,ref:"buttons",refInFor:!0})})),T=t(Eb,{class:this.localNavClass,attrs:{role:"tablist",id:this.safeId("_BV_tab_controls_")},props:{fill:r,justified:l,align:i,tabs:!h&&!f,pills:!h&&f,vertical:b,small:m,cardHeader:n&&!b},ref:"nav"},[this.normalizeSlot("tabs-start")||t(),w,this.normalizeSlot("tabs-end")||t()]);T=t("div",{class:[{"card-header":n&&!b&&!o,"card-footer":n&&!b&&o,"col-auto":b},this.navWrapperClass],key:"bv-tabs-nav"},[T]);var C=this.normalizeSlot()||[],x=t();0===C.length&&(x=t("div",{class:["tab-pane","active",{"card-body":n}],key:"bv-empty-tab"},this.normalizeSlot(Ro)));var S=t("div",{staticClass:"tab-content",class:[{col:b},this.contentClass],attrs:{id:this.safeId("_BV_tab_container_")},key:"bv-content",ref:"content"},[C,x]);return t(this.tag,{staticClass:"tabs",class:{row:b,"no-gutters":b&&n},attrs:{id:this.safeId()}},[o?S:t(),T,o?t():S])}}),YT="active",UT="update:active",qT=vs(ee(c(c({},fc),{},(a(og={},YT,hs(ho,!1)),a(og,"buttonId",hs(go)),a(og,"disabled",hs(ho,!1)),a(og,"lazy",hs(ho,!1)),a(og,"noBody",hs(ho,!1)),a(og,"tag",hs(go,"div")),a(og,"title",hs(go)),a(og,"titleItemClass",hs(To)),a(og,"titleLinkAttributes",hs(vo)),a(og,"titleLinkClass",hs(To)),og))),hn),KT=me({components:{BTabs:WT,BTab:i.default.extend({name:hn,mixins:[pc,Cs],inject:{bvTabs:{default:function(){return{}}}},props:qT,data:function(){return{localActive:this.active&&!this.disabled}},computed:{_isTab:function(){return!0},tabClasses:function(){var t=this.localActive;return[{active:t,disabled:this.disabled,"card-body":this.bvTabs.card&&!this.noBody},t?this.bvTabs.activeTabClass:null]},controlledBy:function(){return this.buttonId||this.safeId("__BV_tab_button__")},computedNoFade:function(){return!this.bvTabs.fade},computedLazy:function(){return this.bvTabs.lazy||this.lazy}},watch:(rg={},a(rg,YT,(function(t,e){t!==e&&(t?this.activate():this.deactivate()||this.$emit(UT,this.localActive))})),a(rg,"disabled",(function(t,e){if(t!==e){var i=this.bvTabs.firstTab;t&&this.localActive&&i&&(this.localActive=!1,i())}})),a(rg,"localActive",(function(t){this.$emit(UT,t)})),rg),mounted:function(){this.registerTab()},updated:function(){var t=this.bvTabs.updateButton;t&&this.hasNormalizedSlot(tr)&&t(this)},beforeDestroy:function(){this.unregisterTab()},methods:{registerTab:function(){var t=this.bvTabs.registerTab;t&&t(this)},unregisterTab:function(){var t=this.bvTabs.unregisterTab;t&&t(this)},activate:function(){var t=this.bvTabs.activateTab;return!(!t||this.disabled)&&t(this)},deactivate:function(){var t=this.bvTabs.deactivateTab;return!(!t||!this.localActive)&&t(this)}},render:function(t){var e=this.localActive,i=t(this.tag,{staticClass:"tab-pane",class:this.tabClasses,directives:[{name:"show",value:e}],attrs:{role:"tabpanel",id:this.safeId(),"aria-hidden":e?"false":"true","aria-labelledby":this.controlledBy||null},ref:"panel"},[e||!this.computedLazy?this.normalizeSlot():t()]);return t(Ls,{props:{mode:"out-in",noFade:this.computedNoFade}},[i])}})}}),XT=me({components:{BTime:av}});function ZT(t){return(ZT="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function JT(t){return function(t){if(Array.isArray(t)){for(var e=0,i=new Array(t.length);e1&&void 0!==arguments[1]&&arguments[1],i=t.to,n=t.from;if(i&&(n||!1!==e)&&this.transports[i])if(e)this.transports[i]=[];else{var o=this.$_getTransportIndex(t);if(o>=0){var r=this.transports[i].slice(0);r.splice(o,1),this.transports[i]=r}}},registerTarget:function(t,e,i){QT&&(this.trackInstances&&!i&&this.targets[t]&&console.warn("[portal-vue]: Target ".concat(t," already exists")),this.$set(this.targets,t,Object.freeze([e])))},unregisterTarget:function(t){this.$delete(this.targets,t)},registerSource:function(t,e,i){QT&&(this.trackInstances&&!i&&this.sources[t]&&console.warn("[portal-vue]: source ".concat(t," already exists")),this.$set(this.sources,t,Object.freeze([e])))},unregisterSource:function(t){this.$delete(this.sources,t)},hasTarget:function(t){return!(!this.targets[t]||!this.targets[t][0])},hasSource:function(t){return!(!this.sources[t]||!this.sources[t][0])},hasContentFor:function(t){return!!this.transports[t]&&!!this.transports[t].length},$_getTransportIndex:function(t){var e=t.to,i=t.from;for(var n in this.transports[e])if(this.transports[e][n].from===i)return+n;return-1}}}))(nC),aC=1,lC=i.default.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(aC++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var t=this;this.$nextTick((function(){sC.registerSource(t.name,t)}))},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){sC.unregisterSource(this.name),this.clear()},watch:{to:function(t,e){e&&e!==t&&this.clear(e),this.sendUpdate()}},methods:{clear:function(t){var e={from:this.name,to:t||this.to};sC.close(e)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(t){return"function"==typeof t?t(this.slotProps):t},sendUpdate:function(){var t=this.normalizeSlots();if(t){var e={from:this.name,to:this.to,passengers:JT(t),order:this.order};sC.open(e)}else this.clear()}},render:function(t){var e=this.$slots.default||this.$scopedSlots.default||[],i=this.tag;return e&&this.disabled?e.length<=1&&this.slim?this.normalizeOwnChildren(e)[0]:t(i,[this.normalizeOwnChildren(e)]):this.slim?t():t(i,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),cC=i.default.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:sC.transports,firstRender:!0}},created:function(){var t=this;this.$nextTick((function(){sC.registerTarget(t.name,t)}))},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(t,e){sC.unregisterTarget(e),sC.registerTarget(t,this)}},mounted:function(){var t=this;this.transition&&this.$nextTick((function(){t.firstRender=!1}))},beforeDestroy:function(){sC.unregisterTarget(this.name)},computed:{ownTransports:function(){var t=this.transports[this.name]||[];return this.multiple?t:0===t.length?[]:[t[t.length-1]]},passengers:function(){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.reduce((function(t,i){var n=i.passengers[0],o="function"==typeof n?n(e):i.passengers;return t.concat(o)}),[])}(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var t=this.slim&&!this.transition;return t&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),t}},render:function(t){var e=this.noWrapper(),i=this.children(),n=this.transition||this.tag;return e?i[0]:this.slim&&!n?t():t(n,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},i)}}),uC=0,dC=["disabled","name","order","slim","slotProps","tag","to"],hC=["multiple","transition"],fC=(i.default.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(uC++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!=typeof document){var t=document.querySelector(this.mountTo);if(t){var e=this.$props;if(sC.targets[e.name])e.bail?console.warn("[portal-vue]: Target ".concat(e.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=sC.targets[e.name];else{var i=e.append;if(i){var n="string"==typeof i?i:"DIV",o=document.createElement(n);t.appendChild(o),t=o}var r=tC(this.$props,hC);r.slim=this.targetSlim,r.tag=this.targetTag,r.slotProps=this.targetSlotProps,r.name=this.to,this.portalTarget=new cC({el:t,parent:this.$parent||this,propsData:r})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var t=this.portalTarget;if(this.append){var e=t.$el;e.parentNode.removeChild(e)}t.$destroy()},render:function(t){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),t();if(!this.$scopedSlots.manual){var e=tC(this.$props,dC);return t(lC,{props:e,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var i=this.$scopedSlots.manual({to:this.to});return Array.isArray(i)&&(i=i[0]),i||t()}}),i.default.extend({mixins:[Cs],data:function(){return{name:"b-toaster"}},methods:{onAfterEnter:function(t){var e=this;xr((function(){Mr(t,"".concat(e.name,"-enter-to"))}))}},render:function(t){return t("transition-group",{props:{tag:"div",name:this.name},on:{afterEnter:this.onAfterEnter}},this.normalizeSlot())}})),pC=vs({ariaAtomic:hs(go),ariaLive:hs(go),name:hs(go,void 0,!0),role:hs(go)},xn),mC=i.default.extend({name:xn,mixins:[Ja],props:pC,data:function(){return{doRender:!1,dead:!1,staticName:this.name}},beforeMount:function(){var t=this,e=this.name;this.staticName=e,sC.hasTarget(e)?(le('A "" with name "'.concat(e,'" already exists in the document.'),xn),this.dead=!0):(this.doRender=!0,this.$once(oo,(function(){t.emitOnRoot(Ds(xn,In),e)})))},destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},render:function(t){var e=t("div",{class:["d-none",{"b-dead-toaster":this.dead}]});if(this.doRender){var i=t(cC,{staticClass:"b-toaster-slot",props:{name:this.staticName,multiple:!0,tag:"div",slim:!1,transition:fC}});e=t("div",{staticClass:"b-toaster",class:[this.staticName],attrs:{id:this.staticName,role:this.role||null,"aria-live":this.ariaLive,"aria-atomic":this.ariaAtomic}},[i])}return e}}),vC=ys("visible",{type:ho,defaultValue:!1,event:$n}),bC=vC.mixin,gC=vC.props,yC=vC.prop,wC=vC.event,TC=Jt(nl,["href","to"]),CC=vs(ee(c(c(c(c({},fc),gC),TC),{},{appendToast:hs(ho,!1),autoHideDelay:hs(_o,5e3),bodyClass:hs(To),headerClass:hs(To),isStatus:hs(ho,!1),noAutoHide:hs(ho,!1),noCloseButton:hs(ho,!1),noFade:hs(ho,!1),noHoverPause:hs(ho,!1),solid:hs(ho,!1),static:hs(ho,!1),title:hs(go),toastClass:hs(To),toaster:hs(go,"b-toaster-top-right"),variant:hs(go)})),Cn),xC=i.default.extend({name:Cn,mixins:[Za,pc,bC,Ja,Cs,ib],inheritAttrs:!1,props:CC,data:function(){return{isMounted:!1,doRender:!1,localShow:!1,isTransitioning:!1,isHiding:!1,order:0,dismissStarted:0,resumeDismiss:0}},computed:{toastClasses:function(){var t=this.appendToast,e=this.variant;return a({"b-toast-solid":this.solid,"b-toast-append":t,"b-toast-prepend":!t},"b-toast-".concat(e),e)},slotScope:function(){return{hide:this.hide}},computedDuration:function(){return Us(lr(this.autoHideDelay,0),1e3)},computedToaster:function(){return String(this.toaster)},transitionHandlers:function(){return{beforeEnter:this.onBeforeEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,afterLeave:this.onAfterLeave}},computedAttrs:function(){return c(c({},this.bvAttrs),{},{id:this.safeId(),tabindex:"0"})}},watch:(eC={},a(eC,yC,(function(t){this[t?"show":"hide"]()})),a(eC,"localShow",(function(t){t!==this[yC]&&this.$emit(wC,t)})),a(eC,"toaster",(function(){this.$nextTick(this.ensureToaster)})),a(eC,"static",(function(t){t&&this.localShow&&this.ensureToaster()})),eC),created:function(){this.$_dismissTimer=null},mounted:function(){var t=this;this.isMounted=!0,this.$nextTick((function(){t[yC]&&xr((function(){t.show()}))})),this.listenOnRoot(Fs(Cn,to),(function(e){e===t.safeId()&&t.show()})),this.listenOnRoot(Fs(Cn,Nn),(function(e){e&&e!==t.safeId()||t.hide()})),this.listenOnRoot(Ds(xn,In),(function(e){e===t.computedToaster&&t.hide()}))},beforeDestroy:function(){this.clearDismissTimer()},methods:{show:function(){var t=this;if(!this.localShow){this.ensureToaster();var e=this.buildEvent(to);this.emitEvent(e),this.dismissStarted=this.resumeDismiss=0,this.order=Date.now()*(this.appendToast?1:-1),this.isHiding=!1,this.doRender=!0,this.$nextTick((function(){xr((function(){t.localShow=!0}))}))}},hide:function(){var t=this;if(this.localShow){var e=this.buildEvent(Nn);this.emitEvent(e),this.setHoverHandler(!1),this.dismissStarted=this.resumeDismiss=0,this.clearDismissTimer(),this.isHiding=!0,xr((function(){t.localShow=!1}))}},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new BvEvent(t,c(c({cancelable:!1,target:this.$el||null,relatedTarget:null},e),{},{vueTarget:this,componentId:this.safeId()}))},emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(Cn,e),t),this.$emit(e,t)},ensureToaster:function(){if(!this.static){var t=this.computedToaster;if(!sC.hasTarget(t)){var e=document.createElement("div");document.body.appendChild(e),new mC({parent:this.$root,propsData:{name:t}}).$mount(e)}}},startDismissTimer:function(){this.clearDismissTimer(),this.noAutoHide||(this.$_dismissTimer=setTimeout(this.hide,this.resumeDismiss||this.computedDuration),this.dismissStarted=Date.now(),this.resumeDismiss=0)},clearDismissTimer:function(){clearTimeout(this.$_dismissTimer),this.$_dismissTimer=null},setHoverHandler:function(t){var e=this.$refs["b-toast"];$s(t,e,"mouseenter",this.onPause,lo),$s(t,e,"mouseleave",this.onUnPause,lo)},onPause:function(){if(!this.noAutoHide&&!this.noHoverPause&&this.$_dismissTimer&&!this.resumeDismiss){var t=Date.now()-this.dismissStarted;t>0&&(this.clearDismissTimer(),this.resumeDismiss=Us(this.computedDuration-t,1e3))}},onUnPause:function(){this.noAutoHide||this.noHoverPause||!this.resumeDismiss?this.resumeDismiss=this.dismissStarted=0:this.startDismissTimer()},onLinkClick:function(){var t=this;this.$nextTick((function(){xr((function(){t.hide()}))}))},onBeforeEnter:function(){this.isTransitioning=!0},onAfterEnter:function(){this.isTransitioning=!1;var t=this.buildEvent(eo);this.emitEvent(t),this.startDismissTimer(),this.setHoverHandler(!0)},onBeforeLeave:function(){this.isTransitioning=!0},onAfterLeave:function(){this.isTransitioning=!1,this.order=0,this.resumeDismiss=this.dismissStarted=0;var t=this.buildEvent(zn);this.emitEvent(t),this.doRender=!1},makeToast:function(t){var e=this,i=this.title,n=this.slotScope,o=la(this),r=[],s=this.normalizeSlot("toast-title",n);s?r.push(s):i&&r.push(t("strong",{staticClass:"mr-2"},i)),this.noCloseButton||r.push(t(Ps,{staticClass:"ml-auto mb-1",on:{click:function(){e.hide()}}}));var a=t();r.length>0&&(a=t("header",{staticClass:"toast-header",class:this.headerClass},r));var l=t(o?ol:"div",{staticClass:"toast-body",class:this.bodyClass,props:o?ps(TC,this):{},on:o?{click:this.onLinkClick}:{}},this.normalizeSlot(Ao,n));return t("div",{staticClass:"toast",class:this.toastClass,attrs:this.computedAttrs,key:"toast-".concat(this._uid),ref:"toast"},[a,l])}},render:function(t){if(!this.doRender||!this.isMounted)return t();var e=this.order,i=this.static,n=this.isHiding,o=this.isStatus,r="b-toast-".concat(this._uid),s=t("div",{staticClass:"b-toast",class:this.toastClasses,attrs:c(c({},i?{}:this.scopedStyleAttrs),{},{id:this.safeId("_toast_outer"),role:n?null:o?"status":"alert","aria-live":n?null:o?"polite":"assertive","aria-atomic":n?null:"true"}),key:r,ref:"b-toast"},[t(Ls,{props:{noFade:this.noFade},on:this.transitionHandlers},[this.localShow?this.makeToast(t):t()])]);return t(lC,{props:{name:r,to:this.computedToaster,order:e,slim:!0,disabled:i}},[s])}}),SC="$bvToast",kC=["id"].concat(T(Kt(Qt(CC,["static","visible"])))),$C={toastContent:"default",title:"toast-title"},BC=function(t){return kC.reduce((function(e,i){return Ft(t[i])||(e[i]=t[i]),e}),{})},_C=me({components:{BToast:xC,BToaster:mC},plugins:{BVToastPlugin:me({plugins:{plugin:function(t){var e=t.extend({name:"BVToastPop",extends:xC,destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},mounted:function(){var t=this,e=function(){t.localShow=!1,t.doRender=!1,t.$nextTick((function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))}))};this.$parent.$once(ro,e),this.$once(zn,e),this.listenOnRoot(Ds(xn,In),(function(i){i===t.toaster&&e()}))}}),i=function(t,i){if(!ce(SC)){var n=new e({parent:i,propsData:c(c(c({},BC(rs(Cn))),Qt(t,Kt($C))),{},{static:!1,visible:!0})});Kt($C).forEach((function(e){var o=t[e];Ft(o)||("title"===e&&Et(o)&&(o=[i.$createElement("strong",{class:"mr-2"},o)]),n.$slots[$C[e]]=or(o))}));var o=document.createElement("div");document.body.appendChild(o),n.$mount(o)}},n=function(){function t(e){o(this,t),Gt(this,{_vm:e,_root:e.$root}),Yt(this,{_vm:{enumerable:!0,configurable:!1,writable:!1},_root:{enumerable:!0,configurable:!1,writable:!1}})}return s(t,[{key:"toast",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&!ce(SC)&&i(c(c({},BC(e)),{},{toastContent:t}),this._vm)}},{key:"show",value:function(t){t&&this._root.$emit(Fs(Cn,to),t)}},{key:"hide",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this._root.$emit(Fs(Cn,Nn),t)}}]),t}();t.mixin({beforeCreate:function(){this._bv__toast=new n(this)}}),Xt(t.prototype,SC)||Ut(t.prototype,SC,{get:function(){return this&&this._bv__toast||le('"'.concat(SC,'" must be accessed from a Vue instance "this" context.'),Cn),this._bv__toast}})}}})}}),DC="__BV_Tooltip__",FC={focus:!0,hover:!0,click:!0,blur:!0,manual:!0},IC=/^html$/i,PC=/^noninteractive$/i,OC=/^nofade$/i,VC=/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i,EC=/^(window|viewport|scrollParent)$/i,LC=/^d\d+$/i,AC=/^ds\d+$/i,RC=/^dh\d+$/i,MC=/^o-?\d+$/i,HC=/^v-.+$/i,zC=/\s+/,NC=function(t,e,i){if(M){var n=function(t,e){var i={title:void 0,trigger:"",placement:"top",fallbackPlacement:"flip",container:!1,animation:!0,offset:0,id:null,html:!1,interactive:!0,disabled:!1,delay:rs(Sn,"delay",50),boundary:String(rs(Sn,"boundary","scrollParent")),boundaryPadding:lr(rs(Sn,"boundaryPadding",5),0),variant:rs(Sn,"variant"),customClass:rs(Sn,"customClass")};if(Et(t.value)||Lt(t.value)||Ot(t.value)?i.title=t.value:Ht(t.value)&&(i=c(c({},i),t.value)),Ft(i.title)){var n=e.data||{};i.title=n.attrs&&!Pt(n.attrs.title)?n.attrs.title:void 0}Ht(i.delay)||(i.delay={show:lr(i.delay,0),hide:lr(i.delay,0)}),t.arg&&(i.container="#".concat(t.arg)),Kt(t.modifiers).forEach((function(t){if(IC.test(t))i.html=!0;else if(PC.test(t))i.interactive=!1;else if(OC.test(t))i.animation=!1;else if(VC.test(t))i.placement=t;else if(EC.test(t))t="scrollparent"===t?"scrollParent":t,i.boundary=t;else if(LC.test(t)){var e=lr(t.slice(1),0);i.delay.show=e,i.delay.hide=e}else AC.test(t)?i.delay.show=lr(t.slice(2),0):RC.test(t)?i.delay.hide=lr(t.slice(2),0):MC.test(t)?i.offset=lr(t.slice(1),0):HC.test(t)&&(i.variant=t.slice(2)||null)}));var o={};return or(i.trigger||"").filter(ne).join(" ").trim().toLowerCase().split(zC).forEach((function(t){FC[t]&&(o[t]=!0)})),Kt(t.modifiers).forEach((function(t){t=t.toLowerCase(),FC[t]&&(o[t]=!0)})),i.trigger=Kt(o).join(" "),"blur"===i.trigger&&(i.trigger="focus"),i.trigger||(i.trigger="hover focus"),i}(e,i);if(!t[DC]){var o=i.context;t[DC]=new Xg({parent:o,_scopeId:eb(o,void 0)}),t[DC].__bv_prev_data__={},t[DC].$on(to,(function(){Ot(n.title)&&t[DC].updateData({title:n.title(t)})}))}var r={title:n.title,triggers:n.trigger,placement:n.placement,fallbackPlacement:n.fallbackPlacement,variant:n.variant,customClass:n.customClass,container:n.container,boundary:n.boundary,delay:n.delay,offset:n.offset,noFade:!n.animation,id:n.id,interactive:n.interactive,disabled:n.disabled,html:n.html},s=t[DC].__bv_prev_data__;if(t[DC].__bv_prev_data__=r,!Ua(r,s)){var a={target:t};Kt(r).forEach((function(e){r[e]!==s[e]&&(a[e]="title"===e&&Ot(r[e])?r[e](t):r[e])})),t[DC].updateData(a)}}},jC=me({directives:{VBTooltip:{bind:function(t,e,i){NC(t,e,i)},componentUpdated:function(t,e,i){i.context.$nextTick((function(){NC(t,e,i)}))},unbind:function(t){!function(t){t[DC]&&(t[DC].$destroy(),t[DC]=null),delete t[DC]}(t)}}}}),GC=me({plugins:{AlertPlugin:Ws,AspectPlugin:ia,AvatarPlugin:xl,BadgePlugin:_l,BreadcrumbPlugin:Ll,ButtonPlugin:Al,ButtonGroupPlugin:Hl,ButtonToolbarPlugin:Gl,CalendarPlugin:Cc,CardPlugin:ru,CarouselPlugin:wu,CollapsePlugin:cd,DropdownPlugin:tf,EmbedPlugin:rf,FormPlugin:gf,FormCheckboxPlugin:Jf,FormDatepickerPlugin:mp,FormFilePlugin:Bp,FormGroupPlugin:Rp,FormInputPlugin:Zp,FormRadioPlugin:tm,FormRatingPlugin:dm,FormSelectPlugin:km,FormSpinbuttonPlugin:Vm,FormTagsPlugin:qm,FormTextareaPlugin:Zm,FormTimepickerPlugin:bv,ImagePlugin:gv,InputGroupPlugin:_v,JumbotronPlugin:Pv,LayoutPlugin:Av,LinkPlugin:Rv,ListGroupPlugin:Gv,MediaPlugin:Xv,ModalPlugin:Ob,NavPlugin:Wb,NavbarPlugin:fg,OverlayPlugin:yg,PaginationPlugin:Vg,PaginationNavPlugin:Rg,PopoverPlugin:wy,ProgressPlugin:ky,SidebarPlugin:Ny,SkeletonPlugin:VT,SpinnerPlugin:ET,TablePlugin:DT,TabsPlugin:KT,TimePlugin:XT,ToastPlugin:_C,TooltipPlugin:me({components:{BTooltip:ey},plugins:{VBTooltipPlugin:jC}})}}),WC=me({directives:{VBHover:np}}),YC=me({directives:{VBModal:Bb}}),UC="active",qC=".nav-link",KC=".nav-item",XC=".list-group-item",ZC=".dropdown-item",JC=Ds("BVScrollspy","activate"),QC="position",tx={element:"body",offset:10,method:"auto",throttle:75},ex={element:"(string|element|component)",offset:"number",method:"string",throttle:"number"},ix=["webkitTransitionEnd","transitionend","otransitionend","oTransitionEnd"],nx=function(t){return function(t){return Object.prototype.toString.call(t)}(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()},ox=function(){function t(e,i,n){o(this,t),this.$el=e,this.$scroller=null,this.$selector=[qC,XC,ZC].join(","),this.$offsets=[],this.$targets=[],this.$activeTarget=null,this.$scrollHeight=0,this.$resizeTimeout=null,this.$scrollerObserver=null,this.$targetsObserver=null,this.$root=n||null,this.$config=null,this.updateConfig(i)}return s(t,[{key:"updateConfig",value:function(t,e){this.$scroller&&(this.unlisten(),this.$scroller=null);var i=c(c({},this.constructor.Default),t);if(e&&(this.$root=e),function(t,e,i){for(var n in i)if(Xt(i,n)){var o=i[n],r=e[n],s=r&&kr(r)?"element":nx(r);s=r&&r._isVue?"component":s,new RegExp(o).test(s)||le("".concat(t,': Option "').concat(n,'" provided type "').concat(s,'" but expected type "').concat(o,'"'))}}(this.constructor.Name,i,this.constructor.DefaultType),this.$config=i,this.$root){var n=this;this.$root.$nextTick((function(){n.listen()}))}else this.listen()}},{key:"dispose",value:function(){this.unlisten(),clearTimeout(this.$resizeTimeout),this.$resizeTimeout=null,this.$el=null,this.$config=null,this.$scroller=null,this.$selector=null,this.$offsets=null,this.$targets=null,this.$activeTarget=null,this.$scrollHeight=null}},{key:"listen",value:function(){var t=this,e=this.getScroller();e&&"BODY"!==e.tagName&&Ss(e,"scroll",this,lo),Ss(window,"scroll",this,lo),Ss(window,"resize",this,lo),Ss(window,"orientationchange",this,lo),ix.forEach((function(e){Ss(window,e,t,lo)})),this.setObservers(!0),this.handleEvent("refresh")}},{key:"unlisten",value:function(){var t=this,e=this.getScroller();this.setObservers(!1),e&&"BODY"!==e.tagName&&ks(e,"scroll",this,lo),ks(window,"scroll",this,lo),ks(window,"resize",this,lo),ks(window,"orientationchange",this,lo),ix.forEach((function(e){ks(window,e,t,lo)}))}},{key:"setObservers",value:function(t){var e=this;this.$scrollerObserver&&this.$scrollerObserver.disconnect(),this.$targetsObserver&&this.$targetsObserver.disconnect(),this.$scrollerObserver=null,this.$targetsObserver=null,t&&(this.$targetsObserver=au(this.$el,(function(){e.handleEvent("mutation")}),{subtree:!0,childList:!0,attributes:!0,attributeFilter:["href"]}),this.$scrollerObserver=au(this.getScroller(),(function(){e.handleEvent("mutation")}),{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["id","style","class"]}))}},{key:"handleEvent",value:function(t){var e=Et(t)?t:t.type,i=this;"scroll"===e?(this.$scrollerObserver||this.listen(),this.process()):/(resize|orientationchange|mutation|refresh)/.test(e)&&(i.$resizeTimeout||(i.$resizeTimeout=setTimeout((function(){i.refresh(),i.process(),i.$resizeTimeout=null}),i.$config.throttle)))}},{key:"refresh",value:function(){var t=this,e=this.getScroller();if(e){var i=e!==e.window?QC:"offset",n="auto"===this.$config.method?i:this.$config.method,o=n===QC?Jr:Zr,r=n===QC?this.getScrollTop():0;return this.$offsets=[],this.$targets=[],this.$scrollHeight=this.getScrollHeight(),Pr(this.$selector,this.$el).map((function(t){return jr(t,"href")})).filter((function(t){return t&&yt.test(t||"")})).map((function(t){var i=t.replace(yt,"$1").trim();if(!i)return null;var n=Or(i,e);return n&&Dr(n)?{offset:lr(o(n).top,0)+r,target:i}:null})).filter(ne).sort((function(t,e){return t.offset-e.offset})).reduce((function(e,i){return e[i.target]||(t.$offsets.push(i.offset),t.$targets.push(i.target),e[i.target]=!0),e}),{}),this}}},{key:"process",value:function(){var t=this.getScrollTop()+this.$config.offset,e=this.getScrollHeight(),i=this.$config.offset+e-this.getOffsetHeight();if(this.$scrollHeight!==e&&this.refresh(),t>=i){var n=this.$targets[this.$targets.length-1];this.$activeTarget!==n&&this.activate(n)}else{if(this.$activeTarget&&t0)return this.$activeTarget=null,void this.clear();for(var o=this.$offsets.length;o--;){this.$activeTarget!==this.$targets[o]&&t>=this.$offsets[o]&&(Ft(this.$offsets[o+1])||t0&&this.$root&&this.$root.$emit(JC,t,i)}},{key:"clear",value:function(){var t=this;Pr("".concat(this.$selector,", ").concat(KC),this.$el).filter((function(t){return Hr(t,UC)})).forEach((function(e){return t.setActiveState(e,!1)}))}},{key:"setActiveState",value:function(t,e){t&&(e?Rr(t,UC):Mr(t,UC))}}],[{key:"Name",get:function(){return"v-b-scrollspy"}},{key:"Default",get:function(){return tx}},{key:"DefaultType",get:function(){return ex}}]),t}(),rx="__BV_ScrollSpy__",sx=/^\d+$/,ax=/^(auto|position|offset)$/,lx=function(t,e,i){if(M){var n=function(t){var e={};return t.arg&&(e.element="#".concat(t.arg)),Kt(t.modifiers).forEach((function(t){sx.test(t)?e.offset=lr(t,0):ax.test(t)&&(e.method=t)})),Et(t.value)?e.element=t.value:Lt(t.value)?e.offset=Js(t.value):Mt(t.value)&&Kt(t.value).filter((function(t){return!!ox.DefaultType[t]})).forEach((function(i){e[i]=t.value[i]})),e}(e);t[rx]?t[rx].updateConfig(n,i.context.$root):t[rx]=new ox(t,n,i.context.$root)}},cx={install:pe({plugins:{componentsPlugin:GC,directivesPlugin:me({plugins:{VBHoverPlugin:WC,VBModalPlugin:YC,VBPopoverPlugin:yy,VBScrollspyPlugin:me({directives:{VBScrollspy:{bind:function(t,e,i){lx(t,e,i)},inserted:function(t,e,i){lx(t,e,i)},update:function(t,e,i){e.value!==e.oldValue&&lx(t,e,i)},componentUpdated:function(t,e,i){e.value!==e.oldValue&&lx(t,e,i)},unbind:function(t){!function(t){t[rx]&&(t[rx].dispose(),t[rx]=null,delete t[rx])}(t)}}}}),VBTogglePlugin:ld,VBTooltipPlugin:jC,VBVisiblePlugin:me({directives:{VBVisible:Kc}})}})}}),NAME:"BootstrapVue"};return iC=cx,V&&window.Vue&&window.Vue.use(iC),V&&iC.NAME&&(window[iC.NAME]=iC),cx}));
+//# sourceMappingURL=bootstrap-vue.min.js.map
\ No newline at end of file
diff --git a/src/renderer/js/bootstrap.min.js b/src/renderer/lib/bootstrap.min.js
similarity index 100%
rename from src/renderer/js/bootstrap.min.js
rename to src/renderer/lib/bootstrap.min.js
diff --git a/src/renderer/lib/fast-plural-rules.js b/src/renderer/lib/fast-plural-rules.js
new file mode 100644
index 00000000..b0b5c857
--- /dev/null
+++ b/src/renderer/lib/fast-plural-rules.js
@@ -0,0 +1 @@
+!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).fastPluralRules={})}(this,(function(n){"use strict";var e=[function(){return 0},function(n){return 1===n?0:1},function(n){return n<=1?0:1},function(n){return n%10==1&&n%100!=11?1:n%10!=0?2:0},function(n){return 1===n||11===n?0:2===n||12===n?1:n>2&&n<20?2:3},function(n){return 1===n?0:0===n||n%100>0&&n%100<20?1:2},function(n){return n%10==1&&n%100!=11?0:n%10>=2&&(n%100<10||n%100>=20)?2:1},function(n){return n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return 1===n?0:n>=2&&n<=4?1:2},function(n){return 1===n?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return n%100==1?0:n%100==2?1:n%100==3||n%100==4?2:3},function(n){return 1===n?0:2===n?1:n>2&&n<7?2:n>6&&n<11?3:4},function(n){return 1===n?0:2===n?1:n%100>=3&&n%100<=10?2:n%100>=11?3:0!==n?4:5},function(n){return 1===n?0:0===n||n%100>0&&n%100<11?1:n%100>10&&n%100<20?2:3},function(n){return n%10==1?0:n%10==2?1:2},function(n){return n%10==1&&n%100!=11?0:1},function(n){return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?0:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?1:n%10!=3&&n%10!=4&&n%10!=9||n%100==13||n%100==73||n%100==93||n%100==14||n%100==74||n%100==94||n%100==19||n%100==79||n%100==99?0!==n&&n%1e6==0?3:4:2},function(n){return 0!==n?1:0},function(n){return 1===n?1:2===n?2:3===n?3:6===n?4:0!==n?5:0},function(n){return 1===n?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return 1===n?0:2===n?1:3===n?2:3},function(n){return n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return 0===n?0:1===n?1:2}],r={ach:2,af:1,ak:2,am:2,an:1,anp:1,ar:12,arn:2,as:1,ast:1,ay:0,az:1,be:7,bg:1,bn:1,bo:0,br:2,brx:1,bs:7,ca:1,cgg:0,cs:8,csb:19,cy:18,da:1,de:1,doi:1,dz:0,el:1,en:1,eo:1,es:1,"es-ar":1,et:1,eu:1,fa:2,ff:1,fi:1,fil:2,fo:1,fr:2,fur:1,fy:1,ga:11,gd:4,gl:1,gu:1,gun:2,ha:1,he:1,hi:1,hne:1,hr:7,hu:1,hy:1,ia:1,id:0,is:15,it:1,ja:0,jbo:0,jv:17,ka:0,kk:1,kl:1,km:0,kn:1,ko:0,ku:1,kw:20,ky:1,lb:1,ln:2,lo:0,lt:6,lv:3,mai:1,me:21,mfe:2,mg:2,mi:2,mk:15,ml:1,mn:1,mni:1,mnk:22,mr:1,ms:0,mt:13,my:0,nah:1,nap:1,nb:1,ne:1,nl:1,nn:1,no:1,nso:1,oc:2,or:1,pa:1,pap:1,pl:9,pms:1,ps:1,pt:1,"pt-br":2,rm:1,ro:5,ru:7,rw:1,sah:0,sat:1,sco:1,sd:1,se:1,si:1,sk:8,sl:10,so:1,son:1,sq:1,sr:7,su:0,sv:1,sw:1,ta:1,te:1,tg:2,th:0,ti:2,tk:1,tr:2,tt:0,ug:0,uk:7,ur:1,uz:2,vi:0,wa:2,wo:0,yo:1,"zh-cn":0,"zh-tw":2},o=[["other"],["one","other"],["one","other"],["zero","one","other"],["one","two","few","other"],["one","few","other"],["one","few","other"],["one","few","other"],["one","few","other"],["one","few","other"],["one","two","few","other"],["one","two","few","many","other"],["one","two","few","many","other","zero"],["one","few","many","other"],["one","few","other"],["one","other"],["one","two","few","many","other"],["zero","other"],["zero","one","two","few","many","other"],["one","few","other"],["one","two","few","other"],["one","few","other"],["zero","one","other"]];function t(n){n=function(n){return n.toLowerCase().replace("_","-")}(n);var e=r[n];if(void 0===e){var o=function(n){var e=n.indexOf("-");return e>0?n.substr(0,e):n}(n);e=r[o]}if(void 0===e)throw new Error('Unrecognized locale: "'+n+'".');return e}function u(n,e){var r=o[e];return function(e){return r[n(e)]}}function a(n){var r=t(n);return e[r]}function i(n){var r=e[n];if(void 0===r)throw new Error('Invalid index: "'+n+'".');return r}function f(n){var r=t(n);return u(e[r],r)}function l(n){if(void 0===e[n])throw new Error('Invalid index: "'+n+'".');return u(e[n],n)}n.getPluralFormForCardinalByIndex=function(n,e){return i(n)(e)},n.getPluralFormForCardinalByLocale=function(n,e){return a(n)(e)},n.getPluralFormNameForCardinalByIndex=function(n,e){return l(n)(e)},n.getPluralFormNameForCardinalByLocale=function(n,e){return f(n)(e)},n.getPluralRuleForCardinalsByIndex=i,n.getPluralRuleForCardinalsByLocale=a,n.getPluralRuleForNamedFormsForCardinalsByIndex=l,n.getPluralRuleForNamedFormsForCardinalsByLocale=f,Object.defineProperty(n,"__esModule",{value:!0})}));
\ No newline at end of file
diff --git a/src/renderer/js/jquery-3.2.1.slim.min.js b/src/renderer/lib/jquery-3.2.1.slim.min.js
similarity index 100%
rename from src/renderer/js/jquery-3.2.1.slim.min.js
rename to src/renderer/lib/jquery-3.2.1.slim.min.js
diff --git a/src/renderer/js/less.js b/src/renderer/lib/less.js
similarity index 100%
rename from src/renderer/js/less.js
rename to src/renderer/lib/less.js
diff --git a/src/renderer/js/notyf.min.js b/src/renderer/lib/notyf.min.js
similarity index 100%
rename from src/renderer/js/notyf.min.js
rename to src/renderer/lib/notyf.min.js
diff --git a/src/renderer/js/popper.min.js b/src/renderer/lib/popper.min.js
similarity index 100%
rename from src/renderer/js/popper.min.js
rename to src/renderer/lib/popper.min.js
diff --git a/src/renderer/lib/resonance-audio.min.js b/src/renderer/lib/resonance-audio.min.js
new file mode 100644
index 00000000..7d4349e1
--- /dev/null
+++ b/src/renderer/lib/resonance-audio.min.js
@@ -0,0 +1,181 @@
+!function(A,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e=t();for(var i in e)("object"==typeof exports?exports:A)[i]=e[i]}}(this,function(){return function(A){function t(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return A[i].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var e={};return t.m=A,t.c=e,t.d=function(A,e,i){t.o(A,e)||Object.defineProperty(A,e,{configurable:!1,enumerable:!0,get:i})},t.n=function(A){var e=A&&A.__esModule?function(){return A.default}:function(){return A};return t.d(e,"a",e),e},t.o=function(A,t){return Object.prototype.hasOwnProperty.call(A,t)},t.p="",t(t.s=10)}([function(A,t,e){"use strict";/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+function i(){}i.DEFAULT_SOURCE_GAIN=1,i.LISTENER_MAX_OUTSIDE_ROOM_DISTANCE=1,i.SOURCE_MAX_OUTSIDE_ROOM_DISTANCE=1,i.DEFAULT_SOURCE_DISTANCE=1,i.DEFAULT_POSITION=[0,0,0],i.DEFAULT_FORWARD=[0,0,-1],i.DEFAULT_UP=[0,1,0],i.DEFAULT_RIGHT=[1,0,0],i.DEFAULT_SPEED_OF_SOUND=343,i.ATTENUATION_ROLLOFFS=["logarithmic","linear","none"],i.DEFAULT_ATTENUATION_ROLLOFF="logarithmic",i.DEFAULT_MIN_DISTANCE=1,i.DEFAULT_MAX_DISTANCE=1e3,i.DEFAULT_DIRECTIVITY_ALPHA=0,i.DEFAULT_DIRECTIVITY_SHARPNESS=1,i.DEFAULT_AZIMUTH=0,i.DEFAULT_ELEVATION=0,i.DEFAULT_AMBISONIC_ORDER=1,i.DEFAULT_SOURCE_WIDTH=0,i.DEFAULT_REFLECTION_MAX_DURATION=.5,i.DEFAULT_REFLECTION_CUTOFF_FREQUENCY=6400,i.DEFAULT_REFLECTION_COEFFICIENTS={left:0,right:0,front:0,back:0,down:0,up:0},i.DEFAULT_REFLECTION_MIN_DISTANCE=1,i.DEFAULT_ROOM_DIMENSIONS={width:0,height:0,depth:0},i.DEFAULT_REFLECTION_MULTIPLIER=1,i.DEFAULT_REVERB_BANDWIDTH=1,i.DEFAULT_REVERB_DURATION_MULTIPLIER=1,i.DEFAULT_REVERB_PREDELAY=1.5,i.DEFAULT_REVERB_TAIL_ONSET=3.8,i.DEFAULT_REVERB_GAIN=.01,i.DEFAULT_REVERB_MAX_DURATION=3,i.NUMBER_REVERB_FREQUENCY_BANDS=(i.DEFAULT_REVERB_FREQUENCY_BANDS=[31.25,62.5,125,250,500,1e3,2e3,4e3,8e3]).length,i.DEFAULT_REVERB_DURATIONS=new Float32Array(i.NUMBER_REVERB_FREQUENCY_BANDS),i.ROOM_MATERIAL_COEFFICIENTS={transparent:[1,1,1,1,1,1,1,1,1],"acoustic-ceiling-tiles":[.672,.675,.7,.66,.72,.92,.88,.75,1],"brick-bare":[.03,.03,.03,.03,.03,.04,.05,.07,.14],"brick-painted":[.006,.007,.01,.01,.02,.02,.02,.03,.06],"concrete-block-coarse":[.36,.36,.36,.44,.31,.29,.39,.25,.5],"concrete-block-painted":[.092,.09,.1,.05,.06,.07,.09,.08,.16],"curtain-heavy":[.073,.106,.14,.35,.55,.72,.7,.65,1],"fiber-glass-insulation":[.193,.22,.22,.82,.99,.99,.99,.99,1],"glass-thin":[.18,.169,.18,.06,.04,.03,.02,.02,.04],"glass-thick":[.35,.35,.35,.25,.18,.12,.07,.04,.08],grass:[.05,.05,.15,.25,.4,.55,.6,.6,.6],"linoleum-on-concrete":[.02,.02,.02,.03,.03,.03,.03,.02,.04],marble:[.01,.01,.01,.01,.01,.01,.02,.02,.04],metal:[.03,.035,.04,.04,.05,.05,.05,.07,.09],"parquet-on-concrete":[.028,.03,.04,.04,.07,.06,.06,.07,.14],"plaster-rough":[.017,.018,.02,.03,.04,.05,.04,.03,.06],"plaster-smooth":[.011,.012,.013,.015,.02,.03,.04,.05,.1],"plywood-panel":[.4,.34,.28,.22,.17,.09,.1,.11,.22],"polished-concrete-or-tile":[.008,.008,.01,.01,.015,.02,.02,.02,.04],"sheet-rock":[.29,.279,.29,.1,.05,.04,.07,.09,.18],"water-or-ice-surface":[.006,.006,.008,.008,.013,.015,.02,.025,.05],"wood-ceiling":[.15,.147,.15,.11,.1,.07,.06,.07,.14],"wood-panel":[.28,.28,.28,.22,.17,.09,.1,.11,.22],uniform:[.5,.5,.5,.5,.5,.5,.5,.5,.5]},i.DEFAULT_ROOM_MATERIALS={left:"transparent",right:"transparent",front:"transparent",back:"transparent",down:"transparent",up:"transparent"},i.NUMBER_REFLECTION_AVERAGING_BANDS=3,i.ROOM_STARTING_AVERAGING_BAND=4,i.ROOM_MIN_VOLUME=1e-4,i.ROOM_AIR_ABSORPTION_COEFFICIENTS=[6e-4,6e-4,7e-4,8e-4,.001,.0015,.0026,.006,.0207],i.ROOM_EYRING_CORRECTION_COEFFICIENT=1.38,i.TWO_PI=6.28318530717959,i.TWENTY_FOUR_LOG10=55.2620422318571,i.LOG1000=6.90775527898214,i.LOG2_DIV2=.346573590279973,i.DEGREES_TO_RADIANS=.017453292519943,i.RADIANS_TO_DEGREES=57.29577951308232,i.EPSILON_FLOAT=1e-8,i.log=function(){window.console.log.apply(window.console,["%c[ResonanceAudio]%c "+Array.prototype.slice.call(arguments).join(" ")+" %c(@"+performance.now().toFixed(2)+"ms)","background: #BBDEFB; color: #FF5722; font-weight: 700","font-weight: 400","color: #AAA"])},i.normalizeVector=function(A){let e=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return e>t.EPSILON_FLOAT&&(e=1/e,A[0]*=e,A[1]*=e,A[2]*=e),A},i.crossProduct=function(A,t){return[A[1]*t[2]-A[2]*t[1],A[2]*t[0]-A[0]*t[2],A[0]*t[1]-A[1]*t[0]]},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.ambisonicOrder&&(t.ambisonicOrder=s.DEFAULT_AMBISONIC_ORDER),void 0==t.azimuth&&(t.azimuth=s.DEFAULT_AZIMUTH),void 0==t.elevation&&(t.elevation=s.DEFAULT_ELEVATION),void 0==t.sourceWidth&&(t.sourceWidth=s.DEFAULT_SOURCE_WIDTH),this._context=A,this.input=A.createGain(),this._channelGain=[],this._merger=void 0,this.output=A.createGain(),this.setAmbisonicOrder(t.ambisonicOrder),this._azimuth=t.azimuth,this._elevation=t.elevation,this.setSourceWidth(t.sourceWidth)}/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const n=e(3),s=e(0);i.prototype.setAmbisonicOrder=function(A){this._ambisonicOrder=i.validateAmbisonicOrder(A),this.input.disconnect();for(let e=0;en.SPHERICAL_HARMONICS_MAX_ORDER&&(s.log("Error: Unable to render ambisonic order",options.ambisonicOrder,"(Max order is",n.SPHERICAL_HARMONICS_MAX_ORDER,")\nUsing max order instead."),options.ambisonicOrder=n.SPHERICAL_HARMONICS_MAX_ORDER),A},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.ambisonicOrder&&(t.ambisonicOrder=o.DEFAULT_AMBISONIC_ORDER),void 0==t.position&&(t.position=o.DEFAULT_POSITION.slice()),void 0==t.forward&&(t.forward=o.DEFAULT_FORWARD.slice()),void 0==t.up&&(t.up=o.DEFAULT_UP.slice()),this.position=new Float32Array(3),this._tempMatrix3=new Float32Array(9),this._ambisonicOrder=s.validateAmbisonicOrder(t.ambisonicOrder),this._context=A,1==this._ambisonicOrder?this._renderer=n.Omnitone.createFOARenderer(A,{}):this._ambisonicOrder>1&&(this._renderer=n.Omnitone.createHOARenderer(A,{ambisonicOrder:this._ambisonicOrder})),this.input=A.createGain(),this.output=A.createGain(),this.ambisonicOutput=A.createGain();let e=this;this._renderer.initialize().then(function(){e.input.connect(e._renderer.input),e._ambisonicOrder>1?e._renderer._hoaRotator.output.connect(e.ambisonicOutput):e._renderer._foaRotator.output.connect(e.ambisonicOutput),e._renderer.output.connect(e.output)}),this.setOrientation(t.forward[0],t.forward[1],t.forward[2],t.up[0],t.up[1],t.up[2])}/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const n=e(12),s=e(1),o=e(0);i.prototype.setOrientation=function(A,t,e,i,n,s){let r=o.crossProduct([A,t,e],[i,n,s]);this._tempMatrix3[0]=r[0],this._tempMatrix3[1]=r[1],this._tempMatrix3[2]=r[2],this._tempMatrix3[3]=i,this._tempMatrix3[4]=n,this._tempMatrix3[5]=s,this._tempMatrix3[6]=A,this._tempMatrix3[7]=t,this._tempMatrix3[8]=e,this._renderer.setRotationMatrix3(this._tempMatrix3)},i.prototype.setFromMatrix=function(A){this._renderer.setRotationMatrix4(A.elements),this.position[0]=A.elements[12],this.position[1]=A.elements[13],this.position[2]=A.elements[14]},A.exports=i},function(A,t,e){"use strict";t.SPHERICAL_HARMONICS=[[[0,0,0,1,1,1],[.052336,.034899,.017452,.999848,.999391,.99863],[.104528,.069756,.034899,.999391,.997564,.994522],[.156434,.104528,.052336,.99863,.994522,.987688],[.207912,.139173,.069756,.997564,.990268,.978148],[.258819,.173648,.087156,.996195,.984808,.965926],[.309017,.207912,.104528,.994522,.978148,.951057],[.358368,.241922,.121869,.992546,.970296,.93358],[.406737,.275637,.139173,.990268,.961262,.913545],[.45399,.309017,.156434,.987688,.951057,.891007],[.5,.34202,.173648,.984808,.939693,.866025],[.544639,.374607,.190809,.981627,.927184,.838671],[.587785,.406737,.207912,.978148,.913545,.809017],[.62932,.438371,.224951,.97437,.898794,.777146],[.669131,.469472,.241922,.970296,.882948,.743145],[.707107,.5,.258819,.965926,.866025,.707107],[.743145,.529919,.275637,.961262,.848048,.669131],[.777146,.559193,.292372,.956305,.829038,.62932],[.809017,.587785,.309017,.951057,.809017,.587785],[.838671,.615661,.325568,.945519,.788011,.544639],[.866025,.642788,.34202,.939693,.766044,.5],[.891007,.669131,.358368,.93358,.743145,.45399],[.913545,.694658,.374607,.927184,.71934,.406737],[.93358,.71934,.390731,.920505,.694658,.358368],[.951057,.743145,.406737,.913545,.669131,.309017],[.965926,.766044,.422618,.906308,.642788,.258819],[.978148,.788011,.438371,.898794,.615661,.207912],[.987688,.809017,.45399,.891007,.587785,.156434],[.994522,.829038,.469472,.882948,.559193,.104528],[.99863,.848048,.48481,.87462,.529919,.052336],[1,.866025,.5,.866025,.5,0],[.99863,.882948,.515038,.857167,.469472,-.052336],[.994522,.898794,.529919,.848048,.438371,-.104528],[.987688,.913545,.544639,.838671,.406737,-.156434],[.978148,.927184,.559193,.829038,.374607,-.207912],[.965926,.939693,.573576,.819152,.34202,-.258819],[.951057,.951057,.587785,.809017,.309017,-.309017],[.93358,.961262,.601815,.798636,.275637,-.358368],[.913545,.970296,.615661,.788011,.241922,-.406737],[.891007,.978148,.62932,.777146,.207912,-.45399],[.866025,.984808,.642788,.766044,.173648,-.5],[.838671,.990268,.656059,.75471,.139173,-.544639],[.809017,.994522,.669131,.743145,.104528,-.587785],[.777146,.997564,.681998,.731354,.069756,-.62932],[.743145,.999391,.694658,.71934,.034899,-.669131],[.707107,1,.707107,.707107,0,-.707107],[.669131,.999391,.71934,.694658,-.034899,-.743145],[.62932,.997564,.731354,.681998,-.069756,-.777146],[.587785,.994522,.743145,.669131,-.104528,-.809017],[.544639,.990268,.75471,.656059,-.139173,-.838671],[.5,.984808,.766044,.642788,-.173648,-.866025],[.45399,.978148,.777146,.62932,-.207912,-.891007],[.406737,.970296,.788011,.615661,-.241922,-.913545],[.358368,.961262,.798636,.601815,-.275637,-.93358],[.309017,.951057,.809017,.587785,-.309017,-.951057],[.258819,.939693,.819152,.573576,-.34202,-.965926],[.207912,.927184,.829038,.559193,-.374607,-.978148],[.156434,.913545,.838671,.544639,-.406737,-.987688],[.104528,.898794,.848048,.529919,-.438371,-.994522],[.052336,.882948,.857167,.515038,-.469472,-.99863],[0,.866025,.866025,.5,-.5,-1],[-.052336,.848048,.87462,.48481,-.529919,-.99863],[-.104528,.829038,.882948,.469472,-.559193,-.994522],[-.156434,.809017,.891007,.45399,-.587785,-.987688],[-.207912,.788011,.898794,.438371,-.615661,-.978148],[-.258819,.766044,.906308,.422618,-.642788,-.965926],[-.309017,.743145,.913545,.406737,-.669131,-.951057],[-.358368,.71934,.920505,.390731,-.694658,-.93358],[-.406737,.694658,.927184,.374607,-.71934,-.913545],[-.45399,.669131,.93358,.358368,-.743145,-.891007],[-.5,.642788,.939693,.34202,-.766044,-.866025],[-.544639,.615661,.945519,.325568,-.788011,-.838671],[-.587785,.587785,.951057,.309017,-.809017,-.809017],[-.62932,.559193,.956305,.292372,-.829038,-.777146],[-.669131,.529919,.961262,.275637,-.848048,-.743145],[-.707107,.5,.965926,.258819,-.866025,-.707107],[-.743145,.469472,.970296,.241922,-.882948,-.669131],[-.777146,.438371,.97437,.224951,-.898794,-.62932],[-.809017,.406737,.978148,.207912,-.913545,-.587785],[-.838671,.374607,.981627,.190809,-.927184,-.544639],[-.866025,.34202,.984808,.173648,-.939693,-.5],[-.891007,.309017,.987688,.156434,-.951057,-.45399],[-.913545,.275637,.990268,.139173,-.961262,-.406737],[-.93358,.241922,.992546,.121869,-.970296,-.358368],[-.951057,.207912,.994522,.104528,-.978148,-.309017],[-.965926,.173648,.996195,.087156,-.984808,-.258819],[-.978148,.139173,.997564,.069756,-.990268,-.207912],[-.987688,.104528,.99863,.052336,-.994522,-.156434],[-.994522,.069756,.999391,.034899,-.997564,-.104528],[-.99863,.034899,.999848,.017452,-.999391,-.052336],[-1,0,1,0,-1,-0],[-.99863,-.034899,.999848,-.017452,-.999391,.052336],[-.994522,-.069756,.999391,-.034899,-.997564,.104528],[-.987688,-.104528,.99863,-.052336,-.994522,.156434],[-.978148,-.139173,.997564,-.069756,-.990268,.207912],[-.965926,-.173648,.996195,-.087156,-.984808,.258819],[-.951057,-.207912,.994522,-.104528,-.978148,.309017],[-.93358,-.241922,.992546,-.121869,-.970296,.358368],[-.913545,-.275637,.990268,-.139173,-.961262,.406737],[-.891007,-.309017,.987688,-.156434,-.951057,.45399],[-.866025,-.34202,.984808,-.173648,-.939693,.5],[-.838671,-.374607,.981627,-.190809,-.927184,.544639],[-.809017,-.406737,.978148,-.207912,-.913545,.587785],[-.777146,-.438371,.97437,-.224951,-.898794,.62932],[-.743145,-.469472,.970296,-.241922,-.882948,.669131],[-.707107,-.5,.965926,-.258819,-.866025,.707107],[-.669131,-.529919,.961262,-.275637,-.848048,.743145],[-.62932,-.559193,.956305,-.292372,-.829038,.777146],[-.587785,-.587785,.951057,-.309017,-.809017,.809017],[-.544639,-.615661,.945519,-.325568,-.788011,.838671],[-.5,-.642788,.939693,-.34202,-.766044,.866025],[-.45399,-.669131,.93358,-.358368,-.743145,.891007],[-.406737,-.694658,.927184,-.374607,-.71934,.913545],[-.358368,-.71934,.920505,-.390731,-.694658,.93358],[-.309017,-.743145,.913545,-.406737,-.669131,.951057],[-.258819,-.766044,.906308,-.422618,-.642788,.965926],[-.207912,-.788011,.898794,-.438371,-.615661,.978148],[-.156434,-.809017,.891007,-.45399,-.587785,.987688],[-.104528,-.829038,.882948,-.469472,-.559193,.994522],[-.052336,-.848048,.87462,-.48481,-.529919,.99863],[-0,-.866025,.866025,-.5,-.5,1],[.052336,-.882948,.857167,-.515038,-.469472,.99863],[.104528,-.898794,.848048,-.529919,-.438371,.994522],[.156434,-.913545,.838671,-.544639,-.406737,.987688],[.207912,-.927184,.829038,-.559193,-.374607,.978148],[.258819,-.939693,.819152,-.573576,-.34202,.965926],[.309017,-.951057,.809017,-.587785,-.309017,.951057],[.358368,-.961262,.798636,-.601815,-.275637,.93358],[.406737,-.970296,.788011,-.615661,-.241922,.913545],[.45399,-.978148,.777146,-.62932,-.207912,.891007],[.5,-.984808,.766044,-.642788,-.173648,.866025],[.544639,-.990268,.75471,-.656059,-.139173,.838671],[.587785,-.994522,.743145,-.669131,-.104528,.809017],[.62932,-.997564,.731354,-.681998,-.069756,.777146],[.669131,-.999391,.71934,-.694658,-.034899,.743145],[.707107,-1,.707107,-.707107,-0,.707107],[.743145,-.999391,.694658,-.71934,.034899,.669131],[.777146,-.997564,.681998,-.731354,.069756,.62932],[.809017,-.994522,.669131,-.743145,.104528,.587785],[.838671,-.990268,.656059,-.75471,.139173,.544639],[.866025,-.984808,.642788,-.766044,.173648,.5],[.891007,-.978148,.62932,-.777146,.207912,.45399],[.913545,-.970296,.615661,-.788011,.241922,.406737],[.93358,-.961262,.601815,-.798636,.275637,.358368],[.951057,-.951057,.587785,-.809017,.309017,.309017],[.965926,-.939693,.573576,-.819152,.34202,.258819],[.978148,-.927184,.559193,-.829038,.374607,.207912],[.987688,-.913545,.544639,-.838671,.406737,.156434],[.994522,-.898794,.529919,-.848048,.438371,.104528],[.99863,-.882948,.515038,-.857167,.469472,.052336],[1,-.866025,.5,-.866025,.5,0],[.99863,-.848048,.48481,-.87462,.529919,-.052336],[.994522,-.829038,.469472,-.882948,.559193,-.104528],[.987688,-.809017,.45399,-.891007,.587785,-.156434],[.978148,-.788011,.438371,-.898794,.615661,-.207912],[.965926,-.766044,.422618,-.906308,.642788,-.258819],[.951057,-.743145,.406737,-.913545,.669131,-.309017],[.93358,-.71934,.390731,-.920505,.694658,-.358368],[.913545,-.694658,.374607,-.927184,.71934,-.406737],[.891007,-.669131,.358368,-.93358,.743145,-.45399],[.866025,-.642788,.34202,-.939693,.766044,-.5],[.838671,-.615661,.325568,-.945519,.788011,-.544639],[.809017,-.587785,.309017,-.951057,.809017,-.587785],[.777146,-.559193,.292372,-.956305,.829038,-.62932],[.743145,-.529919,.275637,-.961262,.848048,-.669131],[.707107,-.5,.258819,-.965926,.866025,-.707107],[.669131,-.469472,.241922,-.970296,.882948,-.743145],[.62932,-.438371,.224951,-.97437,.898794,-.777146],[.587785,-.406737,.207912,-.978148,.913545,-.809017],[.544639,-.374607,.190809,-.981627,.927184,-.838671],[.5,-.34202,.173648,-.984808,.939693,-.866025],[.45399,-.309017,.156434,-.987688,.951057,-.891007],[.406737,-.275637,.139173,-.990268,.961262,-.913545],[.358368,-.241922,.121869,-.992546,.970296,-.93358],[.309017,-.207912,.104528,-.994522,.978148,-.951057],[.258819,-.173648,.087156,-.996195,.984808,-.965926],[.207912,-.139173,.069756,-.997564,.990268,-.978148],[.156434,-.104528,.052336,-.99863,.994522,-.987688],[.104528,-.069756,.034899,-.999391,.997564,-.994522],[.052336,-.034899,.017452,-.999848,.999391,-.99863],[0,-0,0,-1,1,-1],[-.052336,.034899,-.017452,-.999848,.999391,-.99863],[-.104528,.069756,-.034899,-.999391,.997564,-.994522],[-.156434,.104528,-.052336,-.99863,.994522,-.987688],[-.207912,.139173,-.069756,-.997564,.990268,-.978148],[-.258819,.173648,-.087156,-.996195,.984808,-.965926],[-.309017,.207912,-.104528,-.994522,.978148,-.951057],[-.358368,.241922,-.121869,-.992546,.970296,-.93358],[-.406737,.275637,-.139173,-.990268,.961262,-.913545],[-.45399,.309017,-.156434,-.987688,.951057,-.891007],[-.5,.34202,-.173648,-.984808,.939693,-.866025],[-.544639,.374607,-.190809,-.981627,.927184,-.838671],[-.587785,.406737,-.207912,-.978148,.913545,-.809017],[-.62932,.438371,-.224951,-.97437,.898794,-.777146],[-.669131,.469472,-.241922,-.970296,.882948,-.743145],[-.707107,.5,-.258819,-.965926,.866025,-.707107],[-.743145,.529919,-.275637,-.961262,.848048,-.669131],[-.777146,.559193,-.292372,-.956305,.829038,-.62932],[-.809017,.587785,-.309017,-.951057,.809017,-.587785],[-.838671,.615661,-.325568,-.945519,.788011,-.544639],[-.866025,.642788,-.34202,-.939693,.766044,-.5],[-.891007,.669131,-.358368,-.93358,.743145,-.45399],[-.913545,.694658,-.374607,-.927184,.71934,-.406737],[-.93358,.71934,-.390731,-.920505,.694658,-.358368],[-.951057,.743145,-.406737,-.913545,.669131,-.309017],[-.965926,.766044,-.422618,-.906308,.642788,-.258819],[-.978148,.788011,-.438371,-.898794,.615661,-.207912],[-.987688,.809017,-.45399,-.891007,.587785,-.156434],[-.994522,.829038,-.469472,-.882948,.559193,-.104528],[-.99863,.848048,-.48481,-.87462,.529919,-.052336],[-1,.866025,-.5,-.866025,.5,0],[-.99863,.882948,-.515038,-.857167,.469472,.052336],[-.994522,.898794,-.529919,-.848048,.438371,.104528],[-.987688,.913545,-.544639,-.838671,.406737,.156434],[-.978148,.927184,-.559193,-.829038,.374607,.207912],[-.965926,.939693,-.573576,-.819152,.34202,.258819],[-.951057,.951057,-.587785,-.809017,.309017,.309017],[-.93358,.961262,-.601815,-.798636,.275637,.358368],[-.913545,.970296,-.615661,-.788011,.241922,.406737],[-.891007,.978148,-.62932,-.777146,.207912,.45399],[-.866025,.984808,-.642788,-.766044,.173648,.5],[-.838671,.990268,-.656059,-.75471,.139173,.544639],[-.809017,.994522,-.669131,-.743145,.104528,.587785],[-.777146,.997564,-.681998,-.731354,.069756,.62932],[-.743145,.999391,-.694658,-.71934,.034899,.669131],[-.707107,1,-.707107,-.707107,0,.707107],[-.669131,.999391,-.71934,-.694658,-.034899,.743145],[-.62932,.997564,-.731354,-.681998,-.069756,.777146],[-.587785,.994522,-.743145,-.669131,-.104528,.809017],[-.544639,.990268,-.75471,-.656059,-.139173,.838671],[-.5,.984808,-.766044,-.642788,-.173648,.866025],[-.45399,.978148,-.777146,-.62932,-.207912,.891007],[-.406737,.970296,-.788011,-.615661,-.241922,.913545],[-.358368,.961262,-.798636,-.601815,-.275637,.93358],[-.309017,.951057,-.809017,-.587785,-.309017,.951057],[-.258819,.939693,-.819152,-.573576,-.34202,.965926],[-.207912,.927184,-.829038,-.559193,-.374607,.978148],[-.156434,.913545,-.838671,-.544639,-.406737,.987688],[-.104528,.898794,-.848048,-.529919,-.438371,.994522],[-.052336,.882948,-.857167,-.515038,-.469472,.99863],[-0,.866025,-.866025,-.5,-.5,1],[.052336,.848048,-.87462,-.48481,-.529919,.99863],[.104528,.829038,-.882948,-.469472,-.559193,.994522],[.156434,.809017,-.891007,-.45399,-.587785,.987688],[.207912,.788011,-.898794,-.438371,-.615661,.978148],[.258819,.766044,-.906308,-.422618,-.642788,.965926],[.309017,.743145,-.913545,-.406737,-.669131,.951057],[.358368,.71934,-.920505,-.390731,-.694658,.93358],[.406737,.694658,-.927184,-.374607,-.71934,.913545],[.45399,.669131,-.93358,-.358368,-.743145,.891007],[.5,.642788,-.939693,-.34202,-.766044,.866025],[.544639,.615661,-.945519,-.325568,-.788011,.838671],[.587785,.587785,-.951057,-.309017,-.809017,.809017],[.62932,.559193,-.956305,-.292372,-.829038,.777146],[.669131,.529919,-.961262,-.275637,-.848048,.743145],[.707107,.5,-.965926,-.258819,-.866025,.707107],[.743145,.469472,-.970296,-.241922,-.882948,.669131],[.777146,.438371,-.97437,-.224951,-.898794,.62932],[.809017,.406737,-.978148,-.207912,-.913545,.587785],[.838671,.374607,-.981627,-.190809,-.927184,.544639],[.866025,.34202,-.984808,-.173648,-.939693,.5],[.891007,.309017,-.987688,-.156434,-.951057,.45399],[.913545,.275637,-.990268,-.139173,-.961262,.406737],[.93358,.241922,-.992546,-.121869,-.970296,.358368],[.951057,.207912,-.994522,-.104528,-.978148,.309017],[.965926,.173648,-.996195,-.087156,-.984808,.258819],[.978148,.139173,-.997564,-.069756,-.990268,.207912],[.987688,.104528,-.99863,-.052336,-.994522,.156434],[.994522,.069756,-.999391,-.034899,-.997564,.104528],[.99863,.034899,-.999848,-.017452,-.999391,.052336],[1,0,-1,-0,-1,0],[.99863,-.034899,-.999848,.017452,-.999391,-.052336],[.994522,-.069756,-.999391,.034899,-.997564,-.104528],[.987688,-.104528,-.99863,.052336,-.994522,-.156434],[.978148,-.139173,-.997564,.069756,-.990268,-.207912],[.965926,-.173648,-.996195,.087156,-.984808,-.258819],[.951057,-.207912,-.994522,.104528,-.978148,-.309017],[.93358,-.241922,-.992546,.121869,-.970296,-.358368],[.913545,-.275637,-.990268,.139173,-.961262,-.406737],[.891007,-.309017,-.987688,.156434,-.951057,-.45399],[.866025,-.34202,-.984808,.173648,-.939693,-.5],[.838671,-.374607,-.981627,.190809,-.927184,-.544639],[.809017,-.406737,-.978148,.207912,-.913545,-.587785],[.777146,-.438371,-.97437,.224951,-.898794,-.62932],[.743145,-.469472,-.970296,.241922,-.882948,-.669131],[.707107,-.5,-.965926,.258819,-.866025,-.707107],[.669131,-.529919,-.961262,.275637,-.848048,-.743145],[.62932,-.559193,-.956305,.292372,-.829038,-.777146],[.587785,-.587785,-.951057,.309017,-.809017,-.809017],[.544639,-.615661,-.945519,.325568,-.788011,-.838671],[.5,-.642788,-.939693,.34202,-.766044,-.866025],[.45399,-.669131,-.93358,.358368,-.743145,-.891007],[.406737,-.694658,-.927184,.374607,-.71934,-.913545],[.358368,-.71934,-.920505,.390731,-.694658,-.93358],[.309017,-.743145,-.913545,.406737,-.669131,-.951057],[.258819,-.766044,-.906308,.422618,-.642788,-.965926],[.207912,-.788011,-.898794,.438371,-.615661,-.978148],[.156434,-.809017,-.891007,.45399,-.587785,-.987688],[.104528,-.829038,-.882948,.469472,-.559193,-.994522],[.052336,-.848048,-.87462,.48481,-.529919,-.99863],[0,-.866025,-.866025,.5,-.5,-1],[-.052336,-.882948,-.857167,.515038,-.469472,-.99863],[-.104528,-.898794,-.848048,.529919,-.438371,-.994522],[-.156434,-.913545,-.838671,.544639,-.406737,-.987688],[-.207912,-.927184,-.829038,.559193,-.374607,-.978148],[-.258819,-.939693,-.819152,.573576,-.34202,-.965926],[-.309017,-.951057,-.809017,.587785,-.309017,-.951057],[-.358368,-.961262,-.798636,.601815,-.275637,-.93358],[-.406737,-.970296,-.788011,.615661,-.241922,-.913545],[-.45399,-.978148,-.777146,.62932,-.207912,-.891007],[-.5,-.984808,-.766044,.642788,-.173648,-.866025],[-.544639,-.990268,-.75471,.656059,-.139173,-.838671],[-.587785,-.994522,-.743145,.669131,-.104528,-.809017],[-.62932,-.997564,-.731354,.681998,-.069756,-.777146],[-.669131,-.999391,-.71934,.694658,-.034899,-.743145],[-.707107,-1,-.707107,.707107,-0,-.707107],[-.743145,-.999391,-.694658,.71934,.034899,-.669131],[-.777146,-.997564,-.681998,.731354,.069756,-.62932],[-.809017,-.994522,-.669131,.743145,.104528,-.587785],[-.838671,-.990268,-.656059,.75471,.139173,-.544639],[-.866025,-.984808,-.642788,.766044,.173648,-.5],[-.891007,-.978148,-.62932,.777146,.207912,-.45399],[-.913545,-.970296,-.615661,.788011,.241922,-.406737],[-.93358,-.961262,-.601815,.798636,.275637,-.358368],[-.951057,-.951057,-.587785,.809017,.309017,-.309017],[-.965926,-.939693,-.573576,.819152,.34202,-.258819],[-.978148,-.927184,-.559193,.829038,.374607,-.207912],[-.987688,-.913545,-.544639,.838671,.406737,-.156434],[-.994522,-.898794,-.529919,.848048,.438371,-.104528],[-.99863,-.882948,-.515038,.857167,.469472,-.052336],[-1,-.866025,-.5,.866025,.5,-0],[-.99863,-.848048,-.48481,.87462,.529919,.052336],[-.994522,-.829038,-.469472,.882948,.559193,.104528],[-.987688,-.809017,-.45399,.891007,.587785,.156434],[-.978148,-.788011,-.438371,.898794,.615661,.207912],[-.965926,-.766044,-.422618,.906308,.642788,.258819],[-.951057,-.743145,-.406737,.913545,.669131,.309017],[-.93358,-.71934,-.390731,.920505,.694658,.358368],[-.913545,-.694658,-.374607,.927184,.71934,.406737],[-.891007,-.669131,-.358368,.93358,.743145,.45399],[-.866025,-.642788,-.34202,.939693,.766044,.5],[-.838671,-.615661,-.325568,.945519,.788011,.544639],[-.809017,-.587785,-.309017,.951057,.809017,.587785],[-.777146,-.559193,-.292372,.956305,.829038,.62932],[-.743145,-.529919,-.275637,.961262,.848048,.669131],[-.707107,-.5,-.258819,.965926,.866025,.707107],[-.669131,-.469472,-.241922,.970296,.882948,.743145],[-.62932,-.438371,-.224951,.97437,.898794,.777146],[-.587785,-.406737,-.207912,.978148,.913545,.809017],[-.544639,-.374607,-.190809,.981627,.927184,.838671],[-.5,-.34202,-.173648,.984808,.939693,.866025],[-.45399,-.309017,-.156434,.987688,.951057,.891007],[-.406737,-.275637,-.139173,.990268,.961262,.913545],[-.358368,-.241922,-.121869,.992546,.970296,.93358],[-.309017,-.207912,-.104528,.994522,.978148,.951057],[-.258819,-.173648,-.087156,.996195,.984808,.965926],[-.207912,-.139173,-.069756,.997564,.990268,.978148],[-.156434,-.104528,-.052336,.99863,.994522,.987688],[-.104528,-.069756,-.034899,.999391,.997564,.994522],[-.052336,-.034899,-.017452,.999848,.999391,.99863]],[[-1,-0,1,-0,0,-1,-0,0,-0],[-.999848,.017452,.999543,-.030224,264e-6,-.999086,.042733,-59e-5,4e-6],[-.999391,.034899,.998173,-.060411,.001055,-.996348,.085356,-.002357,34e-6],[-.99863,.052336,.995891,-.090524,.002372,-.991791,.127757,-.005297,113e-6],[-.997564,.069756,.992701,-.120527,.004214,-.985429,.169828,-.0094,268e-6],[-.996195,.087156,.988606,-.150384,.006578,-.977277,.21146,-.014654,523e-6],[-.994522,.104528,.983611,-.180057,.009462,-.967356,.252544,-.021043,903e-6],[-.992546,.121869,.977722,-.209511,.012862,-.955693,.292976,-.028547,.001431],[-.990268,.139173,.970946,-.238709,.016774,-.942316,.332649,-.037143,.002131],[-.987688,.156434,.963292,-.267617,.021193,-.927262,.371463,-.046806,.003026],[-.984808,.173648,.954769,-.296198,.026114,-.910569,.409317,-.057505,.00414],[-.981627,.190809,.945388,-.324419,.03153,-.892279,.446114,-.069209,.005492],[-.978148,.207912,.935159,-.352244,.037436,-.872441,.481759,-.08188,.007105],[-.97437,.224951,.924096,-.379641,.043823,-.851105,.516162,-.095481,.008999],[-.970296,.241922,.912211,-.406574,.050685,-.828326,.549233,-.109969,.011193],[-.965926,.258819,.899519,-.433013,.058013,-.804164,.580889,-.1253,.013707],[-.961262,.275637,.886036,-.458924,.065797,-.77868,.61105,-.141427,.016556],[-.956305,.292372,.871778,-.484275,.074029,-.75194,.639639,-.158301,.019758],[-.951057,.309017,.856763,-.509037,.082698,-.724012,.666583,-.175868,.023329],[-.945519,.325568,.841008,-.533178,.091794,-.694969,.691816,-.194075,.027281],[-.939693,.34202,.824533,-.55667,.101306,-.664885,.715274,-.212865,.03163],[-.93358,.358368,.807359,-.579484,.111222,-.633837,.736898,-.23218,.036385],[-.927184,.374607,.789505,-.601592,.121529,-.601904,.756637,-.25196,.041559],[-.920505,.390731,.770994,-.622967,.132217,-.569169,.774442,-.272143,.04716],[-.913545,.406737,.751848,-.643582,.143271,-.535715,.79027,-.292666,.053196],[-.906308,.422618,.732091,-.663414,.154678,-.501627,.804083,-.313464,.059674],[-.898794,.438371,.711746,-.682437,.166423,-.466993,.81585,-.334472,.066599],[-.891007,.45399,.690839,-.700629,.178494,-.431899,.825544,-.355623,.073974],[-.882948,.469472,.669395,-.717968,.190875,-.396436,.833145,-.376851,.081803],[-.87462,.48481,.647439,-.734431,.203551,-.360692,.838638,-.398086,.090085],[-.866025,.5,.625,-.75,.216506,-.32476,.842012,-.419263,.098821],[-.857167,.515038,.602104,-.764655,.229726,-.288728,.843265,-.440311,.108009],[-.848048,.529919,.578778,-.778378,.243192,-.252688,.842399,-.461164,.117644],[-.838671,.544639,.555052,-.791154,.256891,-.21673,.839422,-.481753,.127722],[-.829038,.559193,.530955,-.802965,.270803,-.180944,.834347,-.502011,.138237],[-.819152,.573576,.506515,-.813798,.284914,-.14542,.827194,-.521871,.149181],[-.809017,.587785,.481763,-.823639,.299204,-.110246,.817987,-.541266,.160545],[-.798636,.601815,.456728,-.832477,.313658,-.075508,.806757,-.560132,.172317],[-.788011,.615661,.431441,-.840301,.328257,-.041294,.793541,-.578405,.184487],[-.777146,.62932,.405934,-.847101,.342984,-.007686,.778379,-.596021,.19704],[-.766044,.642788,.380236,-.852869,.357821,.025233,.761319,-.612921,.209963],[-.75471,.656059,.35438,-.857597,.372749,.057383,.742412,-.629044,.223238],[-.743145,.669131,.328396,-.861281,.387751,.088686,.721714,-.644334,.23685],[-.731354,.681998,.302317,-.863916,.402807,.119068,.699288,-.658734,.250778],[-.71934,.694658,.276175,-.865498,.417901,.148454,.675199,-.67219,.265005],[-.707107,.707107,.25,-.866025,.433013,.176777,.649519,-.684653,.279508],[-.694658,.71934,.223825,-.865498,.448125,.203969,.622322,-.696073,.294267],[-.681998,.731354,.197683,-.863916,.463218,.229967,.593688,-.706405,.309259],[-.669131,.743145,.171604,-.861281,.478275,.254712,.5637,-.715605,.324459],[-.656059,.75471,.14562,-.857597,.493276,.278147,.532443,-.723633,.339844],[-.642788,.766044,.119764,-.852869,.508205,.300221,.500009,-.730451,.355387],[-.62932,.777146,.094066,-.847101,.523041,.320884,.46649,-.736025,.371063],[-.615661,.788011,.068559,-.840301,.537768,.340093,.431982,-.740324,.386845],[-.601815,.798636,.043272,-.832477,.552367,.357807,.396584,-.74332,.402704],[-.587785,.809017,.018237,-.823639,.566821,.373991,.360397,-.744989,.418613],[-.573576,.819152,-.006515,-.813798,.581112,.388612,.323524,-.745308,.434544],[-.559193,.829038,-.030955,-.802965,.595222,.401645,.286069,-.744262,.450467],[-.544639,.838671,-.055052,-.791154,.609135,.413066,.24814,-.741835,.466352],[-.529919,.848048,-.078778,-.778378,.622833,.422856,.209843,-.738017,.482171],[-.515038,.857167,-.102104,-.764655,.6363,.431004,.171288,-.732801,.497894],[-.5,.866025,-.125,-.75,.649519,.4375,.132583,-.726184,.51349],[-.48481,.87462,-.147439,-.734431,.662474,.44234,.093837,-.718167,.528929],[-.469472,.882948,-.169395,-.717968,.67515,.445524,.05516,-.708753,.544183],[-.45399,.891007,-.190839,-.700629,.687531,.447059,.016662,-.69795,.55922],[-.438371,.898794,-.211746,-.682437,.699602,.446953,-.02155,-.685769,.574011],[-.422618,.906308,-.232091,-.663414,.711348,.445222,-.059368,-.672226,.588528],[-.406737,.913545,-.251848,-.643582,.722755,.441884,-.096684,-.657339,.602741],[-.390731,.920505,-.270994,-.622967,.733809,.436964,-.133395,-.64113,.616621],[-.374607,.927184,-.289505,-.601592,.744496,.430488,-.169397,-.623624,.630141],[-.358368,.93358,-.307359,-.579484,.754804,.422491,-.204589,-.604851,.643273],[-.34202,.939693,-.324533,-.55667,.76472,.413008,-.238872,-.584843,.65599],[-.325568,.945519,-.341008,-.533178,.774231,.402081,-.27215,-.563635,.668267],[-.309017,.951057,-.356763,-.509037,.783327,.389754,-.304329,-.541266,.680078],[-.292372,.956305,-.371778,-.484275,.791997,.376077,-.335319,-.517778,.691399],[-.275637,.961262,-.386036,-.458924,.800228,.361102,-.365034,-.493216,.702207],[-.258819,.965926,-.399519,-.433013,.808013,.344885,-.393389,-.467627,.712478],[-.241922,.970296,-.412211,-.406574,.81534,.327486,-.420306,-.441061,.722191],[-.224951,.97437,-.424096,-.379641,.822202,.308969,-.445709,-.413572,.731327],[-.207912,.978148,-.435159,-.352244,.828589,.289399,-.469527,-.385215,.739866],[-.190809,.981627,-.445388,-.324419,.834495,.268846,-.491693,-.356047,.74779],[-.173648,.984808,-.454769,-.296198,.839912,.247382,-.512145,-.326129,.755082],[-.156434,.987688,-.463292,-.267617,.844832,.225081,-.530827,-.295521,.761728],[-.139173,.990268,-.470946,-.238709,.849251,.20202,-.547684,-.264287,.767712],[-.121869,.992546,-.477722,-.209511,.853163,.178279,-.562672,-.232494,.773023],[-.104528,.994522,-.483611,-.180057,.856563,.153937,-.575747,-.200207,.777648],[-.087156,.996195,-.488606,-.150384,.859447,.129078,-.586872,-.167494,.781579],[-.069756,.997564,-.492701,-.120527,.861811,.103786,-.596018,-.134426,.784806],[-.052336,.99863,-.495891,-.090524,.863653,.078146,-.603158,-.101071,.787324],[-.034899,.999391,-.498173,-.060411,.864971,.052243,-.608272,-.0675,.789126],[-.017452,.999848,-.499543,-.030224,.865762,.026165,-.611347,-.033786,.790208],[0,1,-.5,0,.866025,-0,-.612372,0,.790569],[.017452,.999848,-.499543,.030224,.865762,-.026165,-.611347,.033786,.790208],[.034899,.999391,-.498173,.060411,.864971,-.052243,-.608272,.0675,.789126],[.052336,.99863,-.495891,.090524,.863653,-.078146,-.603158,.101071,.787324],[.069756,.997564,-.492701,.120527,.861811,-.103786,-.596018,.134426,.784806],[.087156,.996195,-.488606,.150384,.859447,-.129078,-.586872,.167494,.781579],[.104528,.994522,-.483611,.180057,.856563,-.153937,-.575747,.200207,.777648],[.121869,.992546,-.477722,.209511,.853163,-.178279,-.562672,.232494,.773023],[.139173,.990268,-.470946,.238709,.849251,-.20202,-.547684,.264287,.767712],[.156434,.987688,-.463292,.267617,.844832,-.225081,-.530827,.295521,.761728],[.173648,.984808,-.454769,.296198,.839912,-.247382,-.512145,.326129,.755082],[.190809,.981627,-.445388,.324419,.834495,-.268846,-.491693,.356047,.74779],[.207912,.978148,-.435159,.352244,.828589,-.289399,-.469527,.385215,.739866],[.224951,.97437,-.424096,.379641,.822202,-.308969,-.445709,.413572,.731327],[.241922,.970296,-.412211,.406574,.81534,-.327486,-.420306,.441061,.722191],[.258819,.965926,-.399519,.433013,.808013,-.344885,-.393389,.467627,.712478],[.275637,.961262,-.386036,.458924,.800228,-.361102,-.365034,.493216,.702207],[.292372,.956305,-.371778,.484275,.791997,-.376077,-.335319,.517778,.691399],[.309017,.951057,-.356763,.509037,.783327,-.389754,-.304329,.541266,.680078],[.325568,.945519,-.341008,.533178,.774231,-.402081,-.27215,.563635,.668267],[.34202,.939693,-.324533,.55667,.76472,-.413008,-.238872,.584843,.65599],[.358368,.93358,-.307359,.579484,.754804,-.422491,-.204589,.604851,.643273],[.374607,.927184,-.289505,.601592,.744496,-.430488,-.169397,.623624,.630141],[.390731,.920505,-.270994,.622967,.733809,-.436964,-.133395,.64113,.616621],[.406737,.913545,-.251848,.643582,.722755,-.441884,-.096684,.657339,.602741],[.422618,.906308,-.232091,.663414,.711348,-.445222,-.059368,.672226,.588528],[.438371,.898794,-.211746,.682437,.699602,-.446953,-.02155,.685769,.574011],[.45399,.891007,-.190839,.700629,.687531,-.447059,.016662,.69795,.55922],[.469472,.882948,-.169395,.717968,.67515,-.445524,.05516,.708753,.544183],[.48481,.87462,-.147439,.734431,.662474,-.44234,.093837,.718167,.528929],[.5,.866025,-.125,.75,.649519,-.4375,.132583,.726184,.51349],[.515038,.857167,-.102104,.764655,.6363,-.431004,.171288,.732801,.497894],[.529919,.848048,-.078778,.778378,.622833,-.422856,.209843,.738017,.482171],[.544639,.838671,-.055052,.791154,.609135,-.413066,.24814,.741835,.466352],[.559193,.829038,-.030955,.802965,.595222,-.401645,.286069,.744262,.450467],[.573576,.819152,-.006515,.813798,.581112,-.388612,.323524,.745308,.434544],[.587785,.809017,.018237,.823639,.566821,-.373991,.360397,.744989,.418613],[.601815,.798636,.043272,.832477,.552367,-.357807,.396584,.74332,.402704],[.615661,.788011,.068559,.840301,.537768,-.340093,.431982,.740324,.386845],[.62932,.777146,.094066,.847101,.523041,-.320884,.46649,.736025,.371063],[.642788,.766044,.119764,.852869,.508205,-.300221,.500009,.730451,.355387],[.656059,.75471,.14562,.857597,.493276,-.278147,.532443,.723633,.339844],[.669131,.743145,.171604,.861281,.478275,-.254712,.5637,.715605,.324459],[.681998,.731354,.197683,.863916,.463218,-.229967,.593688,.706405,.309259],[.694658,.71934,.223825,.865498,.448125,-.203969,.622322,.696073,.294267],[.707107,.707107,.25,.866025,.433013,-.176777,.649519,.684653,.279508],[.71934,.694658,.276175,.865498,.417901,-.148454,.675199,.67219,.265005],[.731354,.681998,.302317,.863916,.402807,-.119068,.699288,.658734,.250778],[.743145,.669131,.328396,.861281,.387751,-.088686,.721714,.644334,.23685],[.75471,.656059,.35438,.857597,.372749,-.057383,.742412,.629044,.223238],[.766044,.642788,.380236,.852869,.357821,-.025233,.761319,.612921,.209963],[.777146,.62932,.405934,.847101,.342984,.007686,.778379,.596021,.19704],[.788011,.615661,.431441,.840301,.328257,.041294,.793541,.578405,.184487],[.798636,.601815,.456728,.832477,.313658,.075508,.806757,.560132,.172317],[.809017,.587785,.481763,.823639,.299204,.110246,.817987,.541266,.160545],[.819152,.573576,.506515,.813798,.284914,.14542,.827194,.521871,.149181],[.829038,.559193,.530955,.802965,.270803,.180944,.834347,.502011,.138237],[.838671,.544639,.555052,.791154,.256891,.21673,.839422,.481753,.127722],[.848048,.529919,.578778,.778378,.243192,.252688,.842399,.461164,.117644],[.857167,.515038,.602104,.764655,.229726,.288728,.843265,.440311,.108009],[.866025,.5,.625,.75,.216506,.32476,.842012,.419263,.098821],[.87462,.48481,.647439,.734431,.203551,.360692,.838638,.398086,.090085],[.882948,.469472,.669395,.717968,.190875,.396436,.833145,.376851,.081803],[.891007,.45399,.690839,.700629,.178494,.431899,.825544,.355623,.073974],[.898794,.438371,.711746,.682437,.166423,.466993,.81585,.334472,.066599],[.906308,.422618,.732091,.663414,.154678,.501627,.804083,.313464,.059674],[.913545,.406737,.751848,.643582,.143271,.535715,.79027,.292666,.053196],[.920505,.390731,.770994,.622967,.132217,.569169,.774442,.272143,.04716],[.927184,.374607,.789505,.601592,.121529,.601904,.756637,.25196,.041559],[.93358,.358368,.807359,.579484,.111222,.633837,.736898,.23218,.036385],[.939693,.34202,.824533,.55667,.101306,.664885,.715274,.212865,.03163],[.945519,.325568,.841008,.533178,.091794,.694969,.691816,.194075,.027281],[.951057,.309017,.856763,.509037,.082698,.724012,.666583,.175868,.023329],[.956305,.292372,.871778,.484275,.074029,.75194,.639639,.158301,.019758],[.961262,.275637,.886036,.458924,.065797,.77868,.61105,.141427,.016556],[.965926,.258819,.899519,.433013,.058013,.804164,.580889,.1253,.013707],[.970296,.241922,.912211,.406574,.050685,.828326,.549233,.109969,.011193],[.97437,.224951,.924096,.379641,.043823,.851105,.516162,.095481,.008999],[.978148,.207912,.935159,.352244,.037436,.872441,.481759,.08188,.007105],[.981627,.190809,.945388,.324419,.03153,.892279,.446114,.069209,.005492],[.984808,.173648,.954769,.296198,.026114,.910569,.409317,.057505,.00414],[.987688,.156434,.963292,.267617,.021193,.927262,.371463,.046806,.003026],[.990268,.139173,.970946,.238709,.016774,.942316,.332649,.037143,.002131],[.992546,.121869,.977722,.209511,.012862,.955693,.292976,.028547,.001431],[.994522,.104528,.983611,.180057,.009462,.967356,.252544,.021043,903e-6],[.996195,.087156,.988606,.150384,.006578,.977277,.21146,.014654,523e-6],[.997564,.069756,.992701,.120527,.004214,.985429,.169828,.0094,268e-6],[.99863,.052336,.995891,.090524,.002372,.991791,.127757,.005297,113e-6],[.999391,.034899,.998173,.060411,.001055,.996348,.085356,.002357,34e-6],[.999848,.017452,.999543,.030224,264e-6,.999086,.042733,59e-5,4e-6],[1,-0,1,-0,0,1,-0,0,-0]]],t.SPHERICAL_HARMONICS_AZIMUTH_RESOLUTION=t.SPHERICAL_HARMONICS[0].length,t.SPHERICAL_HARMONICS_ELEVATION_RESOLUTION=t.SPHERICAL_HARMONICS[1].length,t.SPHERICAL_HARMONICS_MAX_ORDER=t.SPHERICAL_HARMONICS[0][0].length/2,t.MAX_RE_WEIGHTS=[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1.003236,1.002156,.999152,.990038],[1.03237,1.021194,.990433,.898572],[1.062694,1.040231,.979161,.799806],[1.093999,1.058954,.964976,.693603],[1.126003,1.077006,.947526,.57989],[1.158345,1.093982,.926474,.45869],[1.19059,1.109437,.901512,.330158],[1.222228,1.12289,.87237,.194621],[1.252684,1.133837,.838839,.052614],[1.281987,1.142358,.801199,0],[1.312073,1.150207,.760839,0],[1.343011,1.157424,.717799,0],[1.374649,1.163859,.671999,0],[1.406809,1.169354,.623371,0],[1.439286,1.173739,.571868,0],[1.471846,1.176837,.517465,0],[1.504226,1.178465,.460174,0],[1.536133,1.178438,.400043,0],[1.567253,1.176573,.337165,0],[1.597247,1.172695,.271688,0],[1.625766,1.166645,.203815,0],[1.652455,1.158285,.133806,0],[1.676966,1.147506,.061983,0],[1.699006,1.134261,0,0],[1.720224,1.119789,0,0],[1.741631,1.10481,0,0],[1.763183,1.08933,0,0],[1.784837,1.073356,0,0],[1.806548,1.056898,0,0],[1.828269,1.039968,0,0],[1.849952,1.02258,0,0],[1.871552,1.004752,0,0],[1.893018,.986504,0,0],[1.914305,.967857,0,0],[1.935366,.948837,0,0],[1.956154,.929471,0,0],[1.976625,.90979,0,0],[1.996736,.889823,0,0],[2.016448,.869607,0,0],[2.035721,.849175,0,0],[2.054522,.828565,0,0],[2.072818,.807816,0,0],[2.090581,.786964,0,0],[2.107785,.766051,0,0],[2.124411,.745115,0,0],[2.140439,.724196,0,0],[2.155856,.703332,0,0],[2.170653,.682561,0,0],[2.184823,.661921,0,0],[2.198364,.641445,0,0],[2.211275,.621169,0,0],[2.223562,.601125,0,0],[2.23523,.581341,0,0],[2.246289,.561847,0,0],[2.256751,.542667,0,0],[2.266631,.523826,0,0],[2.275943,.505344,0,0],[2.284707,.487239,0,0],[2.292939,.469528,0,0],[2.300661,.452225,0,0],[2.307892,.435342,0,0],[2.314654,.418888,0,0],[2.320969,.40287,0,0],[2.326858,.387294,0,0],[2.332343,.372164,0,0],[2.337445,.357481,0,0],[2.342186,.343246,0,0],[2.346585,.329458,0,0],[2.350664,.316113,0,0],[2.354442,.303208,0,0],[2.357937,.290738,0,0],[2.361168,.278698,0,0],[2.364152,.26708,0,0],[2.366906,.255878,0,0],[2.369446,.245082,0,0],[2.371786,.234685,0,0],[2.37394,.224677,0,0],[2.375923,.215048,0,0],[2.377745,.20579,0,0],[2.379421,.196891,0,0],[2.380959,.188342,0,0],[2.382372,.180132,0,0],[2.383667,.172251,0,0],[2.384856,.164689,0,0],[2.385945,.157435,0,0],[2.386943,.150479,0,0],[2.387857,.143811,0,0],[2.388694,.137421,0,0],[2.38946,.131299,0,0],[2.39016,.125435,0,0],[2.390801,.11982,0,0],[2.391386,.114445,0,0],[2.391921,.1093,0,0],[2.39241,.104376,0,0],[2.392857,.099666,0,0],[2.393265,.09516,0,0],[2.393637,.090851,0,0],[2.393977,.086731,0,0],[2.394288,.082791,0,0],[2.394571,.079025,0,0],[2.394829,.075426,0,0],[2.395064,.071986,0,0],[2.395279,.068699,0,0],[2.395475,.065558,0,0],[2.395653,.062558,0,0],[2.395816,.059693,0,0],[2.395964,.056955,0,0],[2.396099,.054341,0,0],[2.396222,.051845,0,0],[2.396334,.049462,0,0],[2.396436,.047186,0,0],[2.396529,.045013,0,0],[2.396613,.042939,0,0],[2.396691,.040959,0,0],[2.396761,.039069,0,0],[2.396825,.037266,0,0],[2.396883,.035544,0,0],[2.396936,.033901,0,0],[2.396984,.032334,0,0],[2.397028,.030838,0,0],[2.397068,.02941,0,0],[2.397104,.028048,0,0],[2.397137,.026749,0,0],[2.397167,.025509,0,0],[2.397194,.024326,0,0],[2.397219,.023198,0,0],[2.397242,.022122,0,0],[2.397262,.021095,0,0],[2.397281,.020116,0,0],[2.397298,.019181,0,0],[2.397314,.01829,0,0],[2.397328,.017441,0,0],[2.397341,.01663,0,0],[2.397352,.015857,0,0],[2.397363,.015119,0,0],[2.397372,.014416,0,0],[2.397381,.013745,0,0],[2.397389,.013106,0,0],[2.397396,.012496,0,0],[2.397403,.011914,0,0],[2.397409,.01136,0,0],[2.397414,.010831,0,0],[2.397419,.010326,0,0],[2.397424,.009845,0,0],[2.397428,.009387,0,0],[2.397432,.008949,0,0],[2.397435,.008532,0,0],[2.397438,.008135,0,0],[2.397441,.007755,0,0],[2.397443,.007394,0,0],[2.397446,.007049,0,0],[2.397448,.006721,0,0],[2.39745,.006407,0,0],[2.397451,.006108,0,0],[2.397453,.005824,0,0],[2.397454,.005552,0,0],[2.397456,.005293,0,0],[2.397457,.005046,0,0],[2.397458,.004811,0,0],[2.397459,.004586,0,0],[2.39746,.004372,0,0],[2.397461,.004168,0,0],[2.397461,.003974,0,0],[2.397462,.003788,0,0],[2.397463,.003611,0,0],[2.397463,.003443,0,0],[2.397464,.003282,0,0],[2.397464,.003129,0,0],[2.397465,.002983,0,0],[2.397465,.002844,0,0],[2.397465,.002711,0,0],[2.397466,.002584,0,0],[2.397466,.002464,0,0],[2.397466,.002349,0,0],[2.397466,.002239,0,0],[2.397467,.002135,0,0],[2.397467,.002035,0,0],[2.397467,.00194,0,0],[2.397467,.001849,0,0],[2.397467,.001763,0,0],[2.397467,.001681,0,0],[2.397468,.001602,0,0],[2.397468,.001527,0,0],[2.397468,.001456,0,0],[2.397468,.001388,0,0],[2.397468,.001323,0,0],[2.397468,.001261,0,0],[2.397468,.001202,0,0],[2.397468,.001146,0,0],[2.397468,.001093,0,0],[2.397468,.001042,0,0],[2.397468,993e-6,0,0],[2.397468,947e-6,0,0],[2.397468,902e-6,0,0],[2.397468,86e-5,0,0],[2.397468,82e-5,0,0],[2.397469,782e-6,0,0],[2.397469,745e-6,0,0],[2.397469,71e-5,0,0],[2.397469,677e-6,0,0],[2.397469,646e-6,0,0],[2.397469,616e-6,0,0],[2.397469,587e-6,0,0],[2.397469,559e-6,0,0],[2.397469,533e-6,0,0],[2.397469,508e-6,0,0],[2.397469,485e-6,0,0],[2.397469,462e-6,0,0],[2.397469,44e-5,0,0],[2.397469,42e-5,0,0],[2.397469,4e-4,0,0],[2.397469,381e-6,0,0],[2.397469,364e-6,0,0],[2.397469,347e-6,0,0],[2.397469,33e-5,0,0],[2.397469,315e-6,0,0],[2.397469,3e-4,0,0],[2.397469,286e-6,0,0],[2.397469,273e-6,0,0],[2.397469,26e-5,0,0],[2.397469,248e-6,0,0],[2.397469,236e-6,0,0],[2.397469,225e-6,0,0],[2.397469,215e-6,0,0],[2.397469,205e-6,0,0],[2.397469,195e-6,0,0],[2.397469,186e-6,0,0],[2.397469,177e-6,0,0],[2.397469,169e-6,0,0],[2.397469,161e-6,0,0],[2.397469,154e-6,0,0],[2.397469,147e-6,0,0],[2.397469,14e-5,0,0],[2.397469,133e-6,0,0],[2.397469,127e-6,0,0],[2.397469,121e-6,0,0],[2.397469,115e-6,0,0],[2.397469,11e-5,0,0],[2.397469,105e-6,0,0],[2.397469,1e-4,0,0],[2.397469,95e-6,0,0],[2.397469,91e-6,0,0],[2.397469,87e-6,0,0],[2.397469,83e-6,0,0],[2.397469,79e-6,0,0],[2.397469,75e-6,0,0],[2.397469,71e-6,0,0],[2.397469,68e-6,0,0],[2.397469,65e-6,0,0],[2.397469,62e-6,0,0],[2.397469,59e-6,0,0],[2.397469,56e-6,0,0],[2.397469,54e-6,0,0],[2.397469,51e-6,0,0],[2.397469,49e-6,0,0],[2.397469,46e-6,0,0],[2.397469,44e-6,0,0],[2.397469,42e-6,0,0],[2.397469,4e-5,0,0],[2.397469,38e-6,0,0],[2.397469,37e-6,0,0],[2.397469,35e-6,0,0],[2.397469,33e-6,0,0],[2.397469,32e-6,0,0],[2.397469,3e-5,0,0],[2.397469,29e-6,0,0],[2.397469,27e-6,0,0],[2.397469,26e-6,0,0],[2.397469,25e-6,0,0],[2.397469,24e-6,0,0],[2.397469,23e-6,0,0],[2.397469,22e-6,0,0],[2.397469,21e-6,0,0],[2.397469,2e-5,0,0],[2.397469,19e-6,0,0],[2.397469,18e-6,0,0],[2.397469,17e-6,0,0],[2.397469,16e-6,0,0],[2.397469,15e-6,0,0],[2.397469,15e-6,0,0],[2.397469,14e-6,0,0],[2.397469,13e-6,0,0],[2.397469,13e-6,0,0],[2.397469,12e-6,0,0],[2.397469,12e-6,0,0],[2.397469,11e-6,0,0],[2.397469,11e-6,0,0],[2.397469,1e-5,0,0],[2.397469,1e-5,0,0],[2.397469,9e-6,0,0],[2.397469,9e-6,0,0],[2.397469,8e-6,0,0],[2.397469,8e-6,0,0],[2.397469,8e-6,0,0],[2.397469,7e-6,0,0],[2.397469,7e-6,0,0],[2.397469,7e-6,0,0],[2.397469,6e-6,0,0],[2.397469,6e-6,0,0],[2.397469,6e-6,0,0],[2.397469,5e-6,0,0],[2.397469,5e-6,0,0],[2.397469,5e-6,0,0],[2.397469,5e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,1e-6,0,0],[2.397469,1e-6,0,0],[2.397469,1e-6,0,0]],t.MAX_RE_WEIGHTS_RESOLUTION=t.MAX_RE_WEIGHTS.length},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.position&&(t.position=a.DEFAULT_POSITION.slice()),void 0==t.forward&&(t.forward=a.DEFAULT_FORWARD.slice()),void 0==t.up&&(t.up=a.DEFAULT_UP.slice()),void 0==t.minDistance&&(t.minDistance=a.DEFAULT_MIN_DISTANCE),void 0==t.maxDistance&&(t.maxDistance=a.DEFAULT_MAX_DISTANCE),void 0==t.rolloff&&(t.rolloff=a.DEFAULT_ROLLOFF),void 0==t.gain&&(t.gain=a.DEFAULT_SOURCE_GAIN),void 0==t.alpha&&(t.alpha=a.DEFAULT_DIRECTIVITY_ALPHA),void 0==t.sharpness&&(t.sharpness=a.DEFAULT_DIRECTIVITY_SHARPNESS),void 0==t.sourceWidth&&(t.sourceWidth=a.DEFAULT_SOURCE_WIDTH),this._scene=A,this._position=t.position,this._forward=t.forward,this._up=t.up,this._dx=new Float32Array(3),this._right=a.crossProduct(this._forward,this._up);let e=A._context;this.input=e.createGain(),this._directivity=new s(e,{alpha:t.alpha,sharpness:t.sharpness}),this._toEarly=e.createGain(),this._toLate=e.createGain(),this._attenuation=new o(e,{minDistance:t.minDistance,maxDistance:t.maxDistance,rolloff:t.rolloff}),this._encoder=new r(e,{ambisonicOrder:A._ambisonicOrder,sourceWidth:t.sourceWidth}),this.input.connect(this._toLate),this._toLate.connect(A._room.late.input),this.input.connect(this._attenuation.input),this._attenuation.output.connect(this._toEarly),this._toEarly.connect(A._room.early.input),this._attenuation.output.connect(this._directivity.input),this._directivity.output.connect(this._encoder.input),this._encoder.output.connect(A._listener.input),this.setPosition(t.position[0],t.position[1],t.position[2]),this.input.gain.value=t.gain}function n(A){let t=1;return A>a.EPSILON_FLOAT&&(t=1-A/a.SOURCE_MAX_OUTSIDE_ROOM_DISTANCE,t=Math.max(0,Math.min(1,t))),t}/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const s=e(5),o=e(6),r=e(1),a=e(0);i.prototype.setPosition=function(A,t,e){this._position[0]=A,this._position[1]=t,this._position[2]=e;let i=n(this._scene._room.getDistanceOutsideRoom(this._position[0],this._position[1],this._position[2]));this._toLate.gain.value=i,this._toEarly.gain.value=i,this._update()},i.prototype._update=function(){for(let i=0;i<3;i++)this._dx[i]=this._position[i]-this._scene._listener.position[i];let A=Math.sqrt(this._dx[0]*this._dx[0]+this._dx[1]*this._dx[1]+this._dx[2]*this._dx[2]);A>0&&(this._dx[0]/=A,this._dx[1]/=A,this._dx[2]/=A);let t=Math.atan2(-this._dx[0],this._dx[2])*a.RADIANS_TO_DEGREES,e=Math.atan2(this._dx[1],Math.sqrt(this._dx[0]*this._dx[0]+this._dx[2]*this._dx[2]))*a.RADIANS_TO_DEGREES;this._attenuation.setDistance(A),this._directivity.computeAngle(this._forward,this._dx),this._encoder.setDirection(t,e)},i.prototype.setRolloff=function(A){this._attenuation.setRolloff(A)},i.prototype.setMinDistance=function(A){this._attenuation.minDistance=A},i.prototype.setMaxDistance=function(A){this._attenuation.maxDistance=A},i.prototype.setGain=function(A){this.input.gain.value=A},i.prototype.setOrientation=function(A,t,e,i,n,s){this._forward[0]=A,this._forward[1]=t,this._forward[2]=e,this._up[0]=i,this._up[1]=n,this._up[2]=s,this._right=a.crossProduct(this._forward,this._up)},i.prototype.setFromMatrix=function(A){this._right[0]=A.elements[0],this._right[1]=A.elements[1],this._right[2]=A.elements[2],this._up[0]=A.elements[4],this._up[1]=A.elements[5],this._up[2]=A.elements[6],this._forward[0]=A.elements[8],this._forward[1]=A.elements[9],this._forward[2]=A.elements[10],this._right=a.normalizeVector(this._right),this._up=a.normalizeVector(this._up),this._forward=a.normalizeVector(this._forward),this.setPosition(A.elements[12],A.elements[13],A.elements[14])},i.prototype.setSourceWidth=function(A){this._encoder.setSourceWidth(A),this.setPosition(this._position[0],this._position[1],this._position[2])},i.prototype.setDirectivityPattern=function(A,t){this._directivity.setPattern(A,t),this.setPosition(this._position[0],this._position[1],this._position[2])},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.alpha&&(t.alpha=n.DEFAULT_DIRECTIVITY_ALPHA),void 0==t.sharpness&&(t.sharpness=n.DEFAULT_DIRECTIVITY_SHARPNESS),this._context=A,this._lowpass=A.createBiquadFilter(),this._lowpass.type="lowpass",this._lowpass.Q.value=0,this._lowpass.frequency.value=.5*A.sampleRate,this._cosTheta=0,this.setPattern(t.alpha,t.sharpness),this.input=this._lowpass,this.output=this._lowpass}/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const n=e(0);i.prototype.computeAngle=function(A,t){let e=n.normalizeVector(A),i=n.normalizeVector(t),s=1;if(this._alpha>n.EPSILON_FLOAT){let A=e[0]*i[0]+e[1]*i[1]+e[2]*i[2];s=1-this._alpha+this._alpha*A,s=Math.pow(Math.abs(s),this._sharpness)}this._lowpass.frequency.value=.5*this._context.sampleRate*s},i.prototype.setPattern=function(A,t){this._alpha=Math.min(1,Math.max(0,A)),this._sharpness=Math.max(1,t),this.computeAngle([this._cosTheta*this._cosTheta,0,0],[1,0,0])},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.minDistance&&(t.minDistance=n.DEFAULT_MIN_DISTANCE),void 0==t.maxDistance&&(t.maxDistance=n.DEFAULT_MAX_DISTANCE),void 0==t.rolloff&&(t.rolloff=n.DEFAULT_ATTENUATION_ROLLOFF),this.minDistance=t.minDistance,this.maxDistance=t.maxDistance,this.setRolloff(t.rolloff),this._gainNode=A.createGain(),this.setDistance(t.maxDistance),this.input=this._gainNode,this.output=this._gainNode}/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const n=e(0);i.prototype.setDistance=function(A){let t=1;if("logarithmic"==this._rolloff){if(A>this.maxDistance)t=0;else if(A>this.minDistance){let e=this.maxDistance-this.minDistance;if(e>n.EPSILON_FLOAT){let i=1/(e+1);t=(1/(A-this.minDistance+1)-i)/(1-i)}}}else if("linear"==this._rolloff)if(A>this.maxDistance)t=0;else if(A>this.minDistance){let e=this.maxDistance-this.minDistance;e>n.EPSILON_FLOAT&&(t=(this.maxDistance-A)/e)}this._gainNode.gain.value=t},i.prototype.setRolloff=function(A){let t=~n.ATTENUATION_ROLLOFFS.indexOf(A);void 0!=A&&t?A=A.toString().toLowerCase():(t||n.log('Invalid rolloff model ("'+A+'"). Using default: "'+n.DEFAULT_ATTENUATION_ROLLOFF+'".'),A=n.DEFAULT_ATTENUATION_ROLLOFF),this._rolloff=A},A.exports=i},function(A,t,e){"use strict";function i(A){let t={};for(let e in _.DEFAULT_ROOM_MATERIALS)_.DEFAULT_ROOM_MATERIALS.hasOwnProperty(e)&&(t[e]=_.ROOM_MATERIAL_COEFFICIENTS[_.DEFAULT_ROOM_MATERIALS[e]]);void 0==A&&(A={},Object.assign(A,_.DEFAULT_ROOM_MATERIALS));for(let e in _.DEFAULT_ROOM_MATERIALS)_.DEFAULT_ROOM_MATERIALS.hasOwnProperty(e)&&A.hasOwnProperty(e)?A[e]in _.ROOM_MATERIAL_COEFFICIENTS?t[e]=_.ROOM_MATERIAL_COEFFICIENTS[A[e]]:_.log('Material "'+A[e]+'" on wall "'+e+'" not found. Using "'+_.DEFAULT_ROOM_MATERIALS[e]+'".'):_.log('Wall "'+e+'" is not defined. Default used.');return t}function n(A){void 0==A&&(A={});for(let t in _.DEFAULT_ROOM_MATERIALS)A.hasOwnProperty(t)||(A[t]=_.ROOM_MATERIAL_COEFFICIENTS[_.DEFAULT_ROOM_MATERIALS[t]]);return A}function s(A){void 0==A&&(A={});for(let t in _.DEFAULT_ROOM_DIMENSIONS)A.hasOwnProperty(t)||(A[t]=_.DEFAULT_ROOM_DIMENSIONS[t]);return A}function o(A,t,e){let i=new Float32Array(_.NUMBER_REVERB_FREQUENCY_BANDS);A=s(A),t=n(t),void 0==e&&(e=_.DEFAULT_SPEED_OF_SOUND);let o=_.TWENTY_FOUR_LOG10/e,r=A.width*A.height*A.depth;if(r<_.ROOM_MIN_VOLUME)return i;let a=A.width*A.height,h=A.width*A.depth,c=A.depth*A.height,f=2*(a+h+c);for(let n=0;n<_.NUMBER_REVERB_FREQUENCY_BANDS;n++){let A=((t.left[n]+t.right[n])*a+(t.down[n]+t.up[n])*h+(t.front[n]+t.back[n])*c)/f;i[n]=_.ROOM_EYRING_CORRECTION_COEFFICIENT*o*r/(-f*Math.log(1-A)+4*_.ROOM_AIR_ABSORPTION_COEFFICIENTS[n]*r)}return i}function r(A){let t=[];for(let e in _.DEFAULT_REFLECTION_COEFFICIENTS)if(_.DEFAULT_REFLECTION_COEFFICIENTS.hasOwnProperty(e)){t[e]=0;for(let i=0;i<_.NUMBER_REFLECTION_AVERAGING_BANDS;i++){let n=i+_.ROOM_STARTING_AVERAGING_BAND;t[e]+=A[e][n]}t[e]/=_.NUMBER_REFLECTION_AVERAGING_BANDS,t[e]=Math.sqrt(1-t[e])}return t}function a(A,t){void 0==t&&(t={}),void 0==t.listenerPosition&&(t.listenerPosition=_.DEFAULT_POSITION.slice()),void 0==t.dimensions&&(t.dimensions={},Object.assign(t.dimensions,_.DEFAULT_ROOM_DIMENSIONS)),void 0==t.materials&&(t.materials={},Object.assign(t.materials,_.DEFAULT_ROOM_MATERIALS)),void 0==t.speedOfSound&&(t.speedOfSound=_.DEFAULT_SPEED_OF_SOUND),t.dimensions=s(t.dimensions);let e=i(t.materials),n=r(e),a=o(t.dimensions,e,t.speedOfSound);this.early=new c(A,{dimensions:t.dimensions,coefficients:n,speedOfSound:t.speedOfSound,listenerPosition:t.listenerPosition}),this.late=new h(A,{durations:a}),this.speedOfSound=t.speedOfSound,this.output=A.createGain(),this.early.output.connect(this.output),this._merger=A.createChannelMerger(4),this.late.output.connect(this._merger,0,0),this._merger.connect(this.output)}/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const h=e(8),c=e(9),_=e(0);a.prototype.setProperties=function(A,t){let e=i(t),n=o(A,e,this.speedOfSound);this.late.setDurations(n),this.early.speedOfSound=this.speedOfSound;let s=r(e);this.early.setRoomProperties(A,s)},a.prototype.setListenerPosition=function(A,t,e){this.early.speedOfSound=this.speedOfSound,this.early.setListenerPosition(A,t,e);let i=this.getDistanceOutsideRoom(A,t,e),n=1;i>_.EPSILON_FLOAT&&(n=1-i/_.LISTENER_MAX_OUTSIDE_ROOM_DISTANCE,n=Math.max(0,Math.min(1,n))),this.output.gain.value=n},a.prototype.getDistanceOutsideRoom=function(A,t,e){let i=Math.max(0,-this.early._halfDimensions.width-A,A-this.early._halfDimensions.width),n=Math.max(0,-this.early._halfDimensions.height-t,t-this.early._halfDimensions.height),s=Math.max(0,-this.early._halfDimensions.depth-e,e-this.early._halfDimensions.depth);return Math.sqrt(i*i+n*n+s*s)},A.exports=a},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.durations&&(t.durations=n.DEFAULT_REVERB_DURATIONS.slice()),void 0==t.predelay&&(t.predelay=n.DEFAULT_REVERB_PREDELAY),void 0==t.gain&&(t.gain=n.DEFAULT_REVERB_GAIN),void 0==t.bandwidth&&(t.bandwidth=n.DEFAULT_REVERB_BANDWIDTH),void 0==t.tailonset&&(t.tailonset=n.DEFAULT_REVERB_TAIL_ONSET);let e=t.predelay/1e3;this._bandwidthCoeff=t.bandwidth*n.LOG2_DIV2,this._tailonsetSamples=t.tailonset/1e3,this._context=A,this.input=A.createGain(),this._predelay=A.createDelay(e),this._convolver=A.createConvolver(),this.output=A.createGain(),this.output.gain.value=t.gain,this._convolver.normalize=!1,this.input.connect(this._predelay),this._predelay.connect(this._convolver),this._convolver.connect(this.output),this.setDurations(t.durations)}/**
+ * @license
+ * Copyright 2017 Google Inc. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+const n=e(0);i.prototype.setDurations=function(A){if(A.length!==n.NUMBER_REVERB_FREQUENCY_BANDS)return void n.log("Warning: invalid number of RT60 values provided to reverb.");let t=new Float32Array(n.NUMBER_REVERB_FREQUENCY_BANDS),e=this._context.sampleRate;for(let h=0;hi&&(i=t[n]);i<1&&(i=1);let s=this._context.createBuffer(1,i,e),o=s.getChannelData(0),r=new Float32Array(i);for(let n=0;n32&&t.throw("Utils.mergeBuffer: Number of channels cannot exceed 32.(got "+s+")"),i!==e[a].length&&t.throw("Utils.mergeBuffer: AudioBuffer lengths are inconsistent. (expected "+i+" but got "+e[a].length+")"),n!==e[a].sampleRate&&t.throw("Utils.mergeBuffer: AudioBuffer sample rates are inconsistent. (expected "+n+" but got "+e[a].sampleRate+")"),s+=e[a].numberOfChannels;const o=A.createBuffer(s,i,n);let r=0;for(let t=0;te[i]=t.charCodeAt(i)),e.buffer}},function(A,t,e){"use strict";function i(A,t,e){this._context=n.isAudioContext(A)?A:n.throw("BufferList: Invalid BaseAudioContext."),this._options={dataType:s.BASE64,verbose:!1},e&&(e.dataType&&n.isDefinedENUMEntry(s,e.dataType)&&(this._options.dataType=e.dataType),e.verbose&&(this._options.verbose=Boolean(e.verbose))),this._bufferList=[],this._bufferData=this._options.dataType===s.BASE64?t:t.slice(0),this._numberOfTasks=this._bufferData.length,this._resolveHandler=null,this._rejectHandler=new Function}const n=e(0),s={BASE64:"base64",URL:"url"};i.prototype.load=function(){return new Promise(this._promiseGenerator.bind(this))},i.prototype._promiseGenerator=function(A,t){"function"!=typeof A?n.throw("BufferList: Invalid Promise resolver."):this._resolveHandler=A,"function"==typeof t&&(this._rejectHandler=t);for(let e=0;e=0?this._stereoSplitters[i].connect(this._positiveIndexSphericalHarmonics,e%2):this._stereoSplitters[i].connect(this._negativeIndexSphericalHarmonics,e%2)}this._positiveIndexSphericalHarmonics.connect(this._binauralMerger,0,0),this._positiveIndexSphericalHarmonics.connect(this._binauralMerger,0,1),this._negativeIndexSphericalHarmonics.connect(this._binauralMerger,0,0),this._negativeIndexSphericalHarmonics.connect(this._inverter),this._inverter.connect(this._binauralMerger,0,1),this._inverter.gain.value=-1,this.input=this._inputSplitter,this.output=this._outputGain},i.prototype.setHRIRBufferList=function(A){if(!this._isBufferLoaded){for(let t=0;t0){const s=i(t,1);return o(A,1,t-1,e,n)*Math.sqrt(1+s)-o(A,-1,1-t,e,n)*(1-s)}{const s=i(t,-1);return o(A,1,t+1,e,n)*(1-s)+o(A,-1,-t-1,e,n)*Math.sqrt(1+s)}}function h(A,t,e,i){return 0===t?0:t>0?o(A,1,t+1,e,i)+o(A,-1,-t-1,e,i):o(A,1,t-1,e,i)-o(A,-1,1-t,e,i)}function c(A,t,e){const n=i(A,0),s=Math.abs(t)===e?1/(2*e*(2*e-1)):1/((e+t)*(e-t));return[Math.sqrt((e+A)*(e-A)*s),.5*(1-2*n)*Math.sqrt((1+n)*(e+Math.abs(A)-1)*(e+Math.abs(A))*s),-.5*(1-n)*Math.sqrt((e-Math.abs(A)-1)*(e-Math.abs(A)))*s]}function _(A,t){for(let e=-t;e<=t;e++)for(let i=-t;i<=t;i++){const s=c(e,i,t);Math.abs(s[0])>0&&(s[0]*=r(A,e,i,t)),Math.abs(s[1])>0&&(s[1]*=a(A,e,i,t)),Math.abs(s[2])>0&&(s[2]*=h(A,e,i,t)),n(A,t,e,i,s[0]+s[1]+s[2])}}function f(A){for(let t=2;t<=A.length;t++)_(A,t)}function l(A,t){this._context=A,this._ambisonicOrder=t;const e=(t+1)*(t+1);this._splitter=this._context.createChannelSplitter(e),this._merger=this._context.createChannelMerger(e),this._gainNodeMatrix=[];let i,n,s,o,r;for(let a=1;a<=t;a++){i=a*a,n=2*a+1,this._gainNodeMatrix[a-1]=[];for(let A=0;A ["+A+"])"),this._audioElementSource=this._context.createMediaElementSource(this._videoElement),this._foaRouter=new s(this._context,this._channelMap),this._foaRotator=new o(this._context),this._foaPhaseMatchedFilter=new r(this._context),this._audioElementSource.connect(this._foaRouter.input),this._foaRouter.output.connect(this._foaRotator.input),this._foaRotator.output.connect(this._foaPhaseMatchedFilter.input),this._foaVirtualSpeakers=[],this._bypass=this._context.createGain(),this._audioElementSource.connect(this._bypass);const e=Math.pow(10,this._postGainDB/20);c.log("Gain compensation: "+e+" ("+this._postGainDB+"dB)");const i=this;return new Promise(function(A,t){new n(i._context,i._speakerData,function(t){for(let A=0;A ["+A.toString()+"])."),this._config.channelMap=A.slice(),this._foaRouter.setChannelMap(this._config.channelMap))},i.prototype.setRotationMatrix3=function(A){this._isRendererReady&&this._foaRotator.setRotationMatrix3(A)},i.prototype.setRotationMatrix4=function(A){this._isRendererReady&&this._foaRotator.setRotationMatrix4(A)},i.prototype.setRotationMatrixFromCamera=function(A){this._isRendererReady&&(h.invertMatrix4(this._tempMatrix4,A.elements),this._foaRotator.setRotationMatrix4(this._tempMatrix4))},i.prototype.setRenderingMode=function(A){if(A!==this._config.renderingMode){switch(A){case c.AMBISONIC:this._foaConvolver.enable(),this._bypass.disconnect();break;case c.BYPASS:this._foaConvolver.disable(),this._bypass.connect(this.output);break;case c.OFF:this._foaConvolver.disable(),this._bypass.disconnect();break;default:return void h.log('FOARenderer: Rendering mode "'+A+'" is not supported.')}this._config.renderingMode=A,h.log("FOARenderer: Rendering mode changed. ("+A+")")}},A.exports=i},function(A,t){A.exports=["UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wIA9v8QAPv/CwD+/wcA/v8MAP//AQD7/wEACAAEAPj/+v8YABAA7v/n//v/9P/M/8D//f34/R38EvzxAfEBtA2lDTcBJQFJ9T71FP0D/cD1tfVo/Wv9uPTO9PPmOufc/U/+agL3Aisc/RxuGKEZBv3j/iYMzQ2gAzsEQQUABiQFrASzA5cB2QmyCy0AtgR4AeYGtfgAA2j5OQHP+scArPsMBJgEggIEBtz6+QVq/pj/aPg8BPP3gQEi+jEAof0fA1v9+/7S+8IBjvwd/xD4IADL/Pf9zvs+/l3+wgB7/+L+7fzFADH9kf6A+n3+DP6+/TP9xP68/pn+w/26/i39YgA0/u790Pt9/kD+7v1s/Wb+8f4C/1P+pf/x/cT+6/3p/Xz9ff5F/0f9G/4r/6v/4P5L/sL+ff7c/pj+Ov7X/UT+9P5G/oz+6v6A/2D+9/6P/8r/bP7m/ij+C//e/tj/Gf4e/9v+FwDP/lz/sP7F/2H+rv/G/s7/Hf7y/4P+NAD9/k0AK/6w/zP/hACh/sX/gf44AOP+dgCm/iUAk/5qAOD+PwC+/jEAWP4CAAr/bQBw/vv/zf5iACD/OgCS/uD/Cv9oAAb/CgDK/kwA//5tACH/TgCg/h4AHP9aABP/JADP/hEAYv9gAAj/3f8m/ysAYv8gACX/8/8k/ysAXv8bABH//v8j/ygAa/8qAAD/9f9g/1YAWf8JACH/AgB2/z4AXP/w/z3/FgB2/ykAX//9/z//EwCV/zUAS//n/1T/GACK/x4ATv/0/4P/QQB4//v/WP/2/3X/HAB8//P/V//3/2f/AQBh/9v/Tf/x/5P/IwCI/wMAf/8hAKP/JACZ/xUAiv8nAK//HgCr/yMAm/8uAMz/OACi/yQAqf87AMT/MwCY/yUAtP9FAMH/KgCu/ycAyP85AMv/IwCz/xoA1f8qAMn/FgC8/xQA4/8nAMX/CwDJ/xQA4f8ZAMH/BgDO/xQA4f8WAMP/BwDU/xQA4P8QAMH/AQDb/xQA3P8JAMP/AgDh/xIA2v8EAMj/AgDk/w0A1f/+/8v/AwDm/wwA0v/+/9H/BgDl/wkAzv/8/9T/BwDk/wcAzv/8/9r/CQDi/wQAzf/8/9//CADf////0P/9/+L/BwDd//7/0////+T/BgDb//z/1f8AAOf/BQDZ//v/2v8CAOb/AwDY//v/3v8EAOb/AgDY//3/4f8FAOX/AQDZ//7/5P8GAOP/AADb/wAA5/8GAOH////d/wIA5/8FAOD////f/wMA6P8FAOD////h/wQA6P8EAN7////h/wUA4v8DANv/AQDd/wQA3P8CANn/AgDb/wMA2/8CANv/AgDd/wIA3v8CAOH/AQDj/wEA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAAAA/f8CAP//AQD//wEA//8BAP3/AAACAP7/+f8AAAIA/P8FAAQA8/8AABoA+f/V/wQAHQDO/xoAQQBO/ocA0Px1/ucHW/4UCm8HLO6kAjv8/fCRDdAAYfPiBIgFXveUCM0GBvh6/nz7rf0J/QcQSRVdBgoBSgFR62r9NP8m+LoEAvriBVAAiAPmABEGMf2l+SwBjva6/G4A//8P/CYDMgXm/R0CKAE6/fcBBwAtAND+kQA0A5UDhwFs/8IB8fydAEP/A/8v/e7/mP8j/2YBIwE3Av0AYv+uAOD8lgAg/wwAIf/L/n0Ae//OAJMB3P/XAF//XwCM/08AB/8NAEf/rf4jAT3/lgAJAP4AHgDpAO8AUf9L/07/Qf8KAOD/x/+D/3sATQCDAMoA0f79/+L/EQDt/7EAqv+S/7IAuv/o/wgAc//X//H/SwCm/+3/Yf/B/yoAAADI/7X/AwBg/5EATgCX/xYA/P+q/00AVACY/6v/BADD/zwALQCN/8z/KQDu/ygAEgCZ/6f/VQDC//T/KQCs/7P/UgAfAO7/NgC8/57/awAZAPP/+P/V/8z/bQBBAL//DgD0/+T/TABBAMz/CwAxAPz/SQBqALn/BgALAPz/EAA7AIz/3/8iAAUA//8kALf/y/9VABQA+v81AOj/0P9cAB4A+f8WAOr/vv83ABgAw/8JAOj/4f8nACIAsf/y/w4A3v8gACQAxP/n/ycA7P8WAC0Ayf/U/ycA9v/7/yUA0P/P/zUABADc/xUA5P/J/zcACwDS/xUA9P/m/zAACQDX/+3/9v/2/yQACgDZ/+P/AwAKABYA///b/9j/EQALABkADgD6/+7/GwD4/w4A8P/w//j/EgAEAAUA9f/1/wQAGgD4/wAA5////wAAGQD1////7f8FAAUAFQDv/wAA6v8LAAcAFQDs/wEA9P8SAAYACwDr//7/AQASAAYABQDv/wIAAwAWAAIAAgDv/wAABgATAAEA/f/u/wQABgAQAPr/+P/z/wUACQALAPj/9//4/wgABwAKAPT/+f/5/w4ABwAIAPT/+//9/w4AAwADAPH//f///w8A//8BAPP///8BAA0A/f/+//X/AgACAA0A+//8//b/BAADAAoA+f/7//n/BgADAAcA+P/7//v/BwABAAQA+P/8//3/CQABAAIA9//9////CQD/////+P///wAACAD9//7/+f8AAAAABwD8//3/+v8CAAAABgD7//z//P8EAAAABAD6//3//P8FAP//AgD6//7//v8FAP7/AQD7//////8GAP7/AAD7/wEA//8EAP3/AAD9/wEA/v8DAP3/AAD9/wIA/v8CAP3/AQD9/wIA/v8CAP7/AQD+/wEA"]},function(A,t,e){"use strict";function i(A,t){this._context=h.isAudioContext(A)?A:h.throw("HOARenderer: Invalid BaseAudioContext."),this._config={ambisonicOrder:3,renderingMode:c.AMBISONIC},t&&t.ambisonicOrder&&(_.includes(t.ambisonicOrder)?this._config.ambisonicOrder=t.ambisonicOrder:h.log("HOARenderer: Invalid ambisonic order. (got "+t.ambisonicOrder+") Fallbacks to 3rd-order ambisonic.")),this._config.numberOfChannels=(this._config.ambisonicOrder+1)*(this._config.ambisonicOrder+1),this._config.numberOfStereoChannels=Math.ceil(this._config.numberOfChannels/2),t&&t.hrirPathList&&(Array.isArray(t.hrirPathList)&&t.hrirPathList.length===this._config.numberOfStereoChannels?this._config.pathList=t.hrirPathList:h.throw("HOARenderer: Invalid HRIR URLs. It must be an array with "+this._config.numberOfStereoChannels+" URLs to HRIR files. (got "+t.hrirPathList+")")),t&&t.renderingMode&&(Object.values(c).includes(t.renderingMode)?this._config.renderingMode=t.renderingMode:h.log("HOARenderer: Invalid rendering mode. (got "+t.renderingMode+') Fallbacks to "ambisonic".')),this._buildAudioGraph(),this._isRendererReady=!1}const n=e(1),s=e(8),o=e(9),r=e(17),a=e(18),h=e(0),c={AMBISONIC:"ambisonic",BYPASS:"bypass",OFF:"off"},_=[2,3];i.prototype._buildAudioGraph=function(){this.input=this._context.createGain(),this.output=this._context.createGain(),this._bypass=this._context.createGain(),this._hoaRotator=new o(this._context,this._config.ambisonicOrder),this._hoaConvolver=new s(this._context,this._config.ambisonicOrder),this.input.connect(this._hoaRotator.input),this.input.connect(this._bypass),this._hoaRotator.output.connect(this._hoaConvolver.input),this._hoaConvolver.output.connect(this.output),this.input.channelCount=this._config.numberOfChannels,this.input.channelCountMode="explicit",this.input.channelInterpretation="discrete"},i.prototype._initializeCallback=function(A,t){let e;(e=this._config.pathList?new n(this._context,this._config.pathList,{dataType:"url"}):2===this._config.ambisonicOrder?new n(this._context,a):new n(this._context,r)).load().then(function(t){this._hoaConvolver.setHRIRBufferList(t),this.setRenderingMode(this._config.renderingMode),this._isRendererReady=!0,h.log("HOARenderer: HRIRs loaded successfully. Ready."),A()}.bind(this),function(){const A="HOARenderer: HRIR loading/decoding failed.";h.throw(A),t(A)})},i.prototype.initialize=function(){return h.log("HOARenderer: Initializing... (mode: "+this._config.renderingMode+", ambisonic order: "+this._config.ambisonicOrder+")"),new Promise(this._initializeCallback.bind(this),function(A){h.throw("HOARenderer: Initialization failed. ("+A+")")})},i.prototype.setRotationMatrix3=function(A){this._isRendererReady&&this._hoaRotator.setRotationMatrix3(A)},i.prototype.setRotationMatrix4=function(A){this._isRendererReady&&this._hoaRotator.setRotationMatrix4(A)},i.prototype.setRenderingMode=function(A){if(A!==this._config.renderingMode){switch(A){case c.AMBISONIC:this._hoaConvolver.enable(),this._bypass.disconnect();break;case c.BYPASS:this._hoaConvolver.disable(),this._bypass.connect(this.output);break;case c.OFF:this._hoaConvolver.disable(),this._bypass.disconnect();break;default:return void h.log('HOARenderer: Rendering mode "'+A+'" is not supported.')}this._config.renderingMode=A,h.log("HOARenderer: Rendering mode changed. ("+A+")")}},A.exports=i},function(A,t){A.exports=["UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wQA8/8YAP3/CgACAAAA//8CAAYA8/8AAPH/CgDv/97/e/+y/9P+UQDwAHUBEwV7/pP8P/y09bsDwAfNBGYIFf/Y+736+fP890Hv8AGcC3T/vwYy+S70AAICA3AD4AagBw0R4w3ZEAcN8RVYAV8Q8P2z+kECHwdK/jIG0QNKAYUElf8IClj7BgjX+/f8j/l3/5f/6fkK+xz8FP0v/nj/Mf/n/FcBPfvH/1H3+gBP/Hf8cfiCAR/54QBh+UQAcvkzAWL8TP13+iD/V/73+wv9Kv+Y/hv+xPz7/UL83//a/z/9AP6R/5L+jf26/P3+rP26/tD8nP7B/Pv+WP1V/sP9gv91/3P9xP3J/nv/GP5S/sb+IP8v/9j/dv7U/pr+6v+u/Z3/sv5cAOr9Q/83/+n/zP5x/57+2//k/nwA/v01//L+SACB/sD/Ff81AJT+TgDp/ocAm/5dAFT+MgD+/pMAW/7o/yH/xQDA/kkA9P6LAL3+pAC0/iQAz/5UALD+UwAt/3UAhf4UAA//pwC+/joAz/5aAAv/fwDY/iMAIf+uAPP+ZAAc/0QAy/4xAB7/TgDs/goADP8wAEL/NwDo/ub/Uf9BAC3/+v9F/y4ARP9HAFP/EQA3/xMATP81AG3/HQAu/wgAaP9FACb/9f9B/y0AUP8rAED/CwBV/z4AW/8TAGH/BQBK/xsAfv8eAFn/AgB3/zwAff8RAGj//v+E/yAAb//0/3n/FwBz/xcAiv8PAHn/FQCJ/xgAg//x/3j/EQCa/ycAff/w/47/HwCI//X/iv/7/43/JQCM/+n/kP8AAJb/JACj//7/oP8ZAML/SwCo/w4Atv8tAMb/PACr/xcAwP9HAMP/OADF/y4A0f9IANL/NwC//zEA0f9LAMb/MAC8/y4A3f9GAMH/FQDQ/yYA2/8sAMT/AwDX/xkA3v8SAM3/9v/c/w8A4f8LAMj/8f/h/xQA2P8CAMn/8//j/xQA0v/7/9H//P/i/xEA0v/1/9L//f/j/w0A0f/x/9f//v/k/wgAz//u/9z/AwDg/wMA0P/v/9//BQDf////0v/y/+D/CADc//3/0v/2/+L/CgDa//r/1v/5/+T/CgDY//j/2f/9/+T/CADY//f/3P8AAOT/BwDY//f/4P8EAOP/BADZ//j/4v8GAOL/AwDa//r/5f8IAOH/AQDc//3/5v8JAOD//v/f////5v8IAOD//v/h/wIA5/8HAOD//f/j/wMA5/8GAOD//f/l/wYA5v8EAOD//v/m/wYA5f8CAOL////n/wYA5P8BAOH/AADl/wUA4f///+H/AQDk/wMA4f///+T/AQDm/wEA5////+r/AADt/wAA7/////P/AAD1////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////v///wAAAAAAAAAAAQAAAAAA///9/wAABAD+//n/AgAJAAAA+v/+//f/DAAdAPv/+v+l/8L+jf/4/vgAdwVPAQACLQBo+Qj/Ev7o/N3/VgCbA08Bxf+L+yn9J/2HCU8FmgBvDe30Rv5h/LT09gi5CxkA5gOi8/30kwEM+4YJMf2nBmkJJAQQBLoFtvvv+m4A7PF6/R0Bif3qAuf8WARAAf4GyABG/BIAwvr4Acv8U//c/yIC8AEn/B8Daf2CAgMBAf3MAN38vgLK/UT/QwCyAPYClPyvAW/+pQAoASD+zP+R/IYC1f7C/nEBQP96AZb+1QAIAM//yQE7/tkAZ/7TAXL/w/8+AIsAtwB7/24A4v9a/z4A7v4iADb/dwCj/23/kgBOANUAIv8lAKEAxP9gAK7/BwCP/5kA7/9v/0wAzv9DAGT/3/9vAHv/6P+q/xUA7P8XAO//uv/g/2UAEgCV/wEATADM/+7/+//j/+D/9v/i//j/IgD+/xoAxf/6/z4A5/+8/9D/QwDq/+3/OQDT/zUAIgA/APP/PgAjAPD/BwAGACAADAC3//b/HAA3AN//RgDN/w8AIAACAN//GQBDACEAIwA+ACoAJQAeAPz/KgAYAPr/DgAEABYAIgAcAMT/7f8OAOL/5P/2//L/9P8GAPT/7v/8/+7/6v/t//z/AgAUAOL//P8VAAMA4/8IAPb/+P8MAAoA5v8NAAsA9v///wEAAAD9//n/9/8JAAYA7v/6/wMA+f8GAAEA7f/7/xgACAD4/w8A///3/w0A+f8BAAIA/P/5/xIA///9//r/7v/+/xYACQD///H/CwDz/wEADgAHAPP/FADn/+3/AQD5//f/AgD7/wEABwAMAAEADQD8//n/8f8OAPX/BAD+//X/+v8WAAQA+f8CAAEA7/8QAAEA/P8DAAUA9f8KAAwA9v8DAAUA+f8OAAoA9f/7/w0A+v8EAAgA8P/6/woA+//8/wkA+P/3/woA+//8/wcA9//1/woAAwD5/wcA/P/3/w0AAwD3/wEABAD2/wkABgD3/wEABQD3/wUABQD3//v/BwD3/wMABQD3//r/CQD7////BQD6//n/CQD9//3/BAD9//j/BwAAAPv/AwD///j/BwABAPn/AQABAPn/BQACAPn///8DAPr/AwADAPr//v8EAPv/AQADAPv//P8FAP3///8DAPz/+/8FAP7//f8CAP7/+/8EAP///P8BAP//+/8DAAEA+/8AAAEA+/8CAAIA+////wIA/f8AAAIA/P/+/wIA/f8AAAIA/f/9/wMA/////wEA///+/wIA/////wAAAAD+/wAAAAD/////AAD//wAA//8AAP//AAD//wAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD////////+//////8AAP////8AAP//AAAAAPz//f8IAAMA9////w4AAQD6/wwA8//+/y8Afv/0/2H/UP5gAbH+2QG1B2cAVAIh/l32FPyM/nACPQDV/+UEo/Q6AQwCu/oLD9kF8QJA/Uz+Wf2KCOcC+wUKBsL5aQBQ97rwOPiPAvn5CAl8AHEDkQPcAA8Bn/lIAdz7HQF1+xz9cAM4/94E4gDKAun+cgPYAYr9JgJr/bf+ivxz/MoBgv5UA8EBSgAQAJ7/UgEk/cQB7f63/sD/vf4XAhT/BQFCADYAnQGI/9EBtv3hALD/vP+c/3H/TgIN/1sBpf8yAP3/4f8qABr+1f8OAJ3/dwAGADEBnv9JAPz/IQBwAIH/jgAS/4wAsACTAOn/DQDCALn/ZQCSAAIAAwD1/9//jv9aADQA/v9EAB0AfgA8AAQACgB9APr/IAARAPT/5v9xACAABAAHAGUAt/89AC4ACgAjAMP/+v/9/xYA7f/1/+D/7P87AC0Auv8RAAcA9/8FAC8A2//y/xIAEwAaADQAJADp/zoAAgAfABIA2f/e/zUA+P/6/w4A9//A/zcA4//P//T/5f/R////EwDb/w4A8/8BABkANADh/xEA+f/0/wIAHADc//j/GwD1//f/GADs/+v/EAAAAPz/EgD3/+r/FgAMAAkAGAD9/+z/IQAQAPH/GQD3//z/CgAfAOX/AgD8//H/BAATAOv/+v///wIABAAdAOj/BQAPAAcAAQATAOz/8/8JAAkA6f8VAOv/+f8QABUA/v8OAO3/+P8KABUA9f8FAPv/5/8TAA0A7f8XAAkAAQAJABYA4/8WAAcACgANABEA7v8EAP7/AAD+/wMA9//7/xAAAQD8/wQA+f/7/wMABgDq/wAA+v/3/wYACQD1//3/BAD9/wgADgDw//r/AgD6/wEACADv//j/BQD///X/BwDu//j/AgACAPP/BAD2//n/BAAGAPb/BAD8//3/BQAJAPL/AwD+//3/BAAIAPP//f8DAPz/AAAGAPP/+/8CAP7//f8FAPX/+f8DAAAA/P8EAPf/+v8GAAMA+/8EAPv/+/8GAAQA+v8CAP///P8EAAUA+f8AAP///f8CAAUA+P///wEA/v8BAAUA+f/+/wIAAAD//wUA+v/9/wMAAQD9/wQA+//9/wMAAgD8/wMA/P/9/wMAAwD7/wEA/v/+/wIAAwD6/wEA///+/wAABAD6/wAAAQD//wAAAwD7////AQAAAP//AwD8//7/AgABAP3/AgD9//7/AQABAP3/AQD+//7/AAACAPz/AAD+//////8BAP3/AAD//wAA//8BAP7/AAD//wAA/v8AAP7/AAD//wAA//8AAP//","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////P/9//3//////wAAAAAAAAIAAgACAP//CAAEAEEA//+cAAUAb/8HAAH9+P9eARkAogQUAJn8BwCd/gX/+QQNAKoC9gFdAtb/b/vd/936TP/6AsD/nfqn/un1W/0dA8IEsQLvAJv2bP72+WMAkP8dAcX+nQO2AIr6bP/EABX+NgK/Bdj2IQv2AE4EUAiD/xQAnwIm/B0B/wGNAoH7sQaP/b8CiQakAqD+R/9xA477KQL//6r75v/O/pcCgQCtAiMCBQAkANAARwHf//39hgBl/kUAJgEtAUEATgA/AgoASADK/zUAJv29/vL+l/9c/0cAUwBBAE8A6QE5/87/Wv9NAOf+5v7P/5P/4/9BAKYAQwDD/zYB5v+r/zYATwAp/1v/WQAEAB0AhwA0AA0AIAA3AAEAzv/u/+//5v9m/zwAIADQ/8T/SABiANb/SwAbAFf/MQDX/7L/hP8TAPr/AgAMAAsAHwAZAI3/VgDC/9v/5//x/6P/AwBlAMv/yf82AB4A+P9WAPj/NwDi/1EA0v9JANj/JwAcAAEADABYANj/4f8MAEwAmP82AN//3P8UADYA7//6/wIACADU/ygAyv82AN7/9v/2/ygAxv/9/+3/5//n/zUA6//g/y4ADgD5/wsABwDv/xIADwAGACoAJQD3/zIA+/8FABsAFgDO/zAAHAAIABQALADp/xcACAAAAPH/GADs/wkACQAFAAgAFQDp/wIAHAD1//P/EQDw/+3/GAD9/+f/HAD8//T/DAAQAPH/HwD4//r/DwAPAOj/EQACAOn/DAAXAOX/BAAOANH/9/8MAO//9f8LANT/9f8EAO//6f8NANb/+P8KAOz/5v8MAOD/7f8UAO//7//+//7/9v8YAPj/9f/z/wsA+v8SAPD/+v/x/xYA+f8SAPb/9//3/xEABQACAPn/9//y/xQACQD///b//v/7/xIACQD9//H/AAD7/xEAAgD5//P/AwD9/w8AAgD3//D/BAD//wUA/v/0//D/BgADAAMA/P/2//f/BwAGAP7/+//2//j/CAAFAPv/+f/5//v/BwAHAPn/9//7//7/BQAFAPf/9//+/wEABAACAPf/+P8BAAIAAgAAAPj/9/8CAAMAAAD+//n/+f8EAAQA/v/8//r/+/8EAAMA/P/7//z//P8EAAIA/P/5//7//v8DAAEA+//5//////8CAAAA+//5/wEAAAABAP//+//6/wIAAQD///3//P/7/wMAAQD///3//f/9/wIAAQD9//3//v/9/wMAAQD9//z/AAD//wEAAAD9//z/AAAAAAAA///9//3/AAD//wAA/v////7/AAD//wAA////////AAD//wAA//8AAP//","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+////+f////v//v///wAA/////wUAAQAIAAIABwACAHkATAAOAaMAAf9C/9X6QvwhArAAtghABW37nv/y+0wAWQNcAE8JRwSOC6AEJe8P8S/zrPWaBI/+LQA/+0L+P/4K8AgAb/8uCh78BQtC614GaQWfAin5UfzN8Tf+GQizAZ4MCQMbGJ4BoRS7AvcHyQARA6n9ZwHZ/z4DvwAZAlAB6gbNAS4GFADFATL7E/2K+j37C/xp/SD9Uv0VAOsDs//WAd3+bv7F/f79mP2X/KH+FwC0/1n+VgFcATABHQGaAET+nf8Y/hoAovpqAXj9CQKW/lsCl/4RApj+bAHk/RcAlv4BAG/+DgDi//3/GwAOAEIAq/+y/3z/8v8+/7T/Tv8//27/mgDZ/1sA+P+cAAAA/P/i/yMAi/85AMP/KgDM/9MA9P+QABoA4QAiACwACwBdAP7/TQDb/y0Ayf+SAA0AZwDg/4wA+/8/AAMAgQDp/w0ADAAQAAoANgAgAA4AKABIAB4A4v/3/+f/+v/c/+n/EADn/wgAFAAqAOz/IwDc/9//3f8XAND/2v/a/w0A5v8BANb/9P/m/wAA8P8ZAN3/RwAGAEsABgB/AP7/NAASAEgABAA3AP3/KgD9/1sA8P8lAOr/FgD1/xAA4/8kAOv/AwD4/xEA5f8NAPT/+v/3/x8A7f8PAPj/IwD5/yAA9/8ZAAEAGgD4/xoA9f8HAAMACAD0/xgA+P8AAPr/IQDp/w4A8v8HAPX/IgD1/wYA+P8GAPX/GgD3/woABQASAAcAGQDw/+v/9P8bAP3/HADs/+f/7/8LAPr//v/0//T/AgD2/wsA6P///+P/CADY//7/5v/3/wQA/v8LAPD/GgD1/yMA/P8QAOv/LADw/yQA+P8XAO7/MQD9/yEAAQAcAPD/IgD9/xMA+/8OAO//FQABAAoA+/8PAPP/FQABAAQA9/8PAPX/CAADAAEA+P8NAPv/CAAGAAUA9/8JAP//AAAFAPz/+f8HAAQA/f8FAP3//P8FAAYA+P8DAP7/+/8AAAcA9/8BAP///f///wgA9//+/wAA/v/8/wUA9//8/wIA///7/wUA+v/7/wIAAAD6/wMA/P/6/wEAAQD6/wEA/v/7/wIAAgD6////AAD7/wEAAgD7//7/AQD8/wAAAwD8//3/AwD9/wAAAgD9//z/AwD/////AgD+//z/AwAAAP7/AQD///3/AgABAP3/AAAAAP3/AgACAPz///8BAP3/AQACAP3//v8BAP7/AAABAP3//v8CAP7///8BAP7//f8CAP////8AAAAA/v8CAAAAAAAAAAAA/v8BAAAAAAD//wAA//8AAP//AAD//wAA//8AAP//","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAP//AAD//wAA//8AAAAA/////wAAAQD+////AAAGAP3/OAABAIIAAwBv//f/E/0QAK0ADQCzA/7/8P4u/0cBDQCJA6ABbQDg/w7/z/9o+Vn/SPnL/1//Ef+2+jr9RfZgA5QFZwILDFj+PAb2/nEFKgKk/R0Dlv6b/FUDsP6YAoj9SgAT/iL/tAPwAv8A0P6zAr7/dwAnAf39uP22/skA2v///2YCoP4UAUsAZgF2AJH+4P70/rz9+f+U/Xv/8v7CAcb+TACS/kwAv/+x/tX9oP71/oL/1f8nAEUAZwGtAAgAIgC/AD4BaP8GAGH/dQDF/64Arf8nAakAhAH9/+kAQQD3AFb/q/8p/yIAR/8FAPD/ZAA/AIYA3v8tADQADQBp/3f/CwABAP3/Wf8OANj/WwDH/xoAe/8DAKz/zv96/z8A3f/J/5X/IAD5//j/q//c/+//RADq//D/vv8pADUAFQDI/y8ACAAbANb/OwD3/+3/9f/e/wcAIAAeAMH/8/8xAC0AEADW/+3/HAADAPv/8P8DAOL/OwD3/xcACQAHAM//5f8XAAcAz//T/9D/HgD9////yf/e//v/AgD//9H/6/////H/+/8hAAIA9//7/w0AFgAQAPL/2v/8/xsAGQABANz/9P8YAAQA/v/y/wMA5v8YAAkAAAAAAAMA7/8KABgADwDs//j/BwATABsA8P/1//z/BAAMAAAA9P/s/xAA/v8GAAkA/v/p/wMACwALAP7/9P/p/wcADQAFAPb/7//4/w0ACAD8//b//v/1/wMACwD1//T/8P/8/wAACQDz/+f/5P8GAAkABQD5//D/+v8FAA0AAwD///T/AgACABAA/v8CAPD/+/8FAAoA9f/3//f//v8GAP7/9v/t//z/+f8AAPj/+v/3/wEA+v8HAPr//P/5/wQA//8DAPr/+P/3/wYA///+//X/+//5/wQA/f/7//X/+//4/wMA/f/8//j//v/9/wYA///8//f/AgAAAAUA/f/6//n/AwACAAIA/f/7//z/AwACAAAA/f/6//3/AgADAP7//f/7/wAAAwAFAPz////8/wMAAgAEAPv//v/+/wMAAgADAPv//v///wMAAQABAPv//f8AAAIAAAD///v//f8BAAIA///+//z//v8CAAIA/v/9//3///8CAAEA/v/9//7/AAACAAAA/v/9////AAABAAAA/f/9/wAAAQABAP///f/+/wEAAQAAAP///v/+/wEAAQD///7//v///wEAAQD///7//v///wEAAAD+//7///8AAAAAAAD+//7///8AAAAA///+//7///8AAAAA////////AAAAAP////////////8AAP//////////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAAAAAAABAAAAAAD//////////////v////3/////////+//8////AQD9//z/9f8BAAIA+f8dACgAWQBxAJX/qv+Y/uz9aP9k/7UDUQQBAiQA4Pgi/AkB0gKaBsD/+fxp/vz9CQSp/I/+ywDO+vMD0fzK/PABcgBeBfoBv/+uAuH9Sf5gAy39awMmBWUBuP9fA9/9fgDj/2/+EACaACcCSv9Z/2j/rv7hAA0AWf55/7L84P7E/SIAT/67AMv/tf+FAA7/1v+7/gv/IP+E/sQA+P5aAXz/tP9XAFX/tP8o/4r/j//e/yQAMv9mAJT/rgCr/9X/EwCb//H/9f7F/6D/EAAoAK3//v+e/zsAh/+B/7r/if/C/2r/4P/z/6//HwCy/0IA7/9ZALT/y/80ACgA9v/J/9//DgA5ADUALQARADIACwAfAOf/NgArACMACQBBAEcAGAAjAC4AWQBUAHcAAAAfACEAIAAcAPj/CADk/yQA7v89AEEAFwD5/xYA6f8aAOX/AADF/zQADwAUAOT/BQDr/yUA6P8XAOf/HADR/0AA8P8nAAgACQDt/ycAKAAHAPH/IQDz/xsACADn//n/DgADAA4A8P///8z/GgDN/yMA/f8QANj/MwACAC0ACwAOAO3/JgAZAAUACgAAAA4AIgAaAAkADwACAAAAHQATAAUABQACAAgACwAjAO////8AAA8ABQAPAPL//f8GAAsABgAGAPD/8v8GAPz/CAD6//H/6v8PAAgABgD4//3/9v8aAAgABwD1//7//v8QAAoACAD//wUA9v8QAAoABAAFAAgAAgAJAAoAAwD//w0AAgD//wcA/v8DAAoABQAFABUABAAKAAYABwAHAA8ACgAGAAwADwAMAAkAEAAJAAgADwAMAAgADgAJAAUACQAPAAUACwAHAAEABgAIAAEABAAGAP//AgAJAAAAAgAEAP7///8IAAIA//8GAAEAAQAJAAIA/v8EAAMA//8JAAEA/v8DAAMA/v8HAAMA/f8BAAUA/v8FAAMA/v8BAAcA//8DAAMA/v8BAAYA//8CAAMA/////wcAAAAAAAMAAAD//wYAAQD+/wMAAQD//wUAAQD+/wIAAgD//wQAAgD+/wEAAwD//wMAAwD+/wEAAwD//wIAAwD//wEABAAAAAEABAD//wAABAABAAAAAwAAAAAABAABAP//AwABAAAAAwACAP//AgACAAAAAwACAP//AgACAAAAAgACAAAAAQADAAAAAQACAAAAAQADAAAAAQACAAAAAAACAAEAAAACAAEAAAACAAEAAAABAAEAAAABAAEAAAABAAEAAAABAAEAAAABAAEAAAABAAEAAAAAAAAAAAAAAAAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAP//AAD//wAA//8AAAAA//8AAP//AAACAAAA+f8BAAYA///4/wIA//8AAA8A/v/V/wEAEwA9AAEBRwA2AF7/kfog/3gBwv99CDYBU/qtAUX/AP7OAfkAX/o9B38FSfwaAuT14/60BAr8CQAI/tfyIQTzAXP+egdUBBwBof7TBMT8bAWi/5EEWwBRAAAKyfxE/8b88vp6ACP+PAF4/qD8MQNM/ygCJ/2XAPD9kP5gAVT/iP9I/lEB4P8qAD0BFAGa/+7/DgB2AOP98gFm/u/+Vv5/AG8ASP9gAM//qv9w//oAcv+2/jIBHgA7/6D/oAAGAKH/lADT/wAAggC8AAYAkP9yAEcAkf8BAOD/RAAr/zUANwDt/xQAJQAkAMT/zwA/AOH/xv9zAGsANQBTAIcALAAvACIATACy/xMADADg/xcAWABvAJL/7f9VAPb/EgDt/wcA4f8kAPP/5P+h/wgACQDy//r/LgAQAMn/8/9CAOX/5v/S/9//3P8pABYAuP/s/w8AFgDt/+3/7v/w/9j/5/8GAOf/2P/2//P//v8kABMAuf/m/xoADADZ/+r/3P8KAAUAKwDe/wsA3P8VAAAADgAfAB0ACAAMAF4AGgAhAPL/MwDz/0kABAAKAPX/LwAbAAkA9v/s/+3/8/8CABAAAADm//n/BQALAAUAAQDj//n/JQAVAPX/9v/+/wIAEQABAPP/8P/1/wAABgD6/+3/7//o//j/DAD8/+b/8P8IAAkABgD4//D/8P8UAAoAAwD4/wAA+f8OAAcAAAAFAPX/9v8TAAkA8v8EAPb/9/8dAA0A7/8CAPn/+f8SAAQA8/8CAOf/+v8DAAgA9P////H//P8IAAUA8//0/wIAAQAGAAgA9//7/wAA+/8EAP//+P/+////AgACAAsA8v/+/wIABQD7/wgA9v/7/wMABAD5/wAA/P/3/wEAAQD7//7//P/1/wQA///3//r////3/wMAAwD1//r/AwD6////AgD4//n/AwD8//7/AgD4//n/AwD+//3/AQD4//n/BQD///n/AAD6//j/BAABAPj/AAD9//v/AwADAPj//v/+//z/AwAEAPj//v8BAP7/AQADAPj//f8CAP////8EAPr//P8DAAAA/v8CAPv//P8DAAEA/f8BAP3//f8DAAIA/P8AAP7//f8DAAIA/P///wAA/f8BAAIA+//+/wEA//8AAAEA+//+/wEA/////wEA/P/+/wEA///+/wAA/f/9/wEAAAD9/wAA/f/+/wEAAQD8/////v/+/wAAAQD8////////////AQD9////AAD/////AAD+////AAAAAP//AAD///////8AAP//AAD//wAA//8AAP//"]},function(A,t){A.exports=["UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wQA8/8ZAPr/DAD+/wMA/v8KAAQA/f8DAAMABADs//z/8v/z/8f/R/90/ob+//zAAWsDAwY3DKn9//tu93DvkwI6An4CuwJ0/BH7VPux92X0Gu7N/EX9mgfqCkkIiRMgBd4NQQGL/c0G/xBxAKELZATUA/sIHRSx+fkCyAUmBNEJIARlAdHz2AjNACcIsAW4AlECsvtJ/P/7K/tf++n8aP4W+g0FXAElAMn8nQHn/sT+Zv7N+9X2xvzM/O3+EvpqBBD7SQLd+vb/sPlw/JD72/3n+Rr+L/wS/vz6UQGg/Nf+Av5L/5X9Gv2//SP+mf3j/lf+v/2B/ZH/5P05/iL9MP9F/uf9UP4v/qv9mv7o/Xn+wP2k/8L+uP5J/tD+Dv/Y/bL+mP72/n3+pP+7/hAA+/5zAGH+Z/+u/g8Azv2y/6L+//9o/iIADP8VACz/CwCN/pb/1v4yAFP+wf+4/jsAcf5VAP3+bADa/nMA6f4sAOT+IQBd/v7/7v6aAIL+QADe/nEA0P4yAKz+CQCo/moAuf5xAN7+mAC8/jcANf9eAPX+IAA1/1kAAP9hAMz+PQD5/m0A2/4gAPr+UQDh/jQAEv9BAPH+FABN/zkASv9DADP/BABe/1IAGf8oAE3/RQAw/zIAQf8mADn/GgBE/xIAR/8hAD7/BABy/zEAKP/0/07/GwBX/z4ARf8mAFr/QQBV/zUAVP8eAFz/JABt/0EAUP8MAHz/KgBr/ycAYv8EAH3/MABl/x8Agv8bAIj/GgBv//z/ff8AAJX/IABu/+T/jv/r/4z/9/9n/77/pP8JAJD/EQCJ//r/q/8WAJ//GQCU/xYAtv8qAKr/PQCW/ysAwf8+ALb/OgC3/ygAz/8uAM7/OgDH/ygAz/8kAMz/OgC//xsA1f8qAMn/LwDN/xcA1f8oAMv/JQDR/xMAzf8bAM//HgDU/wUA2v8ZANL/EwDW/wEA1f8ZAMz/BwDX/wIA0v8SANT/BQDW/wMA0/8PANT/AADY/wIA1f8MANX/+f/a/wUA0v8IANf/+//Y/wUA0/8DANr/+f/Y/wQA1v8BANr/+f/Z/wUA1//8/9z/+v/Y/wYA2f/8/93//v/Y/wUA2v/9/93////Z/wUA3P/8/97/AgDa/wMA3v/8/97/AwDb/wIA3//9/97/BADd/wEA4f///9//BQDf/wAA4v8AAN//BQDf/wAA4/8CAN//BADh/wAA4/8DAOD/BADi////4/8DAOH/AwDk/wAA5P8FAOL/AgDl/wEA5P8FAOL/AQDl/wEA4/8EAOL/AQDj/wIA4P8DAN//AADg/wIA3v8CAOD/AADh/wEA4v8AAOP/AADm/wAA6P8AAOz/AADu/wAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////f/+//7///8AAP////8BAAEA/f8AAAEAAQAFAAUA9//6/x0A2f/9/xMA3P+jAE//of9HAKP//gCj/77/Z/vi/28D9/ywDJAJIvr6AsX0Xec4BhcGzf23DZP7yfZ6C1//nwBDBIHyYgob/Tf3sQ41ANoKRA/A+E7yffAa9gD5EQUBDMwMygiqAHMAqPqhAGUB2/gE+a78H/+4APT6DwIUAA0HNwMhBfL8E/90A5n7dP9cALIC+v5C/q0AOv9kAogBHv01/+3/qAQD/ub8T/4vAOUA5P6KATv+ywEYAeT+KP6i/3gCFP6h/hr/+P83ACL/VADn/8UARQJI/4MAu/8qAlj+wf4iAPb/LgFJ/8QAUABAAI4ABf+k/3X/YgFK/ij/j/9HADoAi/+WAA0BVwC/ACL/LACe//cARv9i/xgAUgA0ACj/FgBgAIj/5P9M/7z/zv8/AKz/gv8sAEQA6/+I/yYAawDL/7T/xf8qAOv/FQCu/5n/EgAyAO3/i/9LAE4A+//R//P/FgDe/8z/u/8DADIALAAZALL/TAA8ABwAo//1/xwA/P/L/z0A6P8jAN7/7v+a/zAAwf/7/3//KQAuACwA9v8RAGYAIwBNADgAKgASAF0ADgANACEAMQDH//H/LQACAB0Ay////x0APAABAAQA2v8iAAcAEgDE/+v/FQD+/+P/DAD1/97/6v/4//X/EwD4/+7/5P8cAA0ACQDH//7/CQAXAAEA/P/5//j/CwAWAAEABQD9//n/AQAWAB0A7v/k/wAACQAmAP//9/8AAPn/8/8aAO//6/8fAOv/5v8hAP//5/8PAOf/AAAGAPn/6v8JAAYABgABAOv/1//1//L/+P8DABcA6f/8/wMACgD7/xAA3v/2//z/DADu//z/5v/5/wEA/P/6//7/7v/x/wQABgD5/wAA8v/w/wkAEQD2//j/+v8EAAcAEAD3//v/+v8CAAAACQD3//v//v/9/wUADAD2//X/AgAHAAAABwD2//T/BgAKAP7/AQD4//r/BAAIAPn/AAD3//f/BQAHAPv//v/7//n/BQAJAPj/+v/9//7/AgAGAPj/+f8BAAEAAgAFAPn/+v8BAAIAAAAEAPn/+f8CAAQA/v8BAPr/+v8CAAQA/P////v//P8CAAQA+//+//3//f8CAAUA+v/9//////8AAAQA+v/8////AAD//wIA+//8/wAAAQD+/wEA+//8/wAAAgD9/////P/9/wEAAgD8//7//f/9/wAAAgD8//3//v/+////AQD8//z/////////AAD8//3///8AAP7/AAD9//7///8AAP7////+//////8AAP7////+////////////////////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////v8AAP///////wAAAAAAAP7/AQABAAAABwD///X/BQAjAPL/CQDb/9D/GAAb/7sAYwCW/z0BcP/X/7T/2QDW+wH8yANCCCUJ5QT++UXmhPwhA78FuAxH+p78ifudBlAG9vmu/lAK2fdlB///cfjoCa0E7Akn9Yb/zvba+AkAHPywBGEBFwUNAL8AXAAGA20DFvmR/kz+F/06Ag/+GwHl/5EEKgJd/q0AP/ym/9n6EfxY/2H+/QFtAC4C6QBDAaMCo/20/+3/3f/p/fL9rv9V/6cBhQHuAX4AcwJYAaH/IP/P/gsApP0LAe7/sQBuAI0AAgGDAE4BzACe/5X//v+v/+f+Zf+gAOv/5QBhAOIApAANASYAuP+h/8b/HQBr/9//bACWAGEAFAB5AD0AWQDU/+D/Yf/p//D/s/+R/4QAMQBvABEAkQBfABQAJgDW/wwA8/8XALz/vf8zAFAAKwD1/zEAPwDJ/x0A7/8LAOX/FwDR//H/EQAdAO//6P8QAFEA2f8WABEAMgDy/xIA+f/s/xAALgDv////HQAvAPT/+f8iAAYAEgAFABoAGgD//w0A+f/0/xsAHgDx/9f/GAACAPH/8f8JAPf/GwALABEA7/8cAPT/CgD2//j/BQD8/+3/OgAgAAYA9f8PAN7/DgD9/9r/1//3/+3/9//1//b/8//5//f/AgAJAOf/+v8OAAMACwD9/+7/5f8eAAEA9//q//7/8P8WAP7/+//4/wIA+f8TAAIA9f/5/wcA+P8iAAgA9v/n/xoA//8gAAUABwDj/wAA9v8BAAUAFQDn/wMA7v8QABAAEQDm/wwA8f8aAAAABwDu/wcACgASAAEA7//w//f/BgARAAkA6P/3/wcADgAKAAYA4f/4/wYADgAAAPr/8P/9/xQACgAHAPn/7//9/xEAAgD+//L/8v/8/xUAAwDw//H/9f8CAAsA/v/q//L/+f8FAAYA/P/r//j///8GAAkA+//o//j/AQAIAP//+v/o//v/CAAIAPv/+P/w/wEACQAHAPj/+f/0/wIACwAFAPb/+f/4/wQACwACAPP/+f/+/wYACAD///L/+/8BAAYABQD9//P//P8FAAUAAgD7//T//f8HAAQA///7//f///8IAAMA/P/6//r/AQAIAAEA+v/6//3/AgAHAAAA+f/7/wAAAwAFAP7/+P/8/wIAAgACAP3/+f/9/wMAAwAAAPz/+v/+/wQAAgD+//z/+/8AAAQAAQD8//z//f8BAAQAAAD7//3///8BAAMA///7//3/AAACAAEA/v/7//7/AQABAAAA/v/9////AQAAAP///v/+////AAD/////////////////////////////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD////////+//////8AAAAA/v/+/wAAAQD8//3/CQAJAP3/+v8PAAcApABlABkBkwCO/i//lfqa/HQAcf/3BdkCzwJcBCMC0wMN/9/9wgI7AaECYfxV/Tf83vhn/xrt8Owx/8n7cgHABYb43QcZDh4WugNrA7P74gHu/9z/zv0t/acCiQHY/iv4qQOl/ysCE/0//XT9Sf4O//j9xfupAn394gHO+rsCXAFIAxQC9wIXBgcD2AQuAnb/9gJh/6wAVfxEAI4Bvf7oAFv/bALsAMQBe/88/joAT/4dAH39/v9LAXn/gwDI//QBdABcAA0A7f4lAMn///+9/tv/iABp/13/pP/dALv/w/8MAHv//f+y/6////7U/5AAZP+Z/8r/nQDR/5r/DwDr/xAA4v+s/3z/+P9uAOv/t/82AGcAHgCb/yQAFQBGAM7/CgD3/xoAegAaAOz/CgBHAA8Adv8/AAAABQC2/xIAAAA7ABQAKgCj/z4AAQAXAJz/JAADAAcA8f/1/2AAAQAlAPD/NgDx/1wA7v/4/wMAZADv//3/HQAkAFoA8P9FAPv/FgBIAPf/WQAHAEUACQD0/xIAQwDu/wMAwP9VALn/XwCw/yEA5f8sAPj/FgDD/1YAyv8rAOX/HQDo//j/IQAQACAAHwD9/yQAHQBAABgABQAiAAUAKAD3/wkACwAKAAMABwAJAPb/+f8GAOr/JQAHABMA6P8TAA4AGgD//woA8/8ZAP//GADu/w0A9v8SAAMABwD4/wQA5P8XAAQACgDq/wUA+/8VAAcACADs/xIAAAATAPH/+v/1//T/7f///+z/+v/y/+//9/8KAAcACgAJAPT/BAAKAAAABgAIAPL/9v8KAAMABAACAPr/9v8OAAIA+P/x//v/+f8MAPb/+P/w/wQA9f8MAPn////7/woA/v8PAAEAAgD1/xAAAQAPAP//AwD//xQABwALAAAABgADABAAAgAHAAAACAABAA8ABQAFAAMABwAEAA4ABwADAAEACQAFAAoAAwD//wAACQADAAUAAQD/////CAABAAMAAAD/////BwACAAEAAAD/////BwACAP7///8BAAAABgABAP7///8CAAAABAAAAP7///8DAAAAAwAAAP3///8DAAAAAQAAAP3//v8EAAAAAAD+//////8EAP/////+/wAA/v8EAP/////+/wEA/v8EAP///v/+/wIA//8DAP///v/+/wIA//8BAP///v/+/wMA//8BAP/////+/wMA//8AAP//AAD+/wQA//8AAP7/AQD//wIA////////AQD//wIA////////AQAAAAEAAAAAAP//AQD//wEAAAAAAP//AQAAAAEAAAAAAAAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wAA+v8AAPz/AAD//wAA/f8AAAEAAAD+/wAACQAAAAQAAAAZAAAAtgAAAFsBAABW/gAAH/oAAGcBAABoBwAAlAAAAO3/AAARAQAA+wIAAEoEAACe/gAAiv4AALD0AADJ8wAAkQQAAF34AABi8QAAPQAAAAH2AAD19AAADAMAAJwGAACTEAAA0AwAAJkHAACOBwAAuQEAANcDAAC6AgAAHwUAAHEFAAB0AwAAbgEAADz+AADYAQAAGAAAAJwCAADgAAAA//0AAMn+AAAT/AAAwP8AAOn9AAAJAAAAewEAAOn+AACN/wAAOv0AAO3+AADN/gAAcP8AACj/AACq/gAA+f4AAML9AACa/wAA/f4AAN7/AABo/wAA6/4AAE//AAAC/wAAEQAAAHX/AAB0AAAA5f8AAEwAAAB3AAAA5/8AAMIAAABCAAAAzgAAAE8AAAB3AAAAKAAAADMAAACqAAAALwAAAK4AAAASAAAAVgAAACgAAAAtAAAATAAAAP3/AAA7AAAA2/8AACQAAADw/wAALQAAADEAAAAlAAAAbAAAADMAAABUAAAAEAAAACgAAAD1/wAA9v8AAPr/AADu/wAALgAAABIAAABUAAAARAAAAGUAAABGAAAAOAAAAGAAAAAuAAAARQAAACEAAAAfAAAAAAAAAAkAAAAQAAAAAwAAABIAAADs/wAAEAAAAAYAAAASAAAAIgAAABEAAAADAAAABAAAAA8AAAD4/wAAHQAAAAsAAAAIAAAADgAAAP//AAAcAAAADwAAAAYAAAASAAAAFwAAAAMAAAAYAAAAEgAAAPr/AAAQAAAADQAAAAoAAAD3/wAABgAAAPb/AADf/wAA/v8AAPL/AAD6/wAAFAAAAAQAAAAEAAAAGwAAAAEAAAAMAAAAIAAAAAIAAAAdAAAAGAAAAAIAAAAcAAAAEgAAAAcAAAAeAAAADwAAAAQAAAAeAAAABAAAAAYAAAAZAAAAAQAAAA4AAAATAAAA/v8AAAoAAAAOAAAA+/8AAAsAAAAJAAAA+f8AAAsAAAABAAAA+f8AAAoAAAD9/wAA+v8AAAcAAAD5/wAA+v8AAAUAAAD3/wAA/f8AAAQAAAD2/wAAAAAAAAEAAAD3/wAAAgAAAAAAAAD4/wAAAwAAAP7/AAD6/wAABAAAAP3/AAD8/wAABAAAAPv/AAD+/wAAAwAAAPv/AAD//wAAAQAAAPv/AAAAAAAAAAAAAPv/AAACAAAA//8AAPz/AAACAAAA/v8AAP3/AAACAAAA/f8AAP7/AAABAAAA/f8AAP//AAABAAAA/f8AAAAAAAAAAAAA/v8AAAEAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA"]},function(A,t,e){"use strict";t.getBrowserInfo=function(){const A=navigator.userAgent;let t,e=A.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i)||[];if(/trident/i.test(e[1]))return t=/\brv[ :]+(\d+)/g.exec(A)||[],{name:"IE",version:t[1]||""};if("Chrome"===e[1]&&null!=(t=A.match(/\bOPR|Edge\/(\d+)/)))return{name:"Opera",version:t[1]};e=e[2]?[e[1],e[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=A.match(/version\/([\d.]+)/i))&&e.splice(1,1,t[1]);let i=A.match(/android|ipad|iphone/i);return i||(i=A.match(/cros|linux|mac os x|windows/i)),{name:e[0],version:e[1],platform:i?i[0]:"unknown"}},t.patchSafari=function(){window.webkitAudioContext&&window.webkitOfflineAudioContext&&(window.AudioContext=window.webkitAudioContext,window.OfflineAudioContext=window.webkitOfflineAudioContext)}},function(A,t,e){"use strict";A.exports="1.0.6"}])})},function(A,t,e){"use strict";A.exports="0.0.4"}])});
\ No newline at end of file
diff --git a/src/renderer/lib/showdown.min.js b/src/renderer/lib/showdown.min.js
new file mode 100644
index 00000000..7ed96f26
--- /dev/null
+++ b/src/renderer/lib/showdown.min.js
@@ -0,0 +1,5531 @@
+;/*! showdown v 2.0.0-alpha1 - 14-11-2021 */
+(function(){
+ /**
+ * Created by Tivie on 13-07-2015.
+ */
+
+ function getDefaultOpts (simple) {
+ 'use strict';
+
+ var defaultOptions = {
+ omitExtraWLInCodeBlocks: {
+ defaultValue: false,
+ describe: 'Omit the default extra whiteline added to code blocks',
+ type: 'boolean'
+ },
+ noHeaderId: {
+ defaultValue: false,
+ describe: 'Turn on/off generated header id',
+ type: 'boolean'
+ },
+ prefixHeaderId: {
+ defaultValue: false,
+ describe: 'Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic \'section-\' prefix',
+ type: 'string'
+ },
+ rawPrefixHeaderId: {
+ defaultValue: false,
+ describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',
+ type: 'boolean'
+ },
+ ghCompatibleHeaderId: {
+ defaultValue: false,
+ describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)',
+ type: 'boolean'
+ },
+ rawHeaderId: {
+ defaultValue: false,
+ describe: 'Remove only spaces, \' and " from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids',
+ type: 'boolean'
+ },
+ headerLevelStart: {
+ defaultValue: false,
+ describe: 'The header blocks level start',
+ type: 'integer'
+ },
+ parseImgDimensions: {
+ defaultValue: false,
+ describe: 'Turn on/off image dimension parsing',
+ type: 'boolean'
+ },
+ simplifiedAutoLink: {
+ defaultValue: false,
+ describe: 'Turn on/off GFM autolink style',
+ type: 'boolean'
+ },
+ literalMidWordUnderscores: {
+ defaultValue: false,
+ describe: 'Parse midword underscores as literal underscores',
+ type: 'boolean'
+ },
+ literalMidWordAsterisks: {
+ defaultValue: false,
+ describe: 'Parse midword asterisks as literal asterisks',
+ type: 'boolean'
+ },
+ strikethrough: {
+ defaultValue: false,
+ describe: 'Turn on/off strikethrough support',
+ type: 'boolean'
+ },
+ tables: {
+ defaultValue: false,
+ describe: 'Turn on/off tables support',
+ type: 'boolean'
+ },
+ tablesHeaderId: {
+ defaultValue: false,
+ describe: 'Add an id to table headers',
+ type: 'boolean'
+ },
+ ghCodeBlocks: {
+ defaultValue: true,
+ describe: 'Turn on/off GFM fenced code blocks support',
+ type: 'boolean'
+ },
+ tasklists: {
+ defaultValue: false,
+ describe: 'Turn on/off GFM tasklist support',
+ type: 'boolean'
+ },
+ smoothLivePreview: {
+ defaultValue: false,
+ describe: 'Prevents weird effects in live previews due to incomplete input',
+ type: 'boolean'
+ },
+ smartIndentationFix: {
+ defaultValue: false,
+ description: 'Tries to smartly fix indentation in es6 strings',
+ type: 'boolean'
+ },
+ disableForced4SpacesIndentedSublists: {
+ defaultValue: false,
+ description: 'Disables the requirement of indenting nested sublists by 4 spaces',
+ type: 'boolean'
+ },
+ simpleLineBreaks: {
+ defaultValue: false,
+ description: 'Parses simple line breaks as (GFM Style)',
+ type: 'boolean'
+ },
+ requireSpaceBeforeHeadingText: {
+ defaultValue: false,
+ description: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',
+ type: 'boolean'
+ },
+ ghMentions: {
+ defaultValue: false,
+ description: 'Enables github @mentions',
+ type: 'boolean'
+ },
+ ghMentionsLink: {
+ defaultValue: 'https://github.com/{u}',
+ description: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',
+ type: 'string'
+ },
+ encodeEmails: {
+ defaultValue: true,
+ description: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',
+ type: 'boolean'
+ },
+ openLinksInNewWindow: {
+ defaultValue: false,
+ description: 'Open all links in new windows',
+ type: 'boolean'
+ },
+ backslashEscapesHTMLTags: {
+ defaultValue: false,
+ description: 'Support for HTML Tag escaping. ex: \foo\
',
+ type: 'boolean'
+ },
+ emoji: {
+ defaultValue: false,
+ description: 'Enable emoji support. Ex: `this is a :smile: emoji`',
+ type: 'boolean'
+ },
+ underline: {
+ defaultValue: false,
+ description: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``',
+ type: 'boolean'
+ },
+ ellipsis: {
+ defaultValue: true,
+ description: 'Replaces three dots with the ellipsis unicode character',
+ type: 'boolean'
+ },
+ completeHTMLDocument: {
+ defaultValue: false,
+ description: 'Outputs a complete html document, including ``, `` and `` tags',
+ type: 'boolean'
+ },
+ metadata: {
+ defaultValue: false,
+ description: 'Enable support for document metadata (defined at the top of the document between `ÂĢÂĢÂĢ` and `ÂģÂģÂģ` or between `---` and `---`).',
+ type: 'boolean'
+ },
+ splitAdjacentBlockquotes: {
+ defaultValue: false,
+ description: 'Split adjacent blockquote blocks',
+ type: 'boolean'
+ },
+ relativePathBaseUrl: {
+ defaultValue: false,
+ describe: 'Prepends a base URL to relative paths',
+ type: 'string'
+ },
+ };
+ if (simple === false) {
+ return JSON.parse(JSON.stringify(defaultOptions));
+ }
+ var ret = {};
+ for (var opt in defaultOptions) {
+ if (defaultOptions.hasOwnProperty(opt)) {
+ ret[opt] = defaultOptions[opt].defaultValue;
+ }
+ }
+ return ret;
+ }
+
+ function allOptionsOn () {
+ 'use strict';
+ var options = getDefaultOpts(true),
+ ret = {};
+ for (var opt in options) {
+ if (options.hasOwnProperty(opt)) {
+ ret[opt] = true;
+ }
+ }
+ return ret;
+ }
+
+ /**
+ * Created by Tivie on 06-01-2015.
+ */
+// Private properties
+ var showdown = {},
+ parsers = {},
+ extensions = {},
+ globalOptions = getDefaultOpts(true),
+ setFlavor = 'vanilla',
+ flavor = {
+ github: {
+ omitExtraWLInCodeBlocks: true,
+ simplifiedAutoLink: true,
+ literalMidWordUnderscores: true,
+ strikethrough: true,
+ tables: true,
+ tablesHeaderId: true,
+ ghCodeBlocks: true,
+ tasklists: true,
+ disableForced4SpacesIndentedSublists: true,
+ simpleLineBreaks: true,
+ requireSpaceBeforeHeadingText: true,
+ ghCompatibleHeaderId: true,
+ ghMentions: true,
+ backslashEscapesHTMLTags: true,
+ emoji: true,
+ splitAdjacentBlockquotes: true
+ },
+ original: {
+ noHeaderId: true,
+ ghCodeBlocks: false
+ },
+ ghost: {
+ omitExtraWLInCodeBlocks: true,
+ parseImgDimensions: true,
+ simplifiedAutoLink: true,
+ literalMidWordUnderscores: true,
+ strikethrough: true,
+ tables: true,
+ tablesHeaderId: true,
+ ghCodeBlocks: true,
+ tasklists: true,
+ smoothLivePreview: true,
+ simpleLineBreaks: true,
+ requireSpaceBeforeHeadingText: true,
+ ghMentions: false,
+ encodeEmails: true
+ },
+ vanilla: getDefaultOpts(true),
+ allOn: allOptionsOn()
+ };
+
+ /**
+ * helper namespace
+ * @type {{}}
+ */
+ showdown.helper = {};
+
+ /**
+ * TODO LEGACY SUPPORT CODE
+ * @type {{}}
+ */
+ showdown.extensions = {};
+
+ /**
+ * Set a global option
+ * @static
+ * @param {string} key
+ * @param {*} value
+ * @returns {showdown}
+ */
+ showdown.setOption = function (key, value) {
+ 'use strict';
+ globalOptions[key] = value;
+ return this;
+ };
+
+ /**
+ * Get a global option
+ * @static
+ * @param {string} key
+ * @returns {*}
+ */
+ showdown.getOption = function (key) {
+ 'use strict';
+ return globalOptions[key];
+ };
+
+ /**
+ * Get the global options
+ * @static
+ * @returns {{}}
+ */
+ showdown.getOptions = function () {
+ 'use strict';
+ return globalOptions;
+ };
+
+ /**
+ * Reset global options to the default values
+ * @static
+ */
+ showdown.resetOptions = function () {
+ 'use strict';
+ globalOptions = getDefaultOpts(true);
+ };
+
+ /**
+ * Set the flavor showdown should use as default
+ * @param {string} name
+ */
+ showdown.setFlavor = function (name) {
+ 'use strict';
+ if (!flavor.hasOwnProperty(name)) {
+ throw Error(name + ' flavor was not found');
+ }
+ showdown.resetOptions();
+ var preset = flavor[name];
+ setFlavor = name;
+ for (var option in preset) {
+ if (preset.hasOwnProperty(option)) {
+ globalOptions[option] = preset[option];
+ }
+ }
+ };
+
+ /**
+ * Get the currently set flavor
+ * @returns {string}
+ */
+ showdown.getFlavor = function () {
+ 'use strict';
+ return setFlavor;
+ };
+
+ /**
+ * Get the options of a specified flavor. Returns undefined if the flavor was not found
+ * @param {string} name Name of the flavor
+ * @returns {{}|undefined}
+ */
+ showdown.getFlavorOptions = function (name) {
+ 'use strict';
+ if (flavor.hasOwnProperty(name)) {
+ return flavor[name];
+ }
+ };
+
+ /**
+ * Get the default options
+ * @static
+ * @param {boolean} [simple=true]
+ * @returns {{}}
+ */
+ showdown.getDefaultOptions = function (simple) {
+ 'use strict';
+ return getDefaultOpts(simple);
+ };
+
+ /**
+ * Get or set a subParser
+ *
+ * subParser(name) - Get a registered subParser
+ * subParser(name, func) - Register a subParser
+ * @static
+ * @param {string} name
+ * @param {function} [func]
+ * @returns {*}
+ */
+ showdown.subParser = function (name, func) {
+ 'use strict';
+ if (showdown.helper.isString(name)) {
+ if (typeof func !== 'undefined') {
+ parsers[name] = func;
+ } else {
+ if (parsers.hasOwnProperty(name)) {
+ return parsers[name];
+ } else {
+ throw Error('SubParser named ' + name + ' not registered!');
+ }
+ }
+ } else {
+ throw Error('showdown.subParser function first argument must be a string (the name of the subparser)');
+ }
+ };
+
+ /**
+ * Gets or registers an extension
+ * @static
+ * @param {string} name
+ * @param {object|function=} ext
+ * @returns {*}
+ */
+ showdown.extension = function (name, ext) {
+ 'use strict';
+
+ if (!showdown.helper.isString(name)) {
+ throw Error('Extension \'name\' must be a string');
+ }
+
+ name = showdown.helper.stdExtName(name);
+
+ // Getter
+ if (showdown.helper.isUndefined(ext)) {
+ if (!extensions.hasOwnProperty(name)) {
+ throw Error('Extension named ' + name + ' is not registered!');
+ }
+ return extensions[name];
+
+ // Setter
+ } else {
+ // Expand extension if it's wrapped in a function
+ if (typeof ext === 'function') {
+ ext = ext();
+ }
+
+ // Ensure extension is an array
+ if (!showdown.helper.isArray(ext)) {
+ ext = [ext];
+ }
+
+ var validExtension = validate(ext, name);
+
+ if (validExtension.valid) {
+ extensions[name] = ext;
+ } else {
+ throw Error(validExtension.error);
+ }
+ }
+ };
+
+ /**
+ * Gets all extensions registered
+ * @returns {{}}
+ */
+ showdown.getAllExtensions = function () {
+ 'use strict';
+ return extensions;
+ };
+
+ /**
+ * Remove an extension
+ * @param {string} name
+ */
+ showdown.removeExtension = function (name) {
+ 'use strict';
+ delete extensions[name];
+ };
+
+ /**
+ * Removes all extensions
+ */
+ showdown.resetExtensions = function () {
+ 'use strict';
+ extensions = {};
+ };
+
+ /**
+ * Validate extension
+ * @param {array} extension
+ * @param {string} name
+ * @returns {{valid: boolean, error: string}}
+ */
+ function validate (extension, name) {
+ 'use strict';
+
+ var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension',
+ ret = {
+ valid: true,
+ error: ''
+ };
+
+ if (!showdown.helper.isArray(extension)) {
+ extension = [extension];
+ }
+
+ for (var i = 0; i < extension.length; ++i) {
+ var baseMsg = errMsg + ' sub-extension ' + i + ': ',
+ ext = extension[i];
+ if (typeof ext !== 'object') {
+ ret.valid = false;
+ ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given';
+ return ret;
+ }
+
+ if (!showdown.helper.isString(ext.type)) {
+ ret.valid = false;
+ ret.error = baseMsg + 'property "type" must be a string, but ' + typeof ext.type + ' given';
+ return ret;
+ }
+
+ var type = ext.type = ext.type.toLowerCase();
+
+ // normalize extension type
+ if (type === 'language') {
+ type = ext.type = 'lang';
+ }
+
+ if (type === 'html') {
+ type = ext.type = 'output';
+ }
+
+ if (type !== 'lang' && type !== 'output' && type !== 'listener') {
+ ret.valid = false;
+ ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"';
+ return ret;
+ }
+
+ if (type === 'listener') {
+ if (showdown.helper.isUndefined(ext.listeners)) {
+ ret.valid = false;
+ ret.error = baseMsg + '. Extensions of type "listener" must have a property called "listeners"';
+ return ret;
+ }
+ } else {
+ if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) {
+ ret.valid = false;
+ ret.error = baseMsg + type + ' extensions must define either a "regex" property or a "filter" method';
+ return ret;
+ }
+ }
+
+ if (ext.listeners) {
+ if (typeof ext.listeners !== 'object') {
+ ret.valid = false;
+ ret.error = baseMsg + '"listeners" property must be an object but ' + typeof ext.listeners + ' given';
+ return ret;
+ }
+ for (var ln in ext.listeners) {
+ if (ext.listeners.hasOwnProperty(ln)) {
+ if (typeof ext.listeners[ln] !== 'function') {
+ ret.valid = false;
+ ret.error = baseMsg + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + ln +
+ ' must be a function but ' + typeof ext.listeners[ln] + ' given';
+ return ret;
+ }
+ }
+ }
+ }
+
+ if (ext.filter) {
+ if (typeof ext.filter !== 'function') {
+ ret.valid = false;
+ ret.error = baseMsg + '"filter" must be a function, but ' + typeof ext.filter + ' given';
+ return ret;
+ }
+ } else if (ext.regex) {
+ if (showdown.helper.isString(ext.regex)) {
+ ext.regex = new RegExp(ext.regex, 'g');
+ }
+ if (!(ext.regex instanceof RegExp)) {
+ ret.valid = false;
+ ret.error = baseMsg + '"regex" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given';
+ return ret;
+ }
+ if (showdown.helper.isUndefined(ext.replace)) {
+ ret.valid = false;
+ ret.error = baseMsg + '"regex" extensions must implement a replace string or function';
+ return ret;
+ }
+ }
+ }
+ return ret;
+ }
+
+ /**
+ * Validate extension
+ * @param {object} ext
+ * @returns {boolean}
+ */
+ showdown.validateExtension = function (ext) {
+ 'use strict';
+
+ var validateExtension = validate(ext, null);
+ if (!validateExtension.valid) {
+ console.warn(validateExtension.error);
+ return false;
+ }
+ return true;
+ };
+
+ /**
+ * showdownjs helper functions
+ */
+
+ if (!showdown.hasOwnProperty('helper')) {
+ showdown.helper = {};
+ }
+
+ if (typeof this.document === 'undefined' && typeof this.window === 'undefined') {
+ var jsdom = require('jsdom');
+ this.window = new jsdom.JSDOM('', {}).window; // jshint ignore:line
+ }
+ showdown.helper.document = this.window.document;
+
+ /**
+ * Check if var is string
+ * @static
+ * @param {string} a
+ * @returns {boolean}
+ */
+ showdown.helper.isString = function (a) {
+ 'use strict';
+ return (typeof a === 'string' || a instanceof String);
+ };
+
+ /**
+ * Check if var is a function
+ * @static
+ * @param {*} a
+ * @returns {boolean}
+ */
+ showdown.helper.isFunction = function (a) {
+ 'use strict';
+ var getType = {};
+ return a && getType.toString.call(a) === '[object Function]';
+ };
+
+ /**
+ * isArray helper function
+ * @static
+ * @param {*} a
+ * @returns {boolean}
+ */
+ showdown.helper.isArray = function (a) {
+ 'use strict';
+ return Array.isArray(a);
+ };
+
+ /**
+ * Check if value is undefined
+ * @static
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
+ */
+ showdown.helper.isUndefined = function (value) {
+ 'use strict';
+ return typeof value === 'undefined';
+ };
+
+ /**
+ * ForEach helper function
+ * Iterates over Arrays and Objects (own properties only)
+ * @static
+ * @param {*} obj
+ * @param {function} callback Accepts 3 params: 1. value, 2. key, 3. the original array/object
+ */
+ showdown.helper.forEach = function (obj, callback) {
+ 'use strict';
+ // check if obj is defined
+ if (showdown.helper.isUndefined(obj)) {
+ throw new Error('obj param is required');
+ }
+
+ if (showdown.helper.isUndefined(callback)) {
+ throw new Error('callback param is required');
+ }
+
+ if (!showdown.helper.isFunction(callback)) {
+ throw new Error('callback param must be a function/closure');
+ }
+
+ if (typeof obj.forEach === 'function') {
+ obj.forEach(callback);
+ } else if (showdown.helper.isArray(obj)) {
+ for (var i = 0; i < obj.length; i++) {
+ callback(obj[i], i, obj);
+ }
+ } else if (typeof (obj) === 'object') {
+ for (var prop in obj) {
+ if (obj.hasOwnProperty(prop)) {
+ callback(obj[prop], prop, obj);
+ }
+ }
+ } else {
+ throw new Error('obj does not seem to be an array or an iterable object');
+ }
+ };
+
+ /**
+ * Standardidize extension name
+ * @static
+ * @param {string} s extension name
+ * @returns {string}
+ */
+ showdown.helper.stdExtName = function (s) {
+ 'use strict';
+ return s.replace(/[_?*+\/\\.^-]/g, '').replace(/\s/g, '').toLowerCase();
+ };
+
+ function escapeCharactersCallback (wholeMatch, m1) {
+ 'use strict';
+ var charCodeToEscape = m1.charCodeAt(0);
+ return '¨E' + charCodeToEscape + 'E';
+ }
+
+ /**
+ * Callback used to escape characters when passing through String.replace
+ * @static
+ * @param {string} wholeMatch
+ * @param {string} m1
+ * @returns {string}
+ */
+ showdown.helper.escapeCharactersCallback = escapeCharactersCallback;
+
+ /**
+ * Escape characters in a string
+ * @static
+ * @param {string} text
+ * @param {string} charsToEscape
+ * @param {boolean} afterBackslash
+ * @returns {XML|string|void|*}
+ */
+ showdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash) {
+ 'use strict';
+ // First we have to escape the escape characters so that
+ // we can build a character class out of them
+ var regexString = '([' + charsToEscape.replace(/([\[\]\\])/g, '\\$1') + '])';
+
+ if (afterBackslash) {
+ regexString = '\\\\' + regexString;
+ }
+
+ var regex = new RegExp(regexString, 'g');
+ text = text.replace(regex, escapeCharactersCallback);
+
+ return text;
+ };
+
+ var rgxFindMatchPos = function (str, left, right, flags) {
+ 'use strict';
+ var f = flags || '',
+ g = f.indexOf('g') > -1,
+ x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')),
+ l = new RegExp(left, f.replace(/g/g, '')),
+ pos = [],
+ t, s, m, start, end;
+
+ do {
+ t = 0;
+ while ((m = x.exec(str))) {
+ if (l.test(m[0])) {
+ if (!(t++)) {
+ s = x.lastIndex;
+ start = s - m[0].length;
+ }
+ } else if (t) {
+ if (!--t) {
+ end = m.index + m[0].length;
+ var obj = {
+ left: {start: start, end: s},
+ match: {start: s, end: m.index},
+ right: {start: m.index, end: end},
+ wholeMatch: {start: start, end: end}
+ };
+ pos.push(obj);
+ if (!g) {
+ return pos;
+ }
+ }
+ }
+ }
+ } while (t && (x.lastIndex = s));
+
+ return pos;
+ };
+
+ /**
+ * matchRecursiveRegExp
+ *
+ * (c) 2007 Steven Levithan
+ * MIT License
+ *
+ * Accepts a string to search, a left and right format delimiter
+ * as regex patterns, and optional regex flags. Returns an array
+ * of matches, allowing nested instances of left/right delimiters.
+ * Use the "g" flag to return all matches, otherwise only the
+ * first is returned. Be careful to ensure that the left and
+ * right format delimiters produce mutually exclusive matches.
+ * Backreferences are not supported within the right delimiter
+ * due to how it is internally combined with the left delimiter.
+ * When matching strings whose format delimiters are unbalanced
+ * to the left or right, the output is intentionally as a
+ * conventional regex library with recursion support would
+ * produce, e.g. "<" and ">" both produce ["x"] when using
+ * "<" and ">" as the delimiters (both strings contain a single,
+ * balanced instance of "").
+ *
+ * examples:
+ * matchRecursiveRegExp("test", "\\(", "\\)")
+ * returns: []
+ * matchRecursiveRegExp(">>t<>", "<", ">", "g")
+ * returns: ["t<>", ""]
+ * matchRecursiveRegExp(" test
", "]*>", "
", "gi")
+ * returns: ["test"]
+ */
+ showdown.helper.matchRecursiveRegExp = function (str, left, right, flags) {
+ 'use strict';
+
+ var matchPos = rgxFindMatchPos (str, left, right, flags),
+ results = [];
+
+ for (var i = 0; i < matchPos.length; ++i) {
+ results.push([
+ str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),
+ str.slice(matchPos[i].match.start, matchPos[i].match.end),
+ str.slice(matchPos[i].left.start, matchPos[i].left.end),
+ str.slice(matchPos[i].right.start, matchPos[i].right.end)
+ ]);
+ }
+ return results;
+ };
+
+ /**
+ *
+ * @param {string} str
+ * @param {string|function} replacement
+ * @param {string} left
+ * @param {string} right
+ * @param {string} flags
+ * @returns {string}
+ */
+ showdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) {
+ 'use strict';
+
+ if (!showdown.helper.isFunction(replacement)) {
+ var repStr = replacement;
+ replacement = function () {
+ return repStr;
+ };
+ }
+
+ var matchPos = rgxFindMatchPos(str, left, right, flags),
+ finalStr = str,
+ lng = matchPos.length;
+
+ if (lng > 0) {
+ var bits = [];
+ if (matchPos[0].wholeMatch.start !== 0) {
+ bits.push(str.slice(0, matchPos[0].wholeMatch.start));
+ }
+ for (var i = 0; i < lng; ++i) {
+ bits.push(
+ replacement(
+ str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),
+ str.slice(matchPos[i].match.start, matchPos[i].match.end),
+ str.slice(matchPos[i].left.start, matchPos[i].left.end),
+ str.slice(matchPos[i].right.start, matchPos[i].right.end)
+ )
+ );
+ if (i < lng - 1) {
+ bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start));
+ }
+ }
+ if (matchPos[lng - 1].wholeMatch.end < str.length) {
+ bits.push(str.slice(matchPos[lng - 1].wholeMatch.end));
+ }
+ finalStr = bits.join('');
+ }
+ return finalStr;
+ };
+
+ /**
+ * Returns the index within the passed String object of the first occurrence of the specified regex,
+ * starting the search at fromIndex. Returns -1 if the value is not found.
+ *
+ * @param {string} str string to search
+ * @param {RegExp} regex Regular expression to search
+ * @param {int} [fromIndex = 0] Index to start the search
+ * @returns {Number}
+ * @throws InvalidArgumentError
+ */
+ showdown.helper.regexIndexOf = function (str, regex, fromIndex) {
+ 'use strict';
+ if (!showdown.helper.isString(str)) {
+ throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';
+ }
+ if (regex instanceof RegExp === false) {
+ throw 'InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp';
+ }
+ var indexOf = str.substring(fromIndex || 0).search(regex);
+ return (indexOf >= 0) ? (indexOf + (fromIndex || 0)) : indexOf;
+ };
+
+ /**
+ * Splits the passed string object at the defined index, and returns an array composed of the two substrings
+ * @param {string} str string to split
+ * @param {int} index index to split string at
+ * @returns {[string,string]}
+ * @throws InvalidArgumentError
+ */
+ showdown.helper.splitAtIndex = function (str, index) {
+ 'use strict';
+ if (!showdown.helper.isString(str)) {
+ throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';
+ }
+ return [str.substring(0, index), str.substring(index)];
+ };
+
+ /**
+ * Obfuscate an e-mail address through the use of Character Entities,
+ * transforming ASCII characters into their equivalent decimal or hex entities.
+ *
+ * Since it has a random component, subsequent calls to this function produce different results
+ *
+ * @param {string} mail
+ * @returns {string}
+ */
+ showdown.helper.encodeEmailAddress = function (mail) {
+ 'use strict';
+ var encode = [
+ function (ch) {
+ return '' + ch.charCodeAt(0) + ';';
+ },
+ function (ch) {
+ return '' + ch.charCodeAt(0).toString(16) + ';';
+ },
+ function (ch) {
+ return ch;
+ }
+ ];
+
+ mail = mail.replace(/./g, function (ch) {
+ if (ch === '@') {
+ // this *must* be encoded. I insist.
+ ch = encode[Math.floor(Math.random() * 2)](ch);
+ } else {
+ var r = Math.random();
+ // roughly 10% raw, 45% hex, 45% dec
+ ch = (
+ r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch)
+ );
+ }
+ return ch;
+ });
+
+ return mail;
+ };
+
+ /**
+ *
+ * @param str
+ * @param targetLength
+ * @param padString
+ * @returns {string}
+ */
+ showdown.helper.padEnd = function padEnd (str, targetLength, padString) {
+ 'use strict';
+ /*jshint bitwise: false*/
+ // eslint-disable-next-line space-infix-ops
+ targetLength = targetLength>>0; //floor if number or convert non-number to 0;
+ /*jshint bitwise: true*/
+ padString = String(padString || ' ');
+ if (str.length > targetLength) {
+ return String(str);
+ } else {
+ targetLength = targetLength - str.length;
+ if (targetLength > padString.length) {
+ padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed
+ }
+ return String(str) + padString.slice(0,targetLength);
+ }
+ };
+
+ /**
+ * Unescape HTML entities
+ * @param txt
+ * @returns {string}
+ */
+ showdown.helper.unescapeHTMLEntities = function (txt) {
+ 'use strict';
+
+ return txt
+ .replace(/"/g, '"')
+ .replace(/</g, '<')
+ .replace(/>/g, '>')
+ .replace(/&/g, '&');
+ };
+
+ showdown.helper._hashHTMLSpan = function (html, globals) {
+ return '¨C' + (globals.gHtmlSpans.push(html) - 1) + 'C';
+ };
+
+ /**
+ * Prepends a base URL to relative paths.
+ *
+ * @param {string} baseUrl the base URL to prepend to a relative path
+ * @param {string} url the path to modify, which may be relative
+ * @returns {string} the full URL
+ */
+ showdown.helper.applyBaseUrl = function (baseUrl, url) {
+ // Only prepend if given a base URL and the path is not absolute.
+ if (baseUrl && !this.isAbsolutePath(url)) {
+ var urlResolve = require('url').resolve;
+ url = urlResolve(baseUrl, url);
+ }
+
+ return url;
+ };
+
+ /**
+ * Checks if the given path is absolute.
+ *
+ * @param {string} path the path to test for absolution
+ * @returns {boolean} `true` if the given path is absolute, else `false`
+ */
+ showdown.helper.isAbsolutePath = function (path) {
+ // Absolute paths begin with '[protocol:]//' or '#' (anchors)
+ return /(^([a-z]+:)?\/\/)|(^#)/i.test(path);
+ };
+
+ /**
+ * Showdown's Event Object
+ * @param {string} name Name of the event
+ * @param {string} text Text
+ * @param {{}} params optional. params of the event
+ * @constructor
+ */
+ showdown.helper.Event = function (name, text, params) {
+ 'use strict';
+
+ var regexp = params.regexp || null;
+ var matches = params.matches || {};
+ var options = params.options || {};
+ var converter = params.converter || null;
+ var globals = params.globals || {};
+
+ /**
+ * Get the name of the event
+ * @returns {string}
+ */
+ this.getName = function () {
+ return name;
+ };
+
+ this.getEventName = function () {
+ return name;
+ };
+
+ this._stopExecution = false;
+
+ this.parsedText = params.parsedText || null;
+
+ this.getRegexp = function () {
+ return regexp;
+ };
+
+ this.getOptions = function () {
+ return options;
+ };
+
+ this.getConverter = function () {
+ return converter;
+ };
+
+ this.getGlobals = function () {
+ return globals;
+ };
+
+ this.getCapturedText = function () {
+ return text;
+ };
+
+ this.getText = function () {
+ return text;
+ };
+
+ this.setText = function (newText) {
+ text = newText;
+ };
+
+ this.getMatches = function () {
+ return matches;
+ };
+
+ this.setMatches = function (newMatches) {
+ matches = newMatches;
+ };
+
+ this.preventDefault = function (bool) {
+ this._stopExecution = !bool;
+ };
+ };
+
+ /**
+ * POLYFILLS
+ */
+// use this instead of builtin is undefined for IE8 compatibility
+ if (typeof (console) === 'undefined') {
+ console = {
+ warn: function (msg) {
+ 'use strict';
+ alert(msg);
+ },
+ log: function (msg) {
+ 'use strict';
+ alert(msg);
+ },
+ error: function (msg) {
+ 'use strict';
+ throw msg;
+ }
+ };
+ }
+
+ /**
+ * Common regexes.
+ * We declare some common regexes to improve performance
+ */
+ showdown.helper.regexes = {
+ asteriskDashTildeAndColon: /([*_:~])/g,
+ asteriskDashAndTilde: /([*_~])/g
+ };
+
+ /**
+ * EMOJIS LIST
+ */
+ showdown.helper.emojis = {
+ '+1':'\ud83d\udc4d',
+ '-1':'\ud83d\udc4e',
+ '100':'\ud83d\udcaf',
+ '1234':'\ud83d\udd22',
+ '1st_place_medal':'\ud83e\udd47',
+ '2nd_place_medal':'\ud83e\udd48',
+ '3rd_place_medal':'\ud83e\udd49',
+ '8ball':'\ud83c\udfb1',
+ 'a':'\ud83c\udd70\ufe0f',
+ 'ab':'\ud83c\udd8e',
+ 'abc':'\ud83d\udd24',
+ 'abcd':'\ud83d\udd21',
+ 'accept':'\ud83c\ude51',
+ 'aerial_tramway':'\ud83d\udea1',
+ 'airplane':'\u2708\ufe0f',
+ 'alarm_clock':'\u23f0',
+ 'alembic':'\u2697\ufe0f',
+ 'alien':'\ud83d\udc7d',
+ 'ambulance':'\ud83d\ude91',
+ 'amphora':'\ud83c\udffa',
+ 'anchor':'\u2693\ufe0f',
+ 'angel':'\ud83d\udc7c',
+ 'anger':'\ud83d\udca2',
+ 'angry':'\ud83d\ude20',
+ 'anguished':'\ud83d\ude27',
+ 'ant':'\ud83d\udc1c',
+ 'apple':'\ud83c\udf4e',
+ 'aquarius':'\u2652\ufe0f',
+ 'aries':'\u2648\ufe0f',
+ 'arrow_backward':'\u25c0\ufe0f',
+ 'arrow_double_down':'\u23ec',
+ 'arrow_double_up':'\u23eb',
+ 'arrow_down':'\u2b07\ufe0f',
+ 'arrow_down_small':'\ud83d\udd3d',
+ 'arrow_forward':'\u25b6\ufe0f',
+ 'arrow_heading_down':'\u2935\ufe0f',
+ 'arrow_heading_up':'\u2934\ufe0f',
+ 'arrow_left':'\u2b05\ufe0f',
+ 'arrow_lower_left':'\u2199\ufe0f',
+ 'arrow_lower_right':'\u2198\ufe0f',
+ 'arrow_right':'\u27a1\ufe0f',
+ 'arrow_right_hook':'\u21aa\ufe0f',
+ 'arrow_up':'\u2b06\ufe0f',
+ 'arrow_up_down':'\u2195\ufe0f',
+ 'arrow_up_small':'\ud83d\udd3c',
+ 'arrow_upper_left':'\u2196\ufe0f',
+ 'arrow_upper_right':'\u2197\ufe0f',
+ 'arrows_clockwise':'\ud83d\udd03',
+ 'arrows_counterclockwise':'\ud83d\udd04',
+ 'art':'\ud83c\udfa8',
+ 'articulated_lorry':'\ud83d\ude9b',
+ 'artificial_satellite':'\ud83d\udef0',
+ 'astonished':'\ud83d\ude32',
+ 'athletic_shoe':'\ud83d\udc5f',
+ 'atm':'\ud83c\udfe7',
+ 'atom_symbol':'\u269b\ufe0f',
+ 'avocado':'\ud83e\udd51',
+ 'b':'\ud83c\udd71\ufe0f',
+ 'baby':'\ud83d\udc76',
+ 'baby_bottle':'\ud83c\udf7c',
+ 'baby_chick':'\ud83d\udc24',
+ 'baby_symbol':'\ud83d\udebc',
+ 'back':'\ud83d\udd19',
+ 'bacon':'\ud83e\udd53',
+ 'badminton':'\ud83c\udff8',
+ 'baggage_claim':'\ud83d\udec4',
+ 'baguette_bread':'\ud83e\udd56',
+ 'balance_scale':'\u2696\ufe0f',
+ 'balloon':'\ud83c\udf88',
+ 'ballot_box':'\ud83d\uddf3',
+ 'ballot_box_with_check':'\u2611\ufe0f',
+ 'bamboo':'\ud83c\udf8d',
+ 'banana':'\ud83c\udf4c',
+ 'bangbang':'\u203c\ufe0f',
+ 'bank':'\ud83c\udfe6',
+ 'bar_chart':'\ud83d\udcca',
+ 'barber':'\ud83d\udc88',
+ 'baseball':'\u26be\ufe0f',
+ 'basketball':'\ud83c\udfc0',
+ 'basketball_man':'\u26f9\ufe0f',
+ 'basketball_woman':'\u26f9\ufe0f\u2640\ufe0f',
+ 'bat':'\ud83e\udd87',
+ 'bath':'\ud83d\udec0',
+ 'bathtub':'\ud83d\udec1',
+ 'battery':'\ud83d\udd0b',
+ 'beach_umbrella':'\ud83c\udfd6',
+ 'bear':'\ud83d\udc3b',
+ 'bed':'\ud83d\udecf',
+ 'bee':'\ud83d\udc1d',
+ 'beer':'\ud83c\udf7a',
+ 'beers':'\ud83c\udf7b',
+ 'beetle':'\ud83d\udc1e',
+ 'beginner':'\ud83d\udd30',
+ 'bell':'\ud83d\udd14',
+ 'bellhop_bell':'\ud83d\udece',
+ 'bento':'\ud83c\udf71',
+ 'biking_man':'\ud83d\udeb4',
+ 'bike':'\ud83d\udeb2',
+ 'biking_woman':'\ud83d\udeb4\u2640\ufe0f',
+ 'bikini':'\ud83d\udc59',
+ 'biohazard':'\u2623\ufe0f',
+ 'bird':'\ud83d\udc26',
+ 'birthday':'\ud83c\udf82',
+ 'black_circle':'\u26ab\ufe0f',
+ 'black_flag':'\ud83c\udff4',
+ 'black_heart':'\ud83d\udda4',
+ 'black_joker':'\ud83c\udccf',
+ 'black_large_square':'\u2b1b\ufe0f',
+ 'black_medium_small_square':'\u25fe\ufe0f',
+ 'black_medium_square':'\u25fc\ufe0f',
+ 'black_nib':'\u2712\ufe0f',
+ 'black_small_square':'\u25aa\ufe0f',
+ 'black_square_button':'\ud83d\udd32',
+ 'blonde_man':'\ud83d\udc71',
+ 'blonde_woman':'\ud83d\udc71\u2640\ufe0f',
+ 'blossom':'\ud83c\udf3c',
+ 'blowfish':'\ud83d\udc21',
+ 'blue_book':'\ud83d\udcd8',
+ 'blue_car':'\ud83d\ude99',
+ 'blue_heart':'\ud83d\udc99',
+ 'blush':'\ud83d\ude0a',
+ 'boar':'\ud83d\udc17',
+ 'boat':'\u26f5\ufe0f',
+ 'bomb':'\ud83d\udca3',
+ 'book':'\ud83d\udcd6',
+ 'bookmark':'\ud83d\udd16',
+ 'bookmark_tabs':'\ud83d\udcd1',
+ 'books':'\ud83d\udcda',
+ 'boom':'\ud83d\udca5',
+ 'boot':'\ud83d\udc62',
+ 'bouquet':'\ud83d\udc90',
+ 'bowing_man':'\ud83d\ude47',
+ 'bow_and_arrow':'\ud83c\udff9',
+ 'bowing_woman':'\ud83d\ude47\u2640\ufe0f',
+ 'bowling':'\ud83c\udfb3',
+ 'boxing_glove':'\ud83e\udd4a',
+ 'boy':'\ud83d\udc66',
+ 'bread':'\ud83c\udf5e',
+ 'bride_with_veil':'\ud83d\udc70',
+ 'bridge_at_night':'\ud83c\udf09',
+ 'briefcase':'\ud83d\udcbc',
+ 'broken_heart':'\ud83d\udc94',
+ 'bug':'\ud83d\udc1b',
+ 'building_construction':'\ud83c\udfd7',
+ 'bulb':'\ud83d\udca1',
+ 'bullettrain_front':'\ud83d\ude85',
+ 'bullettrain_side':'\ud83d\ude84',
+ 'burrito':'\ud83c\udf2f',
+ 'bus':'\ud83d\ude8c',
+ 'business_suit_levitating':'\ud83d\udd74',
+ 'busstop':'\ud83d\ude8f',
+ 'bust_in_silhouette':'\ud83d\udc64',
+ 'busts_in_silhouette':'\ud83d\udc65',
+ 'butterfly':'\ud83e\udd8b',
+ 'cactus':'\ud83c\udf35',
+ 'cake':'\ud83c\udf70',
+ 'calendar':'\ud83d\udcc6',
+ 'call_me_hand':'\ud83e\udd19',
+ 'calling':'\ud83d\udcf2',
+ 'camel':'\ud83d\udc2b',
+ 'camera':'\ud83d\udcf7',
+ 'camera_flash':'\ud83d\udcf8',
+ 'camping':'\ud83c\udfd5',
+ 'cancer':'\u264b\ufe0f',
+ 'candle':'\ud83d\udd6f',
+ 'candy':'\ud83c\udf6c',
+ 'canoe':'\ud83d\udef6',
+ 'capital_abcd':'\ud83d\udd20',
+ 'capricorn':'\u2651\ufe0f',
+ 'car':'\ud83d\ude97',
+ 'card_file_box':'\ud83d\uddc3',
+ 'card_index':'\ud83d\udcc7',
+ 'card_index_dividers':'\ud83d\uddc2',
+ 'carousel_horse':'\ud83c\udfa0',
+ 'carrot':'\ud83e\udd55',
+ 'cat':'\ud83d\udc31',
+ 'cat2':'\ud83d\udc08',
+ 'cd':'\ud83d\udcbf',
+ 'chains':'\u26d3',
+ 'champagne':'\ud83c\udf7e',
+ 'chart':'\ud83d\udcb9',
+ 'chart_with_downwards_trend':'\ud83d\udcc9',
+ 'chart_with_upwards_trend':'\ud83d\udcc8',
+ 'checkered_flag':'\ud83c\udfc1',
+ 'cheese':'\ud83e\uddc0',
+ 'cherries':'\ud83c\udf52',
+ 'cherry_blossom':'\ud83c\udf38',
+ 'chestnut':'\ud83c\udf30',
+ 'chicken':'\ud83d\udc14',
+ 'children_crossing':'\ud83d\udeb8',
+ 'chipmunk':'\ud83d\udc3f',
+ 'chocolate_bar':'\ud83c\udf6b',
+ 'christmas_tree':'\ud83c\udf84',
+ 'church':'\u26ea\ufe0f',
+ 'cinema':'\ud83c\udfa6',
+ 'circus_tent':'\ud83c\udfaa',
+ 'city_sunrise':'\ud83c\udf07',
+ 'city_sunset':'\ud83c\udf06',
+ 'cityscape':'\ud83c\udfd9',
+ 'cl':'\ud83c\udd91',
+ 'clamp':'\ud83d\udddc',
+ 'clap':'\ud83d\udc4f',
+ 'clapper':'\ud83c\udfac',
+ 'classical_building':'\ud83c\udfdb',
+ 'clinking_glasses':'\ud83e\udd42',
+ 'clipboard':'\ud83d\udccb',
+ 'clock1':'\ud83d\udd50',
+ 'clock10':'\ud83d\udd59',
+ 'clock1030':'\ud83d\udd65',
+ 'clock11':'\ud83d\udd5a',
+ 'clock1130':'\ud83d\udd66',
+ 'clock12':'\ud83d\udd5b',
+ 'clock1230':'\ud83d\udd67',
+ 'clock130':'\ud83d\udd5c',
+ 'clock2':'\ud83d\udd51',
+ 'clock230':'\ud83d\udd5d',
+ 'clock3':'\ud83d\udd52',
+ 'clock330':'\ud83d\udd5e',
+ 'clock4':'\ud83d\udd53',
+ 'clock430':'\ud83d\udd5f',
+ 'clock5':'\ud83d\udd54',
+ 'clock530':'\ud83d\udd60',
+ 'clock6':'\ud83d\udd55',
+ 'clock630':'\ud83d\udd61',
+ 'clock7':'\ud83d\udd56',
+ 'clock730':'\ud83d\udd62',
+ 'clock8':'\ud83d\udd57',
+ 'clock830':'\ud83d\udd63',
+ 'clock9':'\ud83d\udd58',
+ 'clock930':'\ud83d\udd64',
+ 'closed_book':'\ud83d\udcd5',
+ 'closed_lock_with_key':'\ud83d\udd10',
+ 'closed_umbrella':'\ud83c\udf02',
+ 'cloud':'\u2601\ufe0f',
+ 'cloud_with_lightning':'\ud83c\udf29',
+ 'cloud_with_lightning_and_rain':'\u26c8',
+ 'cloud_with_rain':'\ud83c\udf27',
+ 'cloud_with_snow':'\ud83c\udf28',
+ 'clown_face':'\ud83e\udd21',
+ 'clubs':'\u2663\ufe0f',
+ 'cocktail':'\ud83c\udf78',
+ 'coffee':'\u2615\ufe0f',
+ 'coffin':'\u26b0\ufe0f',
+ 'cold_sweat':'\ud83d\ude30',
+ 'comet':'\u2604\ufe0f',
+ 'computer':'\ud83d\udcbb',
+ 'computer_mouse':'\ud83d\uddb1',
+ 'confetti_ball':'\ud83c\udf8a',
+ 'confounded':'\ud83d\ude16',
+ 'confused':'\ud83d\ude15',
+ 'congratulations':'\u3297\ufe0f',
+ 'construction':'\ud83d\udea7',
+ 'construction_worker_man':'\ud83d\udc77',
+ 'construction_worker_woman':'\ud83d\udc77\u2640\ufe0f',
+ 'control_knobs':'\ud83c\udf9b',
+ 'convenience_store':'\ud83c\udfea',
+ 'cookie':'\ud83c\udf6a',
+ 'cool':'\ud83c\udd92',
+ 'policeman':'\ud83d\udc6e',
+ 'copyright':'\u00a9\ufe0f',
+ 'corn':'\ud83c\udf3d',
+ 'couch_and_lamp':'\ud83d\udecb',
+ 'couple':'\ud83d\udc6b',
+ 'couple_with_heart_woman_man':'\ud83d\udc91',
+ 'couple_with_heart_man_man':'\ud83d\udc68\u2764\ufe0f\ud83d\udc68',
+ 'couple_with_heart_woman_woman':'\ud83d\udc69\u2764\ufe0f\ud83d\udc69',
+ 'couplekiss_man_man':'\ud83d\udc68\u2764\ufe0f\ud83d\udc8b\ud83d\udc68',
+ 'couplekiss_man_woman':'\ud83d\udc8f',
+ 'couplekiss_woman_woman':'\ud83d\udc69\u2764\ufe0f\ud83d\udc8b\ud83d\udc69',
+ 'cow':'\ud83d\udc2e',
+ 'cow2':'\ud83d\udc04',
+ 'cowboy_hat_face':'\ud83e\udd20',
+ 'crab':'\ud83e\udd80',
+ 'crayon':'\ud83d\udd8d',
+ 'credit_card':'\ud83d\udcb3',
+ 'crescent_moon':'\ud83c\udf19',
+ 'cricket':'\ud83c\udfcf',
+ 'crocodile':'\ud83d\udc0a',
+ 'croissant':'\ud83e\udd50',
+ 'crossed_fingers':'\ud83e\udd1e',
+ 'crossed_flags':'\ud83c\udf8c',
+ 'crossed_swords':'\u2694\ufe0f',
+ 'crown':'\ud83d\udc51',
+ 'cry':'\ud83d\ude22',
+ 'crying_cat_face':'\ud83d\ude3f',
+ 'crystal_ball':'\ud83d\udd2e',
+ 'cucumber':'\ud83e\udd52',
+ 'cupid':'\ud83d\udc98',
+ 'curly_loop':'\u27b0',
+ 'currency_exchange':'\ud83d\udcb1',
+ 'curry':'\ud83c\udf5b',
+ 'custard':'\ud83c\udf6e',
+ 'customs':'\ud83d\udec3',
+ 'cyclone':'\ud83c\udf00',
+ 'dagger':'\ud83d\udde1',
+ 'dancer':'\ud83d\udc83',
+ 'dancing_women':'\ud83d\udc6f',
+ 'dancing_men':'\ud83d\udc6f\u2642\ufe0f',
+ 'dango':'\ud83c\udf61',
+ 'dark_sunglasses':'\ud83d\udd76',
+ 'dart':'\ud83c\udfaf',
+ 'dash':'\ud83d\udca8',
+ 'date':'\ud83d\udcc5',
+ 'deciduous_tree':'\ud83c\udf33',
+ 'deer':'\ud83e\udd8c',
+ 'department_store':'\ud83c\udfec',
+ 'derelict_house':'\ud83c\udfda',
+ 'desert':'\ud83c\udfdc',
+ 'desert_island':'\ud83c\udfdd',
+ 'desktop_computer':'\ud83d\udda5',
+ 'male_detective':'\ud83d\udd75\ufe0f',
+ 'diamond_shape_with_a_dot_inside':'\ud83d\udca0',
+ 'diamonds':'\u2666\ufe0f',
+ 'disappointed':'\ud83d\ude1e',
+ 'disappointed_relieved':'\ud83d\ude25',
+ 'dizzy':'\ud83d\udcab',
+ 'dizzy_face':'\ud83d\ude35',
+ 'do_not_litter':'\ud83d\udeaf',
+ 'dog':'\ud83d\udc36',
+ 'dog2':'\ud83d\udc15',
+ 'dollar':'\ud83d\udcb5',
+ 'dolls':'\ud83c\udf8e',
+ 'dolphin':'\ud83d\udc2c',
+ 'door':'\ud83d\udeaa',
+ 'doughnut':'\ud83c\udf69',
+ 'dove':'\ud83d\udd4a',
+ 'dragon':'\ud83d\udc09',
+ 'dragon_face':'\ud83d\udc32',
+ 'dress':'\ud83d\udc57',
+ 'dromedary_camel':'\ud83d\udc2a',
+ 'drooling_face':'\ud83e\udd24',
+ 'droplet':'\ud83d\udca7',
+ 'drum':'\ud83e\udd41',
+ 'duck':'\ud83e\udd86',
+ 'dvd':'\ud83d\udcc0',
+ 'e-mail':'\ud83d\udce7',
+ 'eagle':'\ud83e\udd85',
+ 'ear':'\ud83d\udc42',
+ 'ear_of_rice':'\ud83c\udf3e',
+ 'earth_africa':'\ud83c\udf0d',
+ 'earth_americas':'\ud83c\udf0e',
+ 'earth_asia':'\ud83c\udf0f',
+ 'egg':'\ud83e\udd5a',
+ 'eggplant':'\ud83c\udf46',
+ 'eight_pointed_black_star':'\u2734\ufe0f',
+ 'eight_spoked_asterisk':'\u2733\ufe0f',
+ 'electric_plug':'\ud83d\udd0c',
+ 'elephant':'\ud83d\udc18',
+ 'email':'\u2709\ufe0f',
+ 'end':'\ud83d\udd1a',
+ 'envelope_with_arrow':'\ud83d\udce9',
+ 'euro':'\ud83d\udcb6',
+ 'european_castle':'\ud83c\udff0',
+ 'european_post_office':'\ud83c\udfe4',
+ 'evergreen_tree':'\ud83c\udf32',
+ 'exclamation':'\u2757\ufe0f',
+ 'expressionless':'\ud83d\ude11',
+ 'eye':'\ud83d\udc41',
+ 'eye_speech_bubble':'\ud83d\udc41\ud83d\udde8',
+ 'eyeglasses':'\ud83d\udc53',
+ 'eyes':'\ud83d\udc40',
+ 'face_with_head_bandage':'\ud83e\udd15',
+ 'face_with_thermometer':'\ud83e\udd12',
+ 'fist_oncoming':'\ud83d\udc4a',
+ 'factory':'\ud83c\udfed',
+ 'fallen_leaf':'\ud83c\udf42',
+ 'family_man_woman_boy':'\ud83d\udc6a',
+ 'family_man_boy':'\ud83d\udc68\ud83d\udc66',
+ 'family_man_boy_boy':'\ud83d\udc68\ud83d\udc66\ud83d\udc66',
+ 'family_man_girl':'\ud83d\udc68\ud83d\udc67',
+ 'family_man_girl_boy':'\ud83d\udc68\ud83d\udc67\ud83d\udc66',
+ 'family_man_girl_girl':'\ud83d\udc68\ud83d\udc67\ud83d\udc67',
+ 'family_man_man_boy':'\ud83d\udc68\ud83d\udc68\ud83d\udc66',
+ 'family_man_man_boy_boy':'\ud83d\udc68\ud83d\udc68\ud83d\udc66\ud83d\udc66',
+ 'family_man_man_girl':'\ud83d\udc68\ud83d\udc68\ud83d\udc67',
+ 'family_man_man_girl_boy':'\ud83d\udc68\ud83d\udc68\ud83d\udc67\ud83d\udc66',
+ 'family_man_man_girl_girl':'\ud83d\udc68\ud83d\udc68\ud83d\udc67\ud83d\udc67',
+ 'family_man_woman_boy_boy':'\ud83d\udc68\ud83d\udc69\ud83d\udc66\ud83d\udc66',
+ 'family_man_woman_girl':'\ud83d\udc68\ud83d\udc69\ud83d\udc67',
+ 'family_man_woman_girl_boy':'\ud83d\udc68\ud83d\udc69\ud83d\udc67\ud83d\udc66',
+ 'family_man_woman_girl_girl':'\ud83d\udc68\ud83d\udc69\ud83d\udc67\ud83d\udc67',
+ 'family_woman_boy':'\ud83d\udc69\ud83d\udc66',
+ 'family_woman_boy_boy':'\ud83d\udc69\ud83d\udc66\ud83d\udc66',
+ 'family_woman_girl':'\ud83d\udc69\ud83d\udc67',
+ 'family_woman_girl_boy':'\ud83d\udc69\ud83d\udc67\ud83d\udc66',
+ 'family_woman_girl_girl':'\ud83d\udc69\ud83d\udc67\ud83d\udc67',
+ 'family_woman_woman_boy':'\ud83d\udc69\ud83d\udc69\ud83d\udc66',
+ 'family_woman_woman_boy_boy':'\ud83d\udc69\ud83d\udc69\ud83d\udc66\ud83d\udc66',
+ 'family_woman_woman_girl':'\ud83d\udc69\ud83d\udc69\ud83d\udc67',
+ 'family_woman_woman_girl_boy':'\ud83d\udc69\ud83d\udc69\ud83d\udc67\ud83d\udc66',
+ 'family_woman_woman_girl_girl':'\ud83d\udc69\ud83d\udc69\ud83d\udc67\ud83d\udc67',
+ 'fast_forward':'\u23e9',
+ 'fax':'\ud83d\udce0',
+ 'fearful':'\ud83d\ude28',
+ 'feet':'\ud83d\udc3e',
+ 'female_detective':'\ud83d\udd75\ufe0f\u2640\ufe0f',
+ 'ferris_wheel':'\ud83c\udfa1',
+ 'ferry':'\u26f4',
+ 'field_hockey':'\ud83c\udfd1',
+ 'file_cabinet':'\ud83d\uddc4',
+ 'file_folder':'\ud83d\udcc1',
+ 'film_projector':'\ud83d\udcfd',
+ 'film_strip':'\ud83c\udf9e',
+ 'fire':'\ud83d\udd25',
+ 'fire_engine':'\ud83d\ude92',
+ 'fireworks':'\ud83c\udf86',
+ 'first_quarter_moon':'\ud83c\udf13',
+ 'first_quarter_moon_with_face':'\ud83c\udf1b',
+ 'fish':'\ud83d\udc1f',
+ 'fish_cake':'\ud83c\udf65',
+ 'fishing_pole_and_fish':'\ud83c\udfa3',
+ 'fist_raised':'\u270a',
+ 'fist_left':'\ud83e\udd1b',
+ 'fist_right':'\ud83e\udd1c',
+ 'flags':'\ud83c\udf8f',
+ 'flashlight':'\ud83d\udd26',
+ 'fleur_de_lis':'\u269c\ufe0f',
+ 'flight_arrival':'\ud83d\udeec',
+ 'flight_departure':'\ud83d\udeeb',
+ 'floppy_disk':'\ud83d\udcbe',
+ 'flower_playing_cards':'\ud83c\udfb4',
+ 'flushed':'\ud83d\ude33',
+ 'fog':'\ud83c\udf2b',
+ 'foggy':'\ud83c\udf01',
+ 'football':'\ud83c\udfc8',
+ 'footprints':'\ud83d\udc63',
+ 'fork_and_knife':'\ud83c\udf74',
+ 'fountain':'\u26f2\ufe0f',
+ 'fountain_pen':'\ud83d\udd8b',
+ 'four_leaf_clover':'\ud83c\udf40',
+ 'fox_face':'\ud83e\udd8a',
+ 'framed_picture':'\ud83d\uddbc',
+ 'free':'\ud83c\udd93',
+ 'fried_egg':'\ud83c\udf73',
+ 'fried_shrimp':'\ud83c\udf64',
+ 'fries':'\ud83c\udf5f',
+ 'frog':'\ud83d\udc38',
+ 'frowning':'\ud83d\ude26',
+ 'frowning_face':'\u2639\ufe0f',
+ 'frowning_man':'\ud83d\ude4d\u2642\ufe0f',
+ 'frowning_woman':'\ud83d\ude4d',
+ 'middle_finger':'\ud83d\udd95',
+ 'fuelpump':'\u26fd\ufe0f',
+ 'full_moon':'\ud83c\udf15',
+ 'full_moon_with_face':'\ud83c\udf1d',
+ 'funeral_urn':'\u26b1\ufe0f',
+ 'game_die':'\ud83c\udfb2',
+ 'gear':'\u2699\ufe0f',
+ 'gem':'\ud83d\udc8e',
+ 'gemini':'\u264a\ufe0f',
+ 'ghost':'\ud83d\udc7b',
+ 'gift':'\ud83c\udf81',
+ 'gift_heart':'\ud83d\udc9d',
+ 'girl':'\ud83d\udc67',
+ 'globe_with_meridians':'\ud83c\udf10',
+ 'goal_net':'\ud83e\udd45',
+ 'goat':'\ud83d\udc10',
+ 'golf':'\u26f3\ufe0f',
+ 'golfing_man':'\ud83c\udfcc\ufe0f',
+ 'golfing_woman':'\ud83c\udfcc\ufe0f\u2640\ufe0f',
+ 'gorilla':'\ud83e\udd8d',
+ 'grapes':'\ud83c\udf47',
+ 'green_apple':'\ud83c\udf4f',
+ 'green_book':'\ud83d\udcd7',
+ 'green_heart':'\ud83d\udc9a',
+ 'green_salad':'\ud83e\udd57',
+ 'grey_exclamation':'\u2755',
+ 'grey_question':'\u2754',
+ 'grimacing':'\ud83d\ude2c',
+ 'grin':'\ud83d\ude01',
+ 'grinning':'\ud83d\ude00',
+ 'guardsman':'\ud83d\udc82',
+ 'guardswoman':'\ud83d\udc82\u2640\ufe0f',
+ 'guitar':'\ud83c\udfb8',
+ 'gun':'\ud83d\udd2b',
+ 'haircut_woman':'\ud83d\udc87',
+ 'haircut_man':'\ud83d\udc87\u2642\ufe0f',
+ 'hamburger':'\ud83c\udf54',
+ 'hammer':'\ud83d\udd28',
+ 'hammer_and_pick':'\u2692',
+ 'hammer_and_wrench':'\ud83d\udee0',
+ 'hamster':'\ud83d\udc39',
+ 'hand':'\u270b',
+ 'handbag':'\ud83d\udc5c',
+ 'handshake':'\ud83e\udd1d',
+ 'hankey':'\ud83d\udca9',
+ 'hatched_chick':'\ud83d\udc25',
+ 'hatching_chick':'\ud83d\udc23',
+ 'headphones':'\ud83c\udfa7',
+ 'hear_no_evil':'\ud83d\ude49',
+ 'heart':'\u2764\ufe0f',
+ 'heart_decoration':'\ud83d\udc9f',
+ 'heart_eyes':'\ud83d\ude0d',
+ 'heart_eyes_cat':'\ud83d\ude3b',
+ 'heartbeat':'\ud83d\udc93',
+ 'heartpulse':'\ud83d\udc97',
+ 'hearts':'\u2665\ufe0f',
+ 'heavy_check_mark':'\u2714\ufe0f',
+ 'heavy_division_sign':'\u2797',
+ 'heavy_dollar_sign':'\ud83d\udcb2',
+ 'heavy_heart_exclamation':'\u2763\ufe0f',
+ 'heavy_minus_sign':'\u2796',
+ 'heavy_multiplication_x':'\u2716\ufe0f',
+ 'heavy_plus_sign':'\u2795',
+ 'helicopter':'\ud83d\ude81',
+ 'herb':'\ud83c\udf3f',
+ 'hibiscus':'\ud83c\udf3a',
+ 'high_brightness':'\ud83d\udd06',
+ 'high_heel':'\ud83d\udc60',
+ 'hocho':'\ud83d\udd2a',
+ 'hole':'\ud83d\udd73',
+ 'honey_pot':'\ud83c\udf6f',
+ 'horse':'\ud83d\udc34',
+ 'horse_racing':'\ud83c\udfc7',
+ 'hospital':'\ud83c\udfe5',
+ 'hot_pepper':'\ud83c\udf36',
+ 'hotdog':'\ud83c\udf2d',
+ 'hotel':'\ud83c\udfe8',
+ 'hotsprings':'\u2668\ufe0f',
+ 'hourglass':'\u231b\ufe0f',
+ 'hourglass_flowing_sand':'\u23f3',
+ 'house':'\ud83c\udfe0',
+ 'house_with_garden':'\ud83c\udfe1',
+ 'houses':'\ud83c\udfd8',
+ 'hugs':'\ud83e\udd17',
+ 'hushed':'\ud83d\ude2f',
+ 'ice_cream':'\ud83c\udf68',
+ 'ice_hockey':'\ud83c\udfd2',
+ 'ice_skate':'\u26f8',
+ 'icecream':'\ud83c\udf66',
+ 'id':'\ud83c\udd94',
+ 'ideograph_advantage':'\ud83c\ude50',
+ 'imp':'\ud83d\udc7f',
+ 'inbox_tray':'\ud83d\udce5',
+ 'incoming_envelope':'\ud83d\udce8',
+ 'tipping_hand_woman':'\ud83d\udc81',
+ 'information_source':'\u2139\ufe0f',
+ 'innocent':'\ud83d\ude07',
+ 'interrobang':'\u2049\ufe0f',
+ 'iphone':'\ud83d\udcf1',
+ 'izakaya_lantern':'\ud83c\udfee',
+ 'jack_o_lantern':'\ud83c\udf83',
+ 'japan':'\ud83d\uddfe',
+ 'japanese_castle':'\ud83c\udfef',
+ 'japanese_goblin':'\ud83d\udc7a',
+ 'japanese_ogre':'\ud83d\udc79',
+ 'jeans':'\ud83d\udc56',
+ 'joy':'\ud83d\ude02',
+ 'joy_cat':'\ud83d\ude39',
+ 'joystick':'\ud83d\udd79',
+ 'kaaba':'\ud83d\udd4b',
+ 'key':'\ud83d\udd11',
+ 'keyboard':'\u2328\ufe0f',
+ 'keycap_ten':'\ud83d\udd1f',
+ 'kick_scooter':'\ud83d\udef4',
+ 'kimono':'\ud83d\udc58',
+ 'kiss':'\ud83d\udc8b',
+ 'kissing':'\ud83d\ude17',
+ 'kissing_cat':'\ud83d\ude3d',
+ 'kissing_closed_eyes':'\ud83d\ude1a',
+ 'kissing_heart':'\ud83d\ude18',
+ 'kissing_smiling_eyes':'\ud83d\ude19',
+ 'kiwi_fruit':'\ud83e\udd5d',
+ 'koala':'\ud83d\udc28',
+ 'koko':'\ud83c\ude01',
+ 'label':'\ud83c\udff7',
+ 'large_blue_circle':'\ud83d\udd35',
+ 'large_blue_diamond':'\ud83d\udd37',
+ 'large_orange_diamond':'\ud83d\udd36',
+ 'last_quarter_moon':'\ud83c\udf17',
+ 'last_quarter_moon_with_face':'\ud83c\udf1c',
+ 'latin_cross':'\u271d\ufe0f',
+ 'laughing':'\ud83d\ude06',
+ 'leaves':'\ud83c\udf43',
+ 'ledger':'\ud83d\udcd2',
+ 'left_luggage':'\ud83d\udec5',
+ 'left_right_arrow':'\u2194\ufe0f',
+ 'leftwards_arrow_with_hook':'\u21a9\ufe0f',
+ 'lemon':'\ud83c\udf4b',
+ 'leo':'\u264c\ufe0f',
+ 'leopard':'\ud83d\udc06',
+ 'level_slider':'\ud83c\udf9a',
+ 'libra':'\u264e\ufe0f',
+ 'light_rail':'\ud83d\ude88',
+ 'link':'\ud83d\udd17',
+ 'lion':'\ud83e\udd81',
+ 'lips':'\ud83d\udc44',
+ 'lipstick':'\ud83d\udc84',
+ 'lizard':'\ud83e\udd8e',
+ 'lock':'\ud83d\udd12',
+ 'lock_with_ink_pen':'\ud83d\udd0f',
+ 'lollipop':'\ud83c\udf6d',
+ 'loop':'\u27bf',
+ 'loud_sound':'\ud83d\udd0a',
+ 'loudspeaker':'\ud83d\udce2',
+ 'love_hotel':'\ud83c\udfe9',
+ 'love_letter':'\ud83d\udc8c',
+ 'low_brightness':'\ud83d\udd05',
+ 'lying_face':'\ud83e\udd25',
+ 'm':'\u24c2\ufe0f',
+ 'mag':'\ud83d\udd0d',
+ 'mag_right':'\ud83d\udd0e',
+ 'mahjong':'\ud83c\udc04\ufe0f',
+ 'mailbox':'\ud83d\udceb',
+ 'mailbox_closed':'\ud83d\udcea',
+ 'mailbox_with_mail':'\ud83d\udcec',
+ 'mailbox_with_no_mail':'\ud83d\udced',
+ 'man':'\ud83d\udc68',
+ 'man_artist':'\ud83d\udc68\ud83c\udfa8',
+ 'man_astronaut':'\ud83d\udc68\ud83d\ude80',
+ 'man_cartwheeling':'\ud83e\udd38\u2642\ufe0f',
+ 'man_cook':'\ud83d\udc68\ud83c\udf73',
+ 'man_dancing':'\ud83d\udd7a',
+ 'man_facepalming':'\ud83e\udd26\u2642\ufe0f',
+ 'man_factory_worker':'\ud83d\udc68\ud83c\udfed',
+ 'man_farmer':'\ud83d\udc68\ud83c\udf3e',
+ 'man_firefighter':'\ud83d\udc68\ud83d\ude92',
+ 'man_health_worker':'\ud83d\udc68\u2695\ufe0f',
+ 'man_in_tuxedo':'\ud83e\udd35',
+ 'man_judge':'\ud83d\udc68\u2696\ufe0f',
+ 'man_juggling':'\ud83e\udd39\u2642\ufe0f',
+ 'man_mechanic':'\ud83d\udc68\ud83d\udd27',
+ 'man_office_worker':'\ud83d\udc68\ud83d\udcbc',
+ 'man_pilot':'\ud83d\udc68\u2708\ufe0f',
+ 'man_playing_handball':'\ud83e\udd3e\u2642\ufe0f',
+ 'man_playing_water_polo':'\ud83e\udd3d\u2642\ufe0f',
+ 'man_scientist':'\ud83d\udc68\ud83d\udd2c',
+ 'man_shrugging':'\ud83e\udd37\u2642\ufe0f',
+ 'man_singer':'\ud83d\udc68\ud83c\udfa4',
+ 'man_student':'\ud83d\udc68\ud83c\udf93',
+ 'man_teacher':'\ud83d\udc68\ud83c\udfeb',
+ 'man_technologist':'\ud83d\udc68\ud83d\udcbb',
+ 'man_with_gua_pi_mao':'\ud83d\udc72',
+ 'man_with_turban':'\ud83d\udc73',
+ 'tangerine':'\ud83c\udf4a',
+ 'mans_shoe':'\ud83d\udc5e',
+ 'mantelpiece_clock':'\ud83d\udd70',
+ 'maple_leaf':'\ud83c\udf41',
+ 'martial_arts_uniform':'\ud83e\udd4b',
+ 'mask':'\ud83d\ude37',
+ 'massage_woman':'\ud83d\udc86',
+ 'massage_man':'\ud83d\udc86\u2642\ufe0f',
+ 'meat_on_bone':'\ud83c\udf56',
+ 'medal_military':'\ud83c\udf96',
+ 'medal_sports':'\ud83c\udfc5',
+ 'mega':'\ud83d\udce3',
+ 'melon':'\ud83c\udf48',
+ 'memo':'\ud83d\udcdd',
+ 'men_wrestling':'\ud83e\udd3c\u2642\ufe0f',
+ 'menorah':'\ud83d\udd4e',
+ 'mens':'\ud83d\udeb9',
+ 'metal':'\ud83e\udd18',
+ 'metro':'\ud83d\ude87',
+ 'microphone':'\ud83c\udfa4',
+ 'microscope':'\ud83d\udd2c',
+ 'milk_glass':'\ud83e\udd5b',
+ 'milky_way':'\ud83c\udf0c',
+ 'minibus':'\ud83d\ude90',
+ 'minidisc':'\ud83d\udcbd',
+ 'mobile_phone_off':'\ud83d\udcf4',
+ 'money_mouth_face':'\ud83e\udd11',
+ 'money_with_wings':'\ud83d\udcb8',
+ 'moneybag':'\ud83d\udcb0',
+ 'monkey':'\ud83d\udc12',
+ 'monkey_face':'\ud83d\udc35',
+ 'monorail':'\ud83d\ude9d',
+ 'moon':'\ud83c\udf14',
+ 'mortar_board':'\ud83c\udf93',
+ 'mosque':'\ud83d\udd4c',
+ 'motor_boat':'\ud83d\udee5',
+ 'motor_scooter':'\ud83d\udef5',
+ 'motorcycle':'\ud83c\udfcd',
+ 'motorway':'\ud83d\udee3',
+ 'mount_fuji':'\ud83d\uddfb',
+ 'mountain':'\u26f0',
+ 'mountain_biking_man':'\ud83d\udeb5',
+ 'mountain_biking_woman':'\ud83d\udeb5\u2640\ufe0f',
+ 'mountain_cableway':'\ud83d\udea0',
+ 'mountain_railway':'\ud83d\ude9e',
+ 'mountain_snow':'\ud83c\udfd4',
+ 'mouse':'\ud83d\udc2d',
+ 'mouse2':'\ud83d\udc01',
+ 'movie_camera':'\ud83c\udfa5',
+ 'moyai':'\ud83d\uddff',
+ 'mrs_claus':'\ud83e\udd36',
+ 'muscle':'\ud83d\udcaa',
+ 'mushroom':'\ud83c\udf44',
+ 'musical_keyboard':'\ud83c\udfb9',
+ 'musical_note':'\ud83c\udfb5',
+ 'musical_score':'\ud83c\udfbc',
+ 'mute':'\ud83d\udd07',
+ 'nail_care':'\ud83d\udc85',
+ 'name_badge':'\ud83d\udcdb',
+ 'national_park':'\ud83c\udfde',
+ 'nauseated_face':'\ud83e\udd22',
+ 'necktie':'\ud83d\udc54',
+ 'negative_squared_cross_mark':'\u274e',
+ 'nerd_face':'\ud83e\udd13',
+ 'neutral_face':'\ud83d\ude10',
+ 'new':'\ud83c\udd95',
+ 'new_moon':'\ud83c\udf11',
+ 'new_moon_with_face':'\ud83c\udf1a',
+ 'newspaper':'\ud83d\udcf0',
+ 'newspaper_roll':'\ud83d\uddde',
+ 'next_track_button':'\u23ed',
+ 'ng':'\ud83c\udd96',
+ 'no_good_man':'\ud83d\ude45\u2642\ufe0f',
+ 'no_good_woman':'\ud83d\ude45',
+ 'night_with_stars':'\ud83c\udf03',
+ 'no_bell':'\ud83d\udd15',
+ 'no_bicycles':'\ud83d\udeb3',
+ 'no_entry':'\u26d4\ufe0f',
+ 'no_entry_sign':'\ud83d\udeab',
+ 'no_mobile_phones':'\ud83d\udcf5',
+ 'no_mouth':'\ud83d\ude36',
+ 'no_pedestrians':'\ud83d\udeb7',
+ 'no_smoking':'\ud83d\udead',
+ 'non-potable_water':'\ud83d\udeb1',
+ 'nose':'\ud83d\udc43',
+ 'notebook':'\ud83d\udcd3',
+ 'notebook_with_decorative_cover':'\ud83d\udcd4',
+ 'notes':'\ud83c\udfb6',
+ 'nut_and_bolt':'\ud83d\udd29',
+ 'o':'\u2b55\ufe0f',
+ 'o2':'\ud83c\udd7e\ufe0f',
+ 'ocean':'\ud83c\udf0a',
+ 'octopus':'\ud83d\udc19',
+ 'oden':'\ud83c\udf62',
+ 'office':'\ud83c\udfe2',
+ 'oil_drum':'\ud83d\udee2',
+ 'ok':'\ud83c\udd97',
+ 'ok_hand':'\ud83d\udc4c',
+ 'ok_man':'\ud83d\ude46\u2642\ufe0f',
+ 'ok_woman':'\ud83d\ude46',
+ 'old_key':'\ud83d\udddd',
+ 'older_man':'\ud83d\udc74',
+ 'older_woman':'\ud83d\udc75',
+ 'om':'\ud83d\udd49',
+ 'on':'\ud83d\udd1b',
+ 'oncoming_automobile':'\ud83d\ude98',
+ 'oncoming_bus':'\ud83d\ude8d',
+ 'oncoming_police_car':'\ud83d\ude94',
+ 'oncoming_taxi':'\ud83d\ude96',
+ 'open_file_folder':'\ud83d\udcc2',
+ 'open_hands':'\ud83d\udc50',
+ 'open_mouth':'\ud83d\ude2e',
+ 'open_umbrella':'\u2602\ufe0f',
+ 'ophiuchus':'\u26ce',
+ 'orange_book':'\ud83d\udcd9',
+ 'orthodox_cross':'\u2626\ufe0f',
+ 'outbox_tray':'\ud83d\udce4',
+ 'owl':'\ud83e\udd89',
+ 'ox':'\ud83d\udc02',
+ 'package':'\ud83d\udce6',
+ 'page_facing_up':'\ud83d\udcc4',
+ 'page_with_curl':'\ud83d\udcc3',
+ 'pager':'\ud83d\udcdf',
+ 'paintbrush':'\ud83d\udd8c',
+ 'palm_tree':'\ud83c\udf34',
+ 'pancakes':'\ud83e\udd5e',
+ 'panda_face':'\ud83d\udc3c',
+ 'paperclip':'\ud83d\udcce',
+ 'paperclips':'\ud83d\udd87',
+ 'parasol_on_ground':'\u26f1',
+ 'parking':'\ud83c\udd7f\ufe0f',
+ 'part_alternation_mark':'\u303d\ufe0f',
+ 'partly_sunny':'\u26c5\ufe0f',
+ 'passenger_ship':'\ud83d\udef3',
+ 'passport_control':'\ud83d\udec2',
+ 'pause_button':'\u23f8',
+ 'peace_symbol':'\u262e\ufe0f',
+ 'peach':'\ud83c\udf51',
+ 'peanuts':'\ud83e\udd5c',
+ 'pear':'\ud83c\udf50',
+ 'pen':'\ud83d\udd8a',
+ 'pencil2':'\u270f\ufe0f',
+ 'penguin':'\ud83d\udc27',
+ 'pensive':'\ud83d\ude14',
+ 'performing_arts':'\ud83c\udfad',
+ 'persevere':'\ud83d\ude23',
+ 'person_fencing':'\ud83e\udd3a',
+ 'pouting_woman':'\ud83d\ude4e',
+ 'phone':'\u260e\ufe0f',
+ 'pick':'\u26cf',
+ 'pig':'\ud83d\udc37',
+ 'pig2':'\ud83d\udc16',
+ 'pig_nose':'\ud83d\udc3d',
+ 'pill':'\ud83d\udc8a',
+ 'pineapple':'\ud83c\udf4d',
+ 'ping_pong':'\ud83c\udfd3',
+ 'pisces':'\u2653\ufe0f',
+ 'pizza':'\ud83c\udf55',
+ 'place_of_worship':'\ud83d\uded0',
+ 'plate_with_cutlery':'\ud83c\udf7d',
+ 'play_or_pause_button':'\u23ef',
+ 'point_down':'\ud83d\udc47',
+ 'point_left':'\ud83d\udc48',
+ 'point_right':'\ud83d\udc49',
+ 'point_up':'\u261d\ufe0f',
+ 'point_up_2':'\ud83d\udc46',
+ 'police_car':'\ud83d\ude93',
+ 'policewoman':'\ud83d\udc6e\u2640\ufe0f',
+ 'poodle':'\ud83d\udc29',
+ 'popcorn':'\ud83c\udf7f',
+ 'post_office':'\ud83c\udfe3',
+ 'postal_horn':'\ud83d\udcef',
+ 'postbox':'\ud83d\udcee',
+ 'potable_water':'\ud83d\udeb0',
+ 'potato':'\ud83e\udd54',
+ 'pouch':'\ud83d\udc5d',
+ 'poultry_leg':'\ud83c\udf57',
+ 'pound':'\ud83d\udcb7',
+ 'rage':'\ud83d\ude21',
+ 'pouting_cat':'\ud83d\ude3e',
+ 'pouting_man':'\ud83d\ude4e\u2642\ufe0f',
+ 'pray':'\ud83d\ude4f',
+ 'prayer_beads':'\ud83d\udcff',
+ 'pregnant_woman':'\ud83e\udd30',
+ 'previous_track_button':'\u23ee',
+ 'prince':'\ud83e\udd34',
+ 'princess':'\ud83d\udc78',
+ 'printer':'\ud83d\udda8',
+ 'purple_heart':'\ud83d\udc9c',
+ 'purse':'\ud83d\udc5b',
+ 'pushpin':'\ud83d\udccc',
+ 'put_litter_in_its_place':'\ud83d\udeae',
+ 'question':'\u2753',
+ 'rabbit':'\ud83d\udc30',
+ 'rabbit2':'\ud83d\udc07',
+ 'racehorse':'\ud83d\udc0e',
+ 'racing_car':'\ud83c\udfce',
+ 'radio':'\ud83d\udcfb',
+ 'radio_button':'\ud83d\udd18',
+ 'radioactive':'\u2622\ufe0f',
+ 'railway_car':'\ud83d\ude83',
+ 'railway_track':'\ud83d\udee4',
+ 'rainbow':'\ud83c\udf08',
+ 'rainbow_flag':'\ud83c\udff3\ufe0f\ud83c\udf08',
+ 'raised_back_of_hand':'\ud83e\udd1a',
+ 'raised_hand_with_fingers_splayed':'\ud83d\udd90',
+ 'raised_hands':'\ud83d\ude4c',
+ 'raising_hand_woman':'\ud83d\ude4b',
+ 'raising_hand_man':'\ud83d\ude4b\u2642\ufe0f',
+ 'ram':'\ud83d\udc0f',
+ 'ramen':'\ud83c\udf5c',
+ 'rat':'\ud83d\udc00',
+ 'record_button':'\u23fa',
+ 'recycle':'\u267b\ufe0f',
+ 'red_circle':'\ud83d\udd34',
+ 'registered':'\u00ae\ufe0f',
+ 'relaxed':'\u263a\ufe0f',
+ 'relieved':'\ud83d\ude0c',
+ 'reminder_ribbon':'\ud83c\udf97',
+ 'repeat':'\ud83d\udd01',
+ 'repeat_one':'\ud83d\udd02',
+ 'rescue_worker_helmet':'\u26d1',
+ 'restroom':'\ud83d\udebb',
+ 'revolving_hearts':'\ud83d\udc9e',
+ 'rewind':'\u23ea',
+ 'rhinoceros':'\ud83e\udd8f',
+ 'ribbon':'\ud83c\udf80',
+ 'rice':'\ud83c\udf5a',
+ 'rice_ball':'\ud83c\udf59',
+ 'rice_cracker':'\ud83c\udf58',
+ 'rice_scene':'\ud83c\udf91',
+ 'right_anger_bubble':'\ud83d\uddef',
+ 'ring':'\ud83d\udc8d',
+ 'robot':'\ud83e\udd16',
+ 'rocket':'\ud83d\ude80',
+ 'rofl':'\ud83e\udd23',
+ 'roll_eyes':'\ud83d\ude44',
+ 'roller_coaster':'\ud83c\udfa2',
+ 'rooster':'\ud83d\udc13',
+ 'rose':'\ud83c\udf39',
+ 'rosette':'\ud83c\udff5',
+ 'rotating_light':'\ud83d\udea8',
+ 'round_pushpin':'\ud83d\udccd',
+ 'rowing_man':'\ud83d\udea3',
+ 'rowing_woman':'\ud83d\udea3\u2640\ufe0f',
+ 'rugby_football':'\ud83c\udfc9',
+ 'running_man':'\ud83c\udfc3',
+ 'running_shirt_with_sash':'\ud83c\udfbd',
+ 'running_woman':'\ud83c\udfc3\u2640\ufe0f',
+ 'sa':'\ud83c\ude02\ufe0f',
+ 'sagittarius':'\u2650\ufe0f',
+ 'sake':'\ud83c\udf76',
+ 'sandal':'\ud83d\udc61',
+ 'santa':'\ud83c\udf85',
+ 'satellite':'\ud83d\udce1',
+ 'saxophone':'\ud83c\udfb7',
+ 'school':'\ud83c\udfeb',
+ 'school_satchel':'\ud83c\udf92',
+ 'scissors':'\u2702\ufe0f',
+ 'scorpion':'\ud83e\udd82',
+ 'scorpius':'\u264f\ufe0f',
+ 'scream':'\ud83d\ude31',
+ 'scream_cat':'\ud83d\ude40',
+ 'scroll':'\ud83d\udcdc',
+ 'seat':'\ud83d\udcba',
+ 'secret':'\u3299\ufe0f',
+ 'see_no_evil':'\ud83d\ude48',
+ 'seedling':'\ud83c\udf31',
+ 'selfie':'\ud83e\udd33',
+ 'shallow_pan_of_food':'\ud83e\udd58',
+ 'shamrock':'\u2618\ufe0f',
+ 'shark':'\ud83e\udd88',
+ 'shaved_ice':'\ud83c\udf67',
+ 'sheep':'\ud83d\udc11',
+ 'shell':'\ud83d\udc1a',
+ 'shield':'\ud83d\udee1',
+ 'shinto_shrine':'\u26e9',
+ 'ship':'\ud83d\udea2',
+ 'shirt':'\ud83d\udc55',
+ 'shopping':'\ud83d\udecd',
+ 'shopping_cart':'\ud83d\uded2',
+ 'shower':'\ud83d\udebf',
+ 'shrimp':'\ud83e\udd90',
+ 'signal_strength':'\ud83d\udcf6',
+ 'six_pointed_star':'\ud83d\udd2f',
+ 'ski':'\ud83c\udfbf',
+ 'skier':'\u26f7',
+ 'skull':'\ud83d\udc80',
+ 'skull_and_crossbones':'\u2620\ufe0f',
+ 'sleeping':'\ud83d\ude34',
+ 'sleeping_bed':'\ud83d\udecc',
+ 'sleepy':'\ud83d\ude2a',
+ 'slightly_frowning_face':'\ud83d\ude41',
+ 'slightly_smiling_face':'\ud83d\ude42',
+ 'slot_machine':'\ud83c\udfb0',
+ 'small_airplane':'\ud83d\udee9',
+ 'small_blue_diamond':'\ud83d\udd39',
+ 'small_orange_diamond':'\ud83d\udd38',
+ 'small_red_triangle':'\ud83d\udd3a',
+ 'small_red_triangle_down':'\ud83d\udd3b',
+ 'smile':'\ud83d\ude04',
+ 'smile_cat':'\ud83d\ude38',
+ 'smiley':'\ud83d\ude03',
+ 'smiley_cat':'\ud83d\ude3a',
+ 'smiling_imp':'\ud83d\ude08',
+ 'smirk':'\ud83d\ude0f',
+ 'smirk_cat':'\ud83d\ude3c',
+ 'smoking':'\ud83d\udeac',
+ 'snail':'\ud83d\udc0c',
+ 'snake':'\ud83d\udc0d',
+ 'sneezing_face':'\ud83e\udd27',
+ 'snowboarder':'\ud83c\udfc2',
+ 'snowflake':'\u2744\ufe0f',
+ 'snowman':'\u26c4\ufe0f',
+ 'snowman_with_snow':'\u2603\ufe0f',
+ 'sob':'\ud83d\ude2d',
+ 'soccer':'\u26bd\ufe0f',
+ 'soon':'\ud83d\udd1c',
+ 'sos':'\ud83c\udd98',
+ 'sound':'\ud83d\udd09',
+ 'space_invader':'\ud83d\udc7e',
+ 'spades':'\u2660\ufe0f',
+ 'spaghetti':'\ud83c\udf5d',
+ 'sparkle':'\u2747\ufe0f',
+ 'sparkler':'\ud83c\udf87',
+ 'sparkles':'\u2728',
+ 'sparkling_heart':'\ud83d\udc96',
+ 'speak_no_evil':'\ud83d\ude4a',
+ 'speaker':'\ud83d\udd08',
+ 'speaking_head':'\ud83d\udde3',
+ 'speech_balloon':'\ud83d\udcac',
+ 'speedboat':'\ud83d\udea4',
+ 'spider':'\ud83d\udd77',
+ 'spider_web':'\ud83d\udd78',
+ 'spiral_calendar':'\ud83d\uddd3',
+ 'spiral_notepad':'\ud83d\uddd2',
+ 'spoon':'\ud83e\udd44',
+ 'squid':'\ud83e\udd91',
+ 'stadium':'\ud83c\udfdf',
+ 'star':'\u2b50\ufe0f',
+ 'star2':'\ud83c\udf1f',
+ 'star_and_crescent':'\u262a\ufe0f',
+ 'star_of_david':'\u2721\ufe0f',
+ 'stars':'\ud83c\udf20',
+ 'station':'\ud83d\ude89',
+ 'statue_of_liberty':'\ud83d\uddfd',
+ 'steam_locomotive':'\ud83d\ude82',
+ 'stew':'\ud83c\udf72',
+ 'stop_button':'\u23f9',
+ 'stop_sign':'\ud83d\uded1',
+ 'stopwatch':'\u23f1',
+ 'straight_ruler':'\ud83d\udccf',
+ 'strawberry':'\ud83c\udf53',
+ 'stuck_out_tongue':'\ud83d\ude1b',
+ 'stuck_out_tongue_closed_eyes':'\ud83d\ude1d',
+ 'stuck_out_tongue_winking_eye':'\ud83d\ude1c',
+ 'studio_microphone':'\ud83c\udf99',
+ 'stuffed_flatbread':'\ud83e\udd59',
+ 'sun_behind_large_cloud':'\ud83c\udf25',
+ 'sun_behind_rain_cloud':'\ud83c\udf26',
+ 'sun_behind_small_cloud':'\ud83c\udf24',
+ 'sun_with_face':'\ud83c\udf1e',
+ 'sunflower':'\ud83c\udf3b',
+ 'sunglasses':'\ud83d\ude0e',
+ 'sunny':'\u2600\ufe0f',
+ 'sunrise':'\ud83c\udf05',
+ 'sunrise_over_mountains':'\ud83c\udf04',
+ 'surfing_man':'\ud83c\udfc4',
+ 'surfing_woman':'\ud83c\udfc4\u2640\ufe0f',
+ 'sushi':'\ud83c\udf63',
+ 'suspension_railway':'\ud83d\ude9f',
+ 'sweat':'\ud83d\ude13',
+ 'sweat_drops':'\ud83d\udca6',
+ 'sweat_smile':'\ud83d\ude05',
+ 'sweet_potato':'\ud83c\udf60',
+ 'swimming_man':'\ud83c\udfca',
+ 'swimming_woman':'\ud83c\udfca\u2640\ufe0f',
+ 'symbols':'\ud83d\udd23',
+ 'synagogue':'\ud83d\udd4d',
+ 'syringe':'\ud83d\udc89',
+ 'taco':'\ud83c\udf2e',
+ 'tada':'\ud83c\udf89',
+ 'tanabata_tree':'\ud83c\udf8b',
+ 'taurus':'\u2649\ufe0f',
+ 'taxi':'\ud83d\ude95',
+ 'tea':'\ud83c\udf75',
+ 'telephone_receiver':'\ud83d\udcde',
+ 'telescope':'\ud83d\udd2d',
+ 'tennis':'\ud83c\udfbe',
+ 'tent':'\u26fa\ufe0f',
+ 'thermometer':'\ud83c\udf21',
+ 'thinking':'\ud83e\udd14',
+ 'thought_balloon':'\ud83d\udcad',
+ 'ticket':'\ud83c\udfab',
+ 'tickets':'\ud83c\udf9f',
+ 'tiger':'\ud83d\udc2f',
+ 'tiger2':'\ud83d\udc05',
+ 'timer_clock':'\u23f2',
+ 'tipping_hand_man':'\ud83d\udc81\u2642\ufe0f',
+ 'tired_face':'\ud83d\ude2b',
+ 'tm':'\u2122\ufe0f',
+ 'toilet':'\ud83d\udebd',
+ 'tokyo_tower':'\ud83d\uddfc',
+ 'tomato':'\ud83c\udf45',
+ 'tongue':'\ud83d\udc45',
+ 'top':'\ud83d\udd1d',
+ 'tophat':'\ud83c\udfa9',
+ 'tornado':'\ud83c\udf2a',
+ 'trackball':'\ud83d\uddb2',
+ 'tractor':'\ud83d\ude9c',
+ 'traffic_light':'\ud83d\udea5',
+ 'train':'\ud83d\ude8b',
+ 'train2':'\ud83d\ude86',
+ 'tram':'\ud83d\ude8a',
+ 'triangular_flag_on_post':'\ud83d\udea9',
+ 'triangular_ruler':'\ud83d\udcd0',
+ 'trident':'\ud83d\udd31',
+ 'triumph':'\ud83d\ude24',
+ 'trolleybus':'\ud83d\ude8e',
+ 'trophy':'\ud83c\udfc6',
+ 'tropical_drink':'\ud83c\udf79',
+ 'tropical_fish':'\ud83d\udc20',
+ 'truck':'\ud83d\ude9a',
+ 'trumpet':'\ud83c\udfba',
+ 'tulip':'\ud83c\udf37',
+ 'tumbler_glass':'\ud83e\udd43',
+ 'turkey':'\ud83e\udd83',
+ 'turtle':'\ud83d\udc22',
+ 'tv':'\ud83d\udcfa',
+ 'twisted_rightwards_arrows':'\ud83d\udd00',
+ 'two_hearts':'\ud83d\udc95',
+ 'two_men_holding_hands':'\ud83d\udc6c',
+ 'two_women_holding_hands':'\ud83d\udc6d',
+ 'u5272':'\ud83c\ude39',
+ 'u5408':'\ud83c\ude34',
+ 'u55b6':'\ud83c\ude3a',
+ 'u6307':'\ud83c\ude2f\ufe0f',
+ 'u6708':'\ud83c\ude37\ufe0f',
+ 'u6709':'\ud83c\ude36',
+ 'u6e80':'\ud83c\ude35',
+ 'u7121':'\ud83c\ude1a\ufe0f',
+ 'u7533':'\ud83c\ude38',
+ 'u7981':'\ud83c\ude32',
+ 'u7a7a':'\ud83c\ude33',
+ 'umbrella':'\u2614\ufe0f',
+ 'unamused':'\ud83d\ude12',
+ 'underage':'\ud83d\udd1e',
+ 'unicorn':'\ud83e\udd84',
+ 'unlock':'\ud83d\udd13',
+ 'up':'\ud83c\udd99',
+ 'upside_down_face':'\ud83d\ude43',
+ 'v':'\u270c\ufe0f',
+ 'vertical_traffic_light':'\ud83d\udea6',
+ 'vhs':'\ud83d\udcfc',
+ 'vibration_mode':'\ud83d\udcf3',
+ 'video_camera':'\ud83d\udcf9',
+ 'video_game':'\ud83c\udfae',
+ 'violin':'\ud83c\udfbb',
+ 'virgo':'\u264d\ufe0f',
+ 'volcano':'\ud83c\udf0b',
+ 'volleyball':'\ud83c\udfd0',
+ 'vs':'\ud83c\udd9a',
+ 'vulcan_salute':'\ud83d\udd96',
+ 'walking_man':'\ud83d\udeb6',
+ 'walking_woman':'\ud83d\udeb6\u2640\ufe0f',
+ 'waning_crescent_moon':'\ud83c\udf18',
+ 'waning_gibbous_moon':'\ud83c\udf16',
+ 'warning':'\u26a0\ufe0f',
+ 'wastebasket':'\ud83d\uddd1',
+ 'watch':'\u231a\ufe0f',
+ 'water_buffalo':'\ud83d\udc03',
+ 'watermelon':'\ud83c\udf49',
+ 'wave':'\ud83d\udc4b',
+ 'wavy_dash':'\u3030\ufe0f',
+ 'waxing_crescent_moon':'\ud83c\udf12',
+ 'wc':'\ud83d\udebe',
+ 'weary':'\ud83d\ude29',
+ 'wedding':'\ud83d\udc92',
+ 'weight_lifting_man':'\ud83c\udfcb\ufe0f',
+ 'weight_lifting_woman':'\ud83c\udfcb\ufe0f\u2640\ufe0f',
+ 'whale':'\ud83d\udc33',
+ 'whale2':'\ud83d\udc0b',
+ 'wheel_of_dharma':'\u2638\ufe0f',
+ 'wheelchair':'\u267f\ufe0f',
+ 'white_check_mark':'\u2705',
+ 'white_circle':'\u26aa\ufe0f',
+ 'white_flag':'\ud83c\udff3\ufe0f',
+ 'white_flower':'\ud83d\udcae',
+ 'white_large_square':'\u2b1c\ufe0f',
+ 'white_medium_small_square':'\u25fd\ufe0f',
+ 'white_medium_square':'\u25fb\ufe0f',
+ 'white_small_square':'\u25ab\ufe0f',
+ 'white_square_button':'\ud83d\udd33',
+ 'wilted_flower':'\ud83e\udd40',
+ 'wind_chime':'\ud83c\udf90',
+ 'wind_face':'\ud83c\udf2c',
+ 'wine_glass':'\ud83c\udf77',
+ 'wink':'\ud83d\ude09',
+ 'wolf':'\ud83d\udc3a',
+ 'woman':'\ud83d\udc69',
+ 'woman_artist':'\ud83d\udc69\ud83c\udfa8',
+ 'woman_astronaut':'\ud83d\udc69\ud83d\ude80',
+ 'woman_cartwheeling':'\ud83e\udd38\u2640\ufe0f',
+ 'woman_cook':'\ud83d\udc69\ud83c\udf73',
+ 'woman_facepalming':'\ud83e\udd26\u2640\ufe0f',
+ 'woman_factory_worker':'\ud83d\udc69\ud83c\udfed',
+ 'woman_farmer':'\ud83d\udc69\ud83c\udf3e',
+ 'woman_firefighter':'\ud83d\udc69\ud83d\ude92',
+ 'woman_health_worker':'\ud83d\udc69\u2695\ufe0f',
+ 'woman_judge':'\ud83d\udc69\u2696\ufe0f',
+ 'woman_juggling':'\ud83e\udd39\u2640\ufe0f',
+ 'woman_mechanic':'\ud83d\udc69\ud83d\udd27',
+ 'woman_office_worker':'\ud83d\udc69\ud83d\udcbc',
+ 'woman_pilot':'\ud83d\udc69\u2708\ufe0f',
+ 'woman_playing_handball':'\ud83e\udd3e\u2640\ufe0f',
+ 'woman_playing_water_polo':'\ud83e\udd3d\u2640\ufe0f',
+ 'woman_scientist':'\ud83d\udc69\ud83d\udd2c',
+ 'woman_shrugging':'\ud83e\udd37\u2640\ufe0f',
+ 'woman_singer':'\ud83d\udc69\ud83c\udfa4',
+ 'woman_student':'\ud83d\udc69\ud83c\udf93',
+ 'woman_teacher':'\ud83d\udc69\ud83c\udfeb',
+ 'woman_technologist':'\ud83d\udc69\ud83d\udcbb',
+ 'woman_with_turban':'\ud83d\udc73\u2640\ufe0f',
+ 'womans_clothes':'\ud83d\udc5a',
+ 'womans_hat':'\ud83d\udc52',
+ 'women_wrestling':'\ud83e\udd3c\u2640\ufe0f',
+ 'womens':'\ud83d\udeba',
+ 'world_map':'\ud83d\uddfa',
+ 'worried':'\ud83d\ude1f',
+ 'wrench':'\ud83d\udd27',
+ 'writing_hand':'\u270d\ufe0f',
+ 'x':'\u274c',
+ 'yellow_heart':'\ud83d\udc9b',
+ 'yen':'\ud83d\udcb4',
+ 'yin_yang':'\u262f\ufe0f',
+ 'yum':'\ud83d\ude0b',
+ 'zap':'\u26a1\ufe0f',
+ 'zipper_mouth_face':'\ud83e\udd10',
+ 'zzz':'\ud83d\udca4',
+
+ /* special emojis :P */
+ 'octocat': ' ',
+ 'showdown': ' '
+ };
+
+ /**
+ * These are all the transformations that form block-level
+ * tags like paragraphs, headers, and list items.
+ */
+ showdown.subParser('makehtml.blockGamut', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.blockGamut.before', text, options, globals).getText();
+
+ // we parse blockquotes first so that we can have headings and hrs
+ // inside blockquotes
+ text = showdown.subParser('makehtml.blockQuotes')(text, options, globals);
+ text = showdown.subParser('makehtml.headers')(text, options, globals);
+
+ // Do Horizontal Rules:
+ text = showdown.subParser('makehtml.horizontalRule')(text, options, globals);
+
+ text = showdown.subParser('makehtml.lists')(text, options, globals);
+ text = showdown.subParser('makehtml.codeBlocks')(text, options, globals);
+ text = showdown.subParser('makehtml.tables')(text, options, globals);
+
+ // We already ran _HashHTMLBlocks() before, in Markdown(), but that
+ // was to escape raw HTML in the original Markdown source. This time,
+ // we're escaping the markup we've just created, so that we don't wrap
+ // tags around block-level tags.
+ text = showdown.subParser('makehtml.hashHTMLBlocks')(text, options, globals);
+ text = showdown.subParser('makehtml.paragraphs')(text, options, globals);
+
+ text = globals.converter._dispatch('makehtml.blockGamut.after', text, options, globals).getText();
+
+ return text;
+ });
+
+ showdown.subParser('makehtml.blockQuotes', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.blockQuotes.before', text, options, globals).getText();
+
+ // add a couple extra lines after the text and endtext mark
+ text = text + '\n\n';
+
+ var rgx = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;
+
+ if (options.splitAdjacentBlockquotes) {
+ rgx = /^ {0,3}>[\s\S]*?(?:\n\n)/gm;
+ }
+
+ text = text.replace(rgx, function (bq) {
+ // attacklab: hack around Konqueror 3.5.4 bug:
+ // "----------bug".replace(/^-/g,"") == "bug"
+ bq = bq.replace(/^[ \t]*>[ \t]?/gm, ''); // trim one level of quoting
+
+ // attacklab: clean up hack
+ bq = bq.replace(/¨0/g, '');
+
+ bq = bq.replace(/^[ \t]+$/gm, ''); // trim whitespace-only lines
+ bq = showdown.subParser('makehtml.githubCodeBlocks')(bq, options, globals);
+ bq = showdown.subParser('makehtml.blockGamut')(bq, options, globals); // recurse
+
+ bq = bq.replace(/(^|\n)/g, '$1 ');
+ // These leading spaces screw with
content, so we need to fix that:
+ bq = bq.replace(/(\s*[^\r]+?<\/pre>)/gm, function (wholeMatch, m1) {
+ var pre = m1;
+ // attacklab: hack around Konqueror 3.5.4 bug:
+ pre = pre.replace(/^ /mg, '¨0');
+ pre = pre.replace(/¨0/g, '');
+ return pre;
+ });
+
+ return showdown.subParser('makehtml.hashBlock')('\n' + bq + '\n ', options, globals);
+ });
+
+ text = globals.converter._dispatch('makehtml.blockQuotes.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Process Markdown `` blocks.
+ */
+ showdown.subParser('makehtml.codeBlocks', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.codeBlocks.before', text, options, globals).getText();
+
+ // sentinel workarounds for lack of \A and \Z, safari\khtml bug
+ text += '¨0';
+
+ var pattern = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g;
+ text = text.replace(pattern, function (wholeMatch, m1, m2) {
+ var codeblock = m1,
+ nextChar = m2,
+ end = '\n';
+
+ codeblock = showdown.subParser('makehtml.outdent')(codeblock, options, globals);
+ codeblock = showdown.subParser('makehtml.encodeCode')(codeblock, options, globals);
+ codeblock = showdown.subParser('makehtml.detab')(codeblock, options, globals);
+ codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
+ codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing newlines
+
+ if (options.omitExtraWLInCodeBlocks) {
+ end = '';
+ }
+
+ codeblock = '' + codeblock + end + '
';
+
+ return showdown.subParser('makehtml.hashBlock')(codeblock, options, globals) + nextChar;
+ });
+
+ // strip sentinel
+ text = text.replace(/¨0/, '');
+
+ text = globals.converter._dispatch('makehtml.codeBlocks.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ *
+ * * Backtick quotes are used for
spans.
+ *
+ * * You can use multiple backticks as the delimiters if you want to
+ * include literal backticks in the code span. So, this input:
+ *
+ * Just type ``foo `bar` baz`` at the prompt.
+ *
+ * Will translate to:
+ *
+ * Just type foo `bar` baz
at the prompt.
+ *
+ * There's no arbitrary limit to the number of backticks you
+ * can use as delimters. If you need three consecutive backticks
+ * in your code, use four for delimiters, etc.
+ *
+ * * You can use spaces to get literal backticks at the edges:
+ *
+ * ... type `` `bar` `` ...
+ *
+ * Turns to:
+ *
+ * ... type `bar`
...
+ */
+ showdown.subParser('makehtml.codeSpans', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.codeSpans.before', text, options, globals).getText();
+
+ if (typeof (text) === 'undefined') {
+ text = '';
+ }
+ text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,
+ function (wholeMatch, m1, m2, m3) {
+ var c = m3;
+ c = c.replace(/^([ \t]*)/g, ''); // leading whitespace
+ c = c.replace(/[ \t]*$/g, ''); // trailing whitespace
+ c = showdown.subParser('makehtml.encodeCode')(c, options, globals);
+ c = m1 + '' + c + '
';
+ c = showdown.subParser('makehtml.hashHTMLSpans')(c, options, globals);
+ return c;
+ }
+ );
+
+ text = globals.converter._dispatch('makehtml.codeSpans.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Create a full HTML document from the processed markdown
+ */
+ showdown.subParser('makehtml.completeHTMLDocument', function (text, options, globals) {
+ 'use strict';
+
+ if (!options.completeHTMLDocument) {
+ return text;
+ }
+
+ text = globals.converter._dispatch('makehtml.completeHTMLDocument.before', text, options, globals).getText();
+
+ var doctype = 'html',
+ doctypeParsed = '\n',
+ title = '',
+ charset = ' \n',
+ lang = '',
+ metadata = '';
+
+ if (typeof globals.metadata.parsed.doctype !== 'undefined') {
+ doctypeParsed = '\n';
+ doctype = globals.metadata.parsed.doctype.toString().toLowerCase();
+ if (doctype === 'html' || doctype === 'html5') {
+ charset = ' ';
+ }
+ }
+
+ for (var meta in globals.metadata.parsed) {
+ if (globals.metadata.parsed.hasOwnProperty(meta)) {
+ switch (meta.toLowerCase()) {
+ case 'doctype':
+ break;
+
+ case 'title':
+ title = '' + globals.metadata.parsed.title + ' \n';
+ break;
+
+ case 'charset':
+ if (doctype === 'html' || doctype === 'html5') {
+ charset = ' \n';
+ } else {
+ charset = ' \n';
+ }
+ break;
+
+ case 'language':
+ case 'lang':
+ lang = ' lang="' + globals.metadata.parsed[meta] + '"';
+ metadata += ' \n';
+ break;
+
+ default:
+ metadata += ' \n';
+ }
+ }
+ }
+
+ text = doctypeParsed + '\n\n' + title + charset + metadata + '\n\n' + text.trim() + '\n\n';
+
+ text = globals.converter._dispatch('makehtml.completeHTMLDocument.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Convert all tabs to spaces
+ */
+ showdown.subParser('makehtml.detab', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.detab.before', text, options, globals).getText();
+
+ // expand first n-1 tabs
+ text = text.replace(/\t(?=\t)/g, ' '); // g_tab_width
+
+ // replace the nth with two sentinels
+ text = text.replace(/\t/g, '¨A¨B');
+
+ // use the sentinel to anchor our regex so it doesn't explode
+ text = text.replace(/¨B(.+?)¨A/g, function (wholeMatch, m1) {
+ var leadingText = m1,
+ numSpaces = 4 - leadingText.length % 4; // g_tab_width
+
+ // there *must* be a better way to do this:
+ for (var i = 0; i < numSpaces; i++) {
+ leadingText += ' ';
+ }
+
+ return leadingText;
+ });
+
+ // clean up sentinels
+ text = text.replace(/¨A/g, ' '); // g_tab_width
+ text = text.replace(/¨B/g, '');
+
+ text = globals.converter._dispatch('makehtml.detab.after', text, options, globals).getText();
+ return text;
+ });
+
+ showdown.subParser('makehtml.ellipsis', function (text, options, globals) {
+ 'use strict';
+
+ if (!options.ellipsis) {
+ return text;
+ }
+
+ text = globals.converter._dispatch('makehtml.ellipsis.before', text, options, globals).getText();
+
+ text = text.replace(/\.\.\./g, 'âĻ');
+
+ text = globals.converter._dispatch('makehtml.ellipsis.after', text, options, globals).getText();
+
+ return text;
+ });
+
+ /**
+ * Turn emoji codes into emojis
+ *
+ * List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis
+ */
+ showdown.subParser('makehtml.emoji', function (text, options, globals) {
+ 'use strict';
+
+ if (!options.emoji) {
+ return text;
+ }
+
+ text = globals.converter._dispatch('makehtml.emoji.before', text, options, globals).getText();
+
+ var emojiRgx = /:([\S]+?):/g;
+
+ text = text.replace(emojiRgx, function (wm, emojiCode) {
+ if (showdown.helper.emojis.hasOwnProperty(emojiCode)) {
+ return showdown.helper.emojis[emojiCode];
+ }
+ return wm;
+ });
+
+ text = globals.converter._dispatch('makehtml.emoji.after', text, options, globals).getText();
+
+ return text;
+ });
+
+ /**
+ * Smart processing for ampersands and angle brackets that need to be encoded.
+ */
+ showdown.subParser('makehtml.encodeAmpsAndAngles', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.encodeAmpsAndAngles.before', text, options, globals).getText();
+
+ // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:
+ // http://bumppo.net/projects/amputator/
+ text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, '&');
+
+ // Encode naked <'s
+ text = text.replace(/<(?![a-z\/?$!])/gi, '<');
+
+ // Encode <
+ text = text.replace(/
+ text = text.replace(/>/g, '>');
+
+ text = globals.converter._dispatch('makehtml.encodeAmpsAndAngles.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Returns the string, with after processing the following backslash escape sequences.
+ *
+ * attacklab: The polite way to do this is with the new escapeCharacters() function:
+ *
+ * text = escapeCharacters(text,"\\",true);
+ * text = escapeCharacters(text,"`*_{}[]()>#+-.!",true);
+ *
+ * ...but we're sidestepping its use of the (slow) RegExp constructor
+ * as an optimization for Firefox. This function gets called a LOT.
+ */
+ showdown.subParser('makehtml.encodeBackslashEscapes', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.encodeBackslashEscapes.before', text, options, globals).getText();
+
+ text = text.replace(/\\(\\)/g, showdown.helper.escapeCharactersCallback);
+ text = text.replace(/\\([`*_{}\[\]()>#+.!~=|:-])/g, showdown.helper.escapeCharactersCallback);
+
+ text = globals.converter._dispatch('makehtml.encodeBackslashEscapes.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Encode/escape certain characters inside Markdown code runs.
+ * The point is that in code, these characters are literals,
+ * and lose their special Markdown meanings.
+ */
+ showdown.subParser('makehtml.encodeCode', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.encodeCode.before', text, options, globals).getText();
+
+ // Encode all ampersands; HTML entities are not
+ // entities within a Markdown code span.
+ text = text
+ .replace(/&/g, '&')
+ // Do the angle bracket song and dance:
+ .replace(//g, '>')
+ // Now, escape characters that are magic in Markdown:
+ .replace(/([*_{}\[\]\\=~-])/g, showdown.helper.escapeCharactersCallback);
+
+ text = globals.converter._dispatch('makehtml.encodeCode.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Within tags -- meaning between < and > -- encode [\ ` * _ ~ =] so they
+ * don't conflict with their use in Markdown for code, italics and strong.
+ */
+ showdown.subParser('makehtml.escapeSpecialCharsWithinTagAttributes', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.escapeSpecialCharsWithinTagAttributes.before', text, options, globals).getText();
+
+ // Build a regex to find HTML tags.
+ var tags = /<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,
+ comments = /-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;
+
+ text = text.replace(tags, function (wholeMatch) {
+ return wholeMatch
+ .replace(/(.)<\/?code>(?=.)/g, '$1`')
+ .replace(/([\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);
+ });
+
+ text = text.replace(comments, function (wholeMatch) {
+ return wholeMatch
+ .replace(/([\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);
+ });
+
+ text = globals.converter._dispatch('makehtml.escapeSpecialCharsWithinTagAttributes.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Handle github codeblocks prior to running HashHTML so that
+ * HTML contained within the codeblock gets escaped properly
+ * Example:
+ * ```ruby
+ * def hello_world(x)
+ * puts "Hello, #{x}"
+ * end
+ * ```
+ */
+ showdown.subParser('makehtml.githubCodeBlocks', function (text, options, globals) {
+ 'use strict';
+
+ // early exit if option is not enabled
+ if (!options.ghCodeBlocks) {
+ return text;
+ }
+
+ text = globals.converter._dispatch('makehtml.githubCodeBlocks.before', text, options, globals).getText();
+
+ text += '¨0';
+
+ text = text.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g, function (wholeMatch, delim, language, codeblock) {
+ var end = (options.omitExtraWLInCodeBlocks) ? '' : '\n';
+
+ // First parse the github code block
+ codeblock = showdown.subParser('makehtml.encodeCode')(codeblock, options, globals);
+ codeblock = showdown.subParser('makehtml.detab')(codeblock, options, globals);
+ codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
+ codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing whitespace
+
+ codeblock = '' + codeblock + end + '
';
+
+ codeblock = showdown.subParser('makehtml.hashBlock')(codeblock, options, globals);
+
+ // Since GHCodeblocks can be false positives, we need to
+ // store the primitive text and the parsed text in a global var,
+ // and then return a token
+ return '\n\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n';
+ });
+
+ // attacklab: strip sentinel
+ text = text.replace(/¨0/, '');
+
+ return globals.converter._dispatch('makehtml.githubCodeBlocks.after', text, options, globals).getText();
+ });
+
+ showdown.subParser('makehtml.hashBlock', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.hashBlock.before', text, options, globals).getText();
+ text = text.replace(/(^\n+|\n+$)/g, '');
+ text = '\n\n¨K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\n\n';
+ text = globals.converter._dispatch('makehtml.hashBlock.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Hash and escape elements that should not be parsed as markdown
+ */
+ showdown.subParser('makehtml.hashCodeTags', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.hashCodeTags.before', text, options, globals).getText();
+
+ var repFunc = function (wholeMatch, match, left, right) {
+ var codeblock = left + showdown.subParser('makehtml.encodeCode')(match, options, globals) + right;
+ return '¨C' + (globals.gHtmlSpans.push(codeblock) - 1) + 'C';
+ };
+
+ // Hash naked
+ text = showdown.helper.replaceRecursiveRegExp(text, repFunc, ']*>', '
', 'gim');
+
+ text = globals.converter._dispatch('makehtml.hashCodeTags.after', text, options, globals).getText();
+ return text;
+ });
+
+ showdown.subParser('makehtml.hashElement', function (text, options, globals) {
+ 'use strict';
+
+ return function (wholeMatch, m1) {
+ var blockText = m1;
+
+ // Undo double lines
+ blockText = blockText.replace(/\n\n/g, '\n');
+ blockText = blockText.replace(/^\n/, '');
+
+ // strip trailing blank lines
+ blockText = blockText.replace(/\n+$/g, '');
+
+ // Replace the element text with a marker ("¨KxK" where x is its key)
+ blockText = '\n\n¨K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\n\n';
+
+ return blockText;
+ };
+ });
+
+ showdown.subParser('makehtml.hashHTMLBlocks', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.hashHTMLBlocks.before', text, options, globals).getText();
+
+ var blockTags = [
+ 'pre',
+ 'div',
+ 'h1',
+ 'h2',
+ 'h3',
+ 'h4',
+ 'h5',
+ 'h6',
+ 'blockquote',
+ 'table',
+ 'dl',
+ 'ol',
+ 'ul',
+ 'script',
+ 'noscript',
+ 'form',
+ 'fieldset',
+ 'iframe',
+ 'math',
+ 'style',
+ 'section',
+ 'header',
+ 'footer',
+ 'nav',
+ 'article',
+ 'aside',
+ 'address',
+ 'audio',
+ 'canvas',
+ 'figure',
+ 'hgroup',
+ 'output',
+ 'video',
+ 'details',
+ 'p'
+ ],
+ repFunc = function (wholeMatch, match, left, right) {
+ var txt = wholeMatch;
+ // check if this html element is marked as markdown
+ // if so, it's contents should be parsed as markdown
+ if (left.search(/\bmarkdown\b/) !== -1) {
+ txt = left + globals.converter.makeHtml(match) + right;
+ }
+ return '\n\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n';
+ };
+
+ if (options.backslashEscapesHTMLTags) {
+ // encode backslash escaped HTML tags
+ text = text.replace(/\\<(\/?[^>]+?)>/g, function (wm, inside) {
+ return '<' + inside + '>';
+ });
+ }
+
+ // hash HTML Blocks
+ for (var i = 0; i < blockTags.length; ++i) {
+
+ var opTagPos,
+ rgx1 = new RegExp('^ {0,3}(<' + blockTags[i] + '\\b[^>]*>)', 'im'),
+ patLeft = '<' + blockTags[i] + '\\b[^>]*>',
+ patRight = '' + blockTags[i] + '>';
+ // 1. Look for the first position of the first opening HTML tag in the text
+ while ((opTagPos = showdown.helper.regexIndexOf(text, rgx1)) !== -1) {
+
+ // if the HTML tag is \ escaped, we need to escape it and break
+
+
+ //2. Split the text in that position
+ var subTexts = showdown.helper.splitAtIndex(text, opTagPos),
+ //3. Match recursively
+ newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im');
+
+ // prevent an infinite loop
+ if (newSubText1 === subTexts[1]) {
+ break;
+ }
+ text = subTexts[0].concat(newSubText1);
+ }
+ }
+ // HR SPECIAL CASE
+ text = text.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,
+ showdown.subParser('makehtml.hashElement')(text, options, globals));
+
+ // Special case for standalone HTML comments
+ text = showdown.helper.replaceRecursiveRegExp(text, function (txt) {
+ return '\n\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n';
+ }, '^ {0,3}', 'gm');
+
+ // PHP and ASP-style processor instructions (...?> and <%...%>)
+ text = text.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,
+ showdown.subParser('makehtml.hashElement')(text, options, globals));
+
+ text = globals.converter._dispatch('makehtml.hashHTMLBlocks.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Hash span elements that should not be parsed as markdown
+ */
+ showdown.subParser('makehtml.hashHTMLSpans', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.hashHTMLSpans.before', text, options, globals).getText();
+
+ // Hash Self Closing tags
+ text = text.replace(/<[^>]+?\/>/gi, function (wm) {
+ return showdown.helper._hashHTMLSpan(wm, globals);
+ });
+
+ // Hash tags without properties
+ text = text.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, function (wm) {
+ return showdown.helper._hashHTMLSpan(wm, globals);
+ });
+
+ // Hash tags with properties
+ text = text.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, function (wm) {
+ return showdown.helper._hashHTMLSpan(wm, globals);
+ });
+
+ // Hash self closing tags without />
+ text = text.replace(/<[^>]+?>/gi, function (wm) {
+ return showdown.helper._hashHTMLSpan(wm, globals);
+ });
+
+ text = globals.converter._dispatch('makehtml.hashHTMLSpans.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Unhash HTML spans
+ */
+ showdown.subParser('makehtml.unhashHTMLSpans', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.unhashHTMLSpans.before', text, options, globals).getText();
+
+ for (var i = 0; i < globals.gHtmlSpans.length; ++i) {
+ var repText = globals.gHtmlSpans[i],
+ // limiter to prevent infinite loop (assume 10 as limit for recurse)
+ limit = 0;
+
+ while (/¨C(\d+)C/.test(repText)) {
+ var num = RegExp.$1;
+ repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]);
+ if (limit === 10) {
+ console.error('maximum nesting of 10 spans reached!!!');
+ break;
+ }
+ ++limit;
+ }
+ text = text.replace('¨C' + i + 'C', repText);
+ }
+
+ text = globals.converter._dispatch('makehtml.unhashHTMLSpans.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Hash and escape elements that should not be parsed as markdown
+ */
+ showdown.subParser('makehtml.hashPreCodeTags', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.hashPreCodeTags.before', text, options, globals).getText();
+
+ var repFunc = function (wholeMatch, match, left, right) {
+ // encode html entities
+ var codeblock = left + showdown.subParser('makehtml.encodeCode')(match, options, globals) + right;
+ return '\n\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n';
+ };
+
+ // Hash
+ text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^ {0,3}]*>\\s*]*>', '^ {0,3}
\\s* ', 'gim');
+
+ text = globals.converter._dispatch('makehtml.hashPreCodeTags.after', text, options, globals).getText();
+ return text;
+ });
+
+ showdown.subParser('makehtml.headers', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.headers.before', text, options, globals).getText();
+
+ var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),
+
+ // Set text-style headers:
+ // Header 1
+ // ========
+ //
+ // Header 2
+ // --------
+ //
+ setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm,
+ setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm;
+
+ text = text.replace(setextRegexH1, function (wholeMatch, m1) {
+
+ var spanGamut = showdown.subParser('makehtml.spanGamut')(m1, options, globals),
+ hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+ hLevel = headerLevelStart,
+ hashBlock = '' + spanGamut + ' ';
+ return showdown.subParser('makehtml.hashBlock')(hashBlock, options, globals);
+ });
+
+ text = text.replace(setextRegexH2, function (matchFound, m1) {
+ var spanGamut = showdown.subParser('makehtml.spanGamut')(m1, options, globals),
+ hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+ hLevel = headerLevelStart + 1,
+ hashBlock = '' + spanGamut + ' ';
+ return showdown.subParser('makehtml.hashBlock')(hashBlock, options, globals);
+ });
+
+ // atx-style headers:
+ // # Header 1
+ // ## Header 2
+ // ## Header 2 with closing hashes ##
+ // ...
+ // ###### Header 6
+ //
+ var atxStyle = (options.requireSpaceBeforeHeadingText) ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm;
+
+ text = text.replace(atxStyle, function (wholeMatch, m1, m2) {
+ var hText = m2;
+ if (options.customizedHeaderId) {
+ hText = m2.replace(/\s?\{([^{]+?)}\s*$/, '');
+ }
+
+ var span = showdown.subParser('makehtml.spanGamut')(hText, options, globals),
+ hID = (options.noHeaderId) ? '' : ' id="' + headerId(m2) + '"',
+ hLevel = headerLevelStart - 1 + m1.length,
+ header = '' + span + ' ';
+
+ return showdown.subParser('makehtml.hashBlock')(header, options, globals);
+ });
+
+ function headerId (m) {
+ var title,
+ prefix;
+
+ // It is separate from other options to allow combining prefix and customized
+ if (options.customizedHeaderId) {
+ var match = m.match(/\{([^{]+?)}\s*$/);
+ if (match && match[1]) {
+ m = match[1];
+ }
+ }
+
+ title = m;
+
+ // Prefix id to prevent causing inadvertent pre-existing style matches.
+ if (showdown.helper.isString(options.prefixHeaderId)) {
+ prefix = options.prefixHeaderId;
+ } else if (options.prefixHeaderId === true) {
+ prefix = 'section-';
+ } else {
+ prefix = '';
+ }
+
+ if (!options.rawPrefixHeaderId) {
+ title = prefix + title;
+ }
+
+ if (options.ghCompatibleHeaderId) {
+ title = title
+ .replace(/ /g, '-')
+ // replace previously escaped chars (&, ¨ and $)
+ .replace(/&/g, '')
+ .replace(/¨T/g, '')
+ .replace(/¨D/g, '')
+ // replace rest of the chars (&~$ are repeated as they might have been escaped)
+ // borrowed from github's redcarpet (some they should produce similar results)
+ .replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g, '')
+ .toLowerCase();
+ } else if (options.rawHeaderId) {
+ title = title
+ .replace(/ /g, '-')
+ // replace previously escaped chars (&, ¨ and $)
+ .replace(/&/g, '&')
+ .replace(/¨T/g, '¨')
+ .replace(/¨D/g, '$')
+ // replace " and '
+ .replace(/["']/g, '-')
+ .toLowerCase();
+ } else {
+ title = title
+ .replace(/[^\w]/g, '')
+ .toLowerCase();
+ }
+
+ if (options.rawPrefixHeaderId) {
+ title = prefix + title;
+ }
+
+ if (globals.hashLinkCounts[title]) {
+ title = title + '-' + (globals.hashLinkCounts[title]++);
+ } else {
+ globals.hashLinkCounts[title] = 1;
+ }
+ return title;
+ }
+
+ text = globals.converter._dispatch('makehtml.headers.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Turn Markdown horizontal rule shortcuts into tags.
+ *
+ * Any 3 or more unindented consecutive hyphens, asterisks or underscores with or without a space beetween them
+ * in a single line is considered a horizontal rule
+ */
+ showdown.subParser('makehtml.horizontalRule', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.horizontalRule.before', text, options, globals).getText();
+
+ var key = showdown.subParser('makehtml.hashBlock')(' ', options, globals);
+ text = text.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, key);
+ text = text.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, key);
+ text = text.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, key);
+
+ text = globals.converter._dispatch('makehtml.horizontalRule.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Turn Markdown image shortcuts into tags.
+ */
+ showdown.subParser('makehtml.images', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.images.before', text, options, globals).getText();
+
+ var inlineRegExp = /!\[([^\]]*?)][ \t]*()\([ \t]?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,
+ crazyRegExp = /!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,
+ base64RegExp = /!\[([^\]]*?)][ \t]*()\([ \t]?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,
+ referenceRegExp = /!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,
+ refShortcutRegExp = /!\[([^\[\]]+)]()()()()()/g;
+
+ function writeImageTagBase64 (wholeMatch, altText, linkId, url, width, height, m5, title) {
+ url = url.replace(/\s/g, '');
+ return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title);
+ }
+
+ function writeImageTagBaseUrl (wholeMatch, altText, linkId, url, width, height, m5, title) {
+ url = showdown.helper.applyBaseUrl(options.relativePathBaseUrl, url);
+
+ return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title);
+ }
+
+ function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) {
+
+ var gUrls = globals.gUrls,
+ gTitles = globals.gTitles,
+ gDims = globals.gDimensions;
+
+ linkId = linkId.toLowerCase();
+
+ if (!title) {
+ title = '';
+ }
+ // Special case for explicit empty url
+ if (wholeMatch.search(/\(\s*>? ?(['"].*['"])?\)$/m) > -1) {
+ url = '';
+
+ } else if (url === '' || url === null) {
+ if (linkId === '' || linkId === null) {
+ // lower-case and turn embedded newlines into spaces
+ linkId = altText.toLowerCase().replace(/ ?\n/g, ' ');
+ }
+ url = '#' + linkId;
+
+ if (!showdown.helper.isUndefined(gUrls[linkId])) {
+ url = gUrls[linkId];
+ if (!showdown.helper.isUndefined(gTitles[linkId])) {
+ title = gTitles[linkId];
+ }
+ if (!showdown.helper.isUndefined(gDims[linkId])) {
+ width = gDims[linkId].width;
+ height = gDims[linkId].height;
+ }
+ } else {
+ return wholeMatch;
+ }
+ }
+
+ altText = altText
+ .replace(/"/g, '"')
+ //altText = showdown.helper.escapeCharacters(altText, '*_', false);
+ .replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback);
+ //url = showdown.helper.escapeCharacters(url, '*_', false);
+ url = url.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback);
+ var result = ' ';
+
+ return result;
+ }
+
+ // First, handle reference-style labeled images: ![alt text][id]
+ text = text.replace(referenceRegExp, writeImageTag);
+
+ // Next, handle inline images: 
+
+ // base64 encoded images
+ text = text.replace(base64RegExp, writeImageTagBase64);
+
+ // cases with crazy urls like ./image/cat1).png
+ text = text.replace(crazyRegExp, writeImageTagBaseUrl);
+
+ // normal cases
+ text = text.replace(inlineRegExp, writeImageTagBaseUrl);
+
+ // handle reference-style shortcuts: ![img text]
+ text = text.replace(refShortcutRegExp, writeImageTag);
+
+ text = globals.converter._dispatch('makehtml.images.after', text, options, globals).getText();
+ return text;
+ });
+
+ showdown.subParser('makehtml.italicsAndBold', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.italicsAndBold.before', text, options, globals).getText();
+
+ // it's faster to have 3 separate regexes for each case than have just one
+ // because of backtracing, in some cases, it could lead to an exponential effect
+ // called "catastrophic backtrace". Ominous!
+
+ function parseInside (txt, left, right) {
+ return left + txt + right;
+ }
+
+ // Parse underscores
+ if (options.literalMidWordUnderscores) {
+ text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) {
+ return parseInside (txt, '', ' ');
+ });
+ text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) {
+ return parseInside (txt, '', ' ');
+ });
+ text = text.replace(/\b_(\S[\s\S]*?)_\b/g, function (wm, txt) {
+ return parseInside (txt, '', ' ');
+ });
+ } else {
+ text = text.replace(/___(\S[\s\S]*?)___/g, function (wm, m) {
+ return (/\S$/.test(m)) ? parseInside (m, '', ' ') : wm;
+ });
+ text = text.replace(/__(\S[\s\S]*?)__/g, function (wm, m) {
+ return (/\S$/.test(m)) ? parseInside (m, '', ' ') : wm;
+ });
+ text = text.replace(/_([^\s_][\s\S]*?)_/g, function (wm, m) {
+ // !/^_[^_]/.test(m) - test if it doesn't start with __ (since it seems redundant, we removed it)
+ return (/\S$/.test(m)) ? parseInside (m, '', ' ') : wm;
+ });
+ }
+
+ // Now parse asterisks
+ /*
+ if (options.literalMidWordAsterisks) {
+ text = text.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g, function (wm, lead, txt) {
+ return parseInside (txt, lead + '', ' ');
+ });
+ text = text.replace(/([^*]|^)\B\*\*(\S[\s\S]+?)\*\*\B(?!\*)/g, function (wm, lead, txt) {
+ return parseInside (txt, lead + '', ' ');
+ });
+ text = text.replace(/([^*]|^)\B\*(\S[\s\S]+?)\*\B(?!\*)/g, function (wm, lead, txt) {
+ return parseInside (txt, lead + '', ' ');
+ });
+ } else {
+ */
+ text = text.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (wm, m) {
+ return (/\S$/.test(m)) ? parseInside (m, '', ' ') : wm;
+ });
+ text = text.replace(/\*\*(\S[\s\S]*?)\*\*/g, function (wm, m) {
+ return (/\S$/.test(m)) ? parseInside (m, '', ' ') : wm;
+ });
+ text = text.replace(/\*([^\s*][\s\S]*?)\*/g, function (wm, m) {
+ // !/^\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)
+ return (/\S$/.test(m)) ? parseInside (m, '', ' ') : wm;
+ });
+ //}
+
+ text = globals.converter._dispatch('makehtml.italicsAndBold.after', text, options, globals).getText();
+ return text;
+ });
+
+////
+// makehtml/links.js
+// Copyright (c) 2018 ShowdownJS
+//
+// Transforms MD links into `` html anchors
+//
+// A link contains link text (the visible text), a link destination (the URI that is the link destination), and
+// optionally a link title. There are two basic kinds of links in Markdown.
+// In inline links the destination and title are given immediately after the link text.
+// In reference links the destination and title are defined elsewhere in the document.
+//
+// ***Author:***
+// - EstevÃŖo Soares dos Santos (Tivie)
+////
+
+ (function () {
+ /**
+ * Helper function: Wrapper function to pass as second replace parameter
+ *
+ * @param {RegExp} rgx
+ * @param {string} evtRootName
+ * @param {{}} options
+ * @param {{}} globals
+ * @returns {Function}
+ */
+ function replaceAnchorTagReference (rgx, evtRootName, options, globals, emptyCase) {
+ emptyCase = !!emptyCase;
+ return function (wholeMatch, text, id, url, m5, m6, title) {
+ // bail we we find 2 newlines somewhere
+ if (/\n\n/.test(wholeMatch)) {
+ return wholeMatch;
+ }
+
+ var evt = createEvent(rgx, evtRootName + '.captureStart', wholeMatch, text, id, url, title, options, globals);
+ return writeAnchorTag(evt, options, globals, emptyCase);
+ };
+ }
+
+ function replaceAnchorTagBaseUrl (rgx, evtRootName, options, globals, emptyCase) {
+ return function (wholeMatch, text, id, url, m5, m6, title) {
+ url = showdown.helper.applyBaseUrl(options.relativePathBaseUrl, url);
+
+ var evt = createEvent(rgx, evtRootName + '.captureStart', wholeMatch, text, id, url, title, options, globals);
+ return writeAnchorTag(evt, options, globals, emptyCase);
+ };
+ }
+
+ /**
+ * TODO Normalize this
+ * Helper function: Create a capture event
+ * @param {RegExp} rgx
+ * @param {String} evtName Event name
+ * @param {String} wholeMatch
+ * @param {String} text
+ * @param {String} id
+ * @param {String} url
+ * @param {String} title
+ * @param {{}} options
+ * @param {{}} globals
+ * @returns {showdown.helper.Event|*}
+ */
+ function createEvent (rgx, evtName, wholeMatch, text, id, url, title, options, globals) {
+ return globals.converter._dispatch(evtName, wholeMatch, options, globals, {
+ regexp: rgx,
+ matches: {
+ wholeMatch: wholeMatch,
+ text: text,
+ id: id,
+ url: url,
+ title: title
+ }
+ });
+ }
+
+ /**
+ * Helper Function: Normalize and write an anchor tag based on passed parameters
+ * @param evt
+ * @param options
+ * @param globals
+ * @param {boolean} emptyCase
+ * @returns {string}
+ */
+ function writeAnchorTag (evt, options, globals, emptyCase) {
+
+ var wholeMatch = evt.getMatches().wholeMatch;
+ var text = evt.getMatches().text;
+ var id = evt.getMatches().id;
+ var url = evt.getMatches().url;
+ var title = evt.getMatches().title;
+ var target = '';
+
+ if (!title) {
+ title = '';
+ }
+ id = (id) ? id.toLowerCase() : '';
+
+ if (emptyCase) {
+ url = '';
+ } else if (!url) {
+ if (!id) {
+ // lower-case and turn embedded newlines into spaces
+ id = text.toLowerCase().replace(/ ?\n/g, ' ');
+ }
+ url = '#' + id;
+
+ if (!showdown.helper.isUndefined(globals.gUrls[id])) {
+ url = globals.gUrls[id];
+ if (!showdown.helper.isUndefined(globals.gTitles[id])) {
+ title = globals.gTitles[id];
+ }
+ } else {
+ return wholeMatch;
+ }
+ }
+ //url = showdown.helper.escapeCharacters(url, '*_:~', false); // replaced line to improve performance
+ url = url.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback);
+
+ if (title !== '' && title !== null) {
+ title = title.replace(/"/g, '"');
+ //title = showdown.helper.escapeCharacters(title, '*_', false); // replaced line to improve performance
+ title = title.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback);
+ title = ' title="' + title + '"';
+ }
+
+ // optionLinksInNewWindow only applies
+ // to external links. Hash links (#) open in same page
+ if (options.openLinksInNewWindow && !/^#/.test(url)) {
+ // escaped _
+ target = ' rel="noopener noreferrer" target="¨E95Eblank"';
+ }
+
+ // Text can be a markdown element, so we run through the appropriate parsers
+ text = showdown.subParser('makehtml.codeSpans')(text, options, globals);
+ text = showdown.subParser('makehtml.emoji')(text, options, globals);
+ text = showdown.subParser('makehtml.underline')(text, options, globals);
+ text = showdown.subParser('makehtml.italicsAndBold')(text, options, globals);
+ text = showdown.subParser('makehtml.strikethrough')(text, options, globals);
+ text = showdown.subParser('makehtml.ellipsis')(text, options, globals);
+ text = showdown.subParser('makehtml.hashHTMLSpans')(text, options, globals);
+
+ //evt = createEvent(rgx, evtRootName + '.captureEnd', wholeMatch, text, id, url, title, options, globals);
+
+ var result = '' + text + ' ';
+
+ //evt = createEvent(rgx, evtRootName + '.beforeHash', wholeMatch, text, id, url, title, options, globals);
+
+ result = showdown.subParser('makehtml.hashHTMLSpans')(result, options, globals);
+
+ return result;
+ }
+
+ var evtRootName = 'makehtml.links';
+
+ /**
+ * Turn Markdown link shortcuts into XHTML tags.
+ */
+ showdown.subParser('makehtml.links', function (text, options, globals) {
+
+ text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText();
+
+ // 1. Handle reference-style links: [link text] [id]
+ text = showdown.subParser('makehtml.links.reference')(text, options, globals);
+
+ // 2. Handle inline-style links: [link text](url "optional title")
+ text = showdown.subParser('makehtml.links.inline')(text, options, globals);
+
+ // 3. Handle reference-style shortcuts: [link text]
+ // These must come last in case there's a [link text][1] or [link text](/foo)
+ text = showdown.subParser('makehtml.links.referenceShortcut')(text, options, globals);
+
+ // 4. Handle angle brackets links -> ` `
+ // Must come after links, because you can use < and > delimiters in inline links like [this]().
+ text = showdown.subParser('makehtml.links.angleBrackets')(text, options, globals);
+
+ // 5. Handle GithubMentions (if option is enabled)
+ text = showdown.subParser('makehtml.links.ghMentions')(text, options, globals);
+
+ // 6. Handle tags and img tags
+ text = text.replace(/ ]*>[\s\S]*<\/a>/g, function (wholeMatch) {
+ return showdown.helper._hashHTMLSpan(wholeMatch, globals);
+ });
+
+ text = text.replace(/ ]*\/?>/g, function (wholeMatch) {
+ return showdown.helper._hashHTMLSpan(wholeMatch, globals);
+ });
+
+ // 7. Handle naked links (if option is enabled)
+ text = showdown.subParser('makehtml.links.naked')(text, options, globals);
+
+ text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * TODO WRITE THIS DOCUMENTATION
+ */
+ showdown.subParser('makehtml.links.inline', function (text, options, globals) {
+ var evtRootName = evtRootName + '.inline';
+
+ text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText();
+
+ // 1. Look for empty cases: []() and [empty]() and []("title")
+ var rgxEmpty = /\[(.*?)]()()()()\( ?>? ?(?:["'](.*)["'])?\)/g;
+ text = text.replace(rgxEmpty, replaceAnchorTagBaseUrl(rgxEmpty, evtRootName, options, globals, true));
+
+ // 2. Look for cases with crazy urls like ./image/cat1).png
+ var rgxCrazy = /\[((?:\[[^\]]*]|[^\[\]])*)]()\s?\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g;
+ text = text.replace(rgxCrazy, replaceAnchorTagBaseUrl(rgxCrazy, evtRootName, options, globals));
+
+ // 3. inline links with no title or titles wrapped in ' or ":
+ // [text](url.com) || [text]() || [text](url.com "title") || [text]( "title")
+ //var rgx2 = /\[[ ]*[\s]?[ ]*([^\n\[\]]*?)[ ]*[\s]?[ ]*] ?()\([ ]*[\s]?[ ]*([^\s'"]*)>?(?:[ ]*[\n]?[ ]*()(['"])(.*?)\5)?[ ]*[\s]?[ ]*\)/; // this regex is too slow!!!
+ var rgx2 = /\[([\S ]*?)]\s?()\( *([^\s'"]*?(?:\([\S]*?\)[\S]*?)?)>?\s*(?:()(['"])(.*?)\5)? *\)/g;
+ text = text.replace(rgx2, replaceAnchorTagBaseUrl(rgx2, evtRootName, options, globals));
+
+ // 4. inline links with titles wrapped in (): [foo](bar.com (title))
+ var rgx3 = /\[([\S ]*?)]\s?()\( *([^\s'"]*?(?:\([\S]*?\)[\S]*?)?)>?\s+()()\((.*?)\) *\)/g;
+ text = text.replace(rgx3, replaceAnchorTagBaseUrl(rgx3, evtRootName, options, globals));
+
+ text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText();
+
+ return text;
+ });
+
+ /**
+ * TODO WRITE THIS DOCUMENTATION
+ */
+ showdown.subParser('makehtml.links.reference', function (text, options, globals) {
+ var evtRootName = evtRootName + '.reference';
+
+ text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText();
+
+ var rgx = /\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g;
+ text = text.replace(rgx, replaceAnchorTagReference(rgx, evtRootName, options, globals));
+
+ text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText();
+
+ return text;
+ });
+
+ /**
+ * TODO WRITE THIS DOCUMENTATION
+ */
+ showdown.subParser('makehtml.links.referenceShortcut', function (text, options, globals) {
+ var evtRootName = evtRootName + '.referenceShortcut';
+
+ text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText();
+
+ var rgx = /\[([^\[\]]+)]()()()()()/g;
+ text = text.replace(rgx, replaceAnchorTagReference(rgx, evtRootName, options, globals));
+
+ text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText();
+
+ return text;
+ });
+
+ /**
+ * TODO WRITE THIS DOCUMENTATION
+ */
+ showdown.subParser('makehtml.links.ghMentions', function (text, options, globals) {
+ var evtRootName = evtRootName + 'ghMentions';
+
+ if (!options.ghMentions) {
+ return text;
+ }
+
+ text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText();
+
+ var rgx = /(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d._-]+?[a-z\d]+)*))/gi;
+
+ text = text.replace(rgx, function (wholeMatch, st, escape, mentions, username) {
+ // bail if the mentions was escaped
+ if (escape === '\\') {
+ return st + mentions;
+ }
+
+ // check if options.ghMentionsLink is a string
+ // TODO Validation should be done at initialization not at runtime
+ if (!showdown.helper.isString(options.ghMentionsLink)) {
+ throw new Error('ghMentionsLink option must be a string');
+ }
+ var url = options.ghMentionsLink.replace(/{u}/g, username);
+ var evt = createEvent(rgx, evtRootName + '.captureStart', wholeMatch, mentions, null, url, null, options, globals);
+ // captureEnd Event is triggered inside writeAnchorTag function
+ return st + writeAnchorTag(evt, options, globals);
+ });
+
+ text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText();
+
+ return text;
+ });
+
+ /**
+ * TODO WRITE THIS DOCUMENTATION
+ */
+ showdown.subParser('makehtml.links.angleBrackets', function (text, options, globals) {
+ var evtRootName = 'makehtml.links.angleBrackets';
+
+ text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText();
+
+ // 1. Parse links first
+ var urlRgx = /<(((?:https?|ftp):\/\/|www\.)[^'">\s]+)>/gi;
+ text = text.replace(urlRgx, function (wholeMatch, url, urlStart) {
+ var text = url;
+ url = (urlStart === 'www.') ? 'http://' + url : url;
+ var evt = createEvent(urlRgx, evtRootName + '.captureStart', wholeMatch, text, null, url, null, options, globals);
+ return writeAnchorTag(evt, options, globals);
+ });
+
+ // 2. Then Mail Addresses
+ var mailRgx = /<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;
+ text = text.replace(mailRgx, function (wholeMatch, mail) {
+ var url = 'mailto:';
+ mail = showdown.subParser('makehtml.unescapeSpecialChars')(mail, options, globals);
+ if (options.encodeEmails) {
+ url = showdown.helper.encodeEmailAddress(url + mail);
+ mail = showdown.helper.encodeEmailAddress(mail);
+ } else {
+ url = url + mail;
+ }
+ var evt = createEvent(mailRgx, evtRootName + '.captureStart', wholeMatch, mail, null, url, null, options, globals);
+ return writeAnchorTag(evt, options, globals);
+ });
+
+ text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * TODO MAKE THIS WORK (IT'S NOT ACTIVATED)
+ * TODO WRITE THIS DOCUMENTATION
+ */
+ showdown.subParser('makehtml.links.naked', function (text, options, globals) {
+ if (!options.simplifiedAutoLink) {
+ return text;
+ }
+
+ var evtRootName = 'makehtml.links.naked';
+
+ text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText();
+
+ // 2. Now we check for
+ // we also include leading markdown magic chars [_*~] for cases like __https://www.google.com/foobar__
+ var urlRgx = /([_*~]*?)(((?:https?|ftp):\/\/|www\.)[^\s<>"'`´.-][^\s<>"'`´]*?\.[a-z\d.]+[^\s<>"']*)\1/gi;
+ text = text.replace(urlRgx, function (wholeMatch, leadingMDChars, url, urlPrefix) {
+
+ // we now will start traversing the url from the front to back, looking for punctuation chars [_*~,;:.!?\)\]]
+ var len = url.length;
+ var suffix = '';
+ for (var i = len - 1; i >= 0; --i) {
+ var char = url.charAt(i);
+
+ if (/[_*~,;:.!?]/.test(char)) {
+ // it's a punctuation char
+ // we remove it from the url
+ url = url.slice(0, -1);
+ // and prepend it to the suffix
+ suffix = char + suffix;
+ } else if (/\)/.test(char)) {
+ var opPar = url.match(/\(/g) || [];
+ var clPar = url.match(/\)/g);
+
+ // it's a curved parenthesis so we need to check for "balance" (kinda)
+ if (opPar.length < clPar.length) {
+ // there are more closing Parenthesis than opening so chop it!!!!!
+ url = url.slice(0, -1);
+ // and prepend it to the suffix
+ suffix = char + suffix;
+ } else {
+ // it's (kinda) balanced so our work is done
+ break;
+ }
+ } else if (/]/.test(char)) {
+ var opPar2 = url.match(/\[/g) || [];
+ var clPar2 = url.match(/\]/g);
+ // it's a squared parenthesis so we need to check for "balance" (kinda)
+ if (opPar2.length < clPar2.length) {
+ // there are more closing Parenthesis than opening so chop it!!!!!
+ url = url.slice(0, -1);
+ // and prepend it to the suffix
+ suffix = char + suffix;
+ } else {
+ // it's (kinda) balanced so our work is done
+ break;
+ }
+ } else {
+ // it's not a punctuation or a parenthesis so our work is done
+ break;
+ }
+ }
+
+ // we copy the treated url to the text variable
+ var text = url;
+ // finally, if it's a www shortcut, we prepend http
+ url = (urlPrefix === 'www.') ? 'http://' + url : url;
+
+ // url part is done so let's take care of text now
+ // we need to escape the text (because of links such as www.example.com/foo__bar__baz)
+ text = text.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback);
+
+ // finally we dispatch the event
+ var evt = createEvent(urlRgx, evtRootName + '.captureStart', wholeMatch, text, null, url, null, options, globals);
+
+ // and return the link tag, with the leadingMDChars and suffix. The leadingMDChars are added at the end too because
+ // we consumed those characters in the regexp
+ return leadingMDChars + writeAnchorTag(evt, options, globals) + suffix + leadingMDChars;
+ });
+
+ // 2. Then mails
+ var mailRgx = /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gmi;
+ text = text.replace(mailRgx, function (wholeMatch, leadingChar, mail) {
+ var url = 'mailto:';
+ mail = showdown.subParser('makehtml.unescapeSpecialChars')(mail, options, globals);
+ if (options.encodeEmails) {
+ url = showdown.helper.encodeEmailAddress(url + mail);
+ mail = showdown.helper.encodeEmailAddress(mail);
+ } else {
+ url = url + mail;
+ }
+ var evt = createEvent(mailRgx, evtRootName + '.captureStart', wholeMatch, mail, null, url, null, options, globals);
+ return leadingChar + writeAnchorTag(evt, options, globals);
+ });
+
+
+ text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText();
+ return text;
+ });
+ })();
+
+ /**
+ * Form HTML ordered (numbered) and unordered (bulleted) lists.
+ */
+ showdown.subParser('makehtml.lists', function (text, options, globals) {
+ 'use strict';
+
+ /**
+ * Process the contents of a single ordered or unordered list, splitting it
+ * into individual list items.
+ * @param {string} listStr
+ * @param {boolean} trimTrailing
+ * @returns {string}
+ */
+ function processListItems (listStr, trimTrailing) {
+ // The $g_list_level global keeps track of when we're inside a list.
+ // Each time we enter a list, we increment it; when we leave a list,
+ // we decrement. If it's zero, we're not in a list anymore.
+ //
+ // We do this because when we're not inside a list, we want to treat
+ // something like this:
+ //
+ // I recommend upgrading to version
+ // 8. Oops, now this line is treated
+ // as a sub-list.
+ //
+ // As a single paragraph, despite the fact that the second line starts
+ // with a digit-period-space sequence.
+ //
+ // Whereas when we're inside a list (or sub-list), that line will be
+ // treated as the start of a sub-list. What a kludge, huh? This is
+ // an aspect of Markdown's syntax that's hard to parse perfectly
+ // without resorting to mind-reading. Perhaps the solution is to
+ // change the syntax rules such that sub-lists must start with a
+ // starting cardinal number; e.g. "1." or "a.".
+ globals.gListLevel++;
+
+ // trim trailing blank lines:
+ listStr = listStr.replace(/\n{2,}$/, '\n');
+
+ // attacklab: add sentinel to emulate \z
+ listStr += '¨0';
+
+ var rgx = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,
+ isParagraphed = (/\n[ \t]*\n(?!¨0)/.test(listStr));
+
+ // Since version 1.5, nesting sublists requires 4 spaces (or 1 tab) indentation,
+ // which is a syntax breaking change
+ // activating this option reverts to old behavior
+ // This will be removed in version 2.0
+ if (options.disableForced4SpacesIndentedSublists) {
+ rgx = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm;
+ }
+
+ listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) {
+ checked = (checked && checked.trim() !== '');
+
+ var item = showdown.subParser('makehtml.outdent')(m4, options, globals),
+ bulletStyle = '';
+
+ // Support for github tasklists
+ if (taskbtn && options.tasklists) {
+ bulletStyle = ' class="task-list-item" style="list-style-type: none;"';
+ item = item.replace(/^[ \t]*\[(x|X| )?]/m, function () {
+ var otp = ' ';
+ return otp;
+ });
+ }
+
+ // ISSUE #312
+ // This input: - - - a
+ // causes trouble to the parser, since it interprets it as:
+ //
+ // instead of:
+ //
+ // So, to prevent it, we will put a marker (¨A)in the beginning of the line
+ // Kind of hackish/monkey patching, but seems more effective than overcomplicating the list parser
+ item = item.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g, function (wm2) {
+ return '¨A' + wm2;
+ });
+
+ // SPECIAL CASE: an heading followed by a paragraph of text that is not separated by a double newline
+ // or/nor indented. ex:
+ //
+ // - # foo
+ // bar is great
+ //
+ // While this does now follow the spec per se, not allowing for this might cause confusion since
+ // header blocks don't need double newlines after
+ if (/^#+.+\n.+/.test(item)) {
+ item = item.replace(/^(#+.+)$/m, '$1\n');
+ }
+
+ // m1 - Leading line or
+ // Has a double return (multi paragraph)
+ if (m1 || (item.search(/\n{2,}/) > -1)) {
+ item = showdown.subParser('makehtml.githubCodeBlocks')(item, options, globals);
+ item = showdown.subParser('makehtml.blockGamut')(item, options, globals);
+ } else {
+
+ // Recursion for sub-lists:
+ item = showdown.subParser('makehtml.lists')(item, options, globals);
+ item = item.replace(/\n$/, ''); // chomp(item)
+ item = showdown.subParser('makehtml.hashHTMLBlocks')(item, options, globals);
+
+ // Colapse double linebreaks
+ item = item.replace(/\n\n+/g, '\n\n');
+
+ if (isParagraphed) {
+ item = showdown.subParser('makehtml.paragraphs')(item, options, globals);
+ } else {
+ item = showdown.subParser('makehtml.spanGamut')(item, options, globals);
+ }
+ }
+
+ // now we need to remove the marker (¨A)
+ item = item.replace('¨A', '');
+ // we can finally wrap the line in list item tags
+ item = '' + item + ' \n';
+
+ return item;
+ });
+
+ // attacklab: strip sentinel
+ listStr = listStr.replace(/¨0/g, '');
+
+ globals.gListLevel--;
+
+ if (trimTrailing) {
+ listStr = listStr.replace(/\s+$/, '');
+ }
+
+ return listStr;
+ }
+
+ function styleStartNumber (list, listType) {
+ // check if ol and starts by a number different than 1
+ if (listType === 'ol') {
+ var res = list.match(/^ *(\d+)\./);
+ if (res && res[1] !== '1') {
+ return ' start="' + res[1] + '"';
+ }
+ }
+ return '';
+ }
+
+ /**
+ * Check and parse consecutive lists (better fix for issue #142)
+ * @param {string} list
+ * @param {string} listType
+ * @param {boolean} trimTrailing
+ * @returns {string}
+ */
+ function parseConsecutiveLists (list, listType, trimTrailing) {
+ // check if we caught 2 or more consecutive lists by mistake
+ // we use the counterRgx, meaning if listType is UL we look for OL and vice versa
+ var olRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm,
+ ulRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm,
+ counterRxg = (listType === 'ul') ? olRgx : ulRgx,
+ result = '';
+
+ if (list.search(counterRxg) !== -1) {
+ (function parseCL (txt) {
+ var pos = txt.search(counterRxg),
+ style = styleStartNumber(list, listType);
+ if (pos !== -1) {
+ // slice
+ result += '\n\n<' + listType + style + '>\n' + processListItems(txt.slice(0, pos), !!trimTrailing) + '' + listType + '>\n';
+
+ // invert counterType and listType
+ listType = (listType === 'ul') ? 'ol' : 'ul';
+ counterRxg = (listType === 'ul') ? olRgx : ulRgx;
+
+ //recurse
+ parseCL(txt.slice(pos));
+ } else {
+ result += '\n\n<' + listType + style + '>\n' + processListItems(txt, !!trimTrailing) + '' + listType + '>\n';
+ }
+ })(list);
+ } else {
+ var style = styleStartNumber(list, listType);
+ result = '\n\n<' + listType + style + '>\n' + processListItems(list, !!trimTrailing) + '' + listType + '>\n';
+ }
+
+ return result;
+ }
+
+ // Start of list parsing
+ var subListRgx = /^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
+ var mainListRgx = /(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
+
+ text = globals.converter._dispatch('lists.before', text, options, globals).getText();
+ // add sentinel to hack around khtml/safari bug:
+ // http://bugs.webkit.org/show_bug.cgi?id=11231
+ text += '¨0';
+
+ if (globals.gListLevel) {
+ text = text.replace(subListRgx, function (wholeMatch, list, m2) {
+ var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';
+ return parseConsecutiveLists(list, listType, true);
+ });
+ } else {
+ text = text.replace(mainListRgx, function (wholeMatch, m1, list, m3) {
+ var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol';
+ return parseConsecutiveLists(list, listType, false);
+ });
+ }
+
+ // strip sentinel
+ text = text.replace(/¨0/, '');
+ text = globals.converter._dispatch('makehtml.lists.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Parse metadata at the top of the document
+ */
+ showdown.subParser('makehtml.metadata', function (text, options, globals) {
+ 'use strict';
+
+ if (!options.metadata) {
+ return text;
+ }
+
+ text = globals.converter._dispatch('makehtml.metadata.before', text, options, globals).getText();
+
+ function parseMetadataContents (content) {
+ // raw is raw so it's not changed in any way
+ globals.metadata.raw = content;
+
+ // escape chars forbidden in html attributes
+ // double quotes
+ content = content
+ // ampersand first
+ .replace(/&/g, '&')
+ // double quotes
+ .replace(/"/g, '"');
+
+ content = content.replace(/\n {4}/g, ' ');
+ content.replace(/^([\S ]+): +([\s\S]+?)$/gm, function (wm, key, value) {
+ globals.metadata.parsed[key] = value;
+ return '';
+ });
+ }
+
+ text = text.replace(/^\s*ÂĢÂĢÂĢ+(\S*?)\n([\s\S]+?)\nÂģÂģÂģ+\n/, function (wholematch, format, content) {
+ parseMetadataContents(content);
+ return '¨M';
+ });
+
+ text = text.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function (wholematch, format, content) {
+ if (format) {
+ globals.metadata.format = format;
+ }
+ parseMetadataContents(content);
+ return '¨M';
+ });
+
+ text = text.replace(/¨M/g, '');
+
+ text = globals.converter._dispatch('makehtml.metadata.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ * Remove one level of line-leading tabs or spaces
+ */
+ showdown.subParser('makehtml.outdent', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.outdent.before', text, options, globals).getText();
+
+ // attacklab: hack around Konqueror 3.5.4 bug:
+ // "----------bug".replace(/^-/g,"") == "bug"
+ text = text.replace(/^(\t|[ ]{1,4})/gm, '¨0'); // attacklab: g_tab_width
+
+ // attacklab: clean up hack
+ text = text.replace(/¨0/g, '');
+
+ text = globals.converter._dispatch('makehtml.outdent.after', text, options, globals).getText();
+ return text;
+ });
+
+ /**
+ *
+ */
+ showdown.subParser('makehtml.paragraphs', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.paragraphs.before', text, options, globals).getText();
+ // Strip leading and trailing lines:
+ text = text.replace(/^\n+/g, '');
+ text = text.replace(/\n+$/g, '');
+
+ var grafs = text.split(/\n{2,}/g),
+ grafsOut = [],
+ end = grafs.length; // Wrap tags
+
+ for (var i = 0; i < end; i++) {
+ var str = grafs[i];
+ // if this is an HTML marker, copy it
+ if (str.search(/¨(K|G)(\d+)\1/g) >= 0) {
+ grafsOut.push(str);
+
+ // test for presence of characters to prevent empty lines being parsed
+ // as paragraphs (resulting in undesired extra empty paragraphs)
+ } else if (str.search(/\S/) >= 0) {
+ str = showdown.subParser('makehtml.spanGamut')(str, options, globals);
+ str = str.replace(/^([ \t]*)/g, '
');
+ str += '
';
+ grafsOut.push(str);
+ }
+ }
+
+ /** Unhashify HTML blocks */
+ end = grafsOut.length;
+ for (i = 0; i < end; i++) {
+ var blockText = '',
+ grafsOutIt = grafsOut[i],
+ codeFlag = false;
+ // if this is a marker for an html block...
+ // use RegExp.test instead of string.search because of QML bug
+ while (/¨(K|G)(\d+)\1/.test(grafsOutIt)) {
+ var delim = RegExp.$1,
+ num = RegExp.$2;
+
+ if (delim === 'K') {
+ blockText = globals.gHtmlBlocks[num];
+ } else {
+ // we need to check if ghBlock is a false positive
+ if (codeFlag) {
+ // use encoded version of all text
+ blockText = showdown.subParser('makehtml.encodeCode')(globals.ghCodeBlocks[num].text, options, globals);
+ } else {
+ blockText = globals.ghCodeBlocks[num].codeblock;
+ }
+ }
+ blockText = blockText.replace(/\$/g, '$$$$'); // Escape any dollar signs
+
+ grafsOutIt = grafsOutIt.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/, blockText);
+ // Check if grafsOutIt is a pre->code
+ if (/^]*>\s*]*>/.test(grafsOutIt)) {
+ codeFlag = true;
+ }
+ }
+ grafsOut[i] = grafsOutIt;
+ }
+ text = grafsOut.join('\n');
+ // Strip leading and trailing lines:
+ text = text.replace(/^\n+/g, '');
+ text = text.replace(/\n+$/g, '');
+ return globals.converter._dispatch('makehtml.paragraphs.after', text, options, globals).getText();
+ });
+
+ /**
+ * Run extension
+ */
+ showdown.subParser('makehtml.runExtension', function (ext, text, options, globals) {
+ 'use strict';
+
+ if (ext.filter) {
+ text = ext.filter(text, globals.converter, options);
+
+ } else if (ext.regex) {
+ // TODO remove this when old extension loading mechanism is deprecated
+ var re = ext.regex;
+ if (!(re instanceof RegExp)) {
+ re = new RegExp(re, 'g');
+ }
+ text = text.replace(re, ext.replace);
+ }
+
+ return text;
+ });
+
+ /**
+ * These are all the transformations that occur *within* block-level
+ * tags like paragraphs, headers, and list items.
+ */
+ showdown.subParser('makehtml.spanGamut', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('makehtml.span.before', text, options, globals).getText();
+
+ text = showdown.subParser('makehtml.codeSpans')(text, options, globals);
+ text = showdown.subParser('makehtml.escapeSpecialCharsWithinTagAttributes')(text, options, globals);
+ text = showdown.subParser('makehtml.encodeBackslashEscapes')(text, options, globals);
+
+ // Process link and image tags. Images must come first,
+ // because ![foo][f] looks like a link.
+ text = showdown.subParser('makehtml.images')(text, options, globals);
+
+ text = globals.converter._dispatch('smakehtml.links.before', text, options, globals).getText();
+ text = showdown.subParser('makehtml.links')(text, options, globals);
+ text = globals.converter._dispatch('smakehtml.links.after', text, options, globals).getText();
+
+ //text = showdown.subParser('makehtml.autoLinks')(text, options, globals);
+ //text = showdown.subParser('makehtml.simplifiedAutoLinks')(text, options, globals);
+ text = showdown.subParser('makehtml.emoji')(text, options, globals);
+ text = showdown.subParser('makehtml.underline')(text, options, globals);
+ text = showdown.subParser('makehtml.italicsAndBold')(text, options, globals);
+ text = showdown.subParser('makehtml.strikethrough')(text, options, globals);
+ text = showdown.subParser('makehtml.ellipsis')(text, options, globals);
+
+ // we need to hash HTML tags inside spans
+ text = showdown.subParser('makehtml.hashHTMLSpans')(text, options, globals);
+
+ // now we encode amps and angles
+ text = showdown.subParser('makehtml.encodeAmpsAndAngles')(text, options, globals);
+
+ // Do hard breaks
+ if (options.simpleLineBreaks) {
+ // GFM style hard breaks
+ // only add line breaks if the text does not contain a block (special case for lists)
+ if (!/\n\n¨K/.test(text)) {
+ text = text.replace(/\n+/g, ' \n');
+ }
+ } else {
+ // Vanilla hard breaks
+ text = text.replace(/ +\n/g, ' \n');
+ }
+
+ text = globals.converter._dispatch('makehtml.spanGamut.after', text, options, globals).getText();
+ return text;
+ });
+
+ showdown.subParser('makehtml.strikethrough', function (text, options, globals) {
+ 'use strict';
+
+ if (options.strikethrough) {
+ text = globals.converter._dispatch('makehtml.strikethrough.before', text, options, globals).getText();
+ text = text.replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function (wm, txt) { return '' + txt + ''; });
+ text = globals.converter._dispatch('makehtml.strikethrough.after', text, options, globals).getText();
+ }
+
+ return text;
+ });
+
+ /**
+ * Strips link definitions from text, stores the URLs and titles in
+ * hash references.
+ * Link defs are in the form: ^[id]: url "optional title"
+ */
+ showdown.subParser('makehtml.stripLinkDefinitions', function (text, options, globals) {
+ 'use strict';
+
+ var regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,
+ base64Regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm;
+
+ // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
+ text += '¨0';
+
+ var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) {
+ linkId = linkId.toLowerCase();
+ if (url.match(/^data:.+?\/.+?;base64,/)) {
+ // remove newlines
+ globals.gUrls[linkId] = url.replace(/\s/g, '');
+ } else {
+ url = showdown.helper.applyBaseUrl(options.relativePathBaseUrl, url);
+
+ globals.gUrls[linkId] = showdown.subParser('makehtml.encodeAmpsAndAngles')(url, options, globals); // Link IDs are case-insensitive
+ }
+
+ if (blankLines) {
+ // Oops, found blank lines, so it's not a title.
+ // Put back the parenthetical statement we stole.
+ return blankLines + title;
+
+ } else {
+ if (title) {
+ globals.gTitles[linkId] = title.replace(/"|'/g, '"');
+ }
+ if (options.parseImgDimensions && width && height) {
+ globals.gDimensions[linkId] = {
+ width: width,
+ height: height
+ };
+ }
+ }
+ // Completely remove the definition from the text
+ return '';
+ };
+
+ // first we try to find base64 link references
+ text = text.replace(base64Regex, replaceFunc);
+
+ text = text.replace(regex, replaceFunc);
+
+ // attacklab: strip sentinel
+ text = text.replace(/¨0/, '');
+
+ return text;
+ });
+
+ showdown.subParser('makehtml.tables', function (text, options, globals) {
+ 'use strict';
+
+ if (!options.tables) {
+ return text;
+ }
+
+ var tableRgx = /^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,
+ //singeColTblRgx = /^ {0,3}\|.+\|\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n(?: {0,3}\|.+\|\n)+(?:\n\n|¨0)/gm;
+ singeColTblRgx = /^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm;
+
+ function parseStyles (sLine) {
+ if (/^:[ \t]*--*$/.test(sLine)) {
+ return ' style="text-align:left;"';
+ } else if (/^--*[ \t]*:[ \t]*$/.test(sLine)) {
+ return ' style="text-align:right;"';
+ } else if (/^:[ \t]*--*[ \t]*:$/.test(sLine)) {
+ return ' style="text-align:center;"';
+ } else {
+ return '';
+ }
+ }
+
+ function parseHeaders (header, style) {
+ var id = '';
+ header = header.trim();
+ // support both tablesHeaderId and tableHeaderId due to error in documentation so we don't break backwards compatibility
+ if (options.tablesHeaderId || options.tableHeaderId) {
+ id = ' id="' + header.replace(/ /g, '_').toLowerCase() + '"';
+ }
+ header = showdown.subParser('makehtml.spanGamut')(header, options, globals);
+
+ return '' + header + ' \n';
+ }
+
+ function parseCells (cell, style) {
+ var subText = showdown.subParser('makehtml.spanGamut')(cell, options, globals);
+ return '' + subText + ' \n';
+ }
+
+ function buildTable (headers, cells) {
+ var tb = '\n\n\n',
+ tblLgn = headers.length;
+
+ for (var i = 0; i < tblLgn; ++i) {
+ tb += headers[i];
+ }
+ tb += ' \n \n\n';
+
+ for (i = 0; i < cells.length; ++i) {
+ tb += '\n';
+ for (var ii = 0; ii < tblLgn; ++ii) {
+ tb += cells[i][ii];
+ }
+ tb += ' \n';
+ }
+ tb += ' \n
\n';
+ return tb;
+ }
+
+ function parseTable (rawTable) {
+ var i, tableLines = rawTable.split('\n');
+
+ for (i = 0; i < tableLines.length; ++i) {
+ // strip wrong first and last column if wrapped tables are used
+ if (/^ {0,3}\|/.test(tableLines[i])) {
+ tableLines[i] = tableLines[i].replace(/^ {0,3}\|/, '');
+ }
+ if (/\|[ \t]*$/.test(tableLines[i])) {
+ tableLines[i] = tableLines[i].replace(/\|[ \t]*$/, '');
+ }
+ // parse code spans first, but we only support one line code spans
+
+ tableLines[i] = showdown.subParser('makehtml.codeSpans')(tableLines[i], options, globals);
+ }
+
+ var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}),
+ rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}),
+ rawCells = [],
+ headers = [],
+ styles = [],
+ cells = [];
+
+ tableLines.shift();
+ tableLines.shift();
+
+ for (i = 0; i < tableLines.length; ++i) {
+ if (tableLines[i].trim() === '') {
+ continue;
+ }
+ rawCells.push(
+ tableLines[i]
+ .split('|')
+ .map(function (s) {
+ return s.trim();
+ })
+ );
+ }
+
+ if (rawHeaders.length < rawStyles.length) {
+ return rawTable;
+ }
+
+ for (i = 0; i < rawStyles.length; ++i) {
+ styles.push(parseStyles(rawStyles[i]));
+ }
+
+ for (i = 0; i < rawHeaders.length; ++i) {
+ if (showdown.helper.isUndefined(styles[i])) {
+ styles[i] = '';
+ }
+ headers.push(parseHeaders(rawHeaders[i], styles[i]));
+ }
+
+ for (i = 0; i < rawCells.length; ++i) {
+ var row = [];
+ for (var ii = 0; ii < headers.length; ++ii) {
+ if (showdown.helper.isUndefined(rawCells[i][ii])) {
+
+ }
+ row.push(parseCells(rawCells[i][ii], styles[ii]));
+ }
+ cells.push(row);
+ }
+
+ return buildTable(headers, cells);
+ }
+
+ text = globals.converter._dispatch('makehtml.tables.before', text, options, globals).getText();
+
+ // find escaped pipe characters
+ text = text.replace(/\\(\|)/g, showdown.helper.escapeCharactersCallback);
+
+ // parse multi column tables
+ text = text.replace(tableRgx, parseTable);
+
+ // parse one column tables
+ text = text.replace(singeColTblRgx, parseTable);
+
+ text = globals.converter._dispatch('makehtml.tables.after', text, options, globals).getText();
+
+ return text;
+ });
+
+ showdown.subParser('makehtml.underline', function (text, options, globals) {
+ 'use strict';
+
+ if (!options.underline) {
+ return text;
+ }
+
+ text = globals.converter._dispatch('makehtml.underline.before', text, options, globals).getText();
+
+ if (options.literalMidWordUnderscores) {
+ text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) {
+ return '' + txt + ' ';
+ });
+ text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) {
+ return '' + txt + ' ';
+ });
+ } else {
+ text = text.replace(/___(\S[\s\S]*?)___/g, function (wm, m) {
+ return (/\S$/.test(m)) ? '' + m + ' ' : wm;
+ });
+ text = text.replace(/__(\S[\s\S]*?)__/g, function (wm, m) {
+ return (/\S$/.test(m)) ? '' + m + ' ' : wm;
+ });
+ }
+
+ // escape remaining underscores to prevent them being parsed by italic and bold
+ text = text.replace(/(_)/g, showdown.helper.escapeCharactersCallback);
+
+ text = globals.converter._dispatch('makehtml.underline.after', text, options, globals).getText();
+
+ return text;
+ });
+
+ /**
+ * Swap back in all the special characters we've hidden.
+ */
+ showdown.subParser('makehtml.unescapeSpecialChars', function (text, options, globals) {
+ 'use strict';
+ text = globals.converter._dispatch('makehtml.unescapeSpecialChars.before', text, options, globals).getText();
+
+ text = text.replace(/¨E(\d+)E/g, function (wholeMatch, m1) {
+ var charCodeToReplace = parseInt(m1);
+ return String.fromCharCode(charCodeToReplace);
+ });
+
+ text = globals.converter._dispatch('makehtml.unescapeSpecialChars.after', text, options, globals).getText();
+ return text;
+ });
+
+ showdown.subParser('makeMarkdown.blockquote', function (node, globals) {
+ 'use strict';
+
+ var txt = '';
+ if (node.hasChildNodes()) {
+ var children = node.childNodes,
+ childrenLength = children.length;
+
+ for (var i = 0; i < childrenLength; ++i) {
+ var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals);
+
+ if (innerTxt === '') {
+ continue;
+ }
+ txt += innerTxt;
+ }
+ }
+ // cleanup
+ txt = txt.trim();
+ txt = '> ' + txt.split('\n').join('\n> ');
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.break', function () {
+ 'use strict';
+
+ return ' \n';
+ });
+
+ showdown.subParser('makeMarkdown.codeBlock', function (node, globals) {
+ 'use strict';
+
+ var lang = node.getAttribute('language'),
+ num = node.getAttribute('precodenum');
+ return '```' + lang + '\n' + globals.preList[num] + '\n```';
+ });
+
+ showdown.subParser('makeMarkdown.codeSpan', function (node) {
+ 'use strict';
+
+ return '`' + node.innerHTML + '`';
+ });
+
+ showdown.subParser('makeMarkdown.emphasis', function (node, globals) {
+ 'use strict';
+
+ var txt = '';
+ if (node.hasChildNodes()) {
+ txt += '*';
+ var children = node.childNodes,
+ childrenLength = children.length;
+ for (var i = 0; i < childrenLength; ++i) {
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
+ }
+ txt += '*';
+ }
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) {
+ 'use strict';
+
+ var headerMark = new Array(headerLevel + 1).join('#'),
+ txt = '';
+
+ if (node.hasChildNodes()) {
+ txt = headerMark + ' ';
+ var children = node.childNodes,
+ childrenLength = children.length;
+
+ for (var i = 0; i < childrenLength; ++i) {
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
+ }
+ }
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.hr', function () {
+ 'use strict';
+
+ return '---';
+ });
+
+ showdown.subParser('makeMarkdown.image', function (node) {
+ 'use strict';
+
+ var txt = '';
+ if (node.hasAttribute('src')) {
+ txt += ' + '>';
+ if (node.hasAttribute('width') && node.hasAttribute('height')) {
+ txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height');
+ }
+
+ if (node.hasAttribute('title')) {
+ txt += ' "' + node.getAttribute('title') + '"';
+ }
+ txt += ')';
+ }
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.links', function (node, globals) {
+ 'use strict';
+
+ var txt = '';
+ if (node.hasChildNodes() && node.hasAttribute('href')) {
+ var children = node.childNodes,
+ childrenLength = children.length;
+ txt = '[';
+ for (var i = 0; i < childrenLength; ++i) {
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
+ }
+ txt += '](';
+ txt += '<' + node.getAttribute('href') + '>';
+ if (node.hasAttribute('title')) {
+ txt += ' "' + node.getAttribute('title') + '"';
+ }
+ txt += ')';
+ }
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.list', function (node, globals, type) {
+ 'use strict';
+
+ var txt = '';
+ if (!node.hasChildNodes()) {
+ return '';
+ }
+ var listItems = node.childNodes,
+ listItemsLenght = listItems.length,
+ listNum = node.getAttribute('start') || 1;
+
+ for (var i = 0; i < listItemsLenght; ++i) {
+ if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') {
+ continue;
+ }
+
+ // define the bullet to use in list
+ var bullet = '';
+ if (type === 'ol') {
+ bullet = listNum.toString() + '. ';
+ } else {
+ bullet = '- ';
+ }
+
+ // parse list item
+ txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals);
+ ++listNum;
+ }
+
+ return txt.trim();
+ });
+
+ showdown.subParser('makeMarkdown.listItem', function (node, globals) {
+ 'use strict';
+
+ var listItemTxt = '';
+
+ var children = node.childNodes,
+ childrenLenght = children.length;
+
+ for (var i = 0; i < childrenLenght; ++i) {
+ listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals);
+ }
+ // if it's only one liner, we need to add a newline at the end
+ if (!/\n$/.test(listItemTxt)) {
+ listItemTxt += '\n';
+ } else {
+ // it's multiparagraph, so we need to indent
+ listItemTxt = listItemTxt
+ .split('\n')
+ .join('\n ')
+ .replace(/^ {4}$/gm, '')
+ .replace(/\n\n+/g, '\n\n');
+ }
+
+ return listItemTxt;
+ });
+
+
+
+ showdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {
+ 'use strict';
+
+ spansOnly = spansOnly || false;
+
+ var txt = '';
+
+ // edge case of text without wrapper paragraph
+ if (node.nodeType === 3) {
+ return showdown.subParser('makeMarkdown.txt')(node, globals);
+ }
+
+ // HTML comment
+ if (node.nodeType === 8) {
+ return '\n\n';
+ }
+
+ // process only node elements
+ if (node.nodeType !== 1) {
+ return '';
+ }
+
+ var tagName = node.tagName.toLowerCase();
+
+ switch (tagName) {
+
+ //
+ // BLOCKS
+ //
+ case 'h1':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\n\n'; }
+ break;
+ case 'h2':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\n\n'; }
+ break;
+ case 'h3':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\n\n'; }
+ break;
+ case 'h4':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\n\n'; }
+ break;
+ case 'h5':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\n\n'; }
+ break;
+ case 'h6':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\n\n'; }
+ break;
+
+ case 'p':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\n\n'; }
+ break;
+
+ case 'blockquote':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\n\n'; }
+ break;
+
+ case 'hr':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\n\n'; }
+ break;
+
+ case 'ol':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\n\n'; }
+ break;
+
+ case 'ul':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\n\n'; }
+ break;
+
+ case 'precode':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\n\n'; }
+ break;
+
+ case 'pre':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\n\n'; }
+ break;
+
+ case 'table':
+ if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\n\n'; }
+ break;
+
+ //
+ // SPANS
+ //
+ case 'code':
+ txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);
+ break;
+
+ case 'em':
+ case 'i':
+ txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);
+ break;
+
+ case 'strong':
+ case 'b':
+ txt = showdown.subParser('makeMarkdown.strong')(node, globals);
+ break;
+
+ case 'del':
+ txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);
+ break;
+
+ case 'a':
+ txt = showdown.subParser('makeMarkdown.links')(node, globals);
+ break;
+
+ case 'img':
+ txt = showdown.subParser('makeMarkdown.image')(node, globals);
+ break;
+
+ case 'br':
+ txt = showdown.subParser('makeMarkdown.break')(node, globals);
+ break;
+
+ default:
+ txt = node.outerHTML + '\n\n';
+ }
+
+ // common normalization
+ // TODO eventually
+
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.paragraph', function (node, globals) {
+ 'use strict';
+
+ var txt = '';
+ if (node.hasChildNodes()) {
+ var children = node.childNodes,
+ childrenLength = children.length;
+ for (var i = 0; i < childrenLength; ++i) {
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
+ }
+ }
+
+ // some text normalization
+ txt = txt.trim();
+
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.pre', function (node, globals) {
+ 'use strict';
+
+ var num = node.getAttribute('prenum');
+ return '' + globals.preList[num] + ' ';
+ });
+
+ showdown.subParser('makeMarkdown.strikethrough', function (node, globals) {
+ 'use strict';
+
+ var txt = '';
+ if (node.hasChildNodes()) {
+ txt += '~~';
+ var children = node.childNodes,
+ childrenLength = children.length;
+ for (var i = 0; i < childrenLength; ++i) {
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
+ }
+ txt += '~~';
+ }
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.strong', function (node, globals) {
+ 'use strict';
+
+ var txt = '';
+ if (node.hasChildNodes()) {
+ txt += '**';
+ var children = node.childNodes,
+ childrenLength = children.length;
+ for (var i = 0; i < childrenLength; ++i) {
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals);
+ }
+ txt += '**';
+ }
+ return txt;
+ });
+
+ showdown.subParser('makeMarkdown.table', function (node, globals) {
+ 'use strict';
+
+ var txt = '',
+ tableArray = [[], []],
+ headings = node.querySelectorAll('thead>tr>th'),
+ rows = node.querySelectorAll('tbody>tr'),
+ i, ii;
+ for (i = 0; i < headings.length; ++i) {
+ var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals),
+ allign = '---';
+
+ if (headings[i].hasAttribute('style')) {
+ var style = headings[i].getAttribute('style').toLowerCase().replace(/\s/g, '');
+ switch (style) {
+ case 'text-align:left;':
+ allign = ':---';
+ break;
+ case 'text-align:right;':
+ allign = '---:';
+ break;
+ case 'text-align:center;':
+ allign = ':---:';
+ break;
+ }
+ }
+ tableArray[0][i] = headContent.trim();
+ tableArray[1][i] = allign;
+ }
+
+ for (i = 0; i < rows.length; ++i) {
+ var r = tableArray.push([]) - 1,
+ cols = rows[i].getElementsByTagName('td');
+
+ for (ii = 0; ii < headings.length; ++ii) {
+ var cellContent = ' ';
+ if (typeof cols[ii] !== 'undefined') {
+ cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals);
+ }
+ tableArray[r].push(cellContent);
+ }
+ }
+
+ var cellSpacesCount = 3;
+ for (i = 0; i < tableArray.length; ++i) {
+ for (ii = 0; ii < tableArray[i].length; ++ii) {
+ var strLen = tableArray[i][ii].length;
+ if (strLen > cellSpacesCount) {
+ cellSpacesCount = strLen;
+ }
+ }
+ }
+
+ for (i = 0; i < tableArray.length; ++i) {
+ for (ii = 0; ii < tableArray[i].length; ++ii) {
+ if (i === 1) {
+ if (tableArray[i][ii].slice(-1) === ':') {
+ tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':';
+ } else {
+ tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-');
+ }
+ } else {
+ tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount);
+ }
+ }
+ txt += '| ' + tableArray[i].join(' | ') + ' |\n';
+ }
+
+ return txt.trim();
+ });
+
+ showdown.subParser('makeMarkdown.tableCell', function (node, globals) {
+ 'use strict';
+
+ var txt = '';
+ if (!node.hasChildNodes()) {
+ return '';
+ }
+ var children = node.childNodes,
+ childrenLength = children.length;
+
+ for (var i = 0; i < childrenLength; ++i) {
+ txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true);
+ }
+ return txt.trim();
+ });
+
+ showdown.subParser('makeMarkdown.txt', function (node) {
+ 'use strict';
+
+ var txt = node.nodeValue;
+
+ // multiple spaces are collapsed
+ txt = txt.replace(/ +/g, ' ');
+
+ // replace the custom ¨NBSP; with a space
+ txt = txt.replace(/¨NBSP;/g, ' ');
+
+ // ", <, > and & should replace escaped html entities
+ txt = showdown.helper.unescapeHTMLEntities(txt);
+
+ // escape markdown magic characters
+ // emphasis, strong and strikethrough - can appear everywhere
+ // we also escape pipe (|) because of tables
+ // and escape ` because of code blocks and spans
+ txt = txt.replace(/([*_~|`])/g, '\\$1');
+
+ // escape > because of blockquotes
+ txt = txt.replace(/^(\s*)>/g, '\\$1>');
+
+ // hash character, only troublesome at the beginning of a line because of headers
+ txt = txt.replace(/^#/gm, '\\#');
+
+ // horizontal rules
+ txt = txt.replace(/^(\s*)([-=]{3,})(\s*)$/, '$1\\$2$3');
+
+ // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer
+ txt = txt.replace(/^( {0,3}\d+)\./gm, '$1\\.');
+
+ // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)
+ txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\$2');
+
+ // images and links, ] followed by ( is problematic, so we escape it
+ txt = txt.replace(/]([\s]*)\(/g, '\\]$1\\(');
+
+ // reference URIs must also be escaped
+ txt = txt.replace(/^ {0,3}\[([\S \t]*?)]:/gm, '\\[$1]:');
+
+ return txt;
+ });
+
+ /**
+ * Created by Estevao on 31-05-2015.
+ */
+
+ /**
+ * Showdown Converter class
+ * @class
+ * @param {object} [converterOptions]
+ * @returns {Converter}
+ */
+ showdown.Converter = function (converterOptions) {
+ 'use strict';
+
+ var
+ /**
+ * Options used by this converter
+ * @private
+ * @type {{}}
+ */
+ options = {},
+
+ /**
+ * Language extensions used by this converter
+ * @private
+ * @type {Array}
+ */
+ langExtensions = [],
+
+ /**
+ * Output modifiers extensions used by this converter
+ * @private
+ * @type {Array}
+ */
+ outputModifiers = [],
+
+ /**
+ * Event listeners
+ * @private
+ * @type {{}}
+ */
+ listeners = {},
+
+ /**
+ * The flavor set in this converter
+ */
+ setConvFlavor = setFlavor,
+
+ /**
+ * Metadata of the document
+ * @type {{parsed: {}, raw: string, format: string}}
+ */
+ metadata = {
+ parsed: {},
+ raw: '',
+ format: ''
+ };
+
+ _constructor();
+
+ /**
+ * Converter constructor
+ * @private
+ */
+ function _constructor () {
+ converterOptions = converterOptions || {};
+
+ for (var gOpt in globalOptions) {
+ if (globalOptions.hasOwnProperty(gOpt)) {
+ options[gOpt] = globalOptions[gOpt];
+ }
+ }
+
+ // Merge options
+ if (typeof converterOptions === 'object') {
+ for (var opt in converterOptions) {
+ if (converterOptions.hasOwnProperty(opt)) {
+ options[opt] = converterOptions[opt];
+ }
+ }
+ } else {
+ throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions +
+ ' was passed instead.');
+ }
+
+ if (options.extensions) {
+ showdown.helper.forEach(options.extensions, _parseExtension);
+ }
+ }
+
+ /**
+ * Parse extension
+ * @param {*} ext
+ * @param {string} [name='']
+ * @private
+ */
+ function _parseExtension (ext, name) {
+
+ name = name || null;
+ // If it's a string, the extension was previously loaded
+ if (showdown.helper.isString(ext)) {
+ ext = showdown.helper.stdExtName(ext);
+ name = ext;
+
+ // LEGACY_SUPPORT CODE
+ if (showdown.extensions[ext]) {
+ console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' +
+ 'Please inform the developer that the extension should be updated!');
+ legacyExtensionLoading(showdown.extensions[ext], ext);
+ return;
+ // END LEGACY SUPPORT CODE
+
+ } else if (!showdown.helper.isUndefined(extensions[ext])) {
+ ext = extensions[ext];
+
+ } else {
+ throw Error('Extension "' + ext + '" could not be loaded. It was either not found or is not a valid extension.');
+ }
+ }
+
+ if (typeof ext === 'function') {
+ ext = ext();
+ }
+
+ if (!showdown.helper.isArray(ext)) {
+ ext = [ext];
+ }
+
+ var validExt = validate(ext, name);
+ if (!validExt.valid) {
+ throw Error(validExt.error);
+ }
+
+ for (var i = 0; i < ext.length; ++i) {
+ switch (ext[i].type) {
+
+ case 'lang':
+ langExtensions.push(ext[i]);
+ break;
+
+ case 'output':
+ outputModifiers.push(ext[i]);
+ break;
+ }
+ if (ext[i].hasOwnProperty('listeners')) {
+ for (var ln in ext[i].listeners) {
+ if (ext[i].listeners.hasOwnProperty(ln)) {
+ listen(ln, ext[i].listeners[ln]);
+ }
+ }
+ }
+ }
+
+ }
+
+ /**
+ * LEGACY_SUPPORT
+ * @param {*} ext
+ * @param {string} name
+ */
+ function legacyExtensionLoading (ext, name) {
+ if (typeof ext === 'function') {
+ ext = ext(new showdown.Converter());
+ }
+ if (!showdown.helper.isArray(ext)) {
+ ext = [ext];
+ }
+ var valid = validate(ext, name);
+
+ if (!valid.valid) {
+ throw Error(valid.error);
+ }
+
+ for (var i = 0; i < ext.length; ++i) {
+ switch (ext[i].type) {
+ case 'lang':
+ langExtensions.push(ext[i]);
+ break;
+ case 'output':
+ outputModifiers.push(ext[i]);
+ break;
+ default:// should never reach here
+ throw Error('Extension loader error: Type unrecognized!!!');
+ }
+ }
+ }
+
+ /**
+ * Listen to an event
+ * @param {string} name
+ * @param {function} callback
+ */
+ function listen (name, callback) {
+ if (!showdown.helper.isString(name)) {
+ throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given');
+ }
+
+ if (typeof callback !== 'function') {
+ throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given');
+ }
+ name = name.toLowerCase();
+ if (!listeners.hasOwnProperty(name)) {
+ listeners[name] = [];
+ }
+ listeners[name].push(callback);
+ }
+
+ function rTrimInputText (text) {
+ var rsp = text.match(/^\s*/)[0].length,
+ rgx = new RegExp('^\\s{0,' + rsp + '}', 'gm');
+ return text.replace(rgx, '');
+ }
+
+ /**
+ *
+ * @param {string} evtName Event name
+ * @param {string} text Text
+ * @param {{}} options Converter Options
+ * @param {{}} globals Converter globals
+ * @param {{}} pParams extra params for event
+ * @returns showdown.helper.Event
+ * @private
+ */
+ this._dispatch = function dispatch (evtName, text, options, globals, pParams) {
+ evtName = evtName.toLowerCase();
+ var params = pParams || {};
+ params.converter = this;
+ params.text = text;
+ params.options = options;
+ params.globals = globals;
+ var event = new showdown.helper.Event(evtName, text, params);
+
+ if (listeners.hasOwnProperty(evtName)) {
+ for (var ei = 0; ei < listeners[evtName].length; ++ei) {
+ var nText = listeners[evtName][ei](event);
+ if (nText && typeof nText !== 'undefined') {
+ event.setText(nText);
+ }
+ }
+ }
+ return event;
+ };
+
+ /**
+ * Listen to an event
+ * @param {string} name
+ * @param {function} callback
+ * @returns {showdown.Converter}
+ */
+ this.listen = function (name, callback) {
+ listen(name, callback);
+ return this;
+ };
+
+ /**
+ * Converts a markdown string into HTML string
+ * @param {string} text
+ * @returns {*}
+ */
+ this.makeHtml = function (text) {
+ //check if text is not falsy
+ if (!text) {
+ return text;
+ }
+
+ var globals = {
+ gHtmlBlocks: [],
+ gHtmlMdBlocks: [],
+ gHtmlSpans: [],
+ gUrls: {},
+ gTitles: {},
+ gDimensions: {},
+ gListLevel: 0,
+ hashLinkCounts: {},
+ langExtensions: langExtensions,
+ outputModifiers: outputModifiers,
+ converter: this,
+ ghCodeBlocks: [],
+ metadata: {
+ parsed: {},
+ raw: '',
+ format: ''
+ }
+ };
+
+ // This lets us use ¨ trema as an escape char to avoid md5 hashes
+ // The choice of character is arbitrary; anything that isn't
+ // magic in Markdown will work.
+ text = text.replace(/¨/g, '¨T');
+
+ // Replace $ with ¨D
+ // RegExp interprets $ as a special character
+ // when it's in a replacement string
+ text = text.replace(/\$/g, '¨D');
+
+ // Standardize line endings
+ text = text.replace(/\r\n/g, '\n'); // DOS to Unix
+ text = text.replace(/\r/g, '\n'); // Mac to Unix
+
+ // Stardardize line spaces
+ text = text.replace(/\u00A0/g, ' ');
+
+ if (options.smartIndentationFix) {
+ text = rTrimInputText(text);
+ }
+
+ // Make sure text begins and ends with a couple of newlines:
+ text = '\n\n' + text + '\n\n';
+
+ // detab
+ text = showdown.subParser('makehtml.detab')(text, options, globals);
+
+ /**
+ * Strip any lines consisting only of spaces and tabs.
+ * This makes subsequent regexs easier to write, because we can
+ * match consecutive blank lines with /\n+/ instead of something
+ * contorted like /[ \t]*\n+/
+ */
+ text = text.replace(/^[ \t]+$/mg, '');
+
+ //run languageExtensions
+ showdown.helper.forEach(langExtensions, function (ext) {
+ text = showdown.subParser('makehtml.runExtension')(ext, text, options, globals);
+ });
+
+ // run the sub parsers
+ text = showdown.subParser('makehtml.metadata')(text, options, globals);
+ text = showdown.subParser('makehtml.hashPreCodeTags')(text, options, globals);
+ text = showdown.subParser('makehtml.githubCodeBlocks')(text, options, globals);
+ text = showdown.subParser('makehtml.hashHTMLBlocks')(text, options, globals);
+ text = showdown.subParser('makehtml.hashCodeTags')(text, options, globals);
+ text = showdown.subParser('makehtml.stripLinkDefinitions')(text, options, globals);
+ text = showdown.subParser('makehtml.blockGamut')(text, options, globals);
+ text = showdown.subParser('makehtml.unhashHTMLSpans')(text, options, globals);
+ text = showdown.subParser('makehtml.unescapeSpecialChars')(text, options, globals);
+
+ // attacklab: Restore dollar signs
+ text = text.replace(/¨D/g, '$$');
+
+ // attacklab: Restore tremas
+ text = text.replace(/¨T/g, '¨');
+
+ // render a complete html document instead of a partial if the option is enabled
+ text = showdown.subParser('makehtml.completeHTMLDocument')(text, options, globals);
+
+ // Run output modifiers
+ showdown.helper.forEach(outputModifiers, function (ext) {
+ text = showdown.subParser('makehtml.runExtension')(ext, text, options, globals);
+ });
+
+ // update metadata
+ metadata = globals.metadata;
+ return text;
+ };
+
+ /**
+ * Converts an HTML string into a markdown string
+ * @param src
+ * @returns {string}
+ */
+ this.makeMarkdown = function (src) {
+
+ // replace \r\n with \n
+ src = src.replace(/\r\n/g, '\n');
+ src = src.replace(/\r/g, '\n'); // old macs
+
+ // due to an edge case, we need to find this: > <
+ // to prevent removing of non silent white spaces
+ // ex: this is sparta
+ src = src.replace(/>[ \t]+, '>¨NBSP;<');
+
+ var doc = showdown.helper.document.createElement('div');
+ doc.innerHTML = src;
+
+ var globals = {
+ preList: substitutePreCodeTags(doc)
+ };
+
+ // remove all newlines and collapse spaces
+ clean(doc);
+
+ // some stuff, like accidental reference links must now be escaped
+ // TODO
+ // doc.innerHTML = doc.innerHTML.replace(/\[[\S\t ]]/);
+
+ var nodes = doc.childNodes,
+ mdDoc = '';
+
+ for (var i = 0; i < nodes.length; i++) {
+ mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals);
+ }
+
+ function clean (node) {
+ for (var n = 0; n < node.childNodes.length; ++n) {
+ var child = node.childNodes[n];
+ if (child.nodeType === 3) {
+ if (!/\S/.test(child.nodeValue) && !/^[ ]+$/.test(child.nodeValue)) {
+ node.removeChild(child);
+ --n;
+ } else {
+ child.nodeValue = child.nodeValue.split('\n').join(' ');
+ child.nodeValue = child.nodeValue.replace(/(\s)+/g, '$1');
+ }
+ } else if (child.nodeType === 1) {
+ clean(child);
+ }
+ }
+ }
+
+ // find all pre tags and replace contents with placeholder
+ // we need this so that we can remove all indentation from html
+ // to ease up parsing
+ function substitutePreCodeTags (doc) {
+
+ var pres = doc.querySelectorAll('pre'),
+ presPH = [];
+
+ for (var i = 0; i < pres.length; ++i) {
+
+ if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') {
+ var content = pres[i].firstChild.innerHTML.trim(),
+ language = pres[i].firstChild.getAttribute('data-language') || '';
+
+ // if data-language attribute is not defined, then we look for class language-*
+ if (language === '') {
+ var classes = pres[i].firstChild.className.split(' ');
+ for (var c = 0; c < classes.length; ++c) {
+ var matches = classes[c].match(/^language-(.+)$/);
+ if (matches !== null) {
+ language = matches[1];
+ break;
+ }
+ }
+ }
+
+ // unescape html entities in content
+ content = showdown.helper.unescapeHTMLEntities(content);
+
+ presPH.push(content);
+ pres[i].outerHTML = ' ';
+ } else {
+ presPH.push(pres[i].innerHTML);
+ pres[i].innerHTML = '';
+ pres[i].setAttribute('prenum', i.toString());
+ }
+ }
+ return presPH;
+ }
+
+ return mdDoc;
+ };
+
+ /**
+ * Set an option of this Converter instance
+ * @param {string} key
+ * @param {*} value
+ */
+ this.setOption = function (key, value) {
+ options[key] = value;
+ };
+
+ /**
+ * Get the option of this Converter instance
+ * @param {string} key
+ * @returns {*}
+ */
+ this.getOption = function (key) {
+ return options[key];
+ };
+
+ /**
+ * Get the options of this Converter instance
+ * @returns {{}}
+ */
+ this.getOptions = function () {
+ return options;
+ };
+
+ /**
+ * Add extension to THIS converter
+ * @param {{}} extension
+ * @param {string} [name=null]
+ */
+ this.addExtension = function (extension, name) {
+ name = name || null;
+ _parseExtension(extension, name);
+ };
+
+ /**
+ * Use a global registered extension with THIS converter
+ * @param {string} extensionName Name of the previously registered extension
+ */
+ this.useExtension = function (extensionName) {
+ _parseExtension(extensionName);
+ };
+
+ /**
+ * Set the flavor THIS converter should use
+ * @param {string} name
+ */
+ this.setFlavor = function (name) {
+ if (!flavor.hasOwnProperty(name)) {
+ throw Error(name + ' flavor was not found');
+ }
+ var preset = flavor[name];
+ setConvFlavor = name;
+ for (var option in preset) {
+ if (preset.hasOwnProperty(option)) {
+ options[option] = preset[option];
+ }
+ }
+ };
+
+ /**
+ * Get the currently set flavor of this converter
+ * @returns {string}
+ */
+ this.getFlavor = function () {
+ return setConvFlavor;
+ };
+
+ /**
+ * Remove an extension from THIS converter.
+ * Note: This is a costly operation. It's better to initialize a new converter
+ * and specify the extensions you wish to use
+ * @param {Array} extension
+ */
+ this.removeExtension = function (extension) {
+ if (!showdown.helper.isArray(extension)) {
+ extension = [extension];
+ }
+ for (var a = 0; a < extension.length; ++a) {
+ var ext = extension[a];
+ for (var i = 0; i < langExtensions.length; ++i) {
+ if (langExtensions[i] === ext) {
+ langExtensions[i].splice(i, 1);
+ }
+ }
+ for (var ii = 0; ii < outputModifiers.length; ++i) {
+ if (outputModifiers[ii] === ext) {
+ outputModifiers[ii].splice(i, 1);
+ }
+ }
+ }
+ };
+
+ /**
+ * Get all extension of THIS converter
+ * @returns {{language: Array, output: Array}}
+ */
+ this.getAllExtensions = function () {
+ return {
+ language: langExtensions,
+ output: outputModifiers
+ };
+ };
+
+ /**
+ * Get the metadata of the previously parsed document
+ * @param raw
+ * @returns {string|{}}
+ */
+ this.getMetadata = function (raw) {
+ if (raw) {
+ return metadata.raw;
+ } else {
+ return metadata.parsed;
+ }
+ };
+
+ /**
+ * Get the metadata format of the previously parsed document
+ * @returns {string}
+ */
+ this.getMetadataFormat = function () {
+ return metadata.format;
+ };
+
+ /**
+ * Private: set a single key, value metadata pair
+ * @param {string} key
+ * @param {string} value
+ */
+ this._setMetadataPair = function (key, value) {
+ metadata.parsed[key] = value;
+ };
+
+ /**
+ * Private: set metadata format
+ * @param {string} format
+ */
+ this._setMetadataFormat = function (format) {
+ metadata.format = format;
+ };
+
+ /**
+ * Private: set metadata raw text
+ * @param {string} raw
+ */
+ this._setMetadataRaw = function (raw) {
+ metadata.raw = raw;
+ };
+ };
+
+ var root = this;
+
+// AMD Loader
+ if (typeof define === 'function' && define.amd) {
+ define(function () {
+ 'use strict';
+ return showdown;
+ });
+
+// CommonJS/nodeJS Loader
+ } else if (typeof module !== 'undefined' && module.exports) {
+ module.exports = showdown;
+
+// Regular Browser loader
+ } else {
+ root.showdown = showdown;
+ }
+}).call(this);
+
+//# sourceMappingURL=showdown.js.map
diff --git a/src/renderer/lib/smoothscroll.js b/src/renderer/lib/smoothscroll.js
new file mode 100644
index 00000000..8c694ad6
--- /dev/null
+++ b/src/renderer/lib/smoothscroll.js
@@ -0,0 +1,434 @@
+/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */
+(function () {
+ 'use strict';
+
+ // polyfill
+ function polyfill() {
+ // aliases
+ var w = window;
+ var d = document;
+
+ // return if scroll behavior is supported and polyfill is not forced
+ if (
+ 'scrollBehavior' in d.documentElement.style &&
+ w.__forceSmoothScrollPolyfill__ !== true
+ ) {
+ return;
+ }
+
+ // globals
+ var Element = w.HTMLElement || w.Element;
+ var SCROLL_TIME = 468;
+
+ // object gathering original scroll methods
+ var original = {
+ scroll: w.scroll || w.scrollTo,
+ scrollBy: w.scrollBy,
+ elementScroll: Element.prototype.scroll || scrollElement,
+ scrollIntoView: Element.prototype.scrollIntoView
+ };
+
+ // define timing method
+ var now =
+ w.performance && w.performance.now
+ ? w.performance.now.bind(w.performance)
+ : Date.now;
+
+ /**
+ * indicates if a the current browser is made by Microsoft
+ * @method isMicrosoftBrowser
+ * @param {String} userAgent
+ * @returns {Boolean}
+ */
+ function isMicrosoftBrowser(userAgent) {
+ var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];
+
+ return new RegExp(userAgentPatterns.join('|')).test(userAgent);
+ }
+
+ /*
+ * IE has rounding bug rounding down clientHeight and clientWidth and
+ * rounding up scrollHeight and scrollWidth causing false positives
+ * on hasScrollableSpace
+ */
+ var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;
+
+ /**
+ * changes scroll position inside an element
+ * @method scrollElement
+ * @param {Number} x
+ * @param {Number} y
+ * @returns {undefined}
+ */
+ function scrollElement(x, y) {
+ this.scrollLeft = x;
+ this.scrollTop = y;
+ }
+
+ /**
+ * returns result of applying ease math function to a number
+ * @method ease
+ * @param {Number} k
+ * @returns {Number}
+ */
+ function ease(k) {
+ return 0.5 * (1 - Math.cos(Math.PI * k));
+ }
+
+ /**
+ * indicates if a smooth behavior should be applied
+ * @method shouldBailOut
+ * @param {Number|Object} firstArg
+ * @returns {Boolean}
+ */
+ function shouldBailOut(firstArg) {
+ if (
+ firstArg === null ||
+ typeof firstArg !== 'object' ||
+ firstArg.behavior === undefined ||
+ firstArg.behavior === 'auto' ||
+ firstArg.behavior === 'instant'
+ ) {
+ // first argument is not an object/null
+ // or behavior is auto, instant or undefined
+ return true;
+ }
+
+ if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {
+ // first argument is an object and behavior is smooth
+ return false;
+ }
+
+ // throw error when behavior is not supported
+ throw new TypeError(
+ 'behavior member of ScrollOptions ' +
+ firstArg.behavior +
+ ' is not a valid value for enumeration ScrollBehavior.'
+ );
+ }
+
+ /**
+ * indicates if an element has scrollable space in the provided axis
+ * @method hasScrollableSpace
+ * @param {Node} el
+ * @param {String} axis
+ * @returns {Boolean}
+ */
+ function hasScrollableSpace(el, axis) {
+ if (axis === 'Y') {
+ return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;
+ }
+
+ if (axis === 'X') {
+ return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;
+ }
+ }
+
+ /**
+ * indicates if an element has a scrollable overflow property in the axis
+ * @method canOverflow
+ * @param {Node} el
+ * @param {String} axis
+ * @returns {Boolean}
+ */
+ function canOverflow(el, axis) {
+ var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];
+
+ return overflowValue === 'auto' || overflowValue === 'scroll';
+ }
+
+ /**
+ * indicates if an element can be scrolled in either axis
+ * @method isScrollable
+ * @param {Node} el
+ * @param {String} axis
+ * @returns {Boolean}
+ */
+ function isScrollable(el) {
+ var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');
+ var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');
+
+ return isScrollableY || isScrollableX;
+ }
+
+ /**
+ * finds scrollable parent of an element
+ * @method findScrollableParent
+ * @param {Node} el
+ * @returns {Node} el
+ */
+ function findScrollableParent(el) {
+ while (el !== d.body && isScrollable(el) === false) {
+ el = el.parentNode || el.host;
+ }
+
+ return el;
+ }
+
+ /**
+ * self invoked function that, given a context, steps through scrolling
+ * @method step
+ * @param {Object} context
+ * @returns {undefined}
+ */
+ function step(context) {
+ var time = now();
+ var value;
+ var currentX;
+ var currentY;
+ var elapsed = (time - context.startTime) / SCROLL_TIME;
+
+ // avoid elapsed times higher than one
+ elapsed = elapsed > 1 ? 1 : elapsed;
+
+ // apply easing to elapsed time
+ value = ease(elapsed);
+
+ currentX = context.startX + (context.x - context.startX) * value;
+ currentY = context.startY + (context.y - context.startY) * value;
+
+ context.method.call(context.scrollable, currentX, currentY);
+
+ // scroll more if we have not reached our destination
+ if (currentX !== context.x || currentY !== context.y) {
+ w.requestAnimationFrame(step.bind(w, context));
+ }
+ }
+
+ /**
+ * scrolls window or element with a smooth behavior
+ * @method smoothScroll
+ * @param {Object|Node} el
+ * @param {Number} x
+ * @param {Number} y
+ * @returns {undefined}
+ */
+ function smoothScroll(el, x, y) {
+ var scrollable;
+ var startX;
+ var startY;
+ var method;
+ var startTime = now();
+
+ // define scroll context
+ if (el === d.body) {
+ scrollable = w;
+ startX = w.scrollX || w.pageXOffset;
+ startY = w.scrollY || w.pageYOffset;
+ method = original.scroll;
+ } else {
+ scrollable = el;
+ startX = el.scrollLeft;
+ startY = el.scrollTop;
+ method = scrollElement;
+ }
+
+ // scroll looping over a frame
+ step({
+ scrollable: scrollable,
+ method: method,
+ startTime: startTime,
+ startX: startX,
+ startY: startY,
+ x: x,
+ y: y
+ });
+ }
+
+ // ORIGINAL METHODS OVERRIDES
+ // w.scroll and w.scrollTo
+ w.scroll = w.scrollTo = function() {
+ // avoid action when no arguments are passed
+ if (arguments[0] === undefined) {
+ return;
+ }
+
+ // avoid smooth behavior if not required
+ if (shouldBailOut(arguments[0]) === true) {
+ original.scroll.call(
+ w,
+ arguments[0].left !== undefined
+ ? arguments[0].left
+ : typeof arguments[0] !== 'object'
+ ? arguments[0]
+ : w.scrollX || w.pageXOffset,
+ // use top prop, second argument if present or fallback to scrollY
+ arguments[0].top !== undefined
+ ? arguments[0].top
+ : arguments[1] !== undefined
+ ? arguments[1]
+ : w.scrollY || w.pageYOffset
+ );
+
+ return;
+ }
+
+ // LET THE SMOOTHNESS BEGIN!
+ smoothScroll.call(
+ w,
+ d.body,
+ arguments[0].left !== undefined
+ ? ~~arguments[0].left
+ : w.scrollX || w.pageXOffset,
+ arguments[0].top !== undefined
+ ? ~~arguments[0].top
+ : w.scrollY || w.pageYOffset
+ );
+ };
+
+ // w.scrollBy
+ w.scrollBy = function() {
+ // avoid action when no arguments are passed
+ if (arguments[0] === undefined) {
+ return;
+ }
+
+ // avoid smooth behavior if not required
+ if (shouldBailOut(arguments[0])) {
+ original.scrollBy.call(
+ w,
+ arguments[0].left !== undefined
+ ? arguments[0].left
+ : typeof arguments[0] !== 'object' ? arguments[0] : 0,
+ arguments[0].top !== undefined
+ ? arguments[0].top
+ : arguments[1] !== undefined ? arguments[1] : 0
+ );
+
+ return;
+ }
+
+ // LET THE SMOOTHNESS BEGIN!
+ smoothScroll.call(
+ w,
+ d.body,
+ ~~arguments[0].left + (w.scrollX || w.pageXOffset),
+ ~~arguments[0].top + (w.scrollY || w.pageYOffset)
+ );
+ };
+
+ // Element.prototype.scroll and Element.prototype.scrollTo
+ Element.prototype.scroll = Element.prototype.scrollTo = function() {
+ // avoid action when no arguments are passed
+ if (arguments[0] === undefined) {
+ return;
+ }
+
+ // avoid smooth behavior if not required
+ if (shouldBailOut(arguments[0]) === true) {
+ // if one number is passed, throw error to match Firefox implementation
+ if (typeof arguments[0] === 'number' && arguments[1] === undefined) {
+ throw new SyntaxError('Value could not be converted');
+ }
+
+ original.elementScroll.call(
+ this,
+ // use left prop, first number argument or fallback to scrollLeft
+ arguments[0].left !== undefined
+ ? ~~arguments[0].left
+ : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,
+ // use top prop, second argument or fallback to scrollTop
+ arguments[0].top !== undefined
+ ? ~~arguments[0].top
+ : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop
+ );
+
+ return;
+ }
+
+ var left = arguments[0].left;
+ var top = arguments[0].top;
+
+ // LET THE SMOOTHNESS BEGIN!
+ smoothScroll.call(
+ this,
+ this,
+ typeof left === 'undefined' ? this.scrollLeft : ~~left,
+ typeof top === 'undefined' ? this.scrollTop : ~~top
+ );
+ };
+
+ // Element.prototype.scrollBy
+ Element.prototype.scrollBy = function() {
+ // avoid action when no arguments are passed
+ if (arguments[0] === undefined) {
+ return;
+ }
+
+ // avoid smooth behavior if not required
+ if (shouldBailOut(arguments[0]) === true) {
+ original.elementScroll.call(
+ this,
+ arguments[0].left !== undefined
+ ? ~~arguments[0].left + this.scrollLeft
+ : ~~arguments[0] + this.scrollLeft,
+ arguments[0].top !== undefined
+ ? ~~arguments[0].top + this.scrollTop
+ : ~~arguments[1] + this.scrollTop
+ );
+
+ return;
+ }
+
+ this.scroll({
+ left: ~~arguments[0].left + this.scrollLeft,
+ top: ~~arguments[0].top + this.scrollTop,
+ behavior: arguments[0].behavior
+ });
+ };
+
+ // Element.prototype.scrollIntoView
+ Element.prototype.scrollIntoView = function() {
+ // avoid smooth behavior if not required
+ if (shouldBailOut(arguments[0]) === true) {
+ original.scrollIntoView.call(
+ this,
+ arguments[0] === undefined ? true : arguments[0]
+ );
+
+ return;
+ }
+
+ // LET THE SMOOTHNESS BEGIN!
+ var scrollableParent = findScrollableParent(this);
+ var parentRects = scrollableParent.getBoundingClientRect();
+ var clientRects = this.getBoundingClientRect();
+
+ if (scrollableParent !== d.body) {
+ // reveal element inside parent
+ smoothScroll.call(
+ this,
+ scrollableParent,
+ scrollableParent.scrollLeft + clientRects.left - parentRects.left,
+ scrollableParent.scrollTop + clientRects.top - parentRects.top
+ );
+
+ // reveal parent in viewport unless is fixed
+ if (w.getComputedStyle(scrollableParent).position !== 'fixed') {
+ w.scrollBy({
+ left: parentRects.left,
+ top: parentRects.top,
+ behavior: 'smooth'
+ });
+ }
+ } else {
+ // reveal element in viewport
+ w.scrollBy({
+ left: clientRects.left,
+ top: clientRects.top,
+ behavior: 'smooth'
+ });
+ }
+ };
+ }
+
+ if (typeof exports === 'object' && typeof module !== 'undefined') {
+ // commonjs
+ module.exports = { polyfill: polyfill };
+ } else {
+ // global
+ polyfill();
+ }
+
+ }());
+
\ No newline at end of file
diff --git a/src/renderer/js/sortable.min.js b/src/renderer/lib/sortable.min.js
similarity index 100%
rename from src/renderer/js/sortable.min.js
rename to src/renderer/lib/sortable.min.js
diff --git a/src/renderer/lib/stackblur.min.js b/src/renderer/lib/stackblur.min.js
new file mode 100644
index 00000000..79cff7a8
--- /dev/null
+++ b/src/renderer/lib/stackblur.min.js
@@ -0,0 +1,2 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).StackBlur={})}(this,(function(t){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var r=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],n=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function a(t,r,n,a,o){if("string"==typeof t&&(t=document.getElementById(t)),!t||"object"!==e(t)||!("getContext"in t))throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");var i=t.getContext("2d");try{return i.getImageData(r,n,a,o)}catch(t){throw new Error("unable to access image data: "+t)}}function o(t,e,r,n,o,f){if(!(isNaN(f)||f<1)){f|=0;var g=a(t,e,r,n,o);g=i(g,e,r,n,o,f),t.getContext("2d").putImageData(g,e,r)}}function i(t,e,a,o,i,f){for(var g,l=t.data,c=2*f+1,s=o-1,v=i-1,b=f+1,x=b*(b+1)/2,d=new u,y=d,h=1;h>E;if(l[B+3]=Y,0!==Y){var Z=255/Y;l[B]=(O*C>>E)*Z,l[B+1]=(P*C>>E)*Z,l[B+2]=(q*C>>E)*Z}else l[B]=l[B+1]=l[B+2]=0;O-=k,P-=H,q-=_,z-=M,k-=p.r,H-=p.g,_-=p.b,M-=p.a;var $=X+f+1;$=w+($>E,ut>0?(ut=255/ut,l[Nt]=(bt*C>>E)*ut,l[Nt+1]=(xt*C>>E)*ut,l[Nt+2]=(dt*C>>E)*ut):l[Nt]=l[Nt+1]=l[Nt+2]=0,bt-=lt,xt-=ct,dt-=st,yt-=vt,lt-=p.r,ct-=p.g,st-=p.b,vt-=p.a,Nt=ot+((Nt=St+b)>E,l[S+1]=k*C>>E,l[S+2]=H*C>>E,W-=T,k-=j,H-=A,T-=w.r,j-=w.g,A-=w.b,p=I+((p=z+f+1)>E,l[p+1]=Y*C>>E,l[p+2]=Z*C>>E,X-=Q,Y-=U,Z-=V,Q-=w.r,U-=w.g,V-=w.b,p=F+((p=ot+b)=t?function(t,n){for(var r=0;r0?i=a:t=a}while(Math.abs(o)>n&&++l=0)return n;null==e||t||console.error("VelocityJS: Trying to set 'duration' to an invalid value:",e)}function W(e,t,n){if(u(e))return S[e];if(o(e))return e;if(Array.isArray(e)){if(1===e.length)return r=e[0],C[r]||(C[r]=function(e,t,n){return 0===e?t:1===e?n:t+Math.round(e*r)*(1/r)*(n-t)});if(2===e.length)return function e(t,n,r){var i={x:-1,v:0,tension:parseFloat(t)||500,friction:parseFloat(n)||20},o=[0],a=null!=r,l=0,s=void 0,u=void 0;for(s=a?(l=e(i.tension,i.friction))/r*.016:.016;u=j(u||i,s),o.push(1+u.x),l+=16,Math.abs(u.x)>1e-4&&Math.abs(u.v)>1e-4;);return a?function(e,t,n){return 0===e?t:1===e?n:t+o[Math.floor(e*(o.length-1))]*(n-t)}:l}(e[0],e[1],t);if(4===e.length)return q.apply(null,e)||!1}var r;null==e||n||console.error("VelocityJS: Trying to set 'easing' to an invalid value:",e)}function $(e){if(!1===e)return 0;var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return Math.min(t,60);null!=e&&console.warn("VelocityJS: Trying to set 'fpsLimit' to an invalid value:",e)}function G(e){switch(e){case!1:return 0;case!0:return!0;default:var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return t}null!=e&&console.warn("VelocityJS: Trying to set 'loop' to an invalid value:",e)}function Q(e,t){if(!1===e||u(e))return e;null==e||t||console.warn("VelocityJS: Trying to set 'queue' to an invalid value:",e)}function D(e){switch(e){case!1:return 0;case!0:return!0;default:var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return t}null!=e&&console.warn("VelocityJS: Trying to set 'repeat' to an invalid value:",e)}function U(e){if(l(e))return e;null!=e&&console.error("VelocityJS: Trying to set 'speed' to an invalid value:",e)}function Z(e){if(i(e))return e;null!=e&&console.error("VelocityJS: Trying to set 'sync' to an invalid value:",e)}var Y=void 0,X=void 0,K=void 0,ee=void 0,te=void 0,ne=void 0,re=void 0,ie=void 0,oe=void 0,ae=void 0,le=void 0,se=void 0,ue=void 0,ce=void 0,fe=void 0,de=void 0,ve=function(){function e(){t(this,e)}return n(e,null,[{key:"reset",value:function(){Y=!0,X=void 0,K=void 0,ee=0,te=w,ne=W("swing",w),re=60,ie=0,ae=980/60,le=!0,se=!0,ue="",ce=0,fe=1,de=!0}},{key:"cache",get:function(){return Y},set:function(e){void 0!==(e=z(e))&&(Y=e)}},{key:"begin",get:function(){return X},set:function(e){void 0!==(e=F(e))&&(X=e)}},{key:"complete",get:function(){return K},set:function(e){void 0!==(e=H(e))&&(K=e)}},{key:"delay",get:function(){return ee},set:function(e){void 0!==(e=R(e))&&(ee=e)}},{key:"duration",get:function(){return te},set:function(e){void 0!==(e=B(e))&&(te=e)}},{key:"easing",get:function(){return ne},set:function(e){void 0!==(e=W(e,te))&&(ne=e)}},{key:"fpsLimit",get:function(){return re},set:function(e){void 0!==(e=$(e))&&(re=e,ae=980/e)}},{key:"loop",get:function(){return ie},set:function(e){void 0!==(e=G(e))&&(ie=e)}},{key:"mobileHA",get:function(){return oe},set:function(e){i(e)&&(oe=e)}},{key:"minFrameTime",get:function(){return ae}},{key:"promise",get:function(){return le},set:function(e){void 0!==(e=function(e){if(i(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'promise' to an invalid value:",e)}(e))&&(le=e)}},{key:"promiseRejectEmpty",get:function(){return se},set:function(e){void 0!==(e=function(e){if(i(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'promiseRejectEmpty' to an invalid value:",e)}(e))&&(se=e)}},{key:"queue",get:function(){return ue},set:function(e){void 0!==(e=Q(e))&&(ue=e)}},{key:"repeat",get:function(){return ce},set:function(e){void 0!==(e=D(e))&&(ce=e)}},{key:"repeatAgain",get:function(){return ce}},{key:"speed",get:function(){return fe},set:function(e){void 0!==(e=U(e))&&(fe=e)}},{key:"sync",get:function(){return de},set:function(e){void 0!==(e=Z(e))&&(de=e)}}]),e}();Object.freeze(ve),ve.reset();var pe=[],ye={},ge=new Set,he=[],me=new Map,we="velocityData";function be(e){var t=e[we];if(t)return t;for(var n=e.ownerDocument.defaultView,r=0,i=0;i=0&&pe[r].hasOwnProperty(n)}function Ne(e,t){for(var n=be(e),r=void 0,i=he.length-1,o=n.types;!r&&i>=0;i--)o&1<=2&&console.info('Set "'+t+'": "'+n+'"',e))}function Le(e){if(e.indexOf("calc(")>=0){for(var t=e.split(/([\(\)])/),n=0,r=0;r=2&&console.info('Get "'+t+'": "'+o+'"',e),o}var De=/^#([A-f\d]{3}){1,2}$/i,Ue={function:function(e,t,n,r,i,o){return e.call(t,r,n.length,i)},number:function(e,t,n,r,i,o){return String(e)+function(e){for(var t in ye)if(ye[t].includes(e))return t;return""}(o.fn)},string:function(e,t,n,r,i,o){return Be(e)},undefined:function(e,t,n,r,i,o){return Be(Qe(t,i,o.fn)||"")}};function Ze(t,n){var r=t.tweens=Object.create(null),i=t.elements,a=t.element,s=i.indexOf(a),c=be(a),f=p(t.queue,t.options.queue),d=p(t.options.duration,ve.duration);for(var v in n)if(n.hasOwnProperty(v)){var y=Ie(v),g=Ne(a,y),h=n[v];if(!g&&"tween"!==y){Ut.debug&&console.log('Skipping "'+v+'" due to a lack of browser support.');continue}if(null==h){Ut.debug&&console.log('Skipping "'+v+'" due to no value supplied.');continue}var m=r[y]={},w=void 0,b=void 0;if(m.fn=g,o(h)&&(h=h.call(a,s,i.length,i)),Array.isArray(h)){var x=h[1],k=h[2];w=h[0],u(x)&&(/^[\d-]/.test(x)||De.test(x))||o(x)||l(x)?b=x:u(x)&&S[x]||Array.isArray(x)?(m.easing=W(x,d),b=k):b=x||k}else w=h;m.end=Ue[void 0===w?"undefined":e(w)](w,a,i,s,y,m),null==b&&!1!==f&&void 0!==c.queueList[f]||(m.start=Ue[void 0===b?"undefined":e(b)](b,a,i,s,y,m),et(y,m,d))}}var Ye=/((?:[+\-*/]=)?(?:[+-]?\d*\.\d+|[+-]?\d+)[a-z%]*|(?:.(?!$|[+-]?\d|[+\-*/]=[+-]?\d))+.|.)/g,Xe=/^([+\-*/]=)?([+-]?\d*\.\d+|[+-]?\d+)(.*)$/;function Ke(e,t){for(var n=e.length,r=[],i=[],o=void 0,a=0;a1}for(var l=[],s=l.pattern=[],c=function(e){if(u(s[s.length-1]))s[s.length-1]+=e;else if(e){s.push(e);for(var t=0;t1)){for(var r="display"===t,i="visibility"===t,a=0;a=0?H++:R.indexOf("rgb")>=0&&(H=1):H&&(H<4?s[F]=!0:H=0)}return l}function et(e,t,n,r){var i=t.start,o=t.end;if(u(o)&&u(i)){var a=Ke([i,o],e);if(!a&&r){var l=i.match(/\d\.?\d*/g)||["0"],s=l.length,c=0;a=Ke([o.replace(/\d+\.?\d*/g,function(){return l[c++%s]}),o],e)}if(a)switch(Ut.debug&&console.log("Velocity: Sequence found:",a),a[0].percent=0,a[1].percent=1,t.sequence=a,t.easing){case S["at-start"]:case S.during:case S["at-end"]:a[0].easing=a[1].easing=t.easing}}}function tt(e){if(ke.firstNew===e&&(ke.firstNew=e._next),!(1&e._flags)){var t=e.element,n=e.tweens;p(e.options.duration,ve.duration);for(var r in n){var i=n[r];if(null==i.start){var o=Qe(e.element,r);u(o)?(i.start=Be(o),et(r,i,0,!0)):Array.isArray(o)||console.warn("bad type",i,r,o)}Ut.debug&&console.log('tweensContainer "'+r+'": '+JSON.stringify(i),t)}e._flags|=1}}function nt(e){var t=e.begin||e.options.begin;if(t)try{var n=e.elements;t.call(n,n,e)}catch(e){setTimeout(function(){throw e},1)}}function rt(e){var t=e.progress||e.options.progress;if(t)try{var n=e.elements,r=e.percentComplete,i=e.options,o=e.tween;t.call(n,n,r,Math.max(0,e.timeStart+(null!=e.duration?e.duration:null!=i.duration?i.duration:ve.duration)-vt),void 0!==o?o:String(100*r),e)}catch(e){setTimeout(function(){throw e},1)}}function it(){var e=!0,t=!1,n=void 0;try{for(var r,i=lt[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){rt(r.value)}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}lt.clear();var o=!0,a=!1,l=void 0;try{for(var s,u=at[Symbol.iterator]();!(o=(s=u.next()).done);o=!0){Me(s.value)}}catch(e){a=!0,l=e}finally{try{!o&&u.return&&u.return()}finally{if(a)throw l}}at.clear()}var ot=1e3/60,at=new Set,lt=new Set,st=function(){var e=window.performance||{};if("function"!=typeof e.now){var t=e.timing&&e.timing.navigationStart?e.timing.navigationStart:y();e.now=function(){return y()-t}}return e}(),ut=function(e){return setTimeout(e,Math.max(0,ot-(st.now()-vt)))},ct=window.requestAnimationFrame||ut,ft=void 0,dt=void 0,vt=0;try{(dt=new Worker(URL.createObjectURL(new Blob(["("+function(){var e=this,t=void 0;this.onmessage=function(n){switch(n.data){case!0:t||(t=setInterval(function(){e.postMessage(!0)},1e3/30));break;case!1:t&&(clearInterval(t),t=0);break;default:e.postMessage(n.data)}}}+")()"])))).onmessage=function(e){!0===e.data?pt():it()},ke.isMobile||void 0===document.hidden||document.addEventListener("visibilitychange",function(){dt.postMessage(ke.isTicking&&document.hidden)})}catch(e){}function pt(e){if(!ft){if(ft=!0,!1!==e){var t=st.now(),n=vt?t-vt:ot,r=ve.speed,i=ve.easing,o=ve.duration,a=void 0,l=void 0;if(n>=ve.minFrameTime||!vt){for(vt=t;ke.firstNew;)tt(ke.firstNew);for(a=ke.first;a&&a!==ke.firstNew;a=a._next){var s=a.element,u=be(s);if(s.parentNode&&u){var c=a.options,f=a._flags,d=a.timeStart;if(!d){var v=null!=a.queue?a.queue:c.queue;d=t-n,!1!==v&&(d=Math.max(d,u.lastFinishList[v]||0)),a.timeStart=d}16&f?a.timeStart+=n:2&f||(a._flags|=2,c._ready++)}else _e(a)}for(a=ke.first;a&&a!==ke.firstNew;a=l){var p=a._flags;if(l=a._next,2&p&&!(16&p)){var y=a.options;if(32&p&&y._readyt)continue;a.timeStart=h+=m/(m>0?g:1)}a._flags|=4,0==y._started++&&(y._first=a,y.begin&&(nt(a),y.begin=void 0))}1!==g&&(a.timeStart=h+=Math.min(n,t-h)*(1-g));var w=null!=a.easing?a.easing:null!=y.easing?y.easing:i,b=a.ellapsedTime=t-h,S=null!=a.duration?a.duration:null!=y.duration?y.duration:o,x=a.percentComplete=Ut.mock?1:Math.min(b/S,1),O=a.tweens,E=64&p;for(var _ in(a.progress||y._first===a&&y.progress)&<.add(a),1===x&&at.add(a),O){var T=O[_],M=T.sequence,V=M.pattern,q="",N=0;if(V){for(var A=(T.easing||w)(x,0,1,_),L=0,J=0;J=0?r.replace(/^.*\./,""):void 0)&&Q(e[0]),a=ve.queue;if(c(t)&&t.velocity.animations){var l=!0,s=!1,u=void 0;try{for(var f,d=t.velocity.animations[Symbol.iterator]();!(l=(f=d.next()).done);l=!0){ht(f.value,o,a,i)}}catch(e){s=!0,u=e}finally{try{!l&&d.return&&d.return()}finally{if(s)throw u}}}else for(var v=ke.first;v;)t&&!t.includes(v.element)||ht(v,o,a,i),v=v._next;n&&(c(t)&&t.velocity.animations&&t.then?t.then(n._resolver):n._resolver(t))}function wt(t,n,r,i){var o=t[0],a=t[1];if(!o)return console.warn("VelocityJS: Cannot access a non-existant property!"),null;if(void 0===a&&!s(o)){if(Array.isArray(o)){if(1===n.length){var f={},d=!0,v=!1,p=void 0;try{for(var y,g=o[Symbol.iterator]();!(d=(y=g.next()).done);d=!0){var h=y.value;f[h]=Be(Qe(n[0],h))}}catch(e){v=!0,p=e}finally{try{!d&&g.return&&g.return()}finally{if(v)throw p}}return f}var m=[],w=!0,b=!1,S=void 0;try{for(var x,k=n[Symbol.iterator]();!(w=(x=k.next()).done);w=!0){var O=x.value,E={},_=!0,T=!1,M=void 0;try{for(var V,q=o[Symbol.iterator]();!(_=(V=q.next()).done);_=!0){var N=V.value;E[N]=Be(Qe(O,N))}}catch(e){T=!0,M=e}finally{try{!_&&q.return&&q.return()}finally{if(T)throw M}}m.push(E)}}catch(e){b=!0,S=e}finally{try{!w&&k.return&&k.return()}finally{if(b)throw S}}return m}if(1===n.length)return Be(Qe(n[0],o));var A=[],L=!0,J=!1,I=void 0;try{for(var j,C=n[Symbol.iterator]();!(L=(j=C.next()).done);L=!0){var P=j.value;A.push(Be(Qe(P,o)))}}catch(e){J=!0,I=e}finally{try{!L&&C.return&&C.return()}finally{if(J)throw I}}return A}var z=[];if(s(o)){for(var F in o)if(o.hasOwnProperty(F)){var H=!0,R=!1,B=void 0;try{for(var W,$=n[Symbol.iterator]();!(H=(W=$.next()).done);H=!0){var G=W.value,Q=o[F];u(Q)||l(Q)?Ae(G,F,o[F]):(z.push('Cannot set a property "'+F+'" to an unknown type: '+(void 0===Q?"undefined":e(Q))),console.warn('VelocityJS: Cannot set a property "'+F+'" to an unknown type:',Q))}}catch(e){R=!0,B=e}finally{try{!H&&$.return&&$.return()}finally{if(R)throw B}}}}else if(u(a)||l(a)){var D=!0,U=!1,Z=void 0;try{for(var Y,X=n[Symbol.iterator]();!(D=(Y=X.next()).done);D=!0){Ae(Y.value,o,String(a))}}catch(e){U=!0,Z=e}finally{try{!D&&X.return&&X.return()}finally{if(U)throw Z}}}else z.push('Cannot set a property "'+o+'" to an unknown type: '+(void 0===a?"undefined":e(a))),console.warn('VelocityJS: Cannot set a property "'+o+'" to an unknown type:',a);r&&(z.length?r._rejecter(z.join(", ")):c(n)&&n.velocity.animations&&n.then?n.then(r._resolver):r._resolver(n))}function bt(e,t,n){tt(e),void 0!==t&&t!==p(e.queue,e.options.queue,n)||(e._flags|=8,Me(e))}m(["option",function(e,t,n,r){var i=e[0],o=r.indexOf(".")>=0?r.replace(/^.*\./,""):void 0,a="false"!==o&&Q(o,!0),l=void 0,s=e[1];if(!i)return console.warn("VelocityJS: Cannot access a non-existant key!"),null;if(c(t)&&t.velocity.animations)l=t.velocity.animations;else{l=[];for(var u=ke.first;u;u=u._next)t.indexOf(u.element)>=0&&p(u.queue,u.options.queue)===a&&l.push(u);if(t.length>1&&l.length>1){for(var f=1,d=l[0].options;f, "tween", percentComplete, property, end | [end, , ], ) => value\nVelocity(, "tween", percentComplete, {property: end | [end, , ], ...}, ) => {property: value, ...}'),null;t=[document.body],o=!0}var a=e[0],c={elements:t,element:t[0],queue:!1,options:{duration:1e3},tweens:null},f={},d=e[1],v=void 0,y=void 0,g=e[2],h=0;if(u(e[1])?Te&&Te[e[1]]?(y=Te[e[1]],d={},g=e[2]):(v=!0,d=r({},e[1],e[2]),g=e[3]):Array.isArray(e[1])&&(v=!0,d={tween:e[1]},g=e[2]),!l(a)||a<0||a>1)throw new Error("VelocityJS: Must tween a percentage from 0 to 1!");if(!s(d))throw new Error("VelocityJS: Cannot tween an invalid property!");if(o)for(var m in d)if(d.hasOwnProperty(m)&&(!Array.isArray(d[m])||d[m].length<2))throw new Error("VelocityJS: When not supplying an element you must force-feed values: "+m);var b=W(p(g,ve.easing),w);for(var S in y?tn(c,y):Ze(c,d),c.tweens){var x=c.tweens[S],O=x.sequence,E=O.pattern,_="",T=0;if(h++,E){for(var M=(x.easing||b)(a,0,1,S),V=0,q=0;q4;e--){var t=document.createElement("div");if(t.innerHTML="\x3c!--[if IE "+e+"]> 100)console.warn("VelocityJS: Trying to use an invalid value as a percentage (0 <= n <= 100):",r,x);else if(isNaN(x))console.warn("VelocityJS: Trying to use an invalid number as a percentage:",r,v,S);else for(var k in o[String(x)]||(o[String(x)]=[]),o[String(x)].push(v),i[v])c.includes(k)||c.push(k)}}catch(e){g=!0,h=e}finally{try{!y&&b.return&&b.return()}finally{if(g)throw h}}}}var O=Object.keys(o).sort(function(e,t){var n=parseFloat(e),r=parseFloat(t);return n>r?1:n1&&(u(ae[1])||Array.isArray(ae[1]))&&(Q[D].easing=W(ae[1],f.duration||w)),Q[D++].percent=parseFloat(ee)/100)}}catch(e){ne=!0,re=e}finally{try{!te&&oe.return&&oe.return()}finally{if(ne)throw re}}}}catch(e){Z=!0,Y=e}finally{try{!U&&K.return&&K.return()}finally{if(Z)throw Y}}f.tweens[A]=Q}}}}catch(e){_=!0,T=e}finally{try{!E&&V.return&&V.return()}finally{if(_)throw T}}}else console.warn("VelocityJS: Trying to set 'registerSequence' sequence to an invalid value:",r,i);else console.warn("VelocityJS: Trying to set 'registerSequence' name to an invalid value:",r)}}],!0);var nn=void 0;try{nn=Promise}catch(e){}var rn=", if that is deliberate then pass `promiseRejectEmpty:false` as an option";function on(e,t){v(t,"promise",e),v(t,"then",e.then.bind(e)),v(t,"catch",e.catch.bind(e)),e.finally&&v(t,"finally",e.finally.bind(e))}function an(){var e,t=ve,n=arguments.length<=0?void 0:arguments[0],r=s(n)&&(n.p||s(n.properties)&&!n.properties.names||u(n.properties)),y=0,g=void 0,m=void 0,w=void 0,b=void 0,S=void 0,x=void 0,k=void 0;(a(this)?g=[this]:f(this)?(g=d(this),c(this)&&(b=this.velocity.animations)):r?(g=d(n.elements||n.e),y++):a(n)?(g=d([n]),y++):f(n)&&(g=d(n),y++),g&&(v(g,"velocity",an.bind(g)),b&&v(g.velocity,"animations",b)),r)?m=p(n.properties,n.p):(e=y++,m=arguments.length<=e?void 0:arguments[e]);var O="reverse"===m,E=!O&&u(m),_=E&&Te[m],T=r?p(n.options,n.o):arguments.length<=y?void 0:arguments[y];if(s(T)&&(w=T),nn&&p(w&&w.promise,t.promise)&&(S=new nn(function(e,t){k=t,x=function(t){c(t)&&t.promise?(delete t.then,delete t.catch,delete t.finally,e(t),on(t.promise,t)):e(t)}}),g&&on(S,g)),S){var M=w&&w.promiseRejectEmpty,V=p(M,t.promiseRejectEmpty);g||E?m||(V?k("Velocity: No properties supplied"+(i(M)?"":rn)+". Aborting."):x()):V?k("Velocity: No elements supplied"+(i(M)?"":rn)+". Aborting."):x()}if(!g&&!E||!m)return S;if(E){for(var q=[],N=S&&{_promise:S,_resolver:x,_rejecter:k};y4;e--){var t=document.createElement("div");if(t.innerHTML="\x3c!--[if IE "+e+"]> 2.5)return void this.scrollToLeft(t.scrollLeft+o)}var l=t.clientWidth*this.displacement;this.scrollToLeft(t.scrollLeft+l)},scrollToIndex:function(t){var e=this.children();if(e[t]){var n=this.$refs.container,i=e[t].getBoundingClientRect().left-n.getBoundingClientRect().left;this.scrollToLeft(n.scrollLeft+i)}},scrollToLeft:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"smooth",n=this.$refs.container;n.scrollTo({left:t,behavior:e})},onScroll:function(){var t=this.$refs.container;t&&(this.$emit("scroll",{left:t.scrollLeft}),clearTimeout(this.debounceId),this.debounceId=setTimeout(this.onScrollDebounce,100))},onScrollDebounce:function(){var t=this;this.refresh((function(e){t.$emit("scroll-debounce",e)}))},refresh:function(t){var e=this;this.$nextTick((function(){var n=e.calculate();e.left=n.left,e.width=n.width,e.scrollWidth=n.scrollWidth,e.hasNext=n.hasNext,e.hasPrev=n.hasPrev,null==t||t(n)}))},calculate:function(){var t=this.$refs.container,e=this.children()[0];return{left:t.scrollLeft,width:t.clientWidth,scrollWidth:t.scrollWidth,hasNext:t.scrollWidth>t.scrollLeft+t.clientWidth+2.5,hasPrev:function(){var n,i;if(0===t.scrollLeft)return!1;var o=t.getBoundingClientRect().left,l=null!==(n=null==e||null===(i=e.getBoundingClientRect())||void 0===i?void 0:i.left)&&void 0!==n?n:0;return Math.abs(o-l)>=2.5}()}}}});function o(t,e,n,i,o,l,r,a,s,c){"boolean"!=typeof r&&(s=a,a=r,r=!1);const d="function"==typeof n?n.options:n;let h;if(t&&t.render&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0,o&&(d.functional=!0)),i&&(d._scopeId=i),l?(h=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,s(t)),t&&t._registeredComponents&&t._registeredComponents.add(l)},d._ssrRegister=h):e&&(h=r?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),h)if(d.functional){const t=d.render;d.render=function(e,n){return h.call(n),t(e,n)}}else{const t=d.beforeCreate;d.beforeCreate=t?[].concat(t,h):[h]}return n}const l="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function r(t){return(t,e)=>function(t,e){const n=l?e.media||"default":t,i=s[n]||(s[n]={ids:new Set,styles:[]});if(!i.ids.has(t)){i.ids.add(t);let n=e.source;if(e.map&&(n+="\n/*# sourceURL="+e.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e.map))))+" */"),i.element||(i.element=document.createElement("style"),i.element.type="text/css",e.media&&i.element.setAttribute("media",e.media),void 0===a&&(a=document.head||document.getElementsByTagName("head")[0]),a.appendChild(i.element)),"styleSheet"in i.element)i.styles.push(n),i.element.styleSheet.cssText=i.styles.filter(Boolean).join("\n");else{const t=i.ids.size-1,e=document.createTextNode(n),o=i.element.childNodes;o[t]&&i.element.removeChild(o[t]),o.length?i.element.insertBefore(e,o[t]):i.element.appendChild(e)}}}(t,e)}let a;const s={};var c=o({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vue-horizontal",staticStyle:{position:"relative",display:"flex"}},[t.button&&t.hasPrev?n("div",{staticClass:"v-hl-btn v-hl-btn-prev",class:{"v-hl-btn-between":t.buttonBetween},attrs:{role:"button"},on:{click:function(e){return e.stopPropagation(),t.prev(e)}}},[t._t("btn-prev",[n("svg",{staticClass:"v-hl-svg",attrs:{viewBox:"0 0 24 24","aria-label":"horizontal scroll area navigate to previous button"}},[n("path",{attrs:{d:"m9.8 12 5 5a1 1 0 1 1-1.4 1.4l-5.7-5.7a1 1 0 0 1 0-1.4l5.7-5.7a1 1 0 0 1 1.4 1.4l-5 5z"}})])])],2):t._e(),t._v(" "),t.button&&t.hasNext?n("div",{staticClass:"v-hl-btn v-hl-btn-next",class:{"v-hl-btn-between":t.buttonBetween},attrs:{role:"button"},on:{click:function(e){return e.stopPropagation(),t.next(e)}}},[t._t("btn-next",[n("svg",{staticClass:"v-hl-svg",attrs:{viewBox:"0 0 24 24","aria-label":"horizontal scroll area navigate to next button"}},[n("path",{attrs:{d:"m14.3 12.1-5-5a1 1 0 0 1 1.4-1.4l5.7 5.7a1 1 0 0 1 0 1.4l-5.7 5.7a1 1 0 0 1-1.4-1.4l5-5z"}})])])],2):t._e(),t._v(" "),n("div",{ref:"container",staticClass:"v-hl-container",class:{"v-hl-responsive":t.responsive,"v-hl-scroll":t.scroll,"v-hl-snap-start":"start"===t.snap,"v-hl-snap-center":"center"===t.snap,"v-hl-snap-end":"end"===t.snap},on:{"&scroll":function(e){return t.onScroll(e)}}},[t._t("default")],2)])},staticRenderFns:[]},(function(t){t&&t("data-v-45080727_0",{source:".v-hl-btn[data-v-45080727]{position:absolute;align-self:center;z-index:1;top:0;bottom:0;display:flex;align-items:center;cursor:pointer}.v-hl-btn-prev[data-v-45080727]{left:0}.v-hl-btn-prev.v-hl-btn-between[data-v-45080727]{transform:translateX(-50%)}.v-hl-btn-next[data-v-45080727]{right:0}.v-hl-btn-next.v-hl-btn-between[data-v-45080727]{transform:translateX(50%)}.v-hl-svg[data-v-45080727]{width:40px;height:40px;margin:6px;padding:6px;border-radius:20px;box-sizing:border-box;background:#fff;color:#000;fill:currentColor;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.v-hl-container[data-v-45080727]{display:flex;width:100%;margin:0;padding:0;border:none;box-sizing:content-box;overflow-x:scroll;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.v-hl-container>*[data-v-45080727]{flex-shrink:0;box-sizing:border-box;min-height:1px}.v-hl-snap-start>*[data-v-45080727]{scroll-snap-align:start}.v-hl-snap-center>*[data-v-45080727]{scroll-snap-align:center}.v-hl-snap-end>*[data-v-45080727]{scroll-snap-align:end}.v-hl-container[data-v-45080727]:not(.v-hl-scroll){scrollbar-width:none;-ms-overflow-style:none;padding-bottom:30px;margin-bottom:-30px;clip-path:inset(0 0 30px 0)}.v-hl-container[data-v-45080727]:not(.v-hl-scroll)::-webkit-scrollbar{width:0!important;height:0!important}.v-hl-responsive>*[data-v-45080727]{width:100%;margin-right:24px}.v-hl-responsive[data-v-45080727]>:last-child{margin-right:0}@media (min-width:640px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 24px)/ 2)}}@media (min-width:768px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 48px)/ 3)}}@media (min-width:1024px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 72px)/ 4)}}@media (min-width:1280px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 96px)/ 5)}}",map:void 0,media:void 0})}),i,"data-v-45080727",!1,void 0,!1,r,void 0,void 0),d=function(t){d.installed||(d.installed=!0,t.component("VueHorizontal",c))},h={install:d},u=null;return"undefined"!=typeof window?u=window.Vue:"undefined"!=typeof global&&(u=global.Vue),u&&u.use(h),c.install=d,t.default=c,Object.defineProperty(t,"__esModule",{value:!0}),t}({},Vue);
\ No newline at end of file
diff --git a/src/renderer/js/vue-observe-visibility.min.js b/src/renderer/lib/vue-observe-visibility.min.js
similarity index 100%
rename from src/renderer/js/vue-observe-visibility.min.js
rename to src/renderer/lib/vue-observe-visibility.min.js
diff --git a/src/renderer/js/vue.dev.js b/src/renderer/lib/vue.dev.js
similarity index 100%
rename from src/renderer/js/vue.dev.js
rename to src/renderer/lib/vue.dev.js
diff --git a/src/renderer/js/vue.js b/src/renderer/lib/vue.js
similarity index 100%
rename from src/renderer/js/vue.js
rename to src/renderer/lib/vue.js
diff --git a/src/renderer/js/vuedraggable.umd.min.js b/src/renderer/lib/vuedraggable.umd.min.js
similarity index 100%
rename from src/renderer/js/vuedraggable.umd.min.js
rename to src/renderer/lib/vuedraggable.umd.min.js
diff --git a/src/renderer/js/vuex.min.js b/src/renderer/lib/vuex.min.js
similarity index 100%
rename from src/renderer/js/vuex.min.js
rename to src/renderer/lib/vuex.min.js
diff --git a/src/renderer/main/app.js b/src/renderer/main/app.js
new file mode 100644
index 00000000..a1b66680
--- /dev/null
+++ b/src/renderer/main/app.js
@@ -0,0 +1,32 @@
+import { app } from "./vueapp.js"
+import {CiderCache} from './cidercache.js'
+import {CiderFrontAPI} from './ciderfrontapi.js'
+import {simulateGamepad} from './gamepad.js'
+import {CiderAudio} from '../audio/audio.js'
+import {Events} from './events.js'
+import { wsapi } from "./wsapi_interop.js"
+import { MusicKitTools } from "./musickittools.js"
+import { spawnMica } from "./mica.js"
+
+
+// Define window objects
+window.app = app
+window.MusicKitTools = MusicKitTools
+window.CiderAudio = CiderAudio
+window.CiderCache = CiderCache
+window.CiderFrontAPI = CiderFrontAPI
+window.wsapi = wsapi
+
+// Mount Vue to #app
+app.$mount("#app")
+
+// Init CiderAudio
+if (app.cfg.advanced.AudioContext){
+ CiderAudio.init()
+}
+
+// Import gamepad support
+app.simulateGamepad = simulateGamepad
+app.spawnMica = spawnMica
+
+Events.InitEvents()
\ No newline at end of file
diff --git a/src/renderer/main/cidercache.js b/src/renderer/main/cidercache.js
new file mode 100644
index 00000000..c28550c1
--- /dev/null
+++ b/src/renderer/main/cidercache.js
@@ -0,0 +1,24 @@
+const CiderCache = {
+ async getCache(file) {
+ let cache = await ipcRenderer.sendSync("get-cache", file)
+ if (isJson(cache)) {
+ cache = JSON.parse(cache)
+ if (Object.keys(cache).length === 0) {
+ cache = false
+ }
+ } else {
+ cache = false
+ }
+ return cache
+ },
+ async putCache(file, data) {
+ console.log(`Caching ${file}`)
+ ipcRenderer.invoke("put-cache", {
+ file: file,
+ data: JSON.stringify(data)
+ })
+ return true
+ }
+}
+
+export {CiderCache}
\ No newline at end of file
diff --git a/src/renderer/main/ciderfrontapi.js b/src/renderer/main/ciderfrontapi.js
new file mode 100644
index 00000000..145bd770
--- /dev/null
+++ b/src/renderer/main/ciderfrontapi.js
@@ -0,0 +1,32 @@
+const CiderFrontAPI = {
+ Objects: {
+ MenuEntry: function () {
+ this.id = ""
+ this.name = ""
+ this.onClick = () => {
+ }
+ }
+ },
+ AddMenuEntry(entry) {
+ app.pluginMenuEntries.push(entry)
+ app.pluginInstalled = true
+ },
+ StyleSheets: {
+ Add(href) {
+ console.log("Adding stylesheet: " + href)
+ let id = uuidv4()
+ let link = document.createElement("link")
+ link.rel = "stylesheet/less"
+ link.type = "text/css"
+ link.href = href
+ link.setAttribute("css-id", id)
+ // insert the link before document.querySelector("#userTheme") in head
+ document.querySelector("head").insertBefore(link, document.querySelector("#userTheme"))
+ less.registerStylesheetsImmediately()
+ less.refresh(true, true, true)
+ return link
+ }
+ }
+}
+
+export {CiderFrontAPI}
\ No newline at end of file
diff --git a/src/renderer/main/events.js b/src/renderer/main/events.js
new file mode 100644
index 00000000..23236e41
--- /dev/null
+++ b/src/renderer/main/events.js
@@ -0,0 +1,74 @@
+const Events = {
+ InitEvents() {
+ const app = window.app
+ // Key binds
+ document.addEventListener('keydown', function (e) {
+ if (e.keyCode === 70 && e.ctrlKey) {
+ app.$refs.searchInput.focus()
+ app.$refs.searchInput.select()
+ }
+ });
+
+// add event listener for when window.location.hash changes
+ window.addEventListener("hashchange", function () {
+ app.appRoute(window.location.hash)
+ });
+
+ // Key bind to unjam MusicKit in case it fails: CTRL+F10
+
+ document.addEventListener('keydown', function (event) {
+ if (event.ctrlKey && event.keyCode == 121) {
+ try {
+ app.mk._services.mediaItemPlayback._currentPlayer.stop()
+ } catch (e) {
+ }
+ try {
+ app.mk._services.mediaItemPlayback._currentPlayer.destroy()
+ } catch (e) {
+ }
+ }
+ });
+
+ window.addEventListener("mouseup", (e) => {
+ if (e.button === 3) {
+ e.preventDefault()
+ app.navigateBack()
+ } else if (e.button === 4) {
+ e.preventDefault()
+ app.navigateForward()
+ }
+ });
+
+ document.addEventListener('keydown', function (event) {
+ if (event.ctrlKey && event.keyCode == 122) {
+ try {
+ ipcRenderer.send('detachDT', '')
+ } catch (e) {
+ }
+ }
+ });
+
+ // Hang Timer
+ app.hangtimer = setTimeout(() => {
+ if (confirm("Cider is not responding. Reload the app?")) {
+ window.location.reload()
+ }
+ }, 10000)
+
+// Refresh Focus
+ function refreshFocus() {
+ if (document.hasFocus() == false) {
+ app.windowFocus(false)
+ } else {
+ app.windowFocus(true)
+ }
+ setTimeout(refreshFocus, 200);
+ }
+
+ app.getHTMLStyle()
+
+ refreshFocus();
+ }
+}
+
+export {Events}
\ No newline at end of file
diff --git a/src/renderer/main/gamepad.js b/src/renderer/main/gamepad.js
new file mode 100644
index 00000000..a902cd5f
--- /dev/null
+++ b/src/renderer/main/gamepad.js
@@ -0,0 +1,327 @@
+function simulateGamepad () {
+ const app = window.app
+ app.chrome.showCursor = true
+ let cursorPos = [0, 0];
+ let intTabIndex = 0
+ const cursorSpeedPvt = 8
+ const cursorSize = 16
+ let scrollSpeed = 8
+ let buttonPressDelay = 500
+ let stickDeadZone = 0.2
+ let scrollGroup = null
+ let scrollGroupY = null
+ let elementFocusEnabled = true
+ let start;
+
+ let cursorSpeed = cursorSpeedPvt
+
+ let lastButtonPress = {
+
+ }
+
+ var sounds = {
+ Confirm: new Audio("./sounds/confirm.ogg"),
+ Menu: new Audio("./sounds/btn1.ogg"),
+ Hover: new Audio("./sounds/hover.ogg")
+ }
+
+ let element = document.elementFromPoint(0, 0)
+ let elementType = 0
+
+ function appLoop() {
+ var gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);
+ if (!gamepads) {
+ return;
+ }
+
+ var gp = gamepads[0];
+
+ // LEFT STICK
+ if (gp.axes[0] > stickDeadZone) {
+ cursorPos[0] += (gp.axes[0] * cursorSpeed)
+ } else if (gp.axes[0] < -stickDeadZone) {
+ cursorPos[0] += (gp.axes[0] * cursorSpeed)
+ }
+
+ if (gp.axes[1] > stickDeadZone) {
+ cursorPos[1] += (gp.axes[1] * cursorSpeed)
+ } else if (gp.axes[1] < -stickDeadZone) {
+ cursorPos[1] += (gp.axes[1] * cursorSpeed)
+ }
+
+ if (cursorPos[0] < cursorSize) {
+ cursorPos[0] = cursorSize
+ }
+ if (cursorPos[1] < cursorSize) {
+ cursorPos[1] = cursorSize
+ }
+ if (cursorPos[0] > window.innerWidth - cursorSize) {
+ cursorPos[0] = window.innerWidth - cursorSize
+ }
+ if (cursorPos[1] > window.innerHeight - cursorSize) {
+ cursorPos[1] = window.innerHeight - cursorSize
+ }
+
+
+ // RIGHT STICK.
+ if (scrollGroupY) {
+ if (gp.axes[3] > stickDeadZone) {
+ $(scrollGroupY).scrollTop($(scrollGroupY).scrollTop() + (gp.axes[3] * scrollSpeed))
+ elementFocusEnabled = false
+ } else if (gp.axes[3] < -stickDeadZone) {
+ $(scrollGroupY).scrollTop($(scrollGroupY).scrollTop() + (gp.axes[3] * scrollSpeed))
+ elementFocusEnabled = false
+ } else {
+ elementFocusEnabled = true
+ }
+ }
+
+
+
+ if (scrollGroup) {
+ if (gp.axes[2] > stickDeadZone) {
+ $(scrollGroup).scrollLeft($(scrollGroup).scrollLeft() + (gp.axes[2] * scrollSpeed))
+ elementFocusEnabled = false
+ } else if (gp.axes[2] < -stickDeadZone) {
+ $(scrollGroup).scrollLeft($(scrollGroup).scrollLeft() + (gp.axes[2] * scrollSpeed))
+ elementFocusEnabled = false
+ } else {
+ elementFocusEnabled = true
+ }
+ }
+
+
+ $(".cursor").css({
+ top: cursorPos[1] + "px",
+ left: cursorPos[0] + "px",
+ display: "block"
+ })
+
+ // A BUTTON
+ if (gp.buttons[0].pressed) {
+ if (!lastButtonPress["A"]) {
+ lastButtonPress["A"] = 0
+ }
+ if (Date.now() - lastButtonPress["A"] > buttonPressDelay) {
+ lastButtonPress["A"] = Date.now()
+ sounds.Confirm.play()
+ if (elementType == 0) {
+ document.activeElement.dispatchEvent(new Event("click"))
+ document.activeElement.dispatchEvent(new Event("controller-click"))
+ } else {
+ element.dispatchEvent(new Event("click"))
+ element.dispatchEvent(new Event("controller-click"))
+ }
+ }
+ }
+
+ // B BUTTON
+ if (gp.buttons[1].pressed) {
+
+ if (!lastButtonPress["B"]) {
+ lastButtonPress["B"] = 0
+ }
+ if (Date.now() - lastButtonPress["B"] > buttonPressDelay) {
+ lastButtonPress["B"] = Date.now()
+ if (elementType == 0) {
+ document.activeElement.dispatchEvent(new Event("contextmenu"))
+ setTimeout(() => {
+ if ($(".menu-option").length > 0) {
+ let bounds = $(".menu-option")[0].getBoundingClientRect()
+ cursorPos[0] = bounds.left + (bounds.width / 2)
+ cursorPos[1] = bounds.top + (bounds.height / 2)
+ }
+ }, 100)
+ } else {
+ element.dispatchEvent(new Event("contextmenu"))
+ }
+ }
+
+ }
+
+ // right bumper
+ if (gp.buttons[5].pressed) {
+ if (!lastButtonPress["RB"]) {
+ lastButtonPress["RB"] = 0
+ }
+ if (Date.now() - lastButtonPress["RB"] > buttonPressDelay) {
+ lastButtonPress["RB"] = Date.now()
+ app.navigateForward()
+
+ }
+ }
+
+ // left bumper
+ if (gp.buttons[4].pressed) {
+ if (!lastButtonPress["LB"]) {
+ lastButtonPress["LB"] = 0
+ }
+ if (Date.now() - lastButtonPress["LB"] > buttonPressDelay) {
+ lastButtonPress["LB"] = Date.now()
+ app.navigateBack()
+
+ }
+ }
+
+
+
+ // cursor hover
+ if (elementFocusEnabled) {
+ element = document.elementFromPoint(cursorPos[0], cursorPos[1])
+ }
+
+ if (element) {
+
+ let closest = element.closest("[tabindex], input, button, a")
+
+ // VERT SCROLL
+ let scrollGroupCloY = element.closest(`[scrollaxis="y"]`)
+ if (scrollGroupCloY) {
+ scrollGroupY = scrollGroupCloY
+ }
+
+
+ // HOZ SCROLL
+ let scrollGroupClo = element.closest(".v-hl-container")
+
+ if (scrollGroupClo) {
+ if (scrollGroupClo.classList.contains("v-hl-container")) {
+ scrollGroup = scrollGroupClo
+ scrollGroup.style["scroll-snap-type"] = "unset"
+ } else {
+ scrollGroup.style["scroll-snap-type"] = ""
+ scrollGroup = null
+ }
+ }
+
+ if (closest) {
+ elementType = 0
+ closest.focus()
+ } else {
+ if (closest) {
+ closest.blur()
+ }
+ elementType = 1
+ element.focus()
+ }
+ cursorSpeed = cursorSpeedPvt
+ if (!element.classList.contains("app-chrome")
+ && !element.classList.contains("app-content")) {
+ cursorSpeed = cursorSpeedPvt
+ }
+ // console.log($._data($(element), "events"))
+ } else {
+ cursorSpeed = 12
+ }
+ // console.log(gp.axes[0], gp.axes[1])
+ start = requestAnimationFrame(appLoop);
+ }
+
+// controller pairing
+ notyf.error("Press the button on your controller to pair it to Cider.")
+ window.addEventListener("gamepadconnected", function (e) {
+ console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.",
+ e.gamepad.index, e.gamepad.id,
+ e.gamepad.buttons.length, e.gamepad.axes.length);
+ notyf.success("Pairing successful!")
+ appLoop()
+ }, { once: true });
+
+ document.addEventListener("keydown", (e) => {
+ sounds.Confirm.currentTime = 0
+ sounds.Menu.currentTime = 0
+ sounds.Hover.currentTime = 0
+ let tabbable = $("[tabindex]")
+ console.log(e.key)
+ switch (e.key) {
+ default:
+ break;
+ case "ArrowLeft":
+ e.preventDefault()
+
+ cursorPos[0] -= cursorSpeed
+ break;
+ case "ArrowRight":
+ e.preventDefault()
+
+ cursorPos[0] += cursorSpeed
+ break;
+ case "ArrowUp":
+ e.preventDefault()
+
+ cursorPos[1] -= cursorSpeed
+ // sounds.Hover.play()
+ // if(intTabIndex <= 0) {
+ // intTabIndex = 0
+ // }else{
+ // intTabIndex--
+ // }
+ // $(tabbable[intTabIndex]).focus()
+ // $("#app-content").scrollTop($(document.activeElement).offset().top)
+ break;
+ case "ArrowDown":
+ e.preventDefault()
+
+ cursorPos[1] += cursorSpeed
+ // if(intTabIndex < tabbable.length) {
+ // intTabIndex++
+ // }else{
+ // intTabIndex = tabbable.length
+ // }
+ // $(tabbable[intTabIndex]).focus()
+ // $("#app-content").scrollTop($(document.activeElement).offset().top)
+ break;
+ case "c":
+ app.resetState()
+ break;
+ case "x":
+ // set cursorPos to the top right of the screen
+ // sounds.Menu.play()
+ if (elementType == 0) {
+ document.activeElement.dispatchEvent(new Event("contextmenu"))
+ } else {
+ element.dispatchEvent(new Event("contextmenu"))
+ }
+
+ e.preventDefault()
+ break;
+ case "z":
+ sounds.Confirm.play()
+ if (elementType == 0) {
+ document.activeElement.dispatchEvent(new Event("click"))
+ document.activeElement.dispatchEvent(new Event("controller-click"))
+ } else {
+ element.dispatchEvent(new Event("click"))
+ element.dispatchEvent(new Event("controller-click"))
+ }
+
+ e.preventDefault()
+ break;
+ }
+
+ $(".cursor").css({
+ top: cursorPos[1] + "px",
+ left: cursorPos[0] + "px"
+ })
+ function lerp(a, b, n) {
+ return (1 - n) * a + n * b
+ }
+
+
+ element = document.elementFromPoint(cursorPos[0], cursorPos[1])
+
+ if (element) {
+ let closest = element.closest("[tabindex], input, button, a")
+ if (closest) {
+ elementType = 0
+ closest.focus()
+ } else {
+ elementType = 1
+ element.focus()
+ }
+ }
+ console.log(element)
+ });
+}
+
+export {simulateGamepad}
\ No newline at end of file
diff --git a/src/renderer/main/mica.js b/src/renderer/main/mica.js
new file mode 100644
index 00000000..a27161f7
--- /dev/null
+++ b/src/renderer/main/mica.js
@@ -0,0 +1,87 @@
+async function spawnMica() {
+ if(typeof window.micaSpawned !== "undefined") {
+ return
+ }else{
+ window.micaSpawned = true
+ }
+ const micaDiv = document.createElement('div');
+ const blurIterations = 6
+ micaDiv.id = 'micaEffect';
+ micaDiv.style.position = "fixed"
+ micaDiv.style.top = "0"
+ micaDiv.style.left = "0"
+ micaDiv.style.right = "0"
+ micaDiv.style.bottom = "0"
+ micaDiv.style.zIndex = -1
+
+ let lastScreenX;
+ let lastScreenY;
+ let lastScreenWidth;
+ let lastScreenHeight;
+
+ let imgSrc = await ipcRenderer.sendSync("get-wallpaper")
+ let canvas = document.createElement('canvas');
+ let ctx = canvas.getContext('2d');
+ let img = new Image();
+ img.src = imgSrc;
+ img.onload = function () {
+ canvas.width = img.width;
+ canvas.height = img.height;
+ ctx.drawImage(img, 0, 0);
+ for (let i = 0; i < blurIterations; i++) {
+ StackBlur.canvasRGB(canvas, 0, 0, img.width, img.height, 128);
+ }
+ let imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
+ micaDiv.style.backgroundImage = `url(${canvas.toDataURL()})`;
+ document.body.appendChild(micaDiv);
+ // on animation finished set animation to unset
+ micaDiv.addEventListener('animationend', function () {
+ micaDiv.style.opacity = '1';
+ micaDiv.style.animation = 'unset';
+ })
+ }
+
+
+ function onScreenMove(cb) {
+ function detectScreenMove() {
+ if (lastScreenY !== window.screenY || lastScreenX !== window.screenX) {
+ lastScreenY = window.screenY;
+ lastScreenX = window.screenX;
+ cb();
+ }
+ // window size change
+ if (lastScreenWidth !== window.innerWidth || lastScreenHeight !== window.innerHeight) {
+ lastScreenWidth = window.innerWidth;
+ lastScreenHeight = window.innerHeight;
+ cb();
+ }
+ if (true) {
+ requestAnimationFrame(detectScreenMove);
+ }
+ }
+
+ if (true) {
+ requestAnimationFrame(detectScreenMove);
+ }
+ }
+
+ onScreenMove(function () {
+ const screenHeight = window.screen.height;
+ const screenWidth = window.screen.width;
+ const windowHeight = window.innerHeight;
+ const windowWidth = window.innerWidth;
+ const ratio = windowWidth / windowHeight;
+ const x = window.screenX;
+ const y = window.screenY;
+ micaDiv.style.backgroundSize = `${screenWidth}px ${screenHeight}px`;
+ // micaDiv.style.backgroundPosition = `-${x}px -${y}px`;
+ if (x < 0) {
+ micaDiv.style.backgroundPosition = `${screenWidth + x}px -${y}px`;
+ } else {
+ micaDiv.style.backgroundPosition = `-${x}px -${y}px`;
+ }
+ });
+ return true
+}
+
+export {spawnMica}
\ No newline at end of file
diff --git a/src/renderer/main/musickittools.js b/src/renderer/main/musickittools.js
new file mode 100644
index 00000000..8967f4a9
--- /dev/null
+++ b/src/renderer/main/musickittools.js
@@ -0,0 +1,42 @@
+const MusicKitTools = {
+ async v3Continuous ({
+ href,
+ options = {},
+ reqOptions = {},
+ onProgress = () => {},
+ onError = () => {},
+ onSuccess = () => {}
+ } = {}) {
+ let returnData = []
+ async function sendReq(href, options) {
+ const response = await app.mk.api.v3.music(href, options).catch(error => onError)
+
+ returnData = returnData.concat(response.data.data)
+ if(response.data.next) {
+ onProgress({
+ response: response,
+ total: returnData.length
+ })
+ try {
+ await sendReq(response.data.next, options)
+ }catch(e){
+ await sendReq(response.data.next, options)
+ }
+ }
+ }
+
+ await sendReq(href, options)
+ onSuccess(returnData)
+ return returnData
+ },
+ getHeader() {
+ return new Headers({
+ Authorization: 'Bearer ' + MusicKit.getInstance().developerToken,
+ Accept: 'application/json',
+ 'Content-Type': 'application/json',
+ 'Music-User-Token': '' + MusicKit.getInstance().musicUserToken
+ });
+ }
+}
+
+export { MusicKitTools }
\ No newline at end of file
diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js
new file mode 100644
index 00000000..eefa8f21
--- /dev/null
+++ b/src/renderer/main/vueapp.js
@@ -0,0 +1,4021 @@
+import { store } from './vuex-store.js';
+
+Vue.use(VueHorizontal);
+Vue.use(VueObserveVisibility);
+Vue.use(BootstrapVue)
+/* @namespace */
+const app = new Vue({
+ store: store,
+ data: {
+ version: ipcRenderer.sendSync("get-version"),
+ appMode: "player",
+ ipcRenderer: ipcRenderer,
+ cfg: ipcRenderer.sendSync("getStore"),
+ isDev: ipcRenderer.sendSync("is-dev"),
+ drawertest: false,
+ platform: "",
+ mk: {},
+ quickPlayQuery: "",
+ pluginInstalled: false,
+ pluginMenuEntries: [],
+ lz: ipcRenderer.sendSync("get-i18n", "en_US"),
+ lzListing: ipcRenderer.sendSync("get-i18n-listing"),
+ search: {
+ term: "",
+ hints: [],
+ showHints: false,
+ results: {},
+ resultsSocial: {},
+ limit: 10
+ },
+ fullscreenLyrics: false,
+ playerLCD: {
+ playbackDuration: 0,
+ desiredDuration: 0,
+ userInteraction: false
+ },
+ drawer: {
+ open: false,
+ panel: ""
+ },
+ browsepage: [],
+ listennow: [],
+ madeforyou: [],
+ radio: {
+ personal: []
+ },
+ mklang: 'en',
+ webview: {
+ url: "",
+ title: "",
+ loading: false
+ },
+ showingPlaylist: [],
+ appleCurator: [],
+ artistPage: {
+ data: {},
+ },
+ library: {
+ backgroundNotification: {
+ show: false,
+ message: "",
+ total: 0,
+ progress: 0
+ },
+ songs: {
+ sortingOptions: {
+ "albumName": "0",
+ "artistName": "0",
+ "name": "0",
+ "genre": "0",
+ "releaseDate": "0",
+ "durationInMillis": "0",
+ "dateAdded": "0"
+ },
+ sorting: "name",
+ sortOrder: "asc",
+ listing: [],
+ meta: { total: 0, progress: 0 },
+ search: "",
+ displayListing: [],
+ downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library
+ },
+ albums: {
+ sortingOptions: {
+ "albumName": "0",
+ "artistName": "0",
+ "name": "0",
+ "genre": "0"
+ },
+ viewAs: 'covers',
+ sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page
+ sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page
+ listing: [],
+ meta: { total: 0, progress: 0 },
+ search: "",
+ displayListing: [],
+ downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library
+ },
+ artists: {
+ sortingOptions: {
+ "artistName": "0",
+ "name": "0",
+ "genre": "0",
+ "releaseDate": "0"
+ },
+ viewAs: 'covers',
+ sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page
+ sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page
+ listing: [],
+ meta: { total: 0, progress: 0 },
+ search: "",
+ displayListing: [],
+ downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library
+ },
+ },
+ playlists: {
+ listing: [],
+ details: {},
+ loadingState: 0, // 0 loading, 1 loaded, 2 error
+ id: "",
+ trackMapping: {}
+ },
+ webremoteurl: "",
+ webremoteqr: "",
+ mxmtoken: "",
+ mkIsReady: false,
+ playerReady: false,
+ animateBackground: false,
+ currentArtUrl: '',
+ currentArtUrlRaw: '',
+ lyricon: false,
+ currentTrackID: '',
+ currentTrackIDBG: '',
+ lyrics: [],
+ currentLyricsLine: 0,
+ lyriccurrenttime: 0,
+ richlyrics: [],
+ lyricsMediaItem: {},
+ lyricsDebug: {
+ current: 0,
+ start: 0,
+ end: 0
+ },
+ v3: {
+ requestBody: {
+ platform: "web"
+ }
+ },
+ tmpHeight: '',
+ tmpWidth: '',
+ tmpVar: [],
+ notification: false,
+ chrome: {
+ contentScrollPosY: 0,
+ appliedTheme: {
+ location: "",
+ info: {}
+ },
+ desiredPageTransition: "wpfade_transform",
+ hideUserInfo: ipcRenderer.sendSync("is-dev") || false,
+ artworkReady: false,
+ userinfo: {
+ "id": "",
+ "attributes": {
+ "name": "Cider User",
+ "handle": "CiderUser",
+ "artwork": { "url": "./assets/logocut.png" }
+ }
+ },
+ menuOpened: false,
+ maximized: false,
+ drawerOpened: false,
+ drawerState: "queue",
+ topChromeVisible: true,
+ progresshover: false,
+ windowControlPosition: "right",
+ contentAreaScrolling: true,
+ showCursor: false
+ },
+ collectionList: {
+ response: {},
+ title: "",
+ type: ""
+ },
+ prevButtonBackIndicator: false,
+ currentSongInfo: {},
+ page: "",
+ pageHistory: [],
+ songstest: false,
+ hangtimer: null,
+ selectedMediaItems: [],
+ routes: ["browse", "listen_now", "radio"],
+ musicBaseUrl: "https://api.music.apple.com/",
+ modals: {
+ addToPlaylist: false,
+ spatialProperties: false,
+ qrcode: false,
+ equalizer: false,
+ audioSettings: false,
+ pluginMenu: false,
+ audioControls: false,
+ showPlaylist: false,
+ castMenu: false
+ },
+ socialBadges: {
+ badgeMap: {},
+ version: "",
+ mediaItems: [],
+ mediaItemDLState: 0 // 0 = not started, 1 = in progress, 2 = complete
+ },
+ menuPanel: {
+ visible: false,
+ event: null,
+ content: {
+ name: "",
+ items: {},
+ headerItems: {}
+ }
+ },
+ pauseButtonTimer: null,
+ activeCasts: [],
+ pluginPages: {
+ page: "hello-world",
+ pages: [],
+ }
+ },
+ watch: {
+ cfg: {
+ handler: function (val, oldVal) {
+ console.log(`cfg changed from ${oldVal} to ${val}`);
+ ipcRenderer.send("setStore", val);
+ },
+ deep: true
+ },
+ page: () => {
+ document.getElementById("app-content").scrollTo(0, 0);
+ app.resetState()
+ },
+ showingPlaylist: () => {
+ if (!app.modals.showPlaylist) {
+ document.getElementById("app-content").scrollTo(0, 0);
+ app.resetState()
+ }
+ },
+ artistPage: () => {
+ document.getElementById("app-content").scrollTo(0, 0);
+ app.resetState()
+ }
+ },
+ methods: {
+ setTimeout(func, time) {
+ return setTimeout(func, time);
+ },
+ songLinkShare(amUrl) {
+ notyf.open({ type: "info", className: "notyf-info", message: app.getLz('term.song.link.generate') })
+ let self = this
+ let httpRequest = new XMLHttpRequest();
+ httpRequest.open('GET', `https://api.song.link/v1-alpha.1/links?url=${amUrl}&userCountry=US`, true);
+ httpRequest.send();
+ httpRequest.onreadystatechange = function () {
+ if (httpRequest.readyState === 4) {
+ if (httpRequest.status === 200) {
+ let response = JSON.parse(httpRequest.responseText);
+ console.log(response);
+ self.copyToClipboard(response.pageUrl)
+ } else {
+ console.log('There was a problem with the request.');
+ notyf.error(app.getLz('term.requestError'))
+ }
+ }
+ }
+ },
+ mainMenuVisibility(val) {
+ if (val) {
+ (this.mk.isAuthorized) ? this.chrome.menuOpened = !this.chrome.menuOpened : false;
+ if (!this.mk.isAuthorized) {
+ this.mk.authorize()
+ }
+ } else {
+ setTimeout(() => {
+ this.chrome.menuOpened = false
+ }, 100)
+ }
+ },
+ stringTemplateParser(expression, valueObj) {
+ const templateMatcher = /{{\s?([^{}\s]*)\s?}}/g;
+ let text = expression.replace(templateMatcher, (substring, value, index) => {
+ value = valueObj[value];
+ return value;
+ });
+ return text
+ // stringTemplateParser('my name is {{name}} and age is {{age}}', {name: 'Tom', age:100})
+ },
+ async setLz(lang) {
+ if (lang == "") {
+ lang = this.cfg.general.language
+ }
+ this.lz = ipcRenderer.sendSync("get-i18n", lang)
+ this.mklang = await this.MKJSLang()
+ try {
+ this.listennow.timestamp = 0;
+ this.browsepage.timestamp = 0;
+ } catch (e) { }
+ },
+ /**
+ * Grabs translation for localization.
+ * @param {string} message - The key to grab the translated term
+ * @param {object} options - Optional options
+ * @author booploops#7139
+ * @memberOf app
+ */
+ getLz(message, options = {}) {
+ if (this.lz[message]) {
+ if (options["count"]) {
+ if (typeof this.lz[message] === "object") {
+ let type = window.fastPluralRules.getPluralFormNameForCardinalByLocale(this.cfg.general.language.replace("_", "-"), options["count"]);
+ return this.lz[message][type] ?? ((this.lz[message])[Object.keys(this.lz[message])[0]] ?? this.lz[message])
+ } else {
+ // fallback English plural forms ( old i18n )
+ if (options["count"] > 1) {
+ return this.lz[message + "s"] ?? this.lz[message]
+ } else {
+ return this.lz[message] ?? this.lz[message + "s"]
+ }
+ }
+ } else if (typeof this.lz[message] === "object") {
+ return (this.lz[message])[Object.keys(this.lz[message])[0]]
+ }
+ return this.lz[message]
+ } else {
+ return message
+ }
+ },
+ setLzManual() {
+ app.$data.library.songs.sortingOptions = {
+ "albumName": app.getLz('term.sortBy.album'),
+ "artistName": app.getLz('term.sortBy.artist'),
+ "name": app.getLz('term.sortBy.name'),
+ "genre": app.getLz('term.sortBy.genre'),
+ "releaseDate": app.getLz('term.sortBy.releaseDate'),
+ "durationInMillis": app.getLz('term.sortBy.duration'),
+ "dateAdded": app.getLz('term.sortBy.dateAdded')
+ }
+
+ app.$data.library.albums.sortingOptions = {
+ "albumName": app.getLz('term.sortBy.album'),
+ "artistName": app.getLz('term.sortBy.artist'),
+ "name": app.getLz('term.sortBy.name'),
+ "genre": app.getLz('term.sortBy.genre')
+ }
+
+ app.$data.library.artists.sortingOptions = {
+ "artistName": app.getLz('term.sortBy.artist'),
+ "name": app.getLz('term.sortBy.name'),
+ "genre": app.getLz('term.sortBy.genre'),
+ "releaseDate": app.getLz('term.sortBy.releaseDate')
+ }
+ },
+ async showSocialListeningTo() {
+ let contentIds = Object.keys(app.socialBadges.badgeMap)
+ app.showCollection({ data: this.socialBadges.mediaItems }, "Friends Listening To", "albums")
+ if (this.socialBadges.mediaItemDLState == 1 || this.socialBadges.mediaItemDLState == 2) {
+ return
+ }
+ this.socialBadges.mediaItemDLState = 2
+ await asyncForEach(contentIds, async (item) => {
+ try {
+ let type = "albums"
+ if (item.includes("pl.")) {
+ type = "playlists"
+ }
+ if (item.includes("ra.")) {
+ type = "stations"
+ }
+ let found = await app.mk.api.v3.music(`/v1/catalog/us/${type}/${item}`)
+ this.socialBadges.mediaItems.push(found.data.data[0])
+ } catch (e) {
+
+ }
+ })
+ },
+ async openAppleMusicURL(url) {
+ let properties = MusicKit.formattedMediaURL(url)
+ let item = {
+ id: properties.contentId,
+ attributes: {
+ playParams: {
+ id: properties.contentId,
+ kind: properties.kind,
+ }
+ },
+ type: properties.kind,
+ kind: properties.kind
+ }
+ app.routeView(item)
+ },
+ saveFile(fileName, urlFile) {
+ let a = document.createElement("a");
+ a.style = "display: none";
+ document.body.appendChild(a);
+ a.href = urlFile;
+ a.download = fileName;
+ a.click();
+ window.URL.revokeObjectURL(url);
+ a.remove();
+ },
+ async showMenuPanel(data, event) {
+ app.menuPanel.visible = true;
+ app.menuPanel.content.name = data.name ?? "";
+ app.menuPanel.content.items = data.items ?? {};
+ app.menuPanel.content.headerItems = data.headerItems ?? {};
+ if (event) {
+ app.menuPanel.event = event;
+ }
+ },
+ async getSvgIcon(url) {
+ let response = await fetch(url);
+ let data = await response.text();
+ return data;
+ },
+ getSocialBadges(cb = () => {
+ }) {
+ let self = this
+ try {
+ app.mk.api.v3.music("/v1/social/badging-map").then(data => {
+ self.socialBadges.badgeMap = data.data.results.badgingMap
+ cb(data.data.results.badgingMap)
+ })
+ } catch (ex) {
+ this.socialBadges.badgeMap = {}
+ }
+ },
+ addFavorite(id, type) {
+ this.cfg.home.favoriteItems.push({
+ id: id,
+ type: type
+ });
+ },
+ modularUITest(val = false) {
+ this.fullscreenLyrics = val;
+ if (val) {
+ document.querySelector("#app-main").classList.add("modular-fs")
+ } else {
+ document.querySelector("#app-main").classList.remove("modular-fs")
+ }
+ },
+ navigateBack() {
+ this.chrome.desiredPageTransition = "wpfade_transform_backwards"
+ return new Promise((resolve, reject) => {
+ history.back()
+ setTimeout(() => {
+
+
+ resolve(this.chrome.desiredPageTransition = "wpfade_transform")
+ }, 100)
+ })
+ },
+ navigateForward() {
+ history.forward()
+ },
+ getHTMLStyle() {
+ // document.querySelector("html").style.background = "#222";
+ document.querySelector("body").classList.add("notransparency")
+ },
+ resetState() {
+ this.menuPanel.visible = false;
+ app.selectedMediaItems = [];
+ this.chrome.contentAreaScrolling = true
+ for (let key in app.modals) {
+ app.modals[key] = false;
+ }
+ },
+ promptAddToPlaylist() {
+ app.modals.addToPlaylist = true;
+ },
+ async addSelectedToNewPlaylist() {
+ let self = this
+ let pl_items = []
+ for (let i = 0; i < self.selectedMediaItems.length; i++) {
+ if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") {
+ self.selectedMediaItems[i].kind = "songs"
+ pl_items.push({
+ id: self.selectedMediaItems[i].id,
+ type: self.selectedMediaItems[i].kind
+ })
+ } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) {
+ self.selectedMediaItems[i].kind = "albums"
+ let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`);
+ let ids = res.data.data.map(function (i) {
+ return { id: i.id, type: i.type }
+ })
+ pl_items = pl_items.concat(ids)
+ } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") {
+ self.selectedMediaItems[i].kind = "library-songs"
+ pl_items.push({
+ id: self.selectedMediaItems[i].id,
+ type: self.selectedMediaItems[i].kind
+ })
+ } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) {
+ self.selectedMediaItems[i].kind = "library-albums"
+ let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`);
+ let ids = res.data.data.map(function (i) {
+ return { id: i.id, type: i.type }
+ })
+ pl_items = pl_items.concat(ids)
+ } else {
+ pl_items.push({
+ id: self.selectedMediaItems[i].id,
+ type: self.selectedMediaItems[i].kind
+ })
+ }
+ }
+ this.modals.addToPlaylist = false
+ app.newPlaylist(app.getLz('term.newPlaylist'), pl_items)
+ },
+ async addSelectedToPlaylist(playlist_id) {
+ let self = this
+ let pl_items = []
+ for (let i = 0; i < self.selectedMediaItems.length; i++) {
+ if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") {
+ self.selectedMediaItems[i].kind = "songs"
+ pl_items.push({
+ id: self.selectedMediaItems[i].id,
+ type: self.selectedMediaItems[i].kind
+ })
+ } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) {
+ self.selectedMediaItems[i].kind = "albums"
+ let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`);
+ let ids = res.data.data.map(function (i) {
+ return { id: i.id, type: i.type }
+ })
+ pl_items = pl_items.concat(ids)
+ } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") {
+ self.selectedMediaItems[i].kind = "library-songs"
+ pl_items.push({
+ id: self.selectedMediaItems[i].id,
+ type: self.selectedMediaItems[i].kind
+ })
+ } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) {
+ self.selectedMediaItems[i].kind = "library-albums"
+ let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`);
+ let ids = res.data.data.map(function (i) {
+ return { id: i.id, type: i.type }
+ })
+ pl_items = pl_items.concat(ids)
+ } else {
+ pl_items.push({
+ id: self.selectedMediaItems[i].id,
+ type: self.selectedMediaItems[i].kind
+ })
+ }
+
+ }
+ this.modals.addToPlaylist = false
+ await app.mk.api.v3.music(
+ `/v1/me/library/playlists/${playlist_id}/tracks`, {}, {
+ fetchOptions: {
+ method: "POST",
+ body: JSON.stringify({
+ data: pl_items
+ })
+ }
+ }
+ ).then(() => {
+ if (this.page == 'playlist_' + this.showingPlaylist.id) {
+ this.getPlaylistFromID(this.showingPlaylist.id, true)
+ }
+ })
+ },
+ async init() {
+ let self = this
+ if (this.cfg.visual.theme != "default.less" && this.cfg.visual.theme != "") {
+ this.setTheme(this.cfg.visual.theme)
+ }
+
+ this.setLz(this.cfg.general.language)
+ this.setLzManual()
+ clearTimeout(this.hangtimer)
+ this.mk = MusicKit.getInstance()
+ let needsReload = (typeof localStorage["music.ampwebplay.media-user-token"] == "undefined")
+ this.mk.authorize().then(() => {
+ self.mkIsReady = true
+ if (needsReload) {
+ document.location.reload()
+ }
+ })
+ this.$forceUpdate()
+ if (this.isDev) {
+ this.mk.privateEnabled = true
+ // Hide UserInfo if Dev mode
+ } else {
+ // Get Hide User from Settings
+ this.chrome.hideUserInfo = !this.cfg.visual.showuserinfo
+ this.mk.privateEnabled = this.cfg.general.privateEnabled
+ }
+ if (this.cfg.visual.hw_acceleration == "disabled") {
+ document.body.classList.add("no-gpu")
+ }
+ this.mk._services.timing.mode = 0
+ this.platform = ipcRenderer.sendSync('cider-platform');
+
+ this.mklang = await this.MKJSLang()
+
+ try {
+ // Set profile name
+ this.chrome.userinfo = (await app.mk.api.v3.music(`/v1/me/social-profile`)).data.data[0]
+ // check if this.chrome.userinfo.attributes.artwork exists
+ if (this.chrome.userinfo.attributes.artwork) {
+ document.documentElement.style
+ .setProperty('--cvar-userprofileimg', `url("${this.getMediaItemArtwork(this.chrome.userinfo.attributes.artwork.url)}")`);
+ }
+ } catch (err) {
+ }
+
+ this.mk._bag.features['seamless-audio-transitions'] = this.cfg.audio.seamless_audio
+
+ // API Fallback
+ if (!this.chrome.userinfo) {
+ this.chrome.userinfo = {
+ "id": "",
+ "attributes": {
+ "name": "Cider User",
+ "handle": "CiderUser",
+ "artwork": { "url": "./assets/logocut.png" }
+ }
+ }
+ }
+ MusicKitInterop.init()
+ // Set the volume
+
+ // Check the value of this.cfg.audio.muted
+ if (!this.cfg.audio.muted) {
+ // Set the mk.volume to the last stored volume data
+ this.mk.volume = this.cfg.audio.volume
+ } else if (this.cfg.audio.muted) {
+ // Set mk.volume to -1 (setting to 0 wont work, so temp solution setting to -1)
+ this.mk.volume = -1;
+ }
+ // ipcRenderer.invoke('getStoreValue', 'audio.volume').then((value) => {
+ // self.mk.volume = value
+ // })
+
+ // load cached library
+ let librarySongs = await CiderCache.getCache("library-songs")
+ let libraryAlbums = await CiderCache.getCache("library-albums")
+ if (librarySongs) {
+ this.library.songs.listing = librarySongs
+ this.library.songs.displayListing = this.library.songs.listing
+ }
+ if (libraryAlbums) {
+ this.library.albums.listing = libraryAlbums
+ this.library.albums.displayListing = this.library.albums.listing
+ }
+
+
+ if (typeof MusicKit.PlaybackBitrate[app.cfg.audio.quality] !== "string") {
+ app.mk.bitrate = MusicKit.PlaybackBitrate[app.cfg.audio.quality]
+ } else {
+ app.mk.bitrate = 256
+ app.cfg.audio.quality = "HIGH"
+ }
+
+ switch (this.cfg.general.resumeOnStartupBehavior) {
+ default:
+ case "local":
+ // load last played track
+ try {
+ let lastItem = window.localStorage.getItem("currentTrack")
+ let time = window.localStorage.getItem("currentTime")
+ let queue = window.localStorage.getItem("currentQueue")
+ if (lastItem != null) {
+ lastItem = JSON.parse(lastItem)
+ let kind = lastItem.attributes.playParams.kind;
+ let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
+ app.mk.setQueue({
+ [truekind]: [lastItem.attributes.playParams.id],
+ parameters: { l: app.mklang }
+ })
+ app.mk.mute()
+ setTimeout(() => {
+ app.mk.play().then(() => {
+ app.mk.pause().then(() => {
+ if (time != null) {
+ app.mk.seekToTime(time)
+ }
+ app.mk.unmute()
+ if (queue != null) {
+ queue = JSON.parse(queue)
+ if (queue && queue.length > 0) {
+ let ids = queue.map(e => (e.playParams ? e.playParams.id : (e.attributes.playParams ? e.attributes.playParams.id : '')))
+ let i = 0;
+ if (ids.length > 0) {
+ for (let id of ids) {
+ if (!(i == 0 && ids[0] == lastItem.attributes.playParams.id)) {
+ try {
+ app.mk.playLater({ songs: [id] })
+ } catch (err) {
+ }
+ }
+ i++;
+ }
+ }
+ }
+ }
+
+ })
+
+ })
+ }, 1500)
+
+ }
+
+ } catch (e) {
+ console.log(e)
+ }
+ break;
+ case "history":
+ let history = await app.mk.api.v3.music(`/v1/me/recent/played/tracks`, { l: app.mklang })
+ if (history.data.data.length > 0) {
+ let lastItem = history.data.data[0]
+ let kind = lastItem.attributes.playParams.kind;
+ let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
+ app.mk.setQueue({
+ [truekind]: [lastItem.attributes.playParams.id],
+ parameters: { l: app.mklang }
+ })
+ app.mk.mute()
+ setTimeout(() => {
+ app.mk.play().then(() => {
+ app.mk.pause().then(() => {
+ app.mk.unmute()
+ })
+ })
+ }, 1500)
+ }
+
+ break;
+ case "disabled":
+
+ break;
+ }
+
+ MusicKit.getInstance().videoContainerElement = document.getElementById("apple-music-video-player")
+
+ ipcRenderer.on('theme-update', (event, arg) => {
+ less.refresh(true, true, true)
+ self.setTheme(self.cfg.visual.theme, true)
+ })
+
+ ipcRenderer.on('SoundCheckTag', (event, tag) => {
+ // let replaygain = self.parseSCTagToRG(tag)
+ let soundcheck = tag.split(" ")
+ let numbers = []
+ for (let item of soundcheck) {
+ numbers.push(parseInt(item, 16))
+
+ }
+ numbers.shift()
+ let peak = Math.max(numbers[6], numbers[7]) / 32768.0
+ let gain = Math.pow(10, ((-7.63 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant
+ console.debug(`[Cider][MaikiwiSoundCheck] Peak Gain: '${Math.log10(peak) * 20}' dB | Adjusting '${Math.log10(gain) * 20}' dB`)
+ try {
+ //CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak)))
+ CiderAudio.audioNodes.gainNode.gain.value = gain
+ } catch (e) {
+ }
+ })
+
+ ipcRenderer.on('play', function (_event, mode, id) {
+ if (mode !== 'url') {
+ self.mk.setQueue({ [mode]: id, parameters: { l: self.mklang } }).then(() => {
+ app.mk.play()
+ })
+
+ } else {
+ app.openAppleMusicURL(id)
+ }
+ });
+
+ this.mk.addEventListener(MusicKit.Events.playbackStateDidChange, () => {
+ ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes());
+ })
+
+ this.mk.addEventListener(MusicKit.Events.playbackTimeDidChange, (a) => {
+ self.lyriccurrenttime = self.mk.currentPlaybackTime
+ this.currentSongInfo = a
+ self.playerLCD.playbackDuration = (self.mk.currentPlaybackTime)
+ // wsapi
+ ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes());
+ })
+
+ this.mk.addEventListener(MusicKit.Events.nowPlayingItemDidChange, (a) => {
+ if (self.$refs.queue) {
+ self.$refs.queue.updateQueue();
+ }
+ this.currentSongInfo = a
+
+
+ if (app.cfg.audio.normalization) {
+ // get unencrypted audio previews to get SoundCheck's normalization tag
+ try {
+ let previewURL = null
+ try {
+ previewURL = app.mk.nowPlayingItem.previewURL
+ } catch (e) {
+ }
+ if (previewURL == null && ((app.mk.nowPlayingItem?._songId ?? (app.mk.nowPlayingItem["songId"] ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id)) != -1)) {
+ app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/songs/${app.mk.nowPlayingItem?._songId ?? (app.mk.nowPlayingItem["songId"] ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id)}`).then((response) => {
+ previewURL = response.data.data[0].attributes.previews[0].url
+ if (previewURL)
+ ipcRenderer.send('getPreviewURL', previewURL)
+ })
+ } else {
+ if (previewURL)
+ ipcRenderer.send('getPreviewURL', previewURL)
+ }
+
+ } catch (e) {
+ }
+ }
+
+
+ try {
+ a = a.item.attributes;
+ } catch (_) {
+ }
+ let type = (self.mk.nowPlayingItem != null) ? self.mk.nowPlayingItem["type"] ?? '' : '';
+
+ if (type.includes("musicVideo") || type.includes("uploadedVideo") || type.includes("music-movie")) {
+ document.getElementById("apple-music-video-container").style.display = "block";
+ // app.chrome.topChromeVisible = false
+ } else {
+ document.getElementById("apple-music-video-container").style.display = "none";
+ // app.chrome.topChromeVisible = true
+ }
+ self.chrome.artworkReady = false
+ self.lyrics = []
+ self.richlyrics = []
+ app.getCurrentArtURL();
+ // app.getNowPlayingArtwork(42);
+ app.getNowPlayingArtworkBG(32);
+ app.loadLyrics();
+
+ // Playback Notifications
+ if (this.cfg.general.playbackNotifications && !document.hasFocus() && a.artistName && a.artwork && a.name) {
+ if (this.notification) {
+ this.notification.close()
+ }
+ this.notification = new Notification(a.name, {
+ body: `${a.artistName} â ${a.albumName}`,
+ icon: a.artwork.url.replace('/{w}x{h}bb', '/512x512bb').replace('/2000x2000bb', '/35x35bb'),
+ silent: true,
+ });
+ }
+
+ })
+
+
+ this.mk.addEventListener(MusicKit.Events.playbackVolumeDidChange, (_a) => {
+ this.cfg.audio.volume = this.mk.volume
+ })
+
+ this.refreshPlaylists(this.isDev)
+ document.body.removeAttribute("loading")
+ if (window.location.hash != "") {
+ this.appRoute(window.location.hash)
+ } else {
+ this.page = "home"
+ }
+
+ this.mediaKeyFixes()
+
+ setTimeout(() => {
+ this.getSocialBadges()
+ this.getBrowsePage();
+ this.$forceUpdate()
+ }, 500)
+ ipcRenderer.invoke("renderer-ready", true)
+ document.querySelector("#LOADER").remove()
+ if (this.cfg.general.themeUpdateNotification) {
+ this.checkForThemeUpdates()
+ }
+ },
+ setContentScrollPos(scroll) {
+ this.chrome.contentScrollPosY = scroll.target.scrollTop
+ },
+ async checkForThemeUpdates() {
+ let self = this
+ const themes = ipcRenderer.sendSync("get-themes")
+ await asyncForEach(themes, async (theme) => {
+ if (theme.commit != "") {
+ await fetch(`https://api.github.com/repos/${theme.github_repo}/commits`)
+ .then(res => res.json())
+ .then(res => {
+ if (res[0].sha != theme.commit) {
+ const notify = notyf.open({ className: "notyf-info", type: "info", message: `[Themes] ${theme.name} has an update available.` })
+ notify.on("click", () => {
+ app.appRoute("themes-github")
+ notyf.dismiss(notify)
+ })
+ }
+ })
+ }
+ })
+ },
+ async setTheme(theme = "", onlyPrefs = false) {
+ console.log(theme)
+ if (this.cfg.visual.theme == "") {
+ this.cfg.visual.theme = "default.less"
+ }
+ if (theme == "") {
+ theme = this.cfg.visual.theme
+ } else {
+ this.cfg.visual.theme = ""
+ this.cfg.visual.theme = theme
+ }
+ const info = {}
+ try {
+ const infoResponse = await fetch("themes/" + app.cfg.visual.theme.replace("index.less", "theme.json"))
+ this.chrome.appliedTheme.info = await infoResponse.json()
+ } catch (e) {
+ e = null
+ console.warn("failed to get theme.json")
+ this.chrome.appliedTheme.info = {}
+ }
+
+
+ if (!onlyPrefs) {
+ document.querySelector("#userTheme").href = `themes/${this.cfg.visual.theme}`
+ document.querySelectorAll(`[id*='less']`).forEach(el => {
+ el.remove()
+ });
+ less.refresh()
+ }
+ },
+ getThemeDirective(directive = "") {
+ let directives = {}
+ if (typeof this.chrome.appliedTheme.info.directives == "object") {
+ directives = this.chrome.appliedTheme.info.directives
+ }
+ if (directives[directive]) {
+ return this.chrome.appliedTheme.info.directives[directive].value
+ } else if (this.cfg.visual.directives[directive]) {
+ return this.cfg.visual.directives.windowLayout
+ } else {
+ return ""
+ }
+ },
+ unauthorize() {
+ bootbox.confirm(app.getLz('term.confirmLogout'), function (result) {
+ if (result) {
+ app.mk.unauthorize()
+ document.location.reload()
+ }
+ });
+ },
+ getAppClasses() {
+ let classes = {}
+ if (this.cfg.advanced.experiments.includes('compactui')) {
+ classes.compact = true
+ }
+ if (this.cfg.visual.window_background_style == "none") {
+ classes.simplebg = true
+ }
+
+ if (this.getThemeDirective('windowLayout') == 'twopanel') {
+ classes.twopanel = true
+ }
+ return classes
+ },
+ invokeDrawer(panel) {
+ if (this.drawer.panel == panel && this.drawer.open) {
+ if (panel == "lyrics") {
+ this.lyricon = false
+ }
+ this.drawer.panel = ""
+ this.drawer.open = false
+ } else {
+ if (panel == "lyrics") {
+ this.lyricon = true
+ } else {
+ this.lyricon = false
+ }
+ this.drawer.open = true
+ this.drawer.panel = panel
+ }
+ },
+ select_removeMediaItem(id) {
+ this.selectedMediaItems.filter(item => item.guid == id).forEach(item => {
+ this.selectedMediaItems.splice(this.selectedMediaItems.indexOf(item), 1)
+ })
+ },
+ select_hasMediaItem(id) {
+ let found = this.selectedMediaItems.find(item => item.guid == id)
+ if (found) {
+ return true
+ } else {
+ return false
+ }
+ },
+ select_selectMediaItem(id, kind, index, guid, library) {
+ if (!this.select_hasMediaItem(guid)) {
+ this.selectedMediaItems.push({
+ id: id,
+ kind: kind,
+ index: index,
+ guid: guid,
+ isLibrary: library
+ })
+ }
+ },
+ getPlaylistFolderChildren(id) {
+ return this.playlists.listing.filter(playlist => {
+ if (playlist.parent == id) {
+ return playlist
+ }
+ })
+ },
+ async refreshPlaylists(localOnly = false) {
+ let self = this
+ let trackMap = this.cfg.advanced.playlistTrackMapping
+ let newListing = []
+ let trackMapping = {}
+ const cachedPlaylist = await CiderCache.getCache("library-playlists")
+ const cachedTrackMapping = await CiderCache.getCache("library-playlists-tracks")
+
+ if (cachedPlaylist) {
+ console.log("using cached playlists")
+ this.playlists.listing = cachedPlaylist
+ self.sortPlaylists()
+ } else {
+ console.log("playlist has no cache")
+ }
+
+ if (cachedTrackMapping) {
+ console.log("using cached track mapping")
+ this.playlists.trackMapping = cachedTrackMapping
+ }
+ if (localOnly) {
+ return
+ }
+
+ this.library.backgroundNotification.message = "Building playlist cache..."
+ this.library.backgroundNotification.show = true
+
+ async function deepScan(parent = "p.playlistsroot") {
+ console.log(`scanning ${parent}`)
+ const playlistData = await app.mk.api.v3.music(`/v1/me/library/playlist-folders/${parent}/children/`)
+ await asyncForEach(playlistData.data.data, async (playlist) => {
+ playlist.parent = parent
+ if (
+ playlist.type != "library-playlist-folders" &&
+ typeof playlist.attributes.playParams["versionHash"] != "undefined"
+ ) {
+ playlist.parent = "p.applemusic"
+ }
+ playlist.children = []
+ playlist.tracks = []
+ try {
+ if (trackMap) {
+ let tracks = await app.mk.api.v3.music(playlist.href + "/tracks").catch(e => {
+ // no tracks
+ e = null
+ })
+ tracks.data.data.forEach(track => {
+ if (!trackMapping[track.id]) {
+ trackMapping[track.id] = []
+ }
+ trackMapping[track.id].push(playlist.id)
+
+ if (typeof track.attributes.playParams.catalogId == "string") {
+ if (!trackMapping[track.attributes.playParams.catalogId]) {
+ trackMapping[track.attributes.playParams.catalogId] = []
+ }
+ trackMapping[track.attributes.playParams.catalogId].push(playlist.id)
+ }
+ })
+ }
+ } catch (e) { }
+ if (playlist.type == "library-playlist-folders") {
+ try {
+ await deepScan(playlist.id).catch(e => { })
+ } catch (e) {
+
+ }
+ }
+ newListing.push(playlist)
+ })
+ }
+
+ await deepScan()
+
+ this.library.backgroundNotification.show = false
+ this.playlists.listing = newListing
+ self.sortPlaylists()
+ if (trackMap) {
+ CiderCache.putCache("library-playlists-tracks", trackMapping)
+ this.playlists.trackMapping = trackMapping
+ }
+ CiderCache.putCache("library-playlists", newListing)
+ },
+ sortPlaylists() {
+ this.playlists.listing.sort((a, b) => {
+ if (a.type === "library-playlist-folders" && b.type !== "library-playlist-folders") {
+ return -1
+ } else if (a.type !== "library-playlist-folders" && b.type === "library-playlist-folders") {
+ return 1
+ } else {
+ return 0
+ }
+ })
+ },
+ playlistHeaderContextMenu(event) {
+ let menu = {
+ items: [{
+ name: app.getLz('term.createNewPlaylist'),
+ action: () => {
+ this.newPlaylist()
+ }
+ },
+ {
+ name: app.getLz('term.createNewPlaylistFolder'),
+ action: () => {
+ this.newPlaylistFolder()
+ }
+ }
+ ]
+ }
+ this.showMenuPanel(menu, event)
+ },
+ async editPlaylistFolder(id, name = app.getLz('term.newPlaylist')) {
+ let self = this
+ this.mk.api.v3.music(
+ `/v1/me/library/playlist-folders/${id}`, {}, {
+ fetchOptions: {
+ method: "PATCH",
+ body: JSON.stringify({
+ attributes: { name: name }
+ })
+ }
+ }
+ ).then(res => {
+ self.refreshPlaylists()
+ })
+ },
+ async editPlaylist(id, name = app.getLz('term.newPlaylist')) {
+ let self = this
+ this.mk.api.v3.music(
+ `/v1/me/library/playlists/${id}`, {}, {
+ fetchOptions: {
+ method: "PATCH",
+ body: JSON.stringify({
+ attributes: { name: name }
+ })
+ }
+ }
+ ).then(res => {
+ self.refreshPlaylists()
+ })
+ },
+ copyToClipboard(str) {
+ if (navigator.userAgent.includes('Darwin') || navigator.appVersion.indexOf("Mac") != -1) {
+ this.darwinShare(str)
+ } else {
+ notyf.success(app.getLz('term.share.success'))
+ navigator.clipboard.writeText(str).then(r => console.log("Copied to clipboard."))
+ }
+ },
+ newPlaylist(name = app.getLz('term.newPlaylist'), tracks = []) {
+ let self = this
+ let request = {
+ name: name
+ }
+ if (tracks.length > 0) {
+ request.tracks = tracks
+ }
+ app.mk.api.v3.music(`/v1/me/library/playlists`, {}, {
+ fetchOptions: {
+ method: "POST",
+ body: JSON.stringify({
+ "attributes": { "name": name },
+ "relationships": {
+ "tracks": { "data": tracks },
+ }
+ })
+ }
+ }).then(res => {
+ res = res.data.data[0]
+ console.log(res)
+ self.appRoute(`playlist_` + res.id);
+ self.showingPlaylist = [];
+ self.getPlaylistFromID(app.page.substring(9), true)
+ self.playlists.listing.push({
+ id: res.id,
+ attributes: {
+ name: name
+ },
+ parent: "p.playlistsroot"
+ })
+ self.sortPlaylists()
+ setTimeout(() => {
+ app.refreshPlaylists()
+ }, 8000)
+ })
+ },
+ deletePlaylist(id) {
+ let self = this
+ if (confirm(app.getLz('term.deletePlaylist'))) {
+ app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, {}, {
+ fetchOptions: {
+ method: "DELETE"
+ }
+ }).then(res => {
+ // remove this playlist from playlists.listing if it exists
+ let found = self.playlists.listing.find(item => item.id == id)
+ if (found) {
+ self.playlists.listing.splice(self.playlists.listing.indexOf(found), 1)
+ }
+ })
+ }
+ },
+ async showCollection(response, title, type, requestBody = {}) {
+ let self = this
+ console.log(response)
+ this.collectionList.requestBody = {}
+ this.collectionList.response = response
+ this.collectionList.title = title
+ this.collectionList.type = type
+ this.collectionList.requestBody = requestBody
+ app.appRoute("collection-list")
+ },
+ async showArtistView(artist, title, view) {
+ let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artist}/view/${view}?l=${this.mklang}`, {}, { includeResponseMeta: !0 })).data
+ console.log(response)
+ await this.showCollection(response, title, "artists")
+ },
+ async showRecordLabelView(label, title, view) {
+ let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/record-labels/${label}/view/${view}?l=${this.mklang}`)).data
+ await this.showCollection(response, title, "record-labels")
+ },
+ async showSearchView(term, group, title) {
+
+ let requestBody = {
+ platform: "web",
+ groups: group,
+ types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels",
+ limit: 25,
+ relate: {
+ editorialItems: ["contents"]
+ },
+ include: {
+ albums: ["artists"],
+ songs: ["artists"],
+ "music-videos": ["artists"]
+ },
+ extend: "artistUrl",
+ fields: {
+ artists: "url,name,artwork,hero",
+ albums: "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url"
+ },
+ with: "serverBubbles,lyricHighlights",
+ art: {
+ "url": "cf"
+ },
+ omit: {
+ resource: ["autos"]
+ },
+ l: this.mklang
+ }
+ let response = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${term}`, requestBody, {
+ includeResponseMeta: !0
+ })
+
+ console.log('searchres', response)
+ let responseFormat = {
+ data: response.data.results[group].data,
+ next: response.data.results[group].next,
+ groups: group
+ }
+ await this.showCollection(responseFormat, title, "search", requestBody)
+ },
+ async getPlaylistContinuous(response, transient = false) {
+ response = response.data.data[0]
+ let self = this
+ let playlistId = response.id
+ this.playlists.loadingState = (!transient) ? 0 : 1
+ this.showingPlaylist = response
+ if (!response.relationships?.tracks?.next) {
+ this.playlists.loadingState = 1
+ return
+ }
+
+ function getPlaylistTracks(next) {
+ app.apiCall(app.musicBaseUrl + next, res => {
+ if (self.showingPlaylist.id != playlistId) {
+ return
+ }
+ self.showingPlaylist.relationships.tracks.data = self.showingPlaylist.relationships.tracks.data.concat(res.data)
+ if (res.next) {
+ getPlaylistTracks(res.next)
+ } else {
+ self.playlists.loadingState = 1
+ }
+ })
+ }
+
+ getPlaylistTracks(response.relationships.tracks.next)
+
+ },
+ async getPlaylistFromID(id, transient = false) {
+ let self = this
+ const params = {
+ include: "tracks",
+ platform: "web",
+ "include[library-playlists]": "catalog,tracks",
+ "fields[playlists]": "curatorName,playlistType,name,artwork,url,playParams",
+ "include[library-songs]": "catalog,artists,albums,playParams,name,artwork,url",
+ "fields[catalog]": "artistUrl,albumUrl,url",
+ "fields[songs]": "artistUrl,albumUrl,playParams,name,artwork,url,artistName,albumName,durationInMillis",
+ l: this.mklang
+ }
+ if (!transient) {
+ this.playlists.loadingState = 0;
+ }
+ app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, params).then(res => {
+ self.getPlaylistContinuous(res, transient)
+ }).catch((e) => {
+ console.log(e);
+ try {
+ app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`, params).then(res => {
+ self.getPlaylistContinuous(res, transient)
+ })
+ } catch (err) {
+ console.log(err)
+ }
+ })
+
+ },
+ async getArtistFromID(id) {
+ this.page = ""
+ const artistData = await this.mkapi("artists", false, id, {
+ "views": "featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see",
+ "extend": "artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero",
+ "extend[playlists]": "trackCount",
+ "include[songs]": "albums",
+ "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount",
+ "limit[artists:top-songs]": 20,
+ "art[url]": "f",
+ l: this.mklang
+ }, { includeResponseMeta: !0 })
+ console.log(artistData.data.data[0])
+ this.artistPage.data = artistData.data.data[0]
+ this.page = "artist-page"
+ },
+ progressBarStyle() {
+ let val = this.playerLCD.playbackDuration
+ if (this.playerLCD.desiredDuration > 0) {
+ val = this.playerLCD.desiredDuration
+ }
+ let min = 0
+ let max = this.mk.currentPlaybackDuration
+ let value = (val - min) / (max - min) * 100
+ return {
+ 'background': ('linear-gradient(to right, var(--songProgressColor) 0%, var(--songProgressColor) ' + value + '%, var(--songProgressBackground) ' + value + '%, var(--songProgressBackground) 100%)')
+ }
+ },
+ async getRecursive(response) {
+ // if response has a .next() property run it and keep running until .next is null or undefined
+ // and then return the response concatenated with the results of the next() call
+ function executeRequest() {
+ if (response.next) {
+ return response.next().then(executeRequest)
+ } else {
+ return response
+ }
+ }
+
+ return executeRequest()
+ },
+ async getRecursive2(response, sendTo) {
+ let returnData = {
+ "data": [],
+ "meta": {}
+ }
+ if (response.next) {
+ console.log("has next")
+ returnData.data.concat(response.data)
+ returnData.meta = response.meta
+ return await this.getRecursive(await response.next())
+ } else {
+ console.log("no next")
+ returnData.data.concat(response.data)
+ return returnData
+ }
+ },
+ async getSearchHints() {
+ if (this.search.term == "") {
+ this.search.hints = []
+ return
+ }
+ let hints = await (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search/hints?term=${this.search.term}`)).data.results
+ this.search.hints = hints ? hints.terms : []
+ },
+ getSongProgress() {
+ if (this.playerLCD.userInteraction) {
+ return this.playerLCD.desiredDuration
+ } else {
+ return this.playerLCD.playbackDuration
+ }
+ },
+ /**
+ * Converts seconds to dd:hh:mm:ss / Days:Hours:Minutes:Seconds
+ * @param {number} seconds
+ * @param {string} format (short, long)
+ * @returns {string}
+ * @author Core#1034
+ * @memberOf app
+ */
+ convertTime(seconds, format = "short") {
+
+ if (isNaN(seconds)) {
+ seconds = 0
+ }
+ seconds = parseInt(seconds);
+
+ const datetime = new Date(seconds * 1000)
+
+ if (format === "long") {
+ const d = Math.floor(seconds / (3600 * 24));
+ const h = Math.floor(seconds % (3600 * 24) / 3600);
+ const m = Math.floor(seconds % 3600 / 60);
+ const s = Math.floor(seconds % 60);
+
+ const dDisplay = d > 0 ? `${d} ${app.getLz("term.time.day", { "count": d })}, ` : "";
+ const hDisplay = h > 0 ? `${h} ${app.getLz("term.time.hour", { "count": h })}, ` : "";
+ const mDisplay = m > 0 ? `${m} ${app.getLz("term.time.minute", { "count": m })}, ` : "";
+ const sDisplay = s > 0 ? `${s} ${app.getLz("term.time.second", { "count": s })}` : "";
+
+ return dDisplay + hDisplay + mDisplay + sDisplay;
+ }
+ else {
+ let returnTime = datetime.toISOString().substring(11, 19);
+
+ const timeGates = {
+ 600: 15, // 10 Minutes
+ 3600: 14, // Hour
+ 36000: 12, // 10 Hours
+ }
+
+ for (let key in timeGates) {
+ if (seconds < key) {
+ returnTime = datetime.toISOString().substring(timeGates[key], 19)
+ break
+ }
+ }
+
+ // Add the days on the front
+ if (seconds >= 86400) {
+ returnTime = parseInt(datetime.toISOString().substring(8, 10)) - 1 + ":" + returnTime
+ }
+
+ return returnTime
+ }
+ },
+ hashCode(str) {
+ let hash = 0,
+ i, chr;
+ if (str.length === 0) return hash;
+ for (i = 0; i < str.length; i++) {
+ chr = str.charCodeAt(i);
+ hash = ((hash << 5) - hash) + chr;
+ hash |= 0; // Convert to 32bit integer
+ }
+ return hash;
+ },
+ appRoute(route) {
+ if (route == "" || route == "#" || route == "/") {
+ return;
+ }
+ route = route.replace(/#/g, "")
+ // if the route contains does not include a / then route to the page directly
+ if (route.indexOf("/") == -1) {
+ this.page = route
+ window.location.hash = this.page
+ // if (this.page == "settings") {
+ // this.version
+ // }
+ return
+ }
+ let hash = route.split("/")
+ let page = hash[0]
+ let id = hash[1]
+ let isLibrary = hash[2] ?? false
+ if (page == "plugin") {
+ this.pluginPages.page = "plugin." + id
+ this.page = "plugin-renderer"
+ return
+ }
+ this.routeView({
+ kind: page,
+ id: id,
+ attributes: {
+ playParams: { kind: page, id: id, isLibrary: isLibrary }
+ }
+ })
+ },
+ routeView(item) {
+ let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? ''));
+ let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? ''));
+ ;
+ let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false;
+ if (kind.includes("playlist") || kind.includes("album")) {
+ app.showingPlaylist = [];
+ }
+ if (kind.toString().includes("apple-curator")) {
+ kind = "appleCurator"
+ app.getTypeFromID("appleCurator", (id), false, {
+ platform: "web",
+ include: "grouping,playlists",
+ extend: "editorialArtwork",
+ "art[url]": "f"
+ });
+ window.location.hash = `${kind}/${id}`
+ document.querySelector("#app-content").scrollTop = 0
+ } else if (kind == "editorial-elements") {
+ console.log(item)
+ if (item.relationships?.contents?.data != null && item.relationships?.contents?.data.length > 0) {
+ this.routeView(item.relationships.contents.data[0])
+ } else if (item.attributes?.link?.url != null) {
+ window.open(item.attributes.link.url)
+ }
+
+ } else if (kind.toString().includes("artist")) {
+ app.getArtistInfo(id, isLibrary)
+ window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}`
+ document.querySelector("#app-content").scrollTop = 0
+
+ } else if (kind.toString().includes("record-label") || kind.toString().includes("curator")) {
+ if (kind.toString().includes("record-label")) {
+ kind = "recordLabel"
+ } else {
+ kind = "curator"
+ }
+ app.page = (kind) + "_" + (id);
+ app.getTypeFromID((kind), (id), (isLibrary), {
+ extend: "editorialVideo",
+ include: 'grouping,playlists',
+ views: 'top-releases,latest-releases,top-artists'
+ });
+ window.location.hash = `${kind}/${id}`
+ document.querySelector("#app-content").scrollTop = 0
+ } else if (!kind.toString().includes("radioStation") && !kind.toString().includes("song") && !kind.toString().includes("musicVideo") && !kind.toString().includes("uploadedVideo") && !kind.toString().includes("music-movie")) {
+ let params = {
+ extend: "offers,editorialVideo",
+ "views": "appears-on,more-by-artist,related-videos,other-versions,you-might-also-like,video-extras,audio-extras",
+ }
+ if (kind.includes("playlist")) {
+ params["include"] = "tracks";
+ }
+ if (kind.includes("album")) {
+ params["include[albums]"] = "artists"
+ params["fields[artists]"] = "name,url"
+ params["fields[albums]"] = "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,copyright"
+ }
+
+ if (this.cfg.advanced.experiments.includes('inline-playlists')) {
+ let showModal = kind.toString().includes("album") || kind.toString().includes("playlist")
+ if (app.page.includes("playlist") || app.page.includes("album")) {
+ showModal = false
+ }
+ if (showModal) {
+ app.modals.showPlaylist = true
+ app.chrome.contentAreaScrolling = false
+ } else {
+ app.page = (kind) + "_" + (id);
+ window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}`
+ }
+ } else {
+ app.page = (kind) + "_" + (id);
+ window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}`
+ }
+
+
+ app.getTypeFromID((kind), (id), (isLibrary), params);
+ // document.querySelector("#app-content").scrollTop = 0
+ } else {
+ app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '')
+ }
+ },
+ prevButton() {
+ if (!app.prevButtonBackIndicator && app.mk.nowPlayingItem && app.mk.currentPlaybackTime > 2) {
+ app.prevButtonBackIndicator = true;
+ try {
+ clearTimeout(app.pauseButtonTimer)
+ } catch (e) {
+ }
+ app.mk.seekToTime(0);
+ app.pauseButtonTimer = setTimeout(() => {
+ app.prevButtonBackIndicator = false
+ }, 3000);
+ } else {
+ try {
+ clearTimeout(app.pauseButtonTimer)
+ } catch (e) {
+ }
+ app.prevButtonBackIndicator = false;
+ app.skipToPreviousItem()
+ }
+ },
+ async getNowPlayingItemDetailed(target) {
+ try {
+ let u = await app.mkapi(app.mk.nowPlayingItem.playParams.kind,
+ (app.mk.nowPlayingItem.songId == -1),
+ (app.mk.nowPlayingItem.songId != -1) ? app.mk.nowPlayingItem.songId : app.mk.nowPlayingItem["id"],
+ { "include[songs]": "albums,artists", l: app.mklang });
+ app.searchAndNavigate(u.data.data[0], target)
+ } catch (e) {
+ app.searchAndNavigate(app.mk.nowPlayingItem, target)
+ }
+ },
+ async searchAndNavigate(item, target) {
+ let self = this
+ app.tmpVar = item;
+ switch (target) {
+ case "artist":
+ let artistId = '';
+ try {
+ if (item.relationships.artists && item.relationships.artists.data.length > 0 && !item.relationships.artists.data[0].type.includes("library")) {
+ if (item.relationships.artists.data[0].type === "artist" || item.relationships.artists.data[0].type === "artists") {
+ artistId = item.relationships.artists.data[0].id
+ }
+ }
+ if (artistId == '') {
+ const url = (item.relationships.catalog.data[0].attributes.artistUrl);
+ artistId = (url).substring(url.lastIndexOf('/') + 1)
+ if (artistId.includes('viewCollaboration')) {
+ artistId = artistId.substring(artistId.lastIndexOf('ids=') + 4, artistId.lastIndexOf('-'))
+ }
+ }
+ } catch (_) {
+ }
+
+ if (artistId == "") {
+ let artistQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.artistName}`, {
+ limit: 1,
+ types: 'artists'
+ })).data.results;
+ try {
+ if (artistQuery.artists.data.length > 0) {
+ artistId = artistQuery.artists.data[0].id;
+ console.log(artistId)
+ }
+ } catch (e) {
+ }
+ }
+ console.log(artistId);
+ if (artistId != "")
+ self.appRoute(`artist/${artistId}`)
+ break;
+ case "album":
+ let albumId = '';
+ try {
+ if ((item.type ?? item.playParams?.kind ?? "") == "albums") {
+ albumId = item.id ?? ""
+ } else if (item.relationships.albums && item.relationships.albums.data.length > 0 && !item.relationships.albums.data[0].type.includes("library")) {
+ if (item.relationships.albums.data[0].type === "album" || item.relationships.albums.data[0].type === "albums") {
+ albumId = item.relationships.albums.data[0].id
+ }
+ }
+ if (albumId == '') {
+ const url = (item.relationships.catalog.data[0].attributes.url);
+ albumId = (url).substring(url.lastIndexOf('/') + 1)
+ if (albumId.includes("?i=")) {
+ albumId = albumId.substring(0, albumId.indexOf("?i="))
+ }
+ }
+ } catch (_) {
+ }
+
+ if (albumId == "") {
+ try {
+ let albumQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${(item.attributes.albumName ?? item.attributes.name ?? "") + " " + (item.attributes.artistName ?? "")}`, {
+ limit: 1,
+ types: 'albums'
+ })).data.results;
+ if (albumQuery.albums.data.length > 0) {
+ albumId = albumQuery.albums.data[0].id;
+ console.log(albumId)
+ }
+ } catch (e) {
+ }
+ }
+ if (albumId != "") {
+ self.appRoute(`album/${albumId}`)
+ }
+ break;
+ case "recordLabel":
+ let labelId = '';
+ try {
+ labelId = item.relationships['record-labels'].data[0].id
+ } catch (_) {
+ }
+
+ if (labelId == "") {
+ try {
+ let labelQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.recordLabel}`, {
+ limit: 1,
+ types: 'record-labels'
+ })).data.results;
+ if (labelQuery["record-labels"].data.length > 0) {
+ labelId = labelQuery["record-labels"].data[0].id;
+ console.log(labelId)
+ }
+ } catch (e) {
+ }
+ }
+ if (labelId != "") {
+ app.showingPlaylist = []
+ await app.getTypeFromID("recordLabel", labelId, false, { views: 'top-releases,latest-releases,top-artists' });
+ app.page = "recordLabel_" + labelId;
+ }
+
+ break;
+ }
+ },
+ exitMV() {
+ MusicKit.getInstance().stop()
+ document.getElementById("apple-music-video-container").style.display = "none";
+ },
+ getArtistInfo(id, isLibrary) {
+ this.getArtistFromID(id)
+ //this.getTypeFromID("artist",id,isLibrary,query)
+ },
+ followArtistById(id, follow) {
+ if (follow && !this.followingArtist(id)) {
+ this.cfg.home.followedArtists.push(id)
+ } else {
+ let index = this.cfg.home.followedArtists.indexOf(id)
+ if (index > -1) {
+ this.cfg.home.followedArtists.splice(index, 1)
+ }
+ }
+ },
+ followingArtist(id) {
+ console.log(`check for ${id}`)
+ return this.cfg.home.followedArtists.includes(id)
+ },
+ playMediaItem(item) {
+ let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? ''));
+ let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? ''));
+ ;
+ let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false;
+ let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
+ // console.log(kind, id, isLibrary)
+ app.mk.stop().then(() => {
+ if (kind.includes("artist")) {
+ app.mk.setStationQueue({ artist: 'a-' + id }).then(() => {
+ app.mk.play()
+ })
+ }
+ else {
+ app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '')
+ }
+ })
+ },
+ async getTypeFromID(kind, id, isLibrary = false, params = {}, params2 = {}) {
+ let a;
+ if (kind == "album" | kind == "albums") {
+ params["include"] = "tracks,artists,record-labels,catalog";
+ }
+ params['l'] = this.mklang;
+ try {
+ a = await this.mkapi(kind.toString(), isLibrary, id.toString(), params, params2);
+ } catch (e) {
+ console.log(e);
+ try {
+ a = await this.mkapi(kind.toString(), !isLibrary, id.toString(), params, params2);
+ } catch (err) {
+ console.log(err);
+ a = []
+ } finally {
+ if (kind == "appleCurator") {
+ app.appleCurator = a.data.data[0]
+ } else {
+ this.getPlaylistContinuous(a, true)
+ }
+ }
+ } finally {
+ if (kind == "appleCurator") {
+ app.appleCurator = a.data.data[0]
+ } else {
+ this.getPlaylistContinuous(a, true)
+ }
+ }
+ ;
+ },
+ searchLibrarySongs() {
+ let self = this
+ let prefs = this.cfg.libraryPrefs.songs
+ let albumAdded = self.library?.albums?.listing?.map(function (i) {
+ return { [i.id]: i.attributes?.dateAdded }
+ })
+ let startTime = new Date().getTime()
+
+ function sortSongs() {
+ // sort this.library.songs.displayListing by song.attributes[self.library.songs.sorting] in descending or ascending order based on alphabetical order and numeric order
+ // check if song.attributes[self.library.songs.sorting] is a number and if so, sort by number if not, sort by alphabetical order ignoring case
+ self.library.songs.displayListing.sort((a, b) => {
+ let aa = a.attributes[prefs.sort]
+ let bb = b.attributes[prefs.sort]
+ if (prefs.sort == "genre") {
+ aa = a.attributes.genreNames[0]
+ bb = b.attributes.genreNames[0]
+ }
+ if (prefs.sort == "dateAdded") {
+ let albumida = a.relationships?.albums?.data[0]?.id ?? '1970-01-01T00:01:01Z'
+ let albumidb = b.relationships?.albums?.data[0]?.id ?? '1970-01-01T00:01:01Z'
+ aa = startTime - new Date(((albumAdded.find(i => i[albumida])) ?? [])[albumida] ?? '1970-01-01T00:01:01Z').getTime()
+ bb = startTime - new Date(((albumAdded.find(i => i[albumidb])) ?? [])[albumidb] ?? '1970-01-01T00:01:01Z').getTime()
+ }
+ if (aa == null) {
+ aa = ""
+ }
+ if (bb == null) {
+ bb = ""
+ }
+ if (prefs.sortOrder == "asc") {
+ if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
+ return aa - bb
+ } else {
+ return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase())
+ }
+ } else if (prefs.sortOrder == "desc") {
+ if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
+ return bb - aa
+ } else {
+ return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase())
+ }
+ }
+ })
+ }
+
+ if (this.library.songs.search == "") {
+ this.library.songs.displayListing = this.library.songs.listing
+ sortSongs()
+ } else {
+ this.library.songs.displayListing = this.library.songs.listing.filter(item => {
+ let itemName = item.attributes.name.toLowerCase()
+ let searchTerm = this.library.songs.search.toLowerCase()
+ let artistName = ""
+ let albumName = ""
+ if (item.attributes.artistName != null) {
+ artistName = item.attributes.artistName.toLowerCase()
+ }
+ if (item.attributes.albumName != null) {
+ albumName = item.attributes.albumName.toLowerCase()
+ }
+
+ // remove any non-alphanumeric characters and spaces from search term and item name
+ searchTerm = searchTerm.replace(/[^\p{L}\p{N} ]/gu, "")
+ itemName = itemName.replace(/[^\p{L}\p{N} ]/gu, "")
+ artistName = artistName.replace(/[^\p{L}\p{N} ]/gu, "")
+ albumName = albumName.replace(/[^\p{L}\p{N} ]/gu, "")
+
+ if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) {
+ return item
+ }
+ })
+ sortSongs()
+ }
+ },
+ getAlbumSort() {
+ this.library.albums.sortOrder[1] = this.cfg.libraryPrefs.albums.sortOrder;
+ this.library.albums.sorting[1] = this.cfg.libraryPrefs.albums.sort;
+ },
+ // make a copy of searchLibrarySongs except use Albums instead of Songs
+ searchLibraryAlbums(index) {
+ let self = this
+
+ function sortAlbums() {
+ // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order
+ // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case
+ self.library.albums.displayListing.sort((a, b) => {
+ let aa = a.attributes[self.library.albums.sorting[index]]
+ let bb = b.attributes[self.library.albums.sorting[index]]
+ if (self.library.albums.sorting[index] == "genre") {
+ aa = a.attributes.genreNames[0]
+ bb = b.attributes.genreNames[0]
+ }
+ if (aa == null) {
+ aa = ""
+ }
+ if (bb == null) {
+ bb = ""
+ }
+ if (self.library.albums.sortOrder[index] == "asc") {
+ if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
+ return aa - bb
+ } else {
+ return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase())
+ }
+ } else if (self.library.albums.sortOrder[index] == "desc") {
+ if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
+ return bb - aa
+ } else {
+ return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase())
+ }
+ }
+ })
+ }
+
+ if (this.library.albums.search == "") {
+ this.library.albums.displayListing = this.library.albums.listing
+ sortAlbums()
+ } else {
+ this.library.albums.displayListing = this.library.albums.listing.filter(item => {
+ let itemName = item.attributes.name.toLowerCase()
+ let searchTerm = this.library.albums.search.toLowerCase()
+ let artistName = ""
+ let albumName = ""
+ if (item.attributes.artistName != null) {
+ artistName = item.attributes.artistName.toLowerCase()
+ }
+ if (item.attributes.albumName != null) {
+ albumName = item.attributes.albumName.toLowerCase()
+ }
+
+ // remove any non-alphanumeric characters and spaces from search term and item name
+ searchTerm = searchTerm.replace(/[^\p{L}\p{N} ]/gu, "")
+ itemName = itemName.replace(/[^\p{L}\p{N} ]/gu, "")
+ artistName = artistName.replace(/[^\p{L}\p{N} ]/gu, "")
+ albumName = albumName.replace(/[^\p{L}\p{N} ]/gu, "")
+
+ if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) {
+ return item
+ }
+ })
+ sortAlbums()
+ }
+ },
+ // make a copy of searchLibrarySongs except use Albums instead of Songs
+ searchLibraryArtists(index) {
+ let self = this
+
+ function sortArtists() {
+ // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order
+ // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case
+ self.library.artists.displayListing.sort((a, b) => {
+ let aa = a.attributes[self.library.artists.sorting[index]]
+ let bb = b.attributes[self.library.artists.sorting[index]]
+ if (self.library.artists.sorting[index] == "genre") {
+ aa = a.attributes.genreNames[0]
+ bb = b.attributes.genreNames[0]
+ }
+ if (aa == null) {
+ aa = ""
+ }
+ if (bb == null) {
+ bb = ""
+ }
+ if (self.library.artists.sortOrder[index] == "asc") {
+ if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
+ return aa - bb
+ } else {
+ return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase())
+ }
+ } else if (self.library.artists.sortOrder[index] == "desc") {
+ if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) {
+ return bb - aa
+ } else {
+ return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase())
+ }
+ }
+ })
+ }
+
+ if (this.library.artists.search == "") {
+ this.library.artists.displayListing = this.library.artists.listing
+ sortArtists()
+ } else {
+ this.library.artists.displayListing = this.library.artists.listing.filter(item => {
+ let itemName = item.attributes.name.toLowerCase()
+ let searchTerm = this.library.artists.search.toLowerCase()
+ let artistName = ""
+ let albumName = ""
+ // if (item.attributes.artistName != null) {
+ // artistName = item.attributes.artistName.toLowerCase()
+ // }
+ // if (item.attributes.albumName != null) {
+ // albumName = item.attributes.albumName.toLowerCase()
+ // }
+
+ // remove any non-alphanumeric characters and spaces from search term and item name
+ searchTerm = searchTerm.replace(/[^\p{L}\p{N} ]/gu, "")
+ itemName = itemName.replace(/[^\p{L}\p{N} ]/gu, "")
+
+
+ if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) {
+ return item
+ }
+ })
+ sortArtists()
+ }
+ },
+ getSidebarItemClass(page) {
+ if (this.page == page) {
+ return ["active"]
+ } else {
+ return []
+ }
+ },
+ async mkapi(method, library = false, term, params = {}, params2 = {}, attempts = 0) {
+ if (method.includes(`recordLabel`)) {
+ method = `record-labels`
+ }
+ if (method.includes(`appleCurator`)) {
+ method = `apple-curators`
+ }
+ if (attempts > 3) {
+ return
+ }
+ let truemethod = (!method.endsWith("s")) ? (method + "s") : method;
+ try {
+ if (library) {
+ return await this.mk.api.v3.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2)
+ } else {
+ return await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2)
+ }
+ } catch (e) {
+ console.log(e)
+ return await this.mkapi(method, library, term, params, params2, attempts + 1)
+ }
+ },
+ getLibraryGenres() {
+ let genres = []
+ genres = []
+ this.library.songs.listing.forEach((item) => {
+ item.attributes.genreNames.forEach((genre) => {
+ if (!genres.includes(genre)) {
+ genres.push(genre)
+ }
+ })
+ })
+ return genres
+ },
+ async getLibrarySongsFull(force = false) {
+ let self = this
+ let library = []
+ let cacheId = "library-songs"
+ let downloaded = null;
+ if ((this.library.songs.downloadState == 2) && !force) {
+ return
+ }
+ if (this.library.songs.downloadState == 1) {
+ return
+ }
+ let librarySongs = await CiderCache.getCache(cacheId)
+ if (librarySongs) {
+ this.library.songs.listing.data = librarySongs
+ this.searchLibrarySongs()
+ }
+ if (this.songstest) {
+ return
+ }
+ this.library.songs.downloadState = 1
+ this.library.backgroundNotification.show = true
+ this.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs')
+
+ library = await MusicKitTools.v3Continuous({
+ href: `/v1/me/library/songs/`,
+ options: {
+ "include[library-songs]": "catalog,artists,albums",
+ "fields[artists]": "name,url,id",
+ "fields[albums]": "name,url,id",
+ platform: "web",
+ "fields[catalog]": "artistUrl,albumUrl",
+ "fields[songs]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
+ limit: 100,
+ l: app.mklang,
+ },
+ onProgress: (data) => {
+ console.log(`${data.total}/${data.response.data.meta.total}`)
+ self.library.backgroundNotification.show = true
+ self.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs')
+ self.library.backgroundNotification.total = data.response.data.meta.total
+ self.library.backgroundNotification.progress = data.total
+ },
+ onSuccess: () => {
+
+ }
+ })
+
+ self.library.songs.listing = library
+ self.library.songs.downloadState = 2
+ self.library.backgroundNotification.show = false
+ self.searchLibrarySongs()
+ CiderCache.putCache(cacheId, library)
+ console.log("Done!")
+
+ return
+ },
+ // copy the getLibrarySongsFull function except change Songs to Albums
+ async getLibraryAlbumsFull(force = false, index) {
+ let self = this
+ let library = []
+ let cacheId = "library-albums"
+ let downloaded = null;
+ if ((this.library.albums.downloadState == 2 || this.library.albums.downloadState == 1) && !force) {
+ return
+ }
+ let libraryAlbums = await CiderCache.getCache(cacheId)
+ if (libraryAlbums) {
+ this.library.albums.listing = libraryAlbums
+ this.searchLibraryAlbums(index)
+ }
+ if (this.songstest) {
+ return
+ }
+ this.library.albums.downloadState = 1
+ this.library.backgroundNotification.show = true
+ this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums')
+
+ function downloadChunk() {
+ self.library.albums.downloadState = 1
+ const params = {
+ "include[library-albums]": "catalog,artists,albums",
+ "fields[artists]": "name,url,id",
+ // "fields[albums]": "name,url,id",
+ platform: "web",
+ "fields[catalog]": "artistUrl,albumUrl",
+ "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
+ limit: 100,
+ l: self.mklang
+ }
+ const safeparams = {
+ platform: "web",
+ limit: "60",
+ "include[library-albums]": "artists",
+ "include[library-artists]": "catalog",
+ "include[albums]": "artists",
+ "fields[artists]": "name,url",
+ "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
+ "includeOnly": "catalog,artists"
+ }
+ if (downloaded == null) {
+ app.mk.api.v3.music(`/v1/me/library/albums/`, params).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading');
+ app.mk.api.v3.music(`/v1/me/library/albums/`, safeparams).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading failed', error)
+ app.library.albums.downloadState = 2
+ app.library.backgroundNotification.show = false
+ })
+ })
+ } else {
+ if (downloaded.next != null) {
+ app.mk.api.v3.music(downloaded.next, params).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading');
+ app.mk.api.v3.music(downloaded.next, safeparams).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading failed', error);
+ app.library.albums.downloadState = 2
+ app.library.backgroundNotification.show = false
+ })
+ })
+ } else {
+ console.log("Download next", downloaded.next)
+ }
+ }
+ }
+
+ function processChunk(response) {
+ downloaded = response
+ library = library.concat(downloaded.data)
+ self.library.backgroundNotification.show = true
+ self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums')
+ self.library.backgroundNotification.total = downloaded.meta.total
+ self.library.backgroundNotification.progress = library.length
+ if (downloaded.meta.total == 0) {
+ self.library.albums.downloadState = 3
+ return
+ }
+ if (typeof downloaded.next == "undefined") {
+ console.log("downloaded.next is undefined")
+ self.library.albums.listing = library
+ self.library.albums.downloadState = 2
+ self.library.backgroundNotification.show = false
+ CiderCache.putCache(cacheId, library)
+ self.searchLibraryAlbums(index)
+ }
+ if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") {
+ console.log(`downloading next chunk - ${library.length
+ } albums so far`)
+ downloadChunk()
+ } else {
+ self.library.albums.listing = library
+ self.library.albums.downloadState = 2
+ self.library.backgroundNotification.show = false
+ CiderCache.putCache(cacheId, library)
+ self.searchLibraryAlbums(index)
+ // console.log(library)
+ }
+ }
+
+ downloadChunk()
+ },
+ // copy the getLibrarySongsFull function except change Songs to Albums
+ async getLibraryArtistsFull(force = false, index) {
+ let self = this
+ let library = []
+ let cacheId = "library-artists"
+ let downloaded = null;
+ if ((this.library.artists.downloadState == 2 || this.library.artists.downloadState == 1) && !force) {
+ return
+ }
+ let libraryArtists = await CiderCache.getCache(cacheId)
+ if (libraryArtists) {
+ this.library.artists.listing = libraryArtists
+ this.searchLibraryArtists(index)
+ }
+ if (this.songstest) {
+ return
+ }
+ this.library.artists.downloadState = 1
+ this.library.backgroundNotification.show = true
+ this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists')
+
+ function downloadChunk() {
+ self.library.artists.downloadState = 1
+ const params = {
+ include: "catalog",
+ // "include[library-artists]": "catalog,artists,albums",
+ // "fields[artists]": "name,url,id",
+ // "fields[albums]": "name,url,id",
+ platform: "web",
+ // "fields[catalog]": "artistUrl,albumUrl",
+ // "fields[artists]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url",
+ limit: 100,
+ l: self.mklang
+ }
+ const safeparams = {
+ include: "catalog",
+ platform: "web",
+ limit: 50,
+ }
+ if (downloaded == null) {
+ app.mk.api.v3.music(`/v1/me/library/artists/`, params).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading');
+ app.mk.api.v3.music(`/v1/me/library/artists/`, safeparams).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading failed', error)
+ app.library.artists.downloadState = 2
+ app.library.backgroundNotification.show = false
+ })
+ })
+
+ } else {
+ if (downloaded.next != null) {
+ app.mk.api.v3.music(downloaded.next, params).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading');
+ app.mk.api.v3.music(downloaded.next, safeparams).then((response) => {
+ processChunk(response.data)
+ }).catch((error) => {
+ console.log('safe loading failed', error)
+ app.library.artists.downloadState = 2
+ app.library.backgroundNotification.show = false
+ })
+ })
+ } else {
+ console.log("Download next", downloaded.next)
+ }
+
+ }
+ }
+
+ function processChunk(response) {
+ downloaded = response
+ library = library.concat(downloaded.data)
+ self.library.backgroundNotification.show = true
+ self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists')
+ self.library.backgroundNotification.total = downloaded.meta.total
+ self.library.backgroundNotification.progress = library.length
+ if (downloaded.meta.total == 0) {
+ self.library.albums.downloadState = 3
+ return
+ }
+ if (typeof downloaded.next == "undefined") {
+ console.log("downloaded.next is undefined")
+ self.library.artists.listing = library
+ self.library.artists.downloadState = 2
+ self.library.artists.show = false
+ CiderCache.putCache(cacheId, library)
+ self.searchLibraryArtists(index)
+ }
+ if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") {
+ console.log(`downloading next chunk - ${library.length
+ } artists so far`)
+ downloadChunk()
+ } else {
+ self.library.artists.listing = library
+ self.library.artists.downloadState = 2
+ self.library.backgroundNotification.show = false
+ CiderCache.putCache(cacheId, library)
+ self.searchLibraryArtists(index)
+ // console.log(library)
+ }
+ }
+
+ downloadChunk()
+ },
+ /**
+ * Gets the total duration in seconds of a playlist
+ * @returns {string} Total tracks, and duration
+ * @author Core#1034
+ * @memberOf app
+ */
+ getTotalTime() {
+ try {
+ if (app.showingPlaylist.relationships.tracks.data.length === 0) return ""
+ const timeInSeconds = Math.round([].concat(...app.showingPlaylist.relationships.tracks.data).reduce((a, { attributes: { durationInMillis } }) => a + durationInMillis, 0) / 1000);
+ return `${app.showingPlaylist.relationships.tracks.data.length} ${app.getLz("term.track", { "count": app.showingPlaylist.relationships.tracks.data.length })}, ${app.convertTime(timeInSeconds, 'long')}`
+ } catch (err) {
+ return ""
+ }
+ },
+ async getLibrarySongs() {
+ let response = await this.mkapi("songs", true, "", { limit: 100, l: this.mklang }, { includeResponseMeta: !0 })
+ this.library.songs.listing = response.data.data
+ this.library.songs.meta = response.data.meta
+ },
+ async getLibraryAlbums() {
+ let response = await this.mkapi("albums", true, "", { limit: 100, l: this.mklang }, { includeResponseMeta: !0 })
+ this.library.albums.listing = response.data.data
+ this.library.albums.meta = response.data.meta
+ },
+ async getListenNow(attempt = 0) {
+ if (this.listennow.timestamp > Date.now() - 120000) {
+ return
+ }
+
+ if (attempt > 3) {
+ return
+ }
+ try {
+ this.listennow = (await this.mk.api.v3.music(`v1/me/recommendations?timezone=${encodeURIComponent(this.formatTimezoneOffset())}`, {
+ name: "listen-now",
+ with: "friendsMix,library,social",
+ "art[social-profiles:url]": "c",
+ "art[url]": "c,f",
+ "omit[resource]": "autos",
+ "relate[editorial-items]": "contents",
+ extend: ["editorialCard", "editorialVideo"],
+ "extend[albums]": ["artistUrl"],
+ "extend[library-albums]": ["artistUrl", "editorialVideo"],
+ "extend[playlists]": ["artistNames", "editorialArtwork", "editorialVideo"],
+ "extend[library-playlists]": ["artistNames", "editorialArtwork", "editorialVideo"],
+ "extend[social-profiles]": "topGenreNames",
+ "include[albums]": "artists",
+ "include[songs]": "artists",
+ "include[music-videos]": "artists",
+ "fields[albums]": ["artistName", "artistUrl", "artwork", "contentRating", "editorialArtwork", "editorialVideo", "name", "playParams", "releaseDate", "url"],
+ "fields[artists]": ["name", "url"],
+ "extend[stations]": ["airDate", "supportsAirTimeUpdates"],
+ "meta[stations]": "inflectionPoints",
+ types: "artists,albums,editorial-items,library-albums,library-playlists,music-movies,music-videos,playlists,stations,uploaded-audios,uploaded-videos,activities,apple-curators,curators,tv-shows,social-upsells",
+ platform: "web",
+ l: this.mklang
+ }, {
+ includeResponseMeta: !0,
+ reload: !0
+ })).data;
+ this.listennow.timestamp = Date.now()
+ console.log(this.listennow)
+ } catch (e) {
+ console.log(e)
+ this.getListenNow(attempt + 1)
+ }
+ },
+ async getBrowsePage(attempt = 0) {
+ if (this.browsepage.timestamp > Date.now() - 120000) {
+ return
+ }
+ if (attempt > 3) {
+ return
+ }
+ try {
+ let browse = await app.mk.api.v3.music(`/v1/editorial/${app.mk.storefrontId}/groupings`, {
+ platform: "web",
+ name: "music",
+ "omit[resource:artists]": "relationships",
+ "include[albums]": "artists",
+ "include[songs]": "artists",
+ "include[music-videos]": "artists",
+ extend: "editorialArtwork,artistUrl",
+ "fields[artists]": "name,url,artwork,editorialArtwork,genreNames,editorialNotes",
+ "art[url]": "f",
+ l: this.mklang
+ });
+ this.browsepage = browse.data.data[0];
+ this.browsepage.timestamp = Date.now()
+ console.log(this.browsepage)
+ } catch (e) {
+ console.log(e)
+ this.getBrowsePage(attempt + 1)
+ }
+ },
+ async getRadioStations(attempt = 0) {
+ if (attempt > 3) {
+ return
+ }
+ try {
+ this.radio.personal = (await app.mk.api.v3.music(`/v1/me/recent/radio-stations`, {
+ "platform": "web",
+ "art[url]": "f",
+ l: this.mklang
+ })).data.data;
+ } catch (e) {
+ console.log(e)
+ this.getRadioStations(attempt + 1)
+ }
+ },
+ async getMadeForYou(attempt = 0) {
+ if (attempt > 3) {
+ return
+ }
+ try {
+ let mfu = await app.mk.api.v3.music("/v1/me/library/playlists?platform=web&extend=editorialVideo&fields%5Bplaylists%5D=lastModifiedDate&filter%5Bfeatured%5D=made-for-you&include%5Blibrary-playlists%5D=catalog&fields%5Blibrary-playlists%5D=artwork%2Cname%2CplayParams%2CdateAdded")
+ this.madeforyou = mfu.data
+ } catch (e) {
+ console.log(e)
+ this.getMadeForYou(attempt + 1)
+ }
+ },
+ newPlaylistFolder(name = app.getLz('term.newPlaylistFolder')) {
+ let self = this
+ this.mk.api.v3.music(
+ "/v1/me/library/playlist-folders/", {}, {
+ fetchOptions: {
+ method: "POST",
+ body: JSON.stringify({
+ attributes: { name: name }
+ })
+ }
+ }
+ ).then((res) => {
+ let playlist = (res.data.data[0])
+ self.playlists.listing.push({
+ id: playlist.id,
+ attributes: {
+ name: playlist.attributes.name
+ },
+ type: "library-playlist-folders",
+ parent: "p.playlistsroot"
+ })
+ self.sortPlaylists()
+ setTimeout(() => {
+ app.refreshPlaylists()
+ }, 13000)
+ })
+ },
+ showSearch() {
+ this.page = "search"
+ },
+ loadLyrics() {
+ const musicType = (MusicKit.getInstance().nowPlayingItem != null) ? MusicKit.getInstance().nowPlayingItem["type"] ?? '' : '';
+ // console.log("mt", musicType)
+ if (musicType === "musicVideo") {
+ this.loadYTLyrics();
+ } else {
+ if (app.cfg.lyrics.enable_mxm) {
+ this.loadMXM();
+ } else {
+ this.loadAMLyrics();
+ }
+ }
+ },
+ loadAMLyrics() {
+ const songID = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem["_songId"] ?? (this.mk.nowPlayingItem["songId"] ?? -1) : -1;
+ // this.getMXM( trackName, artistName, 'en', duration);
+ if (songID != -1) {
+ this.mk.api.v3.music(`v1/catalog/${this.mk.storefrontId}/songs/${songID}/lyrics`)
+ .then((response) => {
+ this.lyricsMediaItem = response.data?.data[0]?.attributes["ttml"]
+ this.parseTTML()
+ })
+ }
+ },
+ addToLibrary(id) {
+ let self = this
+ this.mk.addToLibrary(id).then((data) => {
+ self.getLibrarySongsFull(true)
+ })
+ notyf.success(app.getLz('action.addToLibrary.success'));
+ },
+ removeFromLibrary(kind, id) {
+ let self = this
+ let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
+ app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`, {}, {
+ fetchOptions: {
+ method: "DELETE"
+ }
+ }).then((data) => {
+ self.getLibrarySongsFull(true)
+ })
+ notyf.success(app.getLz('action.removeFromLibrary.success'))
+ },
+ async loadYTLyrics() {
+ const track = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : '';
+ const artist = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : '';
+ const time = (this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1;
+ ipcRenderer.invoke('getYTLyrics', track, artist).then((result) => {
+ if (result.length > 0) {
+ let ytid = result[0]['id']['videoId'];
+ if (app.cfg.lyrics.enable_yt) {
+ loadYT(ytid, app.cfg.lyrics.mxm_language ?? "en")
+ } else {
+ app.loadMXM()
+ }
+ } else {
+ app.loadMXM()
+ }
+
+ function loadYT(id, lang) {
+ let req = new XMLHttpRequest();
+ let url = `https://www.youtube.com/watch?&v=${id}`;
+ req.open('GET', url, true);
+ req.onerror = function (e) {
+ this.loadMXM();
+ }
+ req.onload = function () {
+ // console.log(this.responseText);
+ let res = this.responseText;
+ let captionurl1 = res.substring(res.indexOf(`{"playerCaptionsRenderer":{"baseUrl":"`) + (`{"playerCaptionsRenderer":{"baseUrl":"`).length);
+ let captionurl = captionurl1.substring(0, captionurl1.indexOf(`"`));
+ if (captionurl.includes("timedtext")) {
+ let json = JSON.parse(`{"url": "${captionurl}"}`);
+ let newurl = json.url + `&lang=${lang}&format=ttml`
+
+ let req2 = new XMLHttpRequest();
+
+ req2.open('GET', newurl, true);
+ req2.onerror = function (e) {
+ app.loadMXM();
+ }
+ req2.onload = function () {
+ try {
+ const ttmlLyrics = this.responseText;
+ if (ttmlLyrics) {
+ this.lyricsMediaItem = ttmlLyrics
+ this.parseTTML()
+ }
+ } catch (e) {
+ app.loadMXM();
+ }
+
+ }
+ req2.send();
+ } else {
+
+ app.loadMXM();
+
+ }
+ }
+ req.send();
+ }
+
+ })
+
+ },
+ loadMXM() {
+ let attempt = 0;
+ const track = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : '');
+ const artist = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : '');
+ const time = encodeURIComponent((this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1);
+ const id = encodeURIComponent((this.mk.nowPlayingItem != null) ? app.mk.nowPlayingItem._songId ?? (app.mk.nowPlayingItem["songId"] ?? '') : '');
+ let lrcfile = "";
+ let richsync = [];
+ const lang = app.cfg.lyrics.mxm_language // translation language
+ function revisedRandId() {
+ return Math.random().toString(36).replace(/[^a-z]+/g, '').slice(2, 10);
+ }
+
+ /* get token */
+ function getToken(mode, track, artist, songid, lang, time, id) {
+ if (attempt > 2) {
+ app.loadAMLyrics();
+ } else {
+ attempt = attempt + 1;
+ let url = "https://apic-desktop.musixmatch.com/ws/1.1/token.get?app_id=web-desktop-app-v1.0&t=" + revisedRandId();
+ let req = new XMLHttpRequest();
+ req.overrideMimeType("application/json");
+ req.open('GET', url, true);
+ req.setRequestHeader("authority", "apic-desktop.musixmatch.com");
+ req.onload = function () {
+ try {
+ let jsonResponse = JSON.parse(this.responseText);
+ let status2 = jsonResponse["message"]["header"]["status_code"];
+ if (status2 == 200) {
+ let token = jsonResponse["message"]["body"]["user_token"] ?? '';
+ if (token != "" && token != "UpgradeOnlyUpgradeOnlyUpgradeOnlyUpgradeOnly") {
+ console.log('200 token', mode);
+ // token good
+ app.mxmtoken = token;
+
+ if (mode == 1) {
+ getMXMSubs(track, artist, app.mxmtoken, lang, time, id);
+ } else {
+ getMXMTrans(songid, lang, app.mxmtoken);
+ }
+ } else {
+ console.log('fake 200 token');
+ getToken(mode, track, artist, songid, lang, time)
+ }
+ } else {
+ // console.log('token 4xx');
+ getToken(mode, track, artist, songid, lang, time)
+ }
+ } catch (e) {
+ console.log('error');
+ app.loadAMLyrics();
+ }
+ };
+ req.onerror = function () {
+ console.log('error');
+ app.loadAMLyrics();
+ };
+ req.send();
+ }
+ }
+
+ function getMXMSubs(track, artist, token, lang, time, id) {
+ let usertoken = encodeURIComponent(token);
+ let richsyncQuery = (app.cfg.lyrics.mxm_karaoke) ? "&optional_calls=track.richsync" : ""
+ let timecustom = (!time || (time && time < 0)) ? '' : `&f_subtitle_length=${time}&q_duration=${time}&f_subtitle_length_max_deviation=40`;
+ let itunesid = (id && id != "") ? `&track_itunes_id=${id}` : '';
+ let url = "https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get?format=json&namespace=lyrics_richsynched" + richsyncQuery + "&subtitle_format=lrc&q_artist=" + artist + "&q_track=" + track + itunesid + "&usertoken=" + usertoken + timecustom + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId();
+ let req = new XMLHttpRequest();
+ req.overrideMimeType("application/json");
+ req.open('GET', url, true);
+ req.setRequestHeader("authority", "apic-desktop.musixmatch.com");
+ req.onload = function () {
+ try {
+ let jsonResponse = JSON.parse(this.responseText);
+ console.log(jsonResponse);
+ let status1 = jsonResponse["message"]["header"]["status_code"];
+
+ if (status1 == 200) {
+ let id = '';
+ try {
+ if (jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["header"]["status_code"] == 200 && jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["header"]["status_code"] == 200) {
+ id = jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["body"]["track"]["track_id"] ?? '';
+ lrcfile = jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["body"]["subtitle_list"][0]["subtitle"]["subtitle_body"];
+
+ try {
+ let lrcrich = jsonResponse["message"]["body"]["macro_calls"]["track.richsync.get"]["message"]["body"]["richsync"]["richsync_body"];
+ richsync = JSON.parse(lrcrich);
+ app.richlyrics = richsync;
+ } catch (_) {
+ }
+ }
+
+ if (lrcfile == "") {
+ app.loadAMLyrics()
+ } else {
+ if (richsync == [] || richsync.length == 0) {
+ console.log("ok");
+ // process lrcfile to json here
+ app.lyricsMediaItem = lrcfile
+ let u = app.lyricsMediaItem.split(/[\r\n]/);
+ let preLrc = []
+ for (var i = u.length - 1; i >= 0; i--) {
+ let xline = (/(\[[0-9.:\[\]]*\])+(.*)/).exec(u[i])
+ let end = (preLrc.length > 0) ? ((preLrc[preLrc.length - 1].startTime) ?? 99999) : 99999
+ preLrc.push({
+ startTime: app.toMS(xline[1].substring(1, xline[1].length - 2)) ?? 0,
+ endTime: end,
+ line: xline[2],
+ translation: ''
+ })
+ }
+ if (preLrc.length > 0)
+ preLrc.push({
+ startTime: 0,
+ endTime: preLrc[preLrc.length - 1].startTime,
+ line: "lrcInstrumental",
+ translation: ''
+ });
+ app.lyrics = preLrc.reverse();
+ } else {
+ let preLrc = richsync.map(function (item) {
+ return {
+ startTime: item.ts,
+ endTime: item.te,
+ line: item.x,
+ translation: ''
+ }
+ })
+ if (preLrc.length > 0)
+ preLrc.unshift({
+ startTime: 0,
+ endTime: preLrc[0].startTime,
+ line: "lrcInstrumental",
+ translation: ''
+ });
+ app.lyrics = preLrc;
+ }
+ if (lrcfile != null && lrcfile != '' && lang != "disabled") {
+ // load translation
+ getMXMTrans(id, lang, token);
+ } else {
+ app.loadAMLyrics()
+ }
+ }
+ } catch (e) {
+ console.log(e);
+ app.loadAMLyrics()
+ }
+ } else { //4xx rejected
+ getToken(1, track, artist, '', lang, time);
+ }
+ } catch (e) {
+ console.log(e);
+ app.loadAMLyrics()
+ }
+ }
+ req.onerror = function () {
+ console.log('error');
+ app.loadAMLyrics();
+ };
+ req.send();
+ }
+
+ function getMXMTrans(id, lang, token) {
+ if (lang != "disabled" && id != '') {
+ let usertoken = encodeURIComponent(token);
+ let url2 = "https://apic-desktop.musixmatch.com/ws/1.1/crowd.track.translations.get?translation_fields_set=minimal&selected_language=" + lang + "&track_id=" + id + "&comment_format=text&part=user&format=json&usertoken=" + usertoken + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId();
+ let req2 = new XMLHttpRequest();
+ req2.overrideMimeType("application/json");
+ req2.open('GET', url2, true);
+ req2.setRequestHeader("authority", "apic-desktop.musixmatch.com");
+ req2.onload = function () {
+ try {
+ let jsonResponse2 = JSON.parse(this.responseText);
+ console.log(jsonResponse2);
+ let status2 = jsonResponse2["message"]["header"]["status_code"];
+ if (status2 == 200) {
+ try {
+ let preTrans = []
+ let u = app.lyrics;
+ let translation_list = jsonResponse2["message"]["body"]["translations_list"];
+ if (translation_list.length > 0) {
+ for (var i = 0; i < u.length - 1; i++) {
+ preTrans[i] = ""
+ for (var trans_line of translation_list) {
+ if (u[i].line == " " + trans_line["translation"]["matched_line"] || u[i].line == trans_line["translation"]["matched_line"]) {
+ u[i].translation = trans_line["translation"]["description"];
+ break;
+ }
+ }
+ }
+ app.lyrics = u;
+ }
+ } catch (e) {
+ /// not found trans -> ignore
+ }
+ } else { //4xx rejected
+ getToken(2, '', '', id, lang, '');
+ }
+ } catch (e) { }
+ }
+ req2.send();
+ }
+
+ }
+
+ if (track != "" & track != "No Title Found") {
+ if (app.mxmtoken != null && app.mxmtoken != '') {
+ getMXMSubs(track, artist, app.mxmtoken, lang, time, id)
+ } else {
+ getToken(1, track, artist, '', lang, time);
+ }
+ }
+ },
+ toMS(str) {
+ let rawTime = str.match(/(\d+:)?(\d+:)?(\d+)(\.\d+)?/);
+ let hours = (rawTime[2] != null) ? (rawTime[1].replace(":", "")) : 0;
+ let minutes = (rawTime[2] != null) ? (hours * 60 + rawTime[2].replace(":", "") * 1) : ((rawTime[1] != null) ? rawTime[1].replace(":", "") : 0);
+ let seconds = (rawTime[3] != null) ? (rawTime[3]) : 0;
+ let milliseconds = (rawTime[4] != null) ? (rawTime[4].replace(".", "")) : 0
+ return parseFloat(`${minutes * 60 + seconds * 1}.${milliseconds * 1}`);
+ },
+ parseTTML() {
+ this.lyrics = [];
+ let preLrc = [];
+ let xml = this.stringToXml(this.lyricsMediaItem);
+ let lyricsLines = xml.getElementsByTagName('p');
+ let synced = true;
+ let endTimes = [];
+ if (xml.getElementsByTagName('tt')[0].getAttribute("itunes:timing") === "None") {
+ synced = false;
+ }
+ endTimes.push(0);
+ if (synced) {
+ for (let element of lyricsLines) {
+ let start = this.toMS(element.getAttribute('begin'))
+ let end = this.toMS(element.getAttribute('end'))
+ if (start - endTimes[endTimes.length - 1] > 5 && endTimes[endTimes.length - 1] != 0) {
+ preLrc.push({
+ startTime: endTimes[endTimes.length - 1],
+ endTime: start,
+ line: "lrcInstrumental"
+ });
+ }
+ preLrc.push({ startTime: start, endTime: end, line: element.textContent });
+ endTimes.push(end);
+ }
+ // first line dot
+ if (preLrc.length > 0)
+ preLrc.unshift({ startTime: 0, endTime: preLrc[0].startTime, line: "lrcInstrumental" });
+ } else {
+ for (let element of lyricsLines) {
+ preLrc.push({ startTime: 9999999, endTime: 9999999, line: element.textContent });
+ }
+ }
+ this.lyrics = preLrc;
+
+ },
+ parseLyrics() {
+ let xml = this.stringToXml(this.lyricsMediaItem)
+ let json = xmlToJson(xml);
+ this.lyrics = json
+ },
+ stringToXml(st) {
+ // string to xml
+ let xml = (new DOMParser()).parseFromString(st, "text/xml");
+ return xml;
+
+ },
+ getCurrentTime() {
+ return parseFloat(this.hmsToSecondsOnly(this.parseTime(this.mk.nowPlayingItem.attributes.durationInMillis - app.mk.currentPlaybackTimeRemaining * 1000)));
+ },
+ seekTo(time) {
+ this.mk.seekToTime(time);
+ },
+ parseTime(value) {
+ let minutes = Math.floor(value / 60000);
+ let seconds = ((value % 60000) / 1000).toFixed(0);
+ return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
+ },
+ parseTimeDecimal(value) {
+ let minutes = Math.floor(value / 60000);
+ let seconds = ((value % 60000) / 1000).toFixed(0);
+ return minutes + "." + (seconds < 10 ? '0' : '') + seconds;
+ },
+ hmsToSecondsOnly(str) {
+ let p = str.split(':'),
+ s = 0,
+ m = 1;
+
+ while (p.length > 0) {
+ s += m * parseInt(p.pop(), 10);
+ m *= 60;
+ }
+
+ return s;
+ },
+ getLyricBGStyle(start, end) {
+ let currentTime = this.getCurrentTime();
+ // let duration = this.mk.nowPlayingItem.attributes.durationInMillis
+ let start2 = this.hmsToSecondsOnly(start)
+ let end2 = this.hmsToSecondsOnly(end)
+ // let currentProgress = ((100 * (currentTime)) / (end2))
+ // check if currenttime is between start and end
+ this.player.lyricsDebug.start = start2
+ this.player.lyricsDebug.end = end2
+ this.player.lyricsDebug.current = currentTime
+ if (currentTime >= start2 && currentTime <= end2) {
+ return {
+ "--bgSpeed": `${(end2 - start2)}s`
+ }
+ } else {
+ return {}
+ }
+ },
+ playMediaItemById(id, kind, isLibrary, raurl = "") {
+ let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
+ console.log(id, truekind, isLibrary)
+ try {
+ if (truekind.includes("artist")) {
+ app.mk.setStationQueue({ artist: 'a-' + id }).then(() => {
+ app.mk.play()
+ })
+ } else if (truekind == "radioStations") {
+ this.mk.setStationQueue({ url: raurl }).then(function (queue) {
+ MusicKit.getInstance().play()
+ });
+ } else {
+ this.mk.setQueue({
+ [truekind]: [id],
+ parameters: { l: this.mklang }
+ }).then(function (queue) {
+ MusicKit.getInstance().play()
+ })
+ }
+ } catch (err) {
+ console.log(err)
+ this.playMediaItemById(id, kind, isLibrary, raurl)
+ }
+ },
+ queueParentandplayChild(parent, childIndex, item) {
+
+ /* Randomize array in-place using Durstenfeld shuffle algorithm */
+ function shuffleArray(array) {
+ for (var i = array.length - 1; i > 0; i--) {
+ var j = Math.floor(Math.random() * (i + 1));
+ var temp = array[i];
+ array[i] = array[j];
+ array[j] = temp;
+ }
+ }
+
+ let kind = parent.substring(0, parent.indexOf(":"))
+ let id = parent.substring(parent.indexOf(":") + 1, parent.length)
+ let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
+ console.log(truekind, id)
+
+ try {
+ if (app.library.songs.displayListing.length > childIndex && parent == "librarysongs") {
+ console.log(item)
+ if (item && ((app.library.songs.displayListing[childIndex].id != item.id))) {
+ childIndex = app.library.songs.displayListing.indexOf(item)
+ }
+
+ let query = app.library.songs.displayListing.map(item => new MusicKit.MediaItem(item));
+
+
+ app.mk.stop().then(() => {
+ if (item) {
+ app.mk.setQueue({
+ [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id,
+ parameters: { l: app.mklang }
+ }).then(function () {
+ app.mk.play().then(() => {
+ if (app.mk.shuffleMode == 1) {
+ shuffleArray(query)
+ } else {
+ for (let i = 0; i < query.length; i++) {
+ if (query[i].id == item.id) {
+ query.splice(0, i + 1);
+ break;
+ }
+ }
+ }
+ app.mk.queue.append(query)
+ })
+ })
+ } else {
+ app.mk.queue.splice(0, app.mk.queue._itemIDs.length)
+ if (app.mk.shuffleMode == 1) {
+ shuffleArray(query)
+ }
+ app.mk.queue.append(query)
+ if (childIndex != -1) {
+ app.mk.changeToMediaAtIndex(childIndex)
+ } else {
+ app.mk.play()
+ }
+
+ }
+ })
+ } else if (parent.startsWith('listitem-hr')) {
+ app.mk.stop().then(() => {
+ if (app.mk.shuffleMode == 1) {
+ app.mk.setQueue({
+ [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id
+ }).then(function () {
+ app.mk.play().then(() => {
+ let data = JSON.parse(parent.split('listitem-hr')[1] ?? '[]')
+ let itemsToPlay = {}
+ let u = data.map(x => x.id)
+ try {
+ data.splice(u.indexOf(item.attributes.playParams.id ?? item.id), 1)
+ } catch (e) {
+ }
+ if (app.mk.shuffleMode == 1) {
+ shuffleArray(data)
+ }
+ data.forEach(item => {
+ if (!itemsToPlay[item.kind]) {
+ itemsToPlay[item.kind] = []
+ }
+ itemsToPlay[item.kind].push(item.id)
+ })
+ // loop through itemsToPlay
+ for (let kind in itemsToPlay) {
+ let ids = itemsToPlay[kind]
+ if (ids.length > 0) {
+ app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] })
+ }
+ }
+ })
+ })
+ } else {
+ let data = JSON.parse(parent.split('listitem-hr')[1] ?? '[]')
+ let itemsToPlay = {}
+ data.forEach(item => {
+ if (!itemsToPlay[item.kind]) {
+ itemsToPlay[item.kind] = []
+ }
+ itemsToPlay[item.kind].push(item.id)
+ })
+ // loop through itemsToPlay
+ app.mk.queue.splice(0, app.mk.queue._itemIDs.length)
+ let ind = 0;
+ for (let kind in itemsToPlay) {
+ let ids = itemsToPlay[kind]
+ if (ids.length > 0) {
+ if (app.mk.queue._itemIDs.length > 0) {
+ app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }).then(function () {
+ ind += 1;
+ console.log(ind, Object.keys(itemsToPlay).length)
+ if (ind >= Object.keys(itemsToPlay).length) {
+ app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id))
+ }
+ }
+ )
+ } else {
+ app.mk.setQueue({ [kind + "s"]: itemsToPlay[kind] }).then(function () {
+ ind += 1;
+ console.log(ind, Object.keys(itemsToPlay).length)
+ if (ind >= Object.keys(itemsToPlay).length) {
+ app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id))
+ }
+ }
+ )
+ }
+ }
+
+ }
+ }
+ })
+ } else {
+ app.mk.stop().then(() => {
+ if (truekind == "playlists" && (id.startsWith("p.") || id.startsWith("pl.u"))) {
+ app.mk.setQueue({
+ [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id,
+ parameters: { l: app.mklang }
+ }).then(function () {
+ app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1).then(function () {
+ if ((app.showingPlaylist && app.showingPlaylist.id == id)) {
+ let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
+ let u = query;
+ if (app.mk.shuffleMode == 1) {
+ shuffleArray(u)
+ } else {
+ for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) {
+ if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) {
+ u.splice(0, i + 1);
+ break;
+ }
+ }
+ }
+ app.mk.queue.append(u)
+ } else {
+ app.getPlaylistFromID(id, true).then(function () {
+ let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
+ let u = query;
+ if (app.mk.shuffleMode == 1) {
+ shuffleArray(u)
+ } else {
+ for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) {
+ if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) {
+ u.splice(0, i + 1);
+ break;
+ }
+ }
+ }
+ app.mk.queue.append(u)
+ })
+ }
+ })
+
+ })
+ } else {
+ this.mk.setQueue({
+ [truekind]: [id],
+ parameters: { l: this.mklang }
+ }).then(function (queue) {
+ if (item && ((queue._itemIDs[childIndex] != item.id))) {
+ childIndex = queue._itemIDs.indexOf(item.id)
+ }
+ if (childIndex != -1) {
+ app.mk.changeToMediaAtIndex(childIndex)
+ } else if (item) {
+ app.mk.playNext({
+ [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id
+ }).then(function () {
+ app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1)
+ app.mk.play()
+ })
+ } else {
+ app.mk.play()
+ }
+ })
+ }
+ })
+ }
+ } catch (err) {
+ console.log(err)
+ try {
+ app.mk.stop()
+ } catch (e) {
+ }
+ this.playMediaItemById(item.attributes.playParams.id ?? item.id, item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.url)
+ }
+
+ },
+ friendlyTypes(type) {
+ // use switch statement to return friendly name for media types "songs,artists,albums,playlists,music-videos,stations,apple-curators,curators"
+ switch (type) {
+ case "song":
+ return app.getLz('term.songs')
+ break;
+ case "artist":
+ return app.getLz('term.artists')
+ break;
+ case "album":
+ return app.getLz('term.albums')
+ break;
+ case "playlist":
+ return app.getLz('term.playlists')
+ break;
+ case "music_video":
+ return app.getLz('term.musicVideos')
+ break;
+ case "station":
+ return app.getLz('term.stations')
+ break;
+ case "apple-curator":
+ return app.getLz('term.appleCurators')
+ break;
+ case "radio_show":
+ return app.getLz('term.radioShows')
+ break;
+ case "record_label":
+ return app.getLz('term.recordLabels')
+ break;
+ case "radio_episode":
+ return app.getLz('podcast.episodes')
+ break;
+ case "video_extra":
+ return app.getLz('term.videoExtras')
+ break;
+ case "curator":
+ return app.getLz('term.curators')
+ break;
+ case "top":
+ return app.getLz('term.top')
+ break;
+ default:
+ return type
+ break;
+ }
+ },
+ async searchQuery(term = this.search.term) {
+ let self = this
+ if (term == "") {
+ return
+ }
+ //this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}`
+ this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${encodeURIComponent(this.search.term)}`, {
+ types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels",
+ "relate[editorial-items]": "contents",
+ "include[editorial-items]": "contents",
+ "include[albums]": "artists",
+ "include[artists]": "artists",
+ "include[songs]": "artists,albums",
+ "include[music-videos]": "artists",
+ "extend": "artistUrl",
+ "fields[artists]": "url,name,artwork,hero",
+ "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url",
+ "with": "serverBubbles,lyricHighlights",
+ "art[url]": "c,f",
+ "omit[resource]": "autos",
+ "platform": "web",
+ limit: 25,
+ l: this.mklang
+ }).then(function (results) {
+ results.data.results["meta"] = results.data.meta
+ self.search.results = results.data.results
+ })
+
+ await app.mk.api.v3.music(`v1/social/${app.mk.storefrontId}/search?term=${app.search.term}`, {
+ types: ["playlists", "social-profiles"],
+ limit: 25,
+ with: ["serverBubbles", "lyricSnippet"],
+ "art[url]": "f",
+ "art[social-profiles:url]": "c"
+ }, { includeResponseMeta: !0 }).then(function (results) {
+ results.data.results["meta"] = results.data.meta
+ self.search.resultsSocial = results.data.results
+ })
+ },
+ async inLibrary(items = []) {
+ let types = []
+
+ for (let item of items) {
+ let type = item.type
+ if (type.slice(-1) != "s") {
+ type += "s"
+ }
+ type = type.replace("library-", "")
+ let id = item.attributes.playParams.catalogId ?? item.attributes.playParams.id ?? item.id
+
+ let index = types.findIndex(function (type) {
+ return type.type == this
+ }, type)
+ if (index == -1) {
+ types.push({ type: type, id: [id] })
+ } else {
+ types[index].id.push(id)
+ }
+ }
+ let types2 = types.map(function (item) {
+ return {
+ [`ids[${item.type}]`]: [item.id]
+ }
+ })
+ types2 = types2.reduce(function (result, item) {
+ var key = Object.keys(item)[0]; //first property: a, b, c
+ result[key] = item[key];
+ return result;
+ }, {});
+ return (await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}`, {
+ ...{
+ "omit[resource]": "autos",
+ relate: "library",
+ fields: "inLibrary"
+ },
+ ...types2
+ })).data.data
+ },
+ isInLibrary(playParams) {
+ let self = this
+ let id = ""
+ // ugly code to check if current playback item is in library
+ if (typeof playParams == "undefined") {
+ return true
+ }
+ if (playParams["isLibrary"]) {
+ return true
+ } else if (playParams["catalogId"]) {
+ id = playParams["catalogId"]
+ } else if (playParams["id"]) {
+ id = playParams["id"]
+ }
+ let found = this.library.songs.listing.filter((item) => {
+ if (item["attributes"]) {
+ if (item["attributes"]["playParams"] && (item["attributes"]["playParams"]["catalogId"] == id)) {
+ return item;
+ }
+ }
+ })
+ if (found.length != 0) {
+ return true
+ } else {
+ return false
+ }
+ },
+ mkReady() {
+ if (this.mk["nowPlayingItem"]) {
+ return true
+ } else {
+ return false
+ }
+ },
+ getMediaItemArtwork(url, height = 64, width) {
+ if (typeof url == "undefined" || url == "") {
+ return "https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"
+ }
+ let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900) ? "sr" : "cc"))}`;
+
+ if (newurl.includes("900x516")) {
+ newurl = newurl.replace("900x516cc", "900x516sr").replace("900x516bb", "900x516sr");
+ }
+ return newurl
+ },
+ _rgbToRgb(rgb = [0, 0, 0]) {
+ // if rgb
+ return `rgb(${rgb[0]},${rgb[1]},${rgb[2]})`
+ },
+ getNowPlayingArtworkBG(size = 32, force = false) {
+ let self = this
+ if (typeof this.mk.nowPlayingItem === "undefined") return;
+ let bginterval = setInterval(() => {
+ if (!this.mkReady()) {
+ return ""
+ }
+
+ try {
+ if ((this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] != this.currentTrackID && document.querySelector('.bg-artwork')) || force) {
+ if (document.querySelector('.bg-artwork')) {
+ clearInterval(bginterval);
+ }
+ this.currentTrackID = this.mk.nowPlayingItem["id"];
+ document.querySelector('.bg-artwork').src = "";
+ if (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"]) {
+ getBase64FromUrl(this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"].replace('{w}', size).replace('{h}', size)).then(img => {
+ document.querySelectorAll('.bg-artwork').forEach(artwork => {
+ artwork.src = img;
+ })
+ self.$store.commit("setLCDArtwork", img)
+ })
+ try {
+ clearInterval(bginterval);
+ } catch (err) {
+ }
+ } else {
+ this.setLibraryArtBG()
+ }
+ } else if (this.mk.nowPlayingItem["id"] == this.currentTrackID) {
+ try {
+ clearInterval(bginterval);
+ } catch (err) {
+ }
+ }
+ } catch (e) {
+ if (this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] && document.querySelector('.bg-artwork')) {
+ this.setLibraryArtBG()
+ try {
+ clearInterval(bginterval);
+ } catch (err) {
+ }
+ }
+ }
+ }, 200)
+ },
+ async getCurrentArtURL() {
+ try {
+ let artworkSize = 50
+ if (app.getThemeDirective("lcdArtworkSize") != "") {
+ artworkSize = app.getThemeDirective("lcdArtworkSize")
+ } else if (this.cfg.visual.directives.windowLayout == "twopanel") {
+ artworkSize = 80
+ }
+ this.currentArtUrl = '';
+ this.currentArtUrlRaw = '';
+ if (app.mk.nowPlayingItem != null && app.mk.nowPlayingItem.attributes != null && app.mk.nowPlayingItem.attributes.artwork != null && app.mk.nowPlayingItem.attributes.artwork.url != null && app.mk.nowPlayingItem.attributes.artwork.url != '') {
+ this.currentArtUrlRaw = (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"] ?? '')
+ this.currentArtUrl = (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"] ?? '').replace('{w}', artworkSize).replace('{h}', artworkSize);
+ try {
+ document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
+ } catch (e) {
+ }
+ } else {
+ let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`);
+ data = data.data.data[0];
+ if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) {
+ this.currentArtUrlRaw = (data["attributes"]["artwork"]["url"] ?? '')
+ this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', artworkSize).replace('{h}', artworkSize);
+ ipcRenderer.send('updateRPCImage', this.currentArtUrl ?? '');
+ try {
+ document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
+ } catch (e) {
+ }
+ } else {
+ this.currentArtUrlRaw = ''
+ this.currentArtUrl = '';
+ try {
+ document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
+ } catch (e) {
+ }
+ }
+ }
+ } catch (e) {
+
+ }
+ },
+ async setLibraryArt() {
+ if (typeof this.mk.nowPlayingItem === "undefined") return;
+ try {
+ let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`);
+ data = data.data.data[0];
+
+ if (data != null && data !== "") {
+ document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', 'url("' + (data["attributes"]["artwork"]["url"]).toString() + '")');
+ } else {
+ document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("")`);
+ }
+ } catch (e) {
+ }
+ },
+ async setLibraryArtBG() {
+ if (typeof this.mk.nowPlayingItem === "undefined") return;
+ try {
+ let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`);
+ data = data.data.data[0];
+
+ if (data != null && data !== "") {
+ getBase64FromUrl((data["attributes"]["artwork"]["url"]).toString()).then(img => {
+ document.querySelector('.bg-artwork').forEach(artwork => {
+ artwork.src = img;
+ })
+ self.$store.commit("setLCDArtwork", img)
+ })
+ }
+ } catch (e) {
+ }
+
+ },
+ quickPlay(query) {
+ let self = this
+ MusicKit.getInstance().api.search(query, { limit: 2, types: 'songs' }).then(function (data) {
+ MusicKit.getInstance().setQueue({
+ song: data["songs"]['data'][0]["id"],
+ parameters: { l: app.mklang }
+ }).then(function (queue) {
+ MusicKit.getInstance().play()
+ setTimeout(() => {
+ self.$forceUpdate()
+ }, 1000)
+ })
+ })
+ },
+ async getRating(item) {
+ let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
+ let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id)
+ if (item.id != null && (item.id.toString()).startsWith("i.")) {
+ if (!type.startsWith("library-")) {
+ type = "library-" + type
+ }
+ id = item.id
+ }
+ let response = await this.mk.api.v3.music(`/v1/me/ratings/${type}?platform=web&ids=${type.includes('library') ? item.id : id}`)
+ if (response.data.data.length != 0) {
+ let value = response.data.data[0].attributes.value
+ return value
+ } else {
+ return 0
+ }
+ },
+ love(item) {
+ let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
+ let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id)
+ if (item.id != null && (item.id.toString()).startsWith("i.")) {
+ if (!type.startsWith("library-")) {
+ type = "library-" + type
+ }
+ id = item.id
+ }
+ this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, {
+ fetchOptions: {
+ method: "PUT",
+ body: JSON.stringify({
+ "type": "rating",
+ "attributes": {
+ "value": 1
+ }
+ })
+ }
+ })
+ },
+ dislike(item) {
+ let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
+ let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id)
+ if (item.id != null && (item.id.toString()).startsWith("i.")) {
+ if (!type.startsWith("library-")) {
+ type = "library-" + type
+ }
+ id = item.id
+ }
+ this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, {
+ fetchOptions: {
+ method: "PUT",
+ body: JSON.stringify({
+ "type": "rating",
+ "attributes": {
+ "value": -1
+ }
+ })
+ }
+ })
+ },
+ unlove(item) {
+ let type = item.type.slice(-1) === "s" ? item.type : item.type + "s"
+ let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id
+ if (item.id.startsWith("i.")) {
+ if (!type.startsWith("library-")) {
+ type = "library-" + type
+ }
+ id = item.id
+ }
+ this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, {
+ fetchOptions: {
+ method: "DELETE",
+ }
+ })
+ },
+ checkScrollDirectionIsUp(event) {
+ if (event.wheelDelta) {
+ return event.wheelDelta > 0;
+ }
+ return event.deltaY < 0;
+ },
+ volumeUp() {
+ if ((app.mk.volume + app.cfg.audio.volumeStep) > app.cfg.audio.maxVolume) {
+ app.mk.volume = app.cfg.audio.maxVolume;
+ console.log('setting max volume')
+ } else {
+ console.log('volume up')
+ app.mk.volume = ((app.mk.volume * 100) + (app.cfg.audio.volumeStep * 100)) / 100
+ }
+ },
+ volumeDown() {
+ if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) {
+ app.mk.volume = 0;
+ console.log('setting volume to 0')
+ } else {
+ console.log('volume down')
+ app.mk.volume = ((app.mk.volume * 100) - (app.cfg.audio.volumeStep * 100)) / 100
+ }
+ },
+ volumeWheel(event) {
+ app.checkScrollDirectionIsUp(event) ? this.volumeUp() : this.volumeDown()
+ },
+ muteButtonPressed() {
+ if (this.cfg.audio.muted) {
+ this.mk.volume = this.cfg.audio.lastVolume;
+ this.cfg.audio.muted = false;
+ } else {
+ this.cfg.audio.lastVolume = this.cfg.audio.volume;
+ this.mk.volume = 0;
+ this.cfg.audio.muted = true;
+ }
+ },
+ checkMuteChange() {
+ if (this.cfg.audio.muted) {
+ this.cfg.audio.muted = false;
+ }
+ },
+ async apiCall(url, callback) {
+ const xmlHttp = new XMLHttpRequest();
+
+ xmlHttp.onreadystatechange = (e) => {
+ if (xmlHttp.readyState !== 4) {
+ return;
+ }
+
+ if (xmlHttp.status === 200) {
+ // console.log('SUCCESS', xmlHttp.responseText);
+ callback(JSON.parse(xmlHttp.responseText));
+ } else {
+ console.warn('request_error');
+ }
+ };
+
+ xmlHttp.open("GET", url);
+ xmlHttp.setRequestHeader("Authorization", "Bearer " + MusicKit.getInstance().developerToken);
+ xmlHttp.setRequestHeader("Music-User-Token", "" + MusicKit.getInstance().musicUserToken);
+ xmlHttp.setRequestHeader("Accept", "application/json");
+ xmlHttp.setRequestHeader("Content-Type", "application/json");
+ xmlHttp.responseType = "text";
+ xmlHttp.send();
+ },
+ fetchPlaylist(id, callback) {
+ // id can be found in playlist.attributes.playParams.globalId
+ // this.mk.api.
+ this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`).then(res => {
+ callback(res.data.data[0])
+ })
+
+ // tracks are found in relationship.data
+ },
+ windowFocus(val) {
+ if (val) {
+ document.querySelectorAll(".animated-artwork-video").forEach(el => {
+ el.play()
+ })
+ document.querySelector("body").classList.remove("stopanimation")
+ this.animateBackground = true
+ } else {
+ document.querySelectorAll(".animated-artwork-video").forEach(el => {
+ el.pause()
+ })
+ document.querySelector("body").classList.add("stopanimation")
+ this.animateBackground = false
+ }
+ },
+ async nowPlayingContextMenu(event) {
+ let self = this
+ let data_type = this.mk.nowPlayingItem.playParams.kind
+ let item_id = this.mk.nowPlayingItem.attributes.playParams.id ?? this.mk.nowPlayingItem.id
+ let isLibrary = this.mk.nowPlayingItem.attributes.playParams.isLibrary ?? false
+ let params = { "fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "t": "1" }
+ app.selectedMediaItems = []
+ app.select_selectMediaItem(item_id, data_type, 0, '12344', isLibrary)
+ let useMenu = "normal"
+ let menus = {
+ multiple: {
+ items: []
+ },
+ normal: {
+ headerItems: [{
+ "icon": "./assets/feather/heart.svg",
+ "id": "love",
+ "name": app.getLz('action.love'),
+ "hidden": false,
+ "disabled": true,
+ "action": function () {
+ app.love(app.mk.nowPlayingItem)
+ }
+ },
+ {
+ "icon": "./assets/feather/heart.svg",
+ "id": "unlove",
+ "active": true,
+ "name": app.getLz('action.unlove'),
+ "hidden": true,
+ "action": function () {
+ app.unlove(app.mk.nowPlayingItem)
+ }
+ },
+ {
+ "icon": "./assets/feather/thumbs-down.svg",
+ "id": "dislike",
+ "name": app.getLz('action.dislike'),
+ "hidden": false,
+ "disabled": true,
+ "action": function () {
+ app.dislike(app.mk.nowPlayingItem)
+ }
+ },
+ {
+ "icon": "./assets/feather/thumbs-down.svg",
+ "id": "undo_dislike",
+ "name": app.getLz('action.undoDislike'),
+ "active": true,
+ "hidden": true,
+ "action": function () {
+ app.unlove(app.mk.nowPlayingItem)
+ }
+ },
+ ],
+ items: [
+ {
+ "icon": "./assets/feather/plus.svg",
+ "id": "addToLibrary",
+ "name": app.getLz('action.addToLibrary') + " ...",
+ "disabled": true,
+ "action": function () {
+ app.addToLibrary(app.mk.nowPlayingItem.id);
+ }
+ },
+ {
+ "id": "removeFromLibrary",
+ "icon": "./assets/feather/x-circle.svg",
+ "name": app.getLz('action.removeFromLibrary'),
+ "hidden": true,
+ "action": function () {
+ self.removeFromLibrary()
+ }
+ },
+ {
+ "icon": "./assets/feather/list.svg",
+ "name": app.getLz('action.addToPlaylist') + " ...",
+ "action": function () {
+ app.promptAddToPlaylist()
+ }
+ },
+ {
+ "icon": "./assets/feather/radio.svg",
+ "name": app.getLz('action.startRadio'),
+ "action": function () {
+ app.mk.setStationQueue({ song: app.mk.nowPlayingItem.id }).then(() => {
+ app.mk.play()
+ app.selectedMediaItems = []
+ })
+ }
+ },
+ {
+ "icon": "./assets/feather/user.svg",
+ "name": app.getLz('action.goToArtist'),
+ "action": function () {
+ app.appRoute(`artist/${app.mk.nowPlayingItem.relationships.artists.data[0].id}`)
+ }
+ },
+ {
+ "icon": "./assets/feather/disc.svg",
+ "name": app.getLz('action.goToAlbum'),
+ "action": function () {
+ app.appRoute(`album/${app.mk.nowPlayingItem.relationships.albums.data[0].id}`)
+ }
+ },
+ {
+ "id": "showInMusic",
+ "icon": "./assets/music.svg",
+ "hidden": true,
+ "name": app.getLz('action.showInAppleMusic'),
+ "action": function () {
+ app.routeView(app.mk.nowPlayingItem._container)
+ }
+ },
+ {
+ "icon": "./assets/feather/share.svg",
+ "name": app.getLz('action.share'),
+ "action": function () {
+ app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? (app.mk.nowPlayingItem.songId ?? app.mk.nowPlayingItem.id) ?? '').then(u => {
+ app.copyToClipboard((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
+ })
+ }
+ },
+ {
+ "icon": "./assets/feather/share.svg",
+ "name": `${app.getLz('action.share')} (song.link)`,
+ "action": function () {
+ app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? (app.mk.nowPlayingItem.songId ?? app.mk.nowPlayingItem.id) ?? '').then(u => {
+ app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
+ })
+ }
+ }
+ ]
+ }
+ }
+ if (this.contextExt) {
+ if (this.contextExt.normal) {
+ menus.normal.items = menus.normal.items.concat(this.contextExt.normal)
+ }
+ }
+
+ if (app.mk.nowPlayingItem._container["attributes"] && app.mk.nowPlayingItem._container.name != "station") {
+ menus.normal.items.find(x => x.id == "showInMusic").hidden = false
+ }
+
+ this.showMenuPanel(menus[useMenu], event)
+
+ try {
+ let result = await this.inLibrary([this.mk.nowPlayingItem])
+ if (result[0].attributes.inLibrary) {
+ menus.normal.items.find(x => x.id == 'addToLibrary').hidden = true
+ menus.normal.items.find(x => x.id == 'removeFromLibrary').hidden = false
+ } else {
+ menus.normal.items.find(x => x.id == 'addToLibrary').disabled = false
+ }
+ } catch (e) {
+ e = null
+ }
+
+ try {
+ let rating = await app.getRating(app.mk.nowPlayingItem)
+ if (rating == 0) {
+ menus.normal.headerItems.find(x => x.id == 'love').disabled = false
+ menus.normal.headerItems.find(x => x.id == 'dislike').disabled = false
+ } else if (rating == 1) {
+ menus.normal.headerItems.find(x => x.id == 'unlove').hidden = false
+ menus.normal.headerItems.find(x => x.id == 'love').hidden = true
+ } else if (rating == -1) {
+ menus.normal.headerItems.find(x => x.id == 'undo_dislike').hidden = false
+ menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true
+ }
+ } catch (err) {
+
+ }
+ },
+ LastFMDeauthorize() {
+ ipcRenderer.invoke('setStoreValue', 'lastfm.enabled', false).catch((e) => console.error(e));
+ ipcRenderer.invoke('setStoreValue', 'lastfm.auth_token', '').catch((e) => console.error(e));
+ app.cfg.lastfm.auth_token = "";
+ app.cfg.lastfm.enabled = false;
+ const element = document.getElementById('lfmConnect');
+ element.innerHTML = app.getLz('term.connect');
+ element.onclick = app.LastFMAuthenticate;
+ },
+ LastFMAuthenticate() {
+ console.log("[LastFM] Received LastFM authentication callback")
+ const element = document.getElementById('lfmConnect');
+ // new key : f9986d12aab5a0fe66193c559435ede3
+ window.open('https://www.last.fm/api/auth?api_key=f9986d12aab5a0fe66193c559435ede3&cb=cider://auth/lastfm');
+ element.innerText = app.getLz('term.connecting') + '...';
+
+ /* Just a timeout for the button */
+ setTimeout(() => {
+ if (element.innerText === app.getLz('term.connecting') + '...') {
+ element.innerText = app.getLz('term.connect');
+ console.warn('[LastFM] Attempted connection timed out.');
+ }
+ }, 20000);
+
+ ipcRenderer.on('LastfmAuthenticated', function (_event, lfmAuthKey) {
+ app.cfg.lastfm.auth_token = lfmAuthKey;
+ app.cfg.lastfm.enabled = true;
+ element.innerHTML = `${app.getLz('term.disconnect')}\n(${app.getLz('term.authed')}: ${lfmAuthKey})
`;
+ element.onclick = app.LastFMDeauthorize;
+ });
+ },
+ /**
+ parseSCTagToRG: function (tag) {
+ let soundcheck = tag.split(" ")
+ let numbers = []
+ for (item of soundcheck) {
+ numbers.push(parseInt(item, 16))
+
+ }
+ numbers.shift()
+ //let gain = Math.log10((Math.max(numbers[0], numbers[1]) ?? 1000) / 1000.0) * -10
+ let peak = Math.max(numbers[6], numbers[7]) / 32768.0
+ let gain = Math.pow(10, ((-7.63 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant
+ return {
+ gain: gain,
+ peak: peak
+ }
+ },*/
+ fullscreen(flag) {
+ if (flag) {
+ ipcRenderer.send('setFullScreen', true);
+ if (app.mk.nowPlayingItem.type && app.mk.nowPlayingItem.type.toLowerCase().includes("video")) {
+ document.querySelector('video#apple-music-video-player').requestFullscreen()
+ } else {
+ app.appMode = 'fullscreen';
+ }
+ document.addEventListener('keydown', event => {
+ if (event.key === 'Escape' && app.appMode === 'fullscreen') {
+ this.fullscreen(false);
+ }
+ });
+ } else {
+ ipcRenderer.send('setFullScreen', false);
+ app.appMode = 'player';
+ }
+ },
+ miniPlayer(flag) {
+ if (flag) {
+ this.tmpWidth = window.innerWidth;
+ this.tmpHeight = window.innerHeight;
+ ipcRenderer.send('unmaximize');
+ ipcRenderer.send('windowmin', 250, 250)
+ ipcRenderer.send('windowresize', 300, 300, false)
+ app.appMode = 'mini';
+ } else {
+ ipcRenderer.send('windowmin', 844, 410)
+ ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false)
+ ipcRenderer.send('windowontop', false)
+ //this.cfg.visual.miniplayer_top_toggle = true;
+ app.appMode = 'player';
+ }
+ },
+ pinMiniPlayer(status = false) {
+ if (!status) {
+ if (!this.cfg.visual.miniplayer_top_toggle) {
+ ipcRenderer.send('windowontop', true)
+ this.cfg.visual.miniplayer_top_toggle = true;
+ } else {
+ ipcRenderer.send('windowontop', false)
+ this.cfg.visual.miniplayer_top_toggle = false;
+ }
+ } else {
+ ipcRenderer.send('windowontop', this.cfg.visual.miniplayer_top_toggle ?? false)
+ }
+ },
+ formatTimezoneOffset: (e = new Date) => {
+ let leadingZeros = (e, s = 2) => {
+ let n = "" + e;
+ for (; n.length < s;)
+ n = "0" + n;
+ return n
+ }
+
+ const s = e.getTimezoneOffset(),
+ n = Math.floor(Math.abs(s) / 60),
+ d = Math.round(Math.abs(s) % 60);
+ let h = "+";
+ return 0 !== s && (h = s > 0 ? "-" : "+"),
+ `${h}${leadingZeros(n, 2)}:${leadingZeros(d, 2)}`
+ },
+ toggleHideUserInfo() {
+ if (this.chrome.hideUserInfo) {
+ this.cfg.visual.showuserinfo = true
+ this.chrome.hideUserInfo = false
+ } else {
+ this.cfg.visual.showuserinfo = false
+ this.chrome.hideUserInfo = true
+ }
+ },
+ isElementOverflowing(selector) {
+ try {
+ let element = document.querySelector(selector);
+ var overflowX = element.offsetWidth < element.scrollWidth,
+ overflowY = element.offsetHeight < element.scrollHeight;
+ element.setAttribute('data-value', '\xa0\xa0\xa0\xa0' + element.textContent);
+
+ return (overflowX || overflowY);
+ } catch (e) {
+ return false
+ }
+ },
+ async showWebRemoteQR() {
+ //this.webremoteqr = await ipcRenderer.invoke('setRemoteQR','')
+ this.webremoteurl = await ipcRenderer.invoke('showQR', '')
+ //this.modals.qrcode = true;
+ },
+ checkMarquee() {
+ if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-artist') == true) {
+ document.getElementsByClassName('song-artist')[0].classList.add('marquee');
+ document.getElementsByClassName('song-artist')[1].classList.add('marquee-after');
+ }
+ if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-name') == true) {
+ document.getElementsByClassName('song-name')[0].classList.add('marquee');
+ document.getElementsByClassName('song-name')[1].classList.add('marquee-after');
+ }
+ },
+ closeWindow() {
+ ipcRenderer.send('close');
+ },
+ darwinShare(url) {
+ ipcRenderer.send('share-menu', url)
+ },
+ arrayToChunk(arr, chunkSize) {
+ let R = [];
+ for (let i = 0, len = arr.length; i < len; i += chunkSize) {
+ R.push(arr.slice(i, i + chunkSize));
+ }
+ return R;
+ },
+ SpacePause() {
+ const elems = document.querySelectorAll('input');
+ for (let elem of elems) {
+ if (elem === document.activeElement) {
+ return;
+ }
+ }
+ if (!this.isDev) // disable in dev mode to keep my sanity
+ MusicKitInterop.playPause();
+ },
+ async MKJSLang() {
+ let u = this.cfg.general.language;
+ // use MusicKit.getInstance or crash
+ try {
+ let item = await MusicKit.getInstance().api.v3.music(`v1/storefronts/${app.mk.storefrontId}`)
+ let langcodes = item.data.data[0].attributes.supportedLanguageTags;
+ if (langcodes) langcodes = langcodes.map(function (u) {
+ return u.replace(/-Han[s|t]/i, "").toLowerCase()
+ })
+ console.log(langcodes)
+ let sellang = ""
+ if (u && langcodes.includes(u.toLowerCase().replace('_', "-"))) {
+ sellang = ((u.toLowerCase()).replace('_', "-"))
+ } else if (u && u.includes('_') && langcodes.includes(((u.toLowerCase()).replace('_', "-")).split("-")[0])) {
+ sellang = ((u.toLowerCase()).replace('_', "-")).split("-")[0]
+ }
+ if (sellang == "") sellang = (item.data.data[0].attributes.defaultLanguageTag).toLowerCase()
+
+ // Fix weird locales:
+ if (sellang == "iw") sellang = "iw-il"
+ sellang = sellang.replace(/-Han[s|t]/i, "").toLowerCase()
+
+ console.log(sellang)
+ return await sellang
+ } catch (err) {
+ console.log('locale err', err)
+ let langcodes = ['af', 'sq', 'ar', 'eu', 'bg', 'be', 'ca', 'zh', 'zh-tw', 'zh-cn', 'zh-hk', 'zh-sg', 'hr', 'cs', 'da', 'nl', 'nl-be', 'en', 'en-us', 'en-eg', 'en-au', 'en-gb', 'en-ca', 'en-nz', 'en-ie', 'en-za', 'en-jm', 'en-bz', 'en-tt', 'en-001', 'et', 'fo', 'fa', 'fi', 'fr', 'fr-ca', 'gd', 'de', 'de-ch', 'el', 'he', 'hi', 'hu', 'is', 'id', 'it', 'ja', 'ko', 'lv', 'lt', 'mk', 'mt', 'no', 'nb', 'nn', 'pl', 'pt-br', 'pt', 'rm', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'es-mx', 'es-419', 'sv', 'th', 'ts', 'tn', 'tr', 'uk', 'ur', 've', 'vi', 'xh', 'yi', 'zu', 'ms', 'iw', 'lo', 'tl', 'kk', 'ta', 'te', 'bn', 'ga', 'ht', 'la', 'pa', 'sa'];
+ let sellang = "en"
+ if (u && langcodes.includes(u.toLowerCase().replace('_', "-"))) {
+ sellang = ((u.toLowerCase()).replace('_', "-"))
+ } else if (u && u.includes('_') && langcodes.includes(((u.toLowerCase()).replace('_', "-")).split("-")[0])) {
+ sellang = ((u.toLowerCase()).replace('_', "-")).split("-")[0]
+ }
+ if (sellang.startsWith("en") && this.mk.storefrontId != "us") sellang = "en-gb"
+ return await sellang
+ }
+ },
+ skipToNextItem() {
+ app.prevButtonBackIndicator = false;
+ // app.mk.skipToNextItem() is buggy somehow so use this
+ if (this.mk.queue.nextPlayableItemIndex != -1 && this.mk.queue.nextPlayableItemIndex != null)
+ this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex);
+ },
+ skipToPreviousItem() {
+ // app.mk.skipToPreviousItem() is buggy somehow so use this
+ if (this.mk.queue.previousPlayableItemIndex != -1 && this.mk.queue.previousPlayableItemIndex != null)
+ this.mk.changeToMediaAtIndex(this.mk.queue.previousPlayableItemIndex);
+ },
+ mediaKeyFixes() {
+ navigator.mediaSession.setActionHandler('previoustrack', function () {
+ app.prevButton()
+ });
+ navigator.mediaSession.setActionHandler('nexttrack', function () {
+ app.skipToNextItem()
+ });
+ },
+ checkForUpdate() {
+ ipcRenderer.send('check-for-update')
+ document.getElementById('settings.option.general.updateCider.check').innerHTML = 'Checking...'
+ notyf.success('Checking for update in background...')
+ ipcRenderer.on('update-response', (event, res) => {
+ if (res === "update-not-available") {
+ notyf.error(app.getLz(`settings.notyf.updateCider.${res}`))
+ } else if (res === "update-downloaded") {
+ notyf.success(app.getLz(`settings.notyf.updateCider.${res}`))
+ } else if (res === "update-error") {
+ notyf.error(app.getLz(`settings.notyf.updateCider.${res}`))
+ } else if (res === "update-timeout") {
+ notyf.error(app.getLz(`settings.notyf.updateCider.${res}`))
+ }
+ document.getElementById('settings.option.general.updateCider.check').innerHTML = app.getLz('term.check')
+ })
+ },
+ }
+})
+
+
+export { app }
diff --git a/src/renderer/main/vuex-store.js b/src/renderer/main/vuex-store.js
new file mode 100644
index 00000000..fb2b774f
--- /dev/null
+++ b/src/renderer/main/vuex-store.js
@@ -0,0 +1,20 @@
+const store = new Vuex.Store({
+ state: {
+ library: {
+ // songs: ipcRenderer.sendSync("get-library-songs"),
+ // albums: ipcRenderer.sendSync("get-library-albums"),
+ // recentlyAdded: ipcRenderer.sendSync("get-library-recentlyAdded"),
+ // playlists: ipcRenderer.sendSync("get-library-playlists")
+ },
+ artwork: {
+ playerLCD: ""
+ }
+ },
+ mutations: {
+ setLCDArtwork(state, artwork) {
+ state.artwork.playerLCD = artwork
+ }
+ }
+})
+
+export {store}
\ No newline at end of file
diff --git a/src/renderer/js/WSAPI_Interop.js b/src/renderer/main/wsapi_interop.js
similarity index 86%
rename from src/renderer/js/WSAPI_Interop.js
rename to src/renderer/main/wsapi_interop.js
index 525ad47e..563b2e30 100644
--- a/src/renderer/js/WSAPI_Interop.js
+++ b/src/renderer/main/wsapi_interop.js
@@ -49,13 +49,13 @@ const wsapi = {
},
musickitApi(method, id, params, library = false) {
if (library) {
- MusicKit.getInstance().api.library[method](id, params).then((results)=>{
- ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method)
- })
+ MusicKit.getInstance().api.library[method](id, params).then((results)=>{
+ ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method)
+ })
} else {
- MusicKit.getInstance().api[method](id, params).then((results)=>{
- ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method)
- })
+ MusicKit.getInstance().api[method](id, params).then((results)=>{
+ ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method)
+ })
}
},
getPlaybackState () {
@@ -81,14 +81,14 @@ const wsapi = {
},
playTrackById(id, kind = "song") {
- MusicKit.getInstance().setQueue({ [kind]: id }).then(function (queue) {
+ MusicKit.getInstance().setQueue({ [kind]: id , parameters : {l : app.mklang}}).then(function (queue) {
MusicKit.getInstance().play()
})
},
quickPlay(term) {
// Quick play by song name
MusicKit.getInstance().api.search(term, { limit: 2, types: 'songs' }).then(function (data) {
- MusicKit.getInstance().setQueue({ song: data["songs"][0]["id"] }).then(function (queue) {
+ MusicKit.getInstance().setQueue({ song: data["songs"][0]["id"],parameters : {l : app.mklang} }).then(function (queue) {
MusicKit.getInstance().play()
})
})
@@ -107,5 +107,10 @@ const wsapi = {
}else{
MusicKit.getInstance().repeatMode = 0
}
+ },
+ getmaxVolume() {
+ ipcRenderer.send('wsapi-returnvolumeMax',JSON.stringify(app.cfg.audio.maxVolume));
}
-}
\ No newline at end of file
+}
+
+export {wsapi}
\ No newline at end of file
diff --git a/src/renderer/sounds/btn1.ogg b/src/renderer/sounds/btn1.ogg
new file mode 100644
index 00000000..f6f75efa
Binary files /dev/null and b/src/renderer/sounds/btn1.ogg differ
diff --git a/src/renderer/sounds/confirm.ogg b/src/renderer/sounds/confirm.ogg
new file mode 100644
index 00000000..c4e3857b
Binary files /dev/null and b/src/renderer/sounds/confirm.ogg differ
diff --git a/src/renderer/sounds/hover.ogg b/src/renderer/sounds/hover.ogg
new file mode 100644
index 00000000..9da1b148
Binary files /dev/null and b/src/renderer/sounds/hover.ogg differ
diff --git a/src/renderer/style.css b/src/renderer/style.css
new file mode 100644
index 00000000..81ec3918
--- /dev/null
+++ b/src/renderer/style.css
@@ -0,0 +1,13157 @@
+@import url("assets/fonts/Inter/inter.css");
+@import url("less/bootstrap-vue.min.css");
+@import url("less/codicon.css");
+@font-face {
+ font-family: 'Noto Sans JP';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6ofjtqLzI2JPCgQBnw7HFQoggM.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans JP';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQaioq1A.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans JP';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F62fjtqLzI2JPCgQBnw7HFowA.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans JP';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQMisq1A.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans JP';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQei0q1A.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans JP';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQQi8q1A.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans SC';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kJo84MPvpLmixcA63oeALZTYKL.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans SC';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZhaCt9w.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans SC';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kXo84MPvpLmixcA63oeALhLw.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans SC';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZ3aGt9w.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans SC';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZlaet9w.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans SC';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZraWt9w.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans HK';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKO-GM_FYFRJvXzVXaAPe9ZUHp1.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans HK';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZmFhTHA.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans HK';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKQ-GM_FYFRJvXzVXaAPe9hMg.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans HK';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZwFlTHA.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans HK';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZiF9THA.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans HK';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZsF1THA.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans TC';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFlOG829Oofr2wohFbTp9i9WyEJ.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans TC';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9kwMvDQ.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans TC';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nF7OG829Oofr2wohFbTp9iFOQ.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans TC';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9ywIvDQ.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans TC';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9gwQvDQ.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans TC';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9uwYvDQ.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans KR';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby6FmXiEBPT4ITbgNA5CgmOsn7u.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans KR';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOelzI7g.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans KR';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanskr/v25/PbykFmXiEBPT4ITbgNA5Cgm20A.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans KR';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOIl3I7g.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans KR';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOalvI7g.otf) format('opentype');
+}
+@font-face {
+ font-family: 'Noto Sans KR';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOUlnI7g.otf) format('opentype');
+}
+:root {
+ --appleEase: cubic-bezier(0.42, 0, 0.58, 1);
+ --appleTransition: 0.2s var(--appleEase);
+}
+/* Simple CSS framework for Apple Music Electron */
+.md-labeltext {
+ font-size: 14px;
+ text-transform: uppercase;
+ opacity: 0.75;
+ font-weight: 500;
+}
+.md-option-container {
+ /* border-radius: 10px; */
+ overflow: hidden;
+}
+.md-option-line {
+ display: flex;
+ width: 100%;
+ padding: 14px;
+ background: var(--opaquePageBGColor);
+ font-size: 0.85em;
+}
+.md-option-segment.md-option-segment_auto {
+ width: auto;
+ white-space: nowrap;
+}
+.md-option-container .md-option-line:not(:last-child) {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
+}
+input[type="range"].md-slider {
+ -webkit-appearance: none;
+ height: 7px;
+ background: rgba(255, 255, 255, 0.6);
+ border-radius: 5px;
+ background-size: 70% 100%;
+ background-repeat: no-repeat;
+}
+input[type="range"].md-slider::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 20px;
+ width: 20px;
+ border-radius: 50%;
+ background: #ffffff;
+ cursor: ew-resize;
+ box-shadow: 0 0 2px 0 #555;
+}
+input[type=range].md-slider::-webkit-slider-runnable-track {
+ -webkit-appearance: none;
+ box-shadow: none;
+ border: none;
+ background: transparent;
+}
+.md-option-header {
+ padding: 10px;
+ border-bottom: 1px solid rgba(200, 200, 200, 0.25);
+ font-weight: 500;
+ font-size: 0.9em;
+ background: rgba(255, 255, 255, 0.1);
+}
+.md-option-segment {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+}
+.md-h1 {
+ font-size: 3em;
+ text-align: center;
+}
+.md-header {
+ padding: 16px;
+}
+.md-header-title {
+ padding: 18px;
+ font-weight: 600;
+ font-size: 16px;
+ height: 55px;
+ background: var(--opaquePageBGColor);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
+}
+.md-footer {
+ padding: 16px;
+ text-align: center;
+}
+.md-transparent {
+ background: transparent;
+}
+.md-container {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+ padding: 32px;
+}
+.md-container_panel {
+ padding: 0px;
+}
+.md-body {
+ height: 100%;
+ padding: 16px;
+ font-size: 1.25em;
+}
+@media (prefers-color-scheme: light) {
+ .md-btn {
+ box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 1px 1px;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ }
+ .md-close-btn {
+ background-color: #000;
+ }
+}
+/* Vue transitions */
+.fade_simple-enter-active,
+.fade_simple-leave-active {
+ transition: all 0.5s;
+}
+.fade_simple-enter,
+.fade_simple-leave-to {
+ opacity: 0;
+}
+.fade-enter-active,
+.fade-leave-active {
+ transition: all 0.5s;
+}
+.fade-enter,
+.fade-leave-to {
+ opacity: 0;
+ transform: scale(0.95);
+}
+/* CSS Grids */
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ width: 100%;
+ padding-right: var(--bs-gutter-x, 0.75rem);
+ padding-left: var(--bs-gutter-x, 0.75rem);
+ margin-right: auto;
+ margin-left: auto;
+}
+.row {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
+ display: flex;
+ flex-wrap: wrap;
+ /*margin-top: calc(-1 * var(--bs-gutter-y));*/
+ /*margin-right: calc(-0.5 * var(--bs-gutter-x));*/
+ /*margin-left: calc(-0.5 * var(--bs-gutter-x));*/
+}
+.row > * {
+ box-sizing: border-box;
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
+ margin-top: var(--bs-gutter-y);
+}
+.col {
+ flex: 1 0 0%;
+}
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+}
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+}
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+}
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+.row-cols-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+}
+.row-cols-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+}
+.row-cols-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+}
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+}
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%;
+}
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+}
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%;
+}
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+}
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+}
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%;
+}
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+}
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+}
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%;
+}
+.offset-1 {
+ margin-left: 8.33333333%;
+}
+.offset-2 {
+ margin-left: 16.66666667%;
+}
+.offset-3 {
+ margin-left: 25%;
+}
+.offset-4 {
+ margin-left: 33.33333333%;
+}
+.offset-5 {
+ margin-left: 41.66666667%;
+}
+.offset-6 {
+ margin-left: 50%;
+}
+.offset-7 {
+ margin-left: 58.33333333%;
+}
+.offset-8 {
+ margin-left: 66.66666667%;
+}
+.offset-9 {
+ margin-left: 75%;
+}
+.offset-10 {
+ margin-left: 83.33333333%;
+}
+.offset-11 {
+ margin-left: 91.66666667%;
+}
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0;
+}
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0;
+}
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem;
+}
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem;
+}
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem;
+}
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.5rem;
+}
+.g-3,
+.gx-3 {
+ --bs-gutter-x: 1rem;
+}
+.g-3,
+.gy-3 {
+ --bs-gutter-y: 1rem;
+}
+.g-4,
+.gx-4 {
+ --bs-gutter-x: 1.5rem;
+}
+.g-4,
+.gy-4 {
+ --bs-gutter-y: 1.5rem;
+}
+.g-5,
+.gx-5 {
+ --bs-gutter-x: 3rem;
+}
+.g-5,
+.gy-5 {
+ --bs-gutter-y: 3rem;
+}
+.d-inline {
+ display: inline !important;
+}
+.d-inline-block {
+ display: inline-block !important;
+}
+.d-block {
+ display: block !important;
+}
+.d-grid {
+ display: grid !important;
+}
+.d-table {
+ display: table !important;
+}
+.d-table-row {
+ display: table-row !important;
+}
+.d-table-cell {
+ display: table-cell !important;
+}
+.d-flex {
+ display: flex !important;
+}
+.d-inline-flex {
+ display: inline-flex !important;
+}
+.d-none {
+ display: none !important;
+}
+.flex-fill {
+ flex: 1 1 auto !important;
+}
+.flex-row {
+ flex-direction: row !important;
+}
+.flex-column {
+ flex-direction: column !important;
+}
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+.flex-column-reverse {
+ flex-direction: column-reverse !important;
+}
+.flex-grow-0 {
+ flex-grow: 0 !important;
+}
+.flex-grow-1 {
+ flex-grow: 1 !important;
+}
+.flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+.flex-shrink-1 {
+ flex-shrink: 1 !important;
+}
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+.justify-content-start {
+ justify-content: flex-start !important;
+}
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+.justify-content-center {
+ justify-content: center !important;
+}
+.justify-content-between {
+ justify-content: space-between !important;
+}
+.justify-content-around {
+ justify-content: space-around !important;
+}
+.justify-content-evenly {
+ justify-content: space-evenly !important;
+}
+.align-items-start {
+ align-items: flex-start !important;
+}
+.align-items-end {
+ align-items: flex-end !important;
+}
+.align-items-center {
+ align-items: center !important;
+}
+.align-items-baseline {
+ align-items: baseline !important;
+}
+.align-items-stretch {
+ align-items: stretch !important;
+}
+.align-content-start {
+ align-content: flex-start !important;
+}
+.align-content-end {
+ align-content: flex-end !important;
+}
+.align-content-center {
+ align-content: center !important;
+}
+.align-content-between {
+ align-content: space-between !important;
+}
+.align-content-around {
+ align-content: space-around !important;
+}
+.align-content-stretch {
+ align-content: stretch !important;
+}
+.align-self-auto {
+ align-self: auto !important;
+}
+.align-self-start {
+ align-self: flex-start !important;
+}
+.align-self-end {
+ align-self: flex-end !important;
+}
+.align-self-center {
+ align-self: center !important;
+}
+.align-self-baseline {
+ align-self: baseline !important;
+}
+.align-self-stretch {
+ align-self: stretch !important;
+}
+.order-first {
+ order: -1 !important;
+}
+.order-0 {
+ order: 0 !important;
+}
+.order-1 {
+ order: 1 !important;
+}
+.order-2 {
+ order: 2 !important;
+}
+.order-3 {
+ order: 3 !important;
+}
+.order-4 {
+ order: 4 !important;
+}
+.order-5 {
+ order: 5 !important;
+}
+.order-last {
+ order: 6 !important;
+}
+.m-0 {
+ margin: 0 !important;
+}
+.m-1 {
+ margin: 0.25rem !important;
+}
+.m-2 {
+ margin: 0.5rem !important;
+}
+.m-3 {
+ margin: 1rem !important;
+}
+.m-4 {
+ margin: 1.5rem !important;
+}
+.m-5 {
+ margin: 3rem !important;
+}
+.m-auto {
+ margin: auto !important;
+}
+.mx-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+}
+.mx-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+}
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+}
+.mx-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+}
+.mx-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+}
+.mx-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+}
+.mx-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+}
+.my-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+.my-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+}
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+.my-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+}
+.my-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+.my-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+}
+.my-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+}
+.mt-0 {
+ margin-top: 0 !important;
+}
+.mt-1 {
+ margin-top: 0.25rem !important;
+}
+.mt-2 {
+ margin-top: 0.5rem !important;
+}
+.mt-3 {
+ margin-top: 1rem !important;
+}
+.mt-4 {
+ margin-top: 1.5rem !important;
+}
+.mt-5 {
+ margin-top: 3rem !important;
+}
+.mt-auto {
+ margin-top: auto !important;
+}
+.me-0 {
+ margin-right: 0 !important;
+}
+.me-1 {
+ margin-right: 0.25rem !important;
+}
+.me-2 {
+ margin-right: 0.5rem !important;
+}
+.me-3 {
+ margin-right: 1rem !important;
+}
+.me-4 {
+ margin-right: 1.5rem !important;
+}
+.me-5 {
+ margin-right: 3rem !important;
+}
+.me-auto {
+ margin-right: auto !important;
+}
+.mb-0 {
+ margin-bottom: 0 !important;
+}
+.mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+.mb-2 {
+ margin-bottom: 0.5rem !important;
+}
+.mb-3 {
+ margin-bottom: 1rem !important;
+}
+.mb-4 {
+ margin-bottom: 1.5rem !important;
+}
+.mb-5 {
+ margin-bottom: 3rem !important;
+}
+.mb-auto {
+ margin-bottom: auto !important;
+}
+.ms-0 {
+ margin-left: 0 !important;
+}
+.ms-1 {
+ margin-left: 0.25rem !important;
+}
+.ms-2 {
+ margin-left: 0.5rem !important;
+}
+.ms-3 {
+ margin-left: 1rem !important;
+}
+.ms-4 {
+ margin-left: 1.5rem !important;
+}
+.ms-5 {
+ margin-left: 3rem !important;
+}
+.ms-auto {
+ margin-left: auto !important;
+}
+.p-0 {
+ padding: 0 !important;
+}
+.p-1 {
+ padding: 0.25rem !important;
+}
+.p-2 {
+ padding: 0.5rem !important;
+}
+.p-3 {
+ padding: 1rem !important;
+}
+.p-4 {
+ padding: 1.5rem !important;
+}
+.p-5 {
+ padding: 3rem !important;
+}
+.px-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+}
+.px-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+}
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+}
+.px-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+}
+.px-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+}
+.px-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+}
+.py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.py-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+}
+.py-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+}
+.py-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+}
+.py-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+.py-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+}
+.pt-0 {
+ padding-top: 0 !important;
+}
+.pt-1 {
+ padding-top: 0.25rem !important;
+}
+.pt-2 {
+ padding-top: 0.5rem !important;
+}
+.pt-3 {
+ padding-top: 1rem !important;
+}
+.pt-4 {
+ padding-top: 1.5rem !important;
+}
+.pt-5 {
+ padding-top: 3rem !important;
+}
+.pe-0 {
+ padding-right: 0 !important;
+}
+.pe-1 {
+ padding-right: 0.25rem !important;
+}
+.pe-2 {
+ padding-right: 0.5rem !important;
+}
+.pe-3 {
+ padding-right: 1rem !important;
+}
+.pe-4 {
+ padding-right: 1.5rem !important;
+}
+.pe-5 {
+ padding-right: 3rem !important;
+}
+.pb-0 {
+ padding-bottom: 0 !important;
+}
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+.pb-2 {
+ padding-bottom: 0.5rem !important;
+}
+.pb-3 {
+ padding-bottom: 1rem !important;
+}
+.pb-4 {
+ padding-bottom: 1.5rem !important;
+}
+.pb-5 {
+ padding-bottom: 3rem !important;
+}
+.ps-0 {
+ padding-left: 0 !important;
+}
+.ps-1 {
+ padding-left: 0.25rem !important;
+}
+.ps-2 {
+ padding-left: 0.5rem !important;
+}
+.ps-3 {
+ padding-left: 1rem !important;
+}
+.ps-4 {
+ padding-left: 1.5rem !important;
+}
+.ps-5 {
+ padding-left: 3rem !important;
+}
+.dropup,
+.dropend,
+.dropdown,
+.dropstart {
+ position: relative;
+}
+.dropdown-toggle {
+ white-space: nowrap;
+}
+.dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent;
+}
+.dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropdown-menu {
+ position: absolute;
+ z-index: 1000;
+ display: none;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+.dropdown-menu[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: 0.125rem;
+}
+.dropdown-menu-start {
+ --bs-position: start;
+}
+.dropdown-menu-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+}
+.dropdown-menu-end {
+ --bs-position: end;
+}
+.dropdown-menu-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+}
+@media (min-width: 576px) {
+ .dropdown-menu-sm-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-sm-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 768px) {
+ .dropdown-menu-md-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-md-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 992px) {
+ .dropdown-menu-lg-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-lg-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1200px) {
+ .dropdown-menu-xl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xxl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+.dropup .dropdown-menu[data-bs-popper] {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: 0.125rem;
+}
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent;
+}
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropend .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: auto;
+ left: 100%;
+ margin-top: 0;
+ margin-left: 0.125rem;
+}
+.dropend .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0;
+ border-bottom: 0.3em solid transparent;
+ border-left: 0.3em solid;
+}
+.dropend .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropend .dropdown-toggle::after {
+ vertical-align: 0;
+}
+.dropstart .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: 100%;
+ left: auto;
+ margin-top: 0;
+ margin-right: 0.125rem;
+}
+.dropstart .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+}
+.dropstart .dropdown-toggle::after {
+ display: none;
+}
+.dropstart .dropdown-toggle::before {
+ display: inline-block;
+ margin-right: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0.3em solid;
+ border-bottom: 0.3em solid transparent;
+}
+.dropstart .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle::before {
+ vertical-align: 0;
+}
+.dropdown-divider {
+ height: 0;
+ margin: 0.5rem 0;
+ overflow: hidden;
+ border-top: 1px solid rgba(0, 0, 0, 0.15);
+}
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.25rem 1rem;
+ clear: both;
+ font-weight: 400;
+ color: #212529;
+ text-align: inherit;
+ text-decoration: none;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0;
+}
+.dropdown-item:hover,
+.dropdown-item:focus {
+ color: #1e2125;
+ background-color: #e9ecef;
+}
+.dropdown-item.active,
+.dropdown-item:active {
+ color: #fff;
+ text-decoration: none;
+ background-color: #0d6efd;
+}
+.dropdown-item.disabled,
+.dropdown-item:disabled {
+ color: #adb5bd;
+ pointer-events: none;
+ background-color: transparent;
+}
+.dropdown-menu.show {
+ display: block;
+}
+.dropdown-header {
+ display: block;
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 0.875rem;
+ color: #6c757d;
+ white-space: nowrap;
+}
+.dropdown-item-text {
+ display: block;
+ padding: 0.25rem 1rem;
+ color: #212529;
+}
+.dropdown-menu-dark {
+ color: #dee2e6;
+ background-color: #343a40;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-item:hover,
+.dropdown-menu-dark .dropdown-item:focus {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.15);
+}
+.dropdown-menu-dark .dropdown-item.active,
+.dropdown-menu-dark .dropdown-item:active {
+ color: #fff;
+ background-color: #0d6efd;
+}
+.dropdown-menu-dark .dropdown-item.disabled,
+.dropdown-menu-dark .dropdown-item:disabled {
+ color: #adb5bd;
+}
+.dropdown-menu-dark .dropdown-divider {
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item-text {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-header {
+ color: #adb5bd;
+}
+.list-group {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ border-radius: 0.25rem;
+}
+.list-group-numbered {
+ list-style-type: none;
+ counter-reset: section;
+}
+.list-group-numbered > li::before {
+ content: counters(section, ".") ". ";
+ counter-increment: section;
+}
+.list-group-item-action {
+ width: 100%;
+ color: #495057;
+ text-align: inherit;
+}
+.list-group-item-action:hover,
+.list-group-item-action:focus {
+ z-index: 1;
+ color: #495057;
+ text-decoration: none;
+ background-color: #f8f9fa;
+}
+.list-group-item-action:active {
+ color: #212529;
+ background-color: #e9ecef;
+}
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.5rem 1rem;
+ color: #212529;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+.list-group-item:first-child {
+ border-top-left-radius: inherit;
+ border-top-right-radius: inherit;
+}
+.list-group-item:last-child {
+ border-bottom-right-radius: inherit;
+ border-bottom-left-radius: inherit;
+}
+.list-group-item.disabled,
+.list-group-item:disabled {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: #fff;
+}
+.list-group-item.active {
+ z-index: 2;
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.list-group-item + .list-group-item {
+ border-top-width: 0;
+}
+.list-group-item + .list-group-item.active {
+ margin-top: -1px;
+ border-top-width: 1px;
+}
+.list-group-horizontal {
+ flex-direction: row;
+}
+.list-group-horizontal > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+}
+.list-group-horizontal > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+}
+.list-group-horizontal > .list-group-item.active {
+ margin-top: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+}
+@media (min-width: 576px) {
+ .list-group-horizontal-sm {
+ flex-direction: row;
+ }
+ .list-group-horizontal-sm > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 768px) {
+ .list-group-horizontal-md {
+ flex-direction: row;
+ }
+ .list-group-horizontal-md > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-md > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-md > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 992px) {
+ .list-group-horizontal-lg {
+ flex-direction: row;
+ }
+ .list-group-horizontal-lg > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 1200px) {
+ .list-group-horizontal-xl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xl > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 1400px) {
+ .list-group-horizontal-xxl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xxl > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+.list-group-flush {
+ border-radius: 0;
+}
+.list-group-flush > .list-group-item {
+ border-width: 0 0 1px;
+}
+.list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0;
+}
+.list-group-item-primary {
+ color: #084298;
+ background-color: #cfe2ff;
+}
+.list-group-item-primary.list-group-item-action:hover,
+.list-group-item-primary.list-group-item-action:focus {
+ color: #084298;
+ background-color: #bacbe6;
+}
+.list-group-item-primary.list-group-item-action.active {
+ color: #fff;
+ background-color: #084298;
+ border-color: #084298;
+}
+.list-group-item-secondary {
+ color: #41464b;
+ background-color: #e2e3e5;
+}
+.list-group-item-secondary.list-group-item-action:hover,
+.list-group-item-secondary.list-group-item-action:focus {
+ color: #41464b;
+ background-color: #cbccce;
+}
+.list-group-item-secondary.list-group-item-action.active {
+ color: #fff;
+ background-color: #41464b;
+ border-color: #41464b;
+}
+.list-group-item-success {
+ color: #0f5132;
+ background-color: #d1e7dd;
+}
+.list-group-item-success.list-group-item-action:hover,
+.list-group-item-success.list-group-item-action:focus {
+ color: #0f5132;
+ background-color: #bcd0c7;
+}
+.list-group-item-success.list-group-item-action.active {
+ color: #fff;
+ background-color: #0f5132;
+ border-color: #0f5132;
+}
+.list-group-item-info {
+ color: #055160;
+ background-color: #cff4fc;
+}
+.list-group-item-info.list-group-item-action:hover,
+.list-group-item-info.list-group-item-action:focus {
+ color: #055160;
+ background-color: #badce3;
+}
+.list-group-item-info.list-group-item-action.active {
+ color: #fff;
+ background-color: #055160;
+ border-color: #055160;
+}
+.list-group-item-warning {
+ color: #664d03;
+ background-color: #fff3cd;
+}
+.list-group-item-warning.list-group-item-action:hover,
+.list-group-item-warning.list-group-item-action:focus {
+ color: #664d03;
+ background-color: #e6dbb9;
+}
+.list-group-item-warning.list-group-item-action.active {
+ color: #fff;
+ background-color: #664d03;
+ border-color: #664d03;
+}
+.list-group-item-danger {
+ color: #842029;
+ background-color: #f8d7da;
+}
+.list-group-item-danger.list-group-item-action:hover,
+.list-group-item-danger.list-group-item-action:focus {
+ color: #842029;
+ background-color: #dfc2c4;
+}
+.list-group-item-danger.list-group-item-action.active {
+ color: #fff;
+ background-color: #842029;
+ border-color: #842029;
+}
+.list-group-item-light {
+ color: #636464;
+ background-color: #fefefe;
+}
+.list-group-item-light.list-group-item-action:hover,
+.list-group-item-light.list-group-item-action:focus {
+ color: #636464;
+ background-color: #e5e5e5;
+}
+.list-group-item-light.list-group-item-action.active {
+ color: #fff;
+ background-color: #636464;
+ border-color: #636464;
+}
+.list-group-item-dark {
+ color: var(--textColor);
+ background-color: #333;
+}
+.list-group-item-dark.list-group-item-action:hover,
+.list-group-item-dark.list-group-item-action:focus {
+ color: #141619;
+ background-color: #bebebf;
+}
+.list-group-item-dark.list-group-item-action.active {
+ color: #fff;
+ background-color: #141619;
+ border-color: #141619;
+}
+.toast {
+ width: 350px;
+ max-width: 100%;
+ font-size: 0.875rem;
+ pointer-events: auto;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+}
+.toast.showing {
+ opacity: 0;
+}
+.toast:not(.show) {
+ display: none;
+}
+.toast-container {
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+}
+.toast-container > :not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: 0.5rem 0.75rem;
+ color: #6c757d;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+.toast-header .btn-close {
+ margin-right: -0.375rem;
+ margin-left: 0.75rem;
+}
+.toast-body {
+ padding: 0.75rem;
+ word-wrap: break-word;
+}
+.card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ word-wrap: break-word;
+ background-color: #333;
+ background-clip: border-box;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+ border-radius: 0.25rem;
+}
+.card > hr {
+ margin-right: 0;
+ margin-left: 0;
+}
+.card > .list-group {
+ border-top: inherit;
+ border-bottom: inherit;
+}
+.card > .list-group:first-child {
+ border-top-width: 0;
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+.card > .list-group:last-child {
+ border-bottom-width: 0;
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px);
+}
+.card > .card-header + .list-group,
+.card > .list-group + .card-footer {
+ border-top: 0;
+}
+.card-body {
+ flex: 1 1 auto;
+ padding: 1rem 1rem;
+}
+.card-title {
+ margin-bottom: 0.5rem;
+}
+.card-subtitle {
+ margin-top: -0.25rem;
+ margin-bottom: 0;
+}
+.card-text:last-child {
+ margin-bottom: 0;
+}
+.card-link + .card-link {
+ margin-left: 1rem;
+}
+.card-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-header:first-child {
+ border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
+}
+.card-footer {
+ padding: 0.5rem 1rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-footer:last-child {
+ border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
+}
+.card-header-tabs {
+ margin-right: -0.5rem;
+ margin-bottom: -0.5rem;
+ margin-left: -0.5rem;
+ border-bottom: 0;
+}
+.card-header-pills {
+ margin-right: -0.5rem;
+ margin-left: -0.5rem;
+}
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: 1rem;
+ border-radius: calc(0.25rem - 1px);
+}
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%;
+}
+.card-img,
+.card-img-top {
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px);
+}
+.card-img,
+.card-img-bottom {
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px);
+}
+.card-group > .card {
+ margin-bottom: 0.75rem;
+}
+@media (min-width: 576px) {
+ .card-group {
+ display: flex;
+ flex-flow: row wrap;
+ }
+ .card-group > .card {
+ flex: 1 0 0%;
+ margin-bottom: 0;
+ }
+ .card-group > .card + .card {
+ margin-left: 0;
+ border-left: 0;
+ }
+ .card-group > .card:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .card-group > .card:not(:last-child) .card-img-top,
+ .card-group > .card:not(:last-child) .card-header {
+ border-top-right-radius: 0;
+ }
+ .card-group > .card:not(:last-child) .card-img-bottom,
+ .card-group > .card:not(:last-child) .card-footer {
+ border-bottom-right-radius: 0;
+ }
+ .card-group > .card:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .card-group > .card:not(:first-child) .card-img-top,
+ .card-group > .card:not(:first-child) .card-header {
+ border-top-left-radius: 0;
+ }
+ .card-group > .card:not(:first-child) .card-img-bottom,
+ .card-group > .card:not(:first-child) .card-footer {
+ border-bottom-left-radius: 0;
+ }
+}
+.modal {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1055;
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ outline: 0;
+ user-select: none;
+}
+.modal .close {
+ width: 50px;
+ height: 42px;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.modal .close:hover {
+ background-color: #c42b1c;
+}
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 0.5rem;
+ pointer-events: none;
+ color: var(--textColor);
+}
+.modal.fade .modal-dialog {
+ transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase);
+ transform: scale(0.9);
+ opacity: 0;
+}
+@media (prefers-reduced-motion: reduce) {
+ .modal.fade .modal-dialog {
+ transition: none;
+ }
+}
+.modal.show .modal-dialog {
+ transform: none;
+ opacity: 1;
+}
+.modal.modal-static .modal-dialog {
+ transform: scale(1.02);
+}
+.modal-dialog-scrollable {
+ height: calc(100% - 1rem);
+}
+.modal-dialog-scrollable .modal-content {
+ max-height: 100%;
+ overflow: hidden;
+}
+.modal-dialog-scrollable .modal-body {
+ overflow-y: auto;
+}
+.modal-dialog-centered {
+ display: flex;
+ align-items: center;
+ min-height: calc(100% - 1rem);
+}
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ pointer-events: auto;
+ background-color: var(--modalBackground);
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+ outline: 0;
+ box-shadow: var(--ciderShadow-Generic);
+ overflow: hidden;
+}
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1050;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+}
+.modal-backdrop.show {
+ opacity: 0.5;
+}
+.modal-header {
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: space-between;
+ padding: 1rem 1rem;
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+.modal-header .btn-close {
+ padding: 0.5rem 0.5rem;
+ margin: -0.5rem -0.5rem -0.5rem auto;
+}
+.modal-title {
+ line-height: 1.5;
+ margin: 0;
+}
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: 3rem 1rem 1rem 1rem;
+ font-size: 0.9em;
+}
+.modal-footer {
+ display: flex;
+ flex-wrap: wrap;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 0.75rem;
+ border-bottom-right-radius: calc(0.3rem - 1px);
+ border-bottom-left-radius: calc(0.3rem - 1px);
+}
+.modal-footer > * {
+ margin: 0.25rem;
+}
+@media (min-width: 576px) {
+ .modal-dialog {
+ max-width: 500px;
+ margin: 1.75rem auto;
+ }
+ .modal-dialog-scrollable {
+ height: calc(100% - 3.5rem);
+ }
+ .modal-dialog-centered {
+ min-height: calc(100% - 3.5rem);
+ }
+ .modal-sm {
+ max-width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg,
+ .modal-xl {
+ max-width: 800px;
+ }
+}
+@media (min-width: 1200px) {
+ .modal-xl {
+ max-width: 1140px;
+ }
+}
+.modal-fullscreen {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+}
+.modal-fullscreen .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+}
+.modal-fullscreen .modal-header {
+ border-radius: 0;
+}
+.modal-fullscreen .modal-body {
+ overflow-y: auto;
+}
+.modal-fullscreen .modal-footer {
+ border-radius: 0;
+}
+@media (max-width: 575.98px) {
+ .modal-fullscreen-sm-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-sm-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-sm-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-sm-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-sm-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 767.98px) {
+ .modal-fullscreen-md-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-md-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-md-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-md-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-md-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 991.98px) {
+ .modal-fullscreen-lg-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-lg-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-lg-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-lg-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-lg-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 1199.98px) {
+ .modal-fullscreen-xl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-xl-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-xl-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-xl-down .modal-footer {
+ border-radius: 0;
+ }
+}
+@media (max-width: 1399.98px) {
+ .modal-fullscreen-xxl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-header {
+ border-radius: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-body {
+ overflow-y: auto;
+ }
+ .modal-fullscreen-xxl-down .modal-footer {
+ border-radius: 0;
+ }
+}
+.btn {
+ display: inline-block;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ background-color: transparent;
+ border: 1px solid transparent;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ border-radius: 0.25rem;
+ font-family: inherit;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .btn {
+ transition: none;
+ }
+}
+.btn:hover {
+ color: #212529;
+}
+.btn-check:focus + .btn,
+.btn:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+.btn:disabled,
+.btn.disabled,
+fieldset:disabled .btn {
+ pointer-events: none;
+ opacity: 0.65;
+}
+.btn-primary {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-primary:hover {
+ color: #fff;
+ background-color: #0b5ed7;
+ border-color: #0a58ca;
+}
+.btn-check:focus + .btn-primary,
+.btn-primary:focus {
+ color: #fff;
+ background-color: #0b5ed7;
+ border-color: #0a58ca;
+ box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
+}
+.btn-check:checked + .btn-primary,
+.btn-check:active + .btn-primary,
+.btn-primary:active,
+.btn-primary.active,
+.show > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #0a58ca;
+ border-color: #0a53be;
+}
+.btn-check:checked + .btn-primary:focus,
+.btn-check:active + .btn-primary:focus,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.show > .btn-primary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5);
+}
+.btn-primary:disabled,
+.btn-primary.disabled {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-secondary {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-secondary:hover {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64;
+}
+.btn-check:focus + .btn-secondary,
+.btn-secondary:focus {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64;
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+}
+.btn-check:checked + .btn-secondary,
+.btn-check:active + .btn-secondary,
+.btn-secondary:active,
+.btn-secondary.active,
+.show > .btn-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #565e64;
+ border-color: #51585e;
+}
+.btn-check:checked + .btn-secondary:focus,
+.btn-check:active + .btn-secondary:focus,
+.btn-secondary:active:focus,
+.btn-secondary.active:focus,
+.show > .btn-secondary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+}
+.btn-secondary:disabled,
+.btn-secondary.disabled {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-success {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-success:hover {
+ color: #fff;
+ background-color: #157347;
+ border-color: #146c43;
+}
+.btn-check:focus + .btn-success,
+.btn-success:focus {
+ color: #fff;
+ background-color: #157347;
+ border-color: #146c43;
+ box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+}
+.btn-check:checked + .btn-success,
+.btn-check:active + .btn-success,
+.btn-success:active,
+.btn-success.active,
+.show > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #146c43;
+ border-color: #13653f;
+}
+.btn-check:checked + .btn-success:focus,
+.btn-check:active + .btn-success:focus,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.show > .btn-success.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+}
+.btn-success:disabled,
+.btn-success.disabled {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-info {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-info:hover {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2;
+}
+.btn-check:focus + .btn-info,
+.btn-info:focus {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2;
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+}
+.btn-check:checked + .btn-info,
+.btn-check:active + .btn-info,
+.btn-info:active,
+.btn-info.active,
+.show > .btn-info.dropdown-toggle {
+ color: #000;
+ background-color: #3dd5f3;
+ border-color: #25cff2;
+}
+.btn-check:checked + .btn-info:focus,
+.btn-check:active + .btn-info:focus,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.show > .btn-info.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+}
+.btn-info:disabled,
+.btn-info.disabled {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-warning {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-warning:hover {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720;
+}
+.btn-check:focus + .btn-warning,
+.btn-warning:focus {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720;
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+}
+.btn-check:checked + .btn-warning,
+.btn-check:active + .btn-warning,
+.btn-warning:active,
+.btn-warning.active,
+.show > .btn-warning.dropdown-toggle {
+ color: #000;
+ background-color: #ffcd39;
+ border-color: #ffc720;
+}
+.btn-check:checked + .btn-warning:focus,
+.btn-check:active + .btn-warning:focus,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.show > .btn-warning.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+}
+.btn-warning:disabled,
+.btn-warning.disabled {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-danger {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-danger:hover {
+ color: #fff;
+ background-color: #bb2d3b;
+ border-color: #b02a37;
+}
+.btn-check:focus + .btn-danger,
+.btn-danger:focus {
+ color: #fff;
+ background-color: #bb2d3b;
+ border-color: #b02a37;
+ box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+}
+.btn-check:checked + .btn-danger,
+.btn-check:active + .btn-danger,
+.btn-danger:active,
+.btn-danger.active,
+.show > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #b02a37;
+ border-color: #a52834;
+}
+.btn-check:checked + .btn-danger:focus,
+.btn-check:active + .btn-danger:focus,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.show > .btn-danger.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+}
+.btn-danger:disabled,
+.btn-danger.disabled {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-light {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-light:hover {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+.btn-check:focus + .btn-light,
+.btn-light:focus {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+.btn-check:checked + .btn-light,
+.btn-check:active + .btn-light,
+.btn-light:active,
+.btn-light.active,
+.show > .btn-light.dropdown-toggle {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+.btn-check:checked + .btn-light:focus,
+.btn-check:active + .btn-light:focus,
+.btn-light:active:focus,
+.btn-light.active:focus,
+.show > .btn-light.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+.btn-light:disabled,
+.btn-light.disabled {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-dark {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-dark:hover {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21;
+}
+.btn-check:focus + .btn-dark,
+.btn-dark:focus {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21;
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+}
+.btn-check:checked + .btn-dark,
+.btn-check:active + .btn-dark,
+.btn-dark:active,
+.btn-dark.active,
+.show > .btn-dark.dropdown-toggle {
+ color: #fff;
+ background-color: #1a1e21;
+ border-color: #191c1f;
+}
+.btn-check:checked + .btn-dark:focus,
+.btn-check:active + .btn-dark:focus,
+.btn-dark:active:focus,
+.btn-dark.active:focus,
+.show > .btn-dark.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+}
+.btn-dark:disabled,
+.btn-dark.disabled {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-outline-primary {
+ color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-outline-primary:hover {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-check:focus + .btn-outline-primary,
+.btn-outline-primary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
+}
+.btn-check:checked + .btn-outline-primary,
+.btn-check:active + .btn-outline-primary,
+.btn-outline-primary:active,
+.btn-outline-primary.active,
+.btn-outline-primary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+}
+.btn-check:checked + .btn-outline-primary:focus,
+.btn-check:active + .btn-outline-primary:focus,
+.btn-outline-primary:active:focus,
+.btn-outline-primary.active:focus,
+.btn-outline-primary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
+}
+.btn-outline-primary:disabled,
+.btn-outline-primary.disabled {
+ color: #0d6efd;
+ background-color: transparent;
+}
+.btn-outline-secondary {
+ color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-outline-secondary:hover {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-check:focus + .btn-outline-secondary,
+.btn-outline-secondary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+}
+.btn-check:checked + .btn-outline-secondary,
+.btn-check:active + .btn-outline-secondary,
+.btn-outline-secondary:active,
+.btn-outline-secondary.active,
+.btn-outline-secondary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-check:checked + .btn-outline-secondary:focus,
+.btn-check:active + .btn-outline-secondary:focus,
+.btn-outline-secondary:active:focus,
+.btn-outline-secondary.active:focus,
+.btn-outline-secondary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+}
+.btn-outline-secondary:disabled,
+.btn-outline-secondary.disabled {
+ color: #6c757d;
+ background-color: transparent;
+}
+.btn-outline-success {
+ color: #198754;
+ border-color: #198754;
+}
+.btn-outline-success:hover {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-check:focus + .btn-outline-success,
+.btn-outline-success:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+}
+.btn-check:checked + .btn-outline-success,
+.btn-check:active + .btn-outline-success,
+.btn-outline-success:active,
+.btn-outline-success.active,
+.btn-outline-success.dropdown-toggle.show {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-check:checked + .btn-outline-success:focus,
+.btn-check:active + .btn-outline-success:focus,
+.btn-outline-success:active:focus,
+.btn-outline-success.active:focus,
+.btn-outline-success.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+}
+.btn-outline-success:disabled,
+.btn-outline-success.disabled {
+ color: #198754;
+ background-color: transparent;
+}
+.btn-outline-info {
+ color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-outline-info:hover {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-check:focus + .btn-outline-info,
+.btn-outline-info:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+}
+.btn-check:checked + .btn-outline-info,
+.btn-check:active + .btn-outline-info,
+.btn-outline-info:active,
+.btn-outline-info.active,
+.btn-outline-info.dropdown-toggle.show {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-check:checked + .btn-outline-info:focus,
+.btn-check:active + .btn-outline-info:focus,
+.btn-outline-info:active:focus,
+.btn-outline-info.active:focus,
+.btn-outline-info.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+}
+.btn-outline-info:disabled,
+.btn-outline-info.disabled {
+ color: #0dcaf0;
+ background-color: transparent;
+}
+.btn-outline-warning {
+ color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-outline-warning:hover {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-check:focus + .btn-outline-warning,
+.btn-outline-warning:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+}
+.btn-check:checked + .btn-outline-warning,
+.btn-check:active + .btn-outline-warning,
+.btn-outline-warning:active,
+.btn-outline-warning.active,
+.btn-outline-warning.dropdown-toggle.show {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-check:checked + .btn-outline-warning:focus,
+.btn-check:active + .btn-outline-warning:focus,
+.btn-outline-warning:active:focus,
+.btn-outline-warning.active:focus,
+.btn-outline-warning.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+}
+.btn-outline-warning:disabled,
+.btn-outline-warning.disabled {
+ color: #ffc107;
+ background-color: transparent;
+}
+.btn-outline-danger {
+ color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-outline-danger:hover {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-check:focus + .btn-outline-danger,
+.btn-outline-danger:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+}
+.btn-check:checked + .btn-outline-danger,
+.btn-check:active + .btn-outline-danger,
+.btn-outline-danger:active,
+.btn-outline-danger.active,
+.btn-outline-danger.dropdown-toggle.show {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-check:checked + .btn-outline-danger:focus,
+.btn-check:active + .btn-outline-danger:focus,
+.btn-outline-danger:active:focus,
+.btn-outline-danger.active:focus,
+.btn-outline-danger.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+}
+.btn-outline-danger:disabled,
+.btn-outline-danger.disabled {
+ color: #dc3545;
+ background-color: transparent;
+}
+.btn-outline-light {
+ color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-outline-light:hover {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-check:focus + .btn-outline-light,
+.btn-outline-light:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+}
+.btn-check:checked + .btn-outline-light,
+.btn-check:active + .btn-outline-light,
+.btn-outline-light:active,
+.btn-outline-light.active,
+.btn-outline-light.dropdown-toggle.show {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-check:checked + .btn-outline-light:focus,
+.btn-check:active + .btn-outline-light:focus,
+.btn-outline-light:active:focus,
+.btn-outline-light.active:focus,
+.btn-outline-light.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+}
+.btn-outline-light:disabled,
+.btn-outline-light.disabled {
+ color: #f8f9fa;
+ background-color: transparent;
+}
+.btn-outline-dark {
+ color: #212529;
+ border-color: #212529;
+}
+.btn-outline-dark:hover {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-check:focus + .btn-outline-dark,
+.btn-outline-dark:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+}
+.btn-check:checked + .btn-outline-dark,
+.btn-check:active + .btn-outline-dark,
+.btn-outline-dark:active,
+.btn-outline-dark.active,
+.btn-outline-dark.dropdown-toggle.show {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-check:checked + .btn-outline-dark:focus,
+.btn-check:active + .btn-outline-dark:focus,
+.btn-outline-dark:active:focus,
+.btn-outline-dark.active:focus,
+.btn-outline-dark.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+}
+.btn-outline-dark:disabled,
+.btn-outline-dark.disabled {
+ color: #212529;
+ background-color: transparent;
+}
+.btn-link {
+ font-weight: 400;
+ color: #0d6efd;
+ text-decoration: underline;
+}
+.btn-link:hover {
+ color: #0a58ca;
+}
+.btn-link:disabled,
+.btn-link.disabled {
+ color: #6c757d;
+}
+.btn-lg,
+.btn-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem;
+}
+.btn-sm,
+.btn-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem;
+}
+.form-control {
+ width: 100%;
+}
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ flex: 1 1 auto;
+}
+.btn-group > .btn-check:checked + .btn,
+.btn-group > .btn-check:focus + .btn,
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn-check:checked + .btn,
+.btn-group-vertical > .btn-check:focus + .btn,
+.btn-group-vertical > .btn:hover,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+ z-index: 1;
+}
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.btn-toolbar .input-group {
+ width: auto;
+}
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) {
+ margin-left: -1px;
+}
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.btn-group > .btn:nth-child(n+3),
+.btn-group > :not(.btn-check) + .btn,
+.btn-group > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.dropdown-toggle-split {
+ padding-right: 0.5625rem;
+ padding-left: 0.5625rem;
+}
+.dropdown-toggle-split::after,
+.dropup .dropdown-toggle-split::after,
+.dropend .dropdown-toggle-split::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle-split::before {
+ margin-right: 0;
+}
+.btn-sm + .dropdown-toggle-split,
+.btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: 0.375rem;
+ padding-left: 0.375rem;
+}
+.btn-lg + .dropdown-toggle-split,
+.btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 0.75rem;
+ padding-left: 0.75rem;
+}
+.btn-group-vertical {
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: center;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group {
+ width: 100%;
+}
+.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn-group:not(:first-child) {
+ margin-top: -1px;
+}
+.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group-vertical > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn ~ .btn,
+.btn-group-vertical > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.table {
+ --bs-table-bg: transparent;
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: #212529;
+ --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+ --bs-table-active-color: #212529;
+ --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+ --bs-table-hover-color: #212529;
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+ width: 100%;
+ margin-bottom: 1rem;
+ color: #212529;
+ vertical-align: top;
+ border-color: #dee2e6;
+}
+.table > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+ background-color: var(--bs-table-bg);
+ border-bottom-width: 1px;
+ box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
+}
+.table > tbody {
+ vertical-align: inherit;
+}
+.table > thead {
+ vertical-align: bottom;
+}
+.table > :not(:first-child) {
+ border-top: 2px solid currentColor;
+}
+.caption-top {
+ caption-side: top;
+}
+.table-sm > :not(caption) > * > * {
+ padding: 0.25rem 0.25rem;
+}
+.table-bordered > :not(caption) > * {
+ border-width: 1px 0;
+}
+.table-bordered > :not(caption) > * > * {
+ border-width: 0 1px;
+}
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0;
+}
+.table-borderless > :not(:first-child) {
+ border-top-width: 0;
+}
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color);
+}
+.table-active {
+ --bs-table-accent-bg: var(--bs-table-active-bg);
+ color: var(--bs-table-active-color);
+}
+.table-hover > tbody > tr:hover > * {
+ --bs-table-accent-bg: var(--bs-table-hover-bg);
+ color: var(--bs-table-hover-color);
+}
+.table-primary {
+ --bs-table-bg: #cfe2ff;
+ --bs-table-striped-bg: #c5d7f2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bacbe6;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfd1ec;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #bacbe6;
+}
+.table-secondary {
+ --bs-table-bg: #e2e3e5;
+ --bs-table-striped-bg: #d7d8da;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbccce;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d1d2d4;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #cbccce;
+}
+.table-success {
+ --bs-table-bg: #d1e7dd;
+ --bs-table-striped-bg: #c7dbd2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bcd0c7;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #c1d6cc;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #bcd0c7;
+}
+.table-info {
+ --bs-table-bg: #cff4fc;
+ --bs-table-striped-bg: #c5e8ef;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #badce3;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfe2e9;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #badce3;
+}
+.table-warning {
+ --bs-table-bg: #fff3cd;
+ --bs-table-striped-bg: #f2e7c3;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #e6dbb9;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #ece1be;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #e6dbb9;
+}
+.table-danger {
+ --bs-table-bg: #f8d7da;
+ --bs-table-striped-bg: #eccccf;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfc2c4;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5c7ca;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfc2c4;
+}
+.table-light {
+ --bs-table-bg: #f8f9fa;
+ --bs-table-striped-bg: #ecedee;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfe0e1;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5e6e7;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfe0e1;
+}
+.table-dark {
+ --bs-table-bg: #212529;
+ --bs-table-striped-bg: #2c3034;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #373b3e;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #323539;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #373b3e;
+}
+.table-responsive {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+}
+@media (max-width: 575.98px) {
+ .table-responsive-sm {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 767.98px) {
+ .table-responsive-md {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 991.98px) {
+ .table-responsive-lg {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1199.98px) {
+ .table-responsive-xl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1399.98px) {
+ .table-responsive-xxl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+.nav-tabs {
+ border-bottom: 1px solid #dee2e6;
+}
+.nav-tabs .nav-link {
+ margin-bottom: -1px;
+ background: none;
+ border: 1px solid transparent;
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+.nav-tabs .nav-link:hover,
+.nav-tabs .nav-link:focus {
+ border-color: #e9ecef #e9ecef #dee2e6;
+ isolation: isolate;
+}
+.nav-tabs .nav-link.disabled {
+ color: #6c757d;
+ background-color: transparent;
+ border-color: transparent;
+}
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.nav-pills .nav-link {
+ background: none;
+ border: 0;
+ border-radius: 0.25rem;
+}
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #0d6efd;
+}
+.nav-fill > .nav-link,
+.nav-fill .nav-item {
+ flex: 1 1 auto;
+ text-align: center;
+}
+.nav-justified > .nav-link,
+.nav-justified .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center;
+}
+.nav-fill .nav-item .nav-link,
+.nav-justified .nav-item .nav-link {
+ width: 100%;
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+/*!
+ * Bootstrap Grid v5.1.1 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors
+ * Copyright 2011-2021 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+:root {
+ --bs-blue: #0d6efd;
+ --bs-indigo: #6610f2;
+ --bs-purple: #6f42c1;
+ --bs-pink: #d63384;
+ --bs-red: #dc3545;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #ffc107;
+ --bs-green: #198754;
+ --bs-teal: #20c997;
+ --bs-cyan: #0dcaf0;
+ --bs-white: #fff;
+ --bs-gray: #6c757d;
+ --bs-gray-dark: #343a40;
+ --bs-gray-100: #f8f9fa;
+ --bs-gray-200: #e9ecef;
+ --bs-gray-300: #dee2e6;
+ --bs-gray-400: #ced4da;
+ --bs-gray-500: #adb5bd;
+ --bs-gray-600: #6c757d;
+ --bs-gray-700: #495057;
+ --bs-gray-800: #343a40;
+ --bs-gray-900: #212529;
+ --bs-primary: #0d6efd;
+ --bs-secondary: #6c757d;
+ --bs-success: #198754;
+ --bs-info: #0dcaf0;
+ --bs-warning: #ffc107;
+ --bs-danger: #dc3545;
+ --bs-light: #f8f9fa;
+ --bs-dark: #212529;
+ --bs-primary-rgb: 13, 110, 253;
+ --bs-secondary-rgb: 108, 117, 125;
+ --bs-success-rgb: 25, 135, 84;
+ --bs-info-rgb: 13, 202, 240;
+ --bs-warning-rgb: 255, 193, 7;
+ --bs-danger-rgb: 220, 53, 69;
+ --bs-light-rgb: 248, 249, 250;
+ --bs-dark-rgb: 33, 37, 41;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-black-rgb: 0, 0, 0;
+ --bs-body-color-rgb: 33, 37, 41;
+ --bs-body-bg-rgb: 255, 255, 255;
+ --bs-font-sans-serif: inherit;
+ --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+ --bs-body-font-family: inherit;
+ --bs-body-font-size: 1rem;
+ --bs-body-font-weight: 400;
+ --bs-body-line-height: 1.5;
+ --bs-body-color: #212529;
+ --bs-body-bg: #fff;
+}
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ width: 100%;
+ padding-right: var(--bs-gutter-x, 0.75rem);
+ padding-left: var(--bs-gutter-x, 0.75rem);
+ margin-right: auto;
+ margin-left: auto;
+}
+@media (min-width: 576px) {
+ .container-sm,
+ .container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1140px;
+ }
+}
+@media (min-width: 1400px) {
+ .container-xxl,
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1320px;
+ }
+}
+.col {
+ flex: 1 0 0%;
+}
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+}
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+}
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+}
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+.row-cols-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+}
+.row-cols-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+}
+.row-cols-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+}
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+}
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%;
+}
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+}
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%;
+}
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+}
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+}
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%;
+}
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+}
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+}
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%;
+}
+.offset-1 {
+ margin-left: 8.33333333%;
+}
+.offset-2 {
+ margin-left: 16.66666667%;
+}
+.offset-3 {
+ margin-left: 25%;
+}
+.offset-4 {
+ margin-left: 33.33333333%;
+}
+.offset-5 {
+ margin-left: 41.66666667%;
+}
+.offset-6 {
+ margin-left: 50%;
+}
+.offset-7 {
+ margin-left: 58.33333333%;
+}
+.offset-8 {
+ margin-left: 66.66666667%;
+}
+.offset-9 {
+ margin-left: 75%;
+}
+.offset-10 {
+ margin-left: 83.33333333%;
+}
+.offset-11 {
+ margin-left: 91.66666667%;
+}
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0;
+}
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0;
+}
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem;
+}
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem;
+}
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem;
+}
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.5rem;
+}
+.g-3,
+.gx-3 {
+ --bs-gutter-x: 1rem;
+}
+.g-3,
+.gy-3 {
+ --bs-gutter-y: 1rem;
+}
+.g-4,
+.gx-4 {
+ --bs-gutter-x: 1.5rem;
+}
+.g-4,
+.gy-4 {
+ --bs-gutter-y: 1.5rem;
+}
+.g-5,
+.gx-5 {
+ --bs-gutter-x: 3rem;
+}
+.g-5,
+.gy-5 {
+ --bs-gutter-y: 3rem;
+}
+@media (min-width: 576px) {
+ .col-sm {
+ flex: 1 0 0%;
+ }
+ .row-cols-sm-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-sm-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-sm-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-sm-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-sm-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-sm-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-sm-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-sm-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-sm-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-sm-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-sm-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-sm-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-sm-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-sm-0 {
+ margin-left: 0;
+ }
+ .offset-sm-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-sm-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-sm-3 {
+ margin-left: 25%;
+ }
+ .offset-sm-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-sm-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-sm-6 {
+ margin-left: 50%;
+ }
+ .offset-sm-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-sm-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-sm-9 {
+ margin-left: 75%;
+ }
+ .offset-sm-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-sm-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-sm-0,
+ .gx-sm-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-sm-0,
+ .gy-sm-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-sm-1,
+ .gx-sm-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-sm-1,
+ .gy-sm-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-sm-2,
+ .gx-sm-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-sm-2,
+ .gy-sm-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-sm-3,
+ .gx-sm-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-sm-3,
+ .gy-sm-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-sm-4,
+ .gx-sm-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-sm-4,
+ .gy-sm-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-sm-5,
+ .gx-sm-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-sm-5,
+ .gy-sm-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 768px) {
+ .col-md {
+ flex: 1 0 0%;
+ }
+ .row-cols-md-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-md-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-md-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-md-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-md-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-md-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-md-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-md-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-md-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-md-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-md-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-md-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-md-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-md-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-md-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-md-0 {
+ margin-left: 0;
+ }
+ .offset-md-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-md-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-md-3 {
+ margin-left: 25%;
+ }
+ .offset-md-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-md-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-md-6 {
+ margin-left: 50%;
+ }
+ .offset-md-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-md-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-md-9 {
+ margin-left: 75%;
+ }
+ .offset-md-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-md-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-md-0,
+ .gx-md-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-md-0,
+ .gy-md-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-md-1,
+ .gx-md-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-md-1,
+ .gy-md-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-md-2,
+ .gx-md-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-md-2,
+ .gy-md-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-md-3,
+ .gx-md-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-md-3,
+ .gy-md-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-md-4,
+ .gx-md-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-md-4,
+ .gy-md-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-md-5,
+ .gx-md-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-md-5,
+ .gy-md-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 992px) {
+ .col-lg {
+ flex: 1 0 0%;
+ }
+ .row-cols-lg-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-lg-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-lg-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-lg-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-lg-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-lg-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-lg-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-lg-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-lg-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-lg-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-lg-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-lg-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-lg-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-lg-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-lg-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-lg-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-lg-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-lg-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-lg-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-lg-0 {
+ margin-left: 0;
+ }
+ .offset-lg-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-lg-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-lg-3 {
+ margin-left: 25%;
+ }
+ .offset-lg-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-lg-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-lg-6 {
+ margin-left: 50%;
+ }
+ .offset-lg-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-lg-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-lg-9 {
+ margin-left: 75%;
+ }
+ .offset-lg-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-lg-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-lg-0,
+ .gx-lg-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-lg-0,
+ .gy-lg-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-lg-1,
+ .gx-lg-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-lg-1,
+ .gy-lg-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-lg-2,
+ .gx-lg-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-lg-2,
+ .gy-lg-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-lg-3,
+ .gx-lg-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-lg-3,
+ .gy-lg-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-lg-4,
+ .gx-lg-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-lg-4,
+ .gy-lg-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-lg-5,
+ .gx-lg-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-lg-5,
+ .gy-lg-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 1200px) {
+ .col-xl {
+ flex: 1 0 0%;
+ }
+ .row-cols-xl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-xl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-xl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-xl-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-xl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-xl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-xl-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xl-0 {
+ margin-left: 0;
+ }
+ .offset-xl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xl-3 {
+ margin-left: 25%;
+ }
+ .offset-xl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xl-6 {
+ margin-left: 50%;
+ }
+ .offset-xl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xl-9 {
+ margin-left: 75%;
+ }
+ .offset-xl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xl-0,
+ .gx-xl-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-xl-0,
+ .gy-xl-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-xl-1,
+ .gx-xl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-xl-1,
+ .gy-xl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-xl-2,
+ .gx-xl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-xl-2,
+ .gy-xl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-xl-3,
+ .gx-xl-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-xl-3,
+ .gy-xl-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-xl-4,
+ .gx-xl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-xl-4,
+ .gy-xl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-xl-5,
+ .gx-xl-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-xl-5,
+ .gy-xl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 1400px) {
+ .col-xxl {
+ flex: 1 0 0%;
+ }
+ .row-cols-xxl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-xxl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-xxl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-xxl-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .row-cols-xxl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-xxl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-xxl-6 > * {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xxl-0 {
+ margin-left: 0;
+ }
+ .offset-xxl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xxl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xxl-3 {
+ margin-left: 25%;
+ }
+ .offset-xxl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xxl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xxl-6 {
+ margin-left: 50%;
+ }
+ .offset-xxl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xxl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xxl-9 {
+ margin-left: 75%;
+ }
+ .offset-xxl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xxl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xxl-0,
+ .gx-xxl-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-xxl-0,
+ .gy-xxl-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-xxl-1,
+ .gx-xxl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-xxl-1,
+ .gy-xxl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-xxl-2,
+ .gx-xxl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-xxl-2,
+ .gy-xxl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-xxl-3,
+ .gx-xxl-3 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-xxl-3,
+ .gy-xxl-3 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-xxl-4,
+ .gx-xxl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-xxl-4,
+ .gy-xxl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-xxl-5,
+ .gx-xxl-5 {
+ --bs-gutter-x: 3rem;
+ }
+ .g-xxl-5,
+ .gy-xxl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+.d-inline {
+ display: inline !important;
+}
+.d-inline-block {
+ display: inline-block !important;
+}
+.d-block {
+ display: block !important;
+}
+.d-grid {
+ display: grid !important;
+}
+.d-table {
+ display: table !important;
+}
+.d-table-row {
+ display: table-row !important;
+}
+.d-table-cell {
+ display: table-cell !important;
+}
+.d-flex {
+ display: flex !important;
+}
+.d-inline-flex {
+ display: inline-flex !important;
+}
+.d-none {
+ display: none !important;
+}
+.flex-fill {
+ flex: 1 1 auto !important;
+}
+.flex-row {
+ flex-direction: row !important;
+}
+.flex-column {
+ flex-direction: column !important;
+}
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+.flex-column-reverse {
+ flex-direction: column-reverse !important;
+}
+.flex-grow-0 {
+ flex-grow: 0 !important;
+}
+.flex-grow-1 {
+ flex-grow: 1 !important;
+}
+.flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+.flex-shrink-1 {
+ flex-shrink: 1 !important;
+}
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+.justify-content-start {
+ justify-content: flex-start !important;
+}
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+.justify-content-center {
+ justify-content: center !important;
+}
+.justify-content-between {
+ justify-content: space-between !important;
+}
+.justify-content-around {
+ justify-content: space-around !important;
+}
+.justify-content-evenly {
+ justify-content: space-evenly !important;
+}
+.align-items-start {
+ align-items: flex-start !important;
+}
+.align-items-end {
+ align-items: flex-end !important;
+}
+.align-items-center {
+ align-items: center !important;
+}
+.align-items-baseline {
+ align-items: baseline !important;
+}
+.align-items-stretch {
+ align-items: stretch !important;
+}
+.align-content-start {
+ align-content: flex-start !important;
+}
+.align-content-end {
+ align-content: flex-end !important;
+}
+.align-content-center {
+ align-content: center !important;
+}
+.align-content-between {
+ align-content: space-between !important;
+}
+.align-content-around {
+ align-content: space-around !important;
+}
+.align-content-stretch {
+ align-content: stretch !important;
+}
+.align-self-auto {
+ align-self: auto !important;
+}
+.align-self-start {
+ align-self: flex-start !important;
+}
+.align-self-end {
+ align-self: flex-end !important;
+}
+.align-self-center {
+ align-self: center !important;
+}
+.align-self-baseline {
+ align-self: baseline !important;
+}
+.align-self-stretch {
+ align-self: stretch !important;
+}
+.order-first {
+ order: -1 !important;
+}
+.order-0 {
+ order: 0 !important;
+}
+.order-1 {
+ order: 1 !important;
+}
+.order-2 {
+ order: 2 !important;
+}
+.order-3 {
+ order: 3 !important;
+}
+.order-4 {
+ order: 4 !important;
+}
+.order-5 {
+ order: 5 !important;
+}
+.order-last {
+ order: 6 !important;
+}
+.m-0 {
+ margin: 0 !important;
+}
+.m-1 {
+ margin: 0.25rem !important;
+}
+.m-2 {
+ margin: 0.5rem !important;
+}
+.m-3 {
+ margin: 1rem !important;
+}
+.m-4 {
+ margin: 1.5rem !important;
+}
+.m-5 {
+ margin: 3rem !important;
+}
+.m-auto {
+ margin: auto !important;
+}
+.mx-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+}
+.mx-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+}
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+}
+.mx-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+}
+.mx-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+}
+.mx-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+}
+.mx-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+}
+.my-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+.my-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+}
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+.my-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+}
+.my-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+.my-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+}
+.my-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+}
+.mt-0 {
+ margin-top: 0 !important;
+}
+.mt-1 {
+ margin-top: 0.25rem !important;
+}
+.mt-2 {
+ margin-top: 0.5rem !important;
+}
+.mt-3 {
+ margin-top: 1rem !important;
+}
+.mt-4 {
+ margin-top: 1.5rem !important;
+}
+.mt-5 {
+ margin-top: 3rem !important;
+}
+.mt-auto {
+ margin-top: auto !important;
+}
+.me-0 {
+ margin-right: 0 !important;
+}
+.me-1 {
+ margin-right: 0.25rem !important;
+}
+.me-2 {
+ margin-right: 0.5rem !important;
+}
+.me-3 {
+ margin-right: 1rem !important;
+}
+.me-4 {
+ margin-right: 1.5rem !important;
+}
+.me-5 {
+ margin-right: 3rem !important;
+}
+.me-auto {
+ margin-right: auto !important;
+}
+.mb-0 {
+ margin-bottom: 0 !important;
+}
+.mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+.mb-2 {
+ margin-bottom: 0.5rem !important;
+}
+.mb-3 {
+ margin-bottom: 1rem !important;
+}
+.mb-4 {
+ margin-bottom: 1.5rem !important;
+}
+.mb-5 {
+ margin-bottom: 3rem !important;
+}
+.mb-auto {
+ margin-bottom: auto !important;
+}
+.ms-0 {
+ margin-left: 0 !important;
+}
+.ms-1 {
+ margin-left: 0.25rem !important;
+}
+.ms-2 {
+ margin-left: 0.5rem !important;
+}
+.ms-3 {
+ margin-left: 1rem !important;
+}
+.ms-4 {
+ margin-left: 1.5rem !important;
+}
+.ms-5 {
+ margin-left: 3rem !important;
+}
+.ms-auto {
+ margin-left: auto !important;
+}
+.p-0 {
+ padding: 0 !important;
+}
+.p-1 {
+ padding: 0.25rem !important;
+}
+.p-2 {
+ padding: 0.5rem !important;
+}
+.p-3 {
+ padding: 1rem !important;
+}
+.p-4 {
+ padding: 1.5rem !important;
+}
+.p-5 {
+ padding: 3rem !important;
+}
+.px-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+}
+.px-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+}
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+}
+.px-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+}
+.px-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+}
+.px-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+}
+.py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.py-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+}
+.py-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+}
+.py-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+}
+.py-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+.py-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+}
+.pt-0 {
+ padding-top: 0 !important;
+}
+.pt-1 {
+ padding-top: 0.25rem !important;
+}
+.pt-2 {
+ padding-top: 0.5rem !important;
+}
+.pt-3 {
+ padding-top: 1rem !important;
+}
+.pt-4 {
+ padding-top: 1.5rem !important;
+}
+.pt-5 {
+ padding-top: 3rem !important;
+}
+.pe-0 {
+ padding-right: 0 !important;
+}
+.pe-1 {
+ padding-right: 0.25rem !important;
+}
+.pe-2 {
+ padding-right: 0.5rem !important;
+}
+.pe-3 {
+ padding-right: 1rem !important;
+}
+.pe-4 {
+ padding-right: 1.5rem !important;
+}
+.pe-5 {
+ padding-right: 3rem !important;
+}
+.pb-0 {
+ padding-bottom: 0 !important;
+}
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+.pb-2 {
+ padding-bottom: 0.5rem !important;
+}
+.pb-3 {
+ padding-bottom: 1rem !important;
+}
+.pb-4 {
+ padding-bottom: 1.5rem !important;
+}
+.pb-5 {
+ padding-bottom: 3rem !important;
+}
+.ps-0 {
+ padding-left: 0 !important;
+}
+.ps-1 {
+ padding-left: 0.25rem !important;
+}
+.ps-2 {
+ padding-left: 0.5rem !important;
+}
+.ps-3 {
+ padding-left: 1rem !important;
+}
+.ps-4 {
+ padding-left: 1.5rem !important;
+}
+.ps-5 {
+ padding-left: 3rem !important;
+}
+@media (min-width: 576px) {
+ .d-sm-inline {
+ display: inline !important;
+ }
+ .d-sm-inline-block {
+ display: inline-block !important;
+ }
+ .d-sm-block {
+ display: block !important;
+ }
+ .d-sm-grid {
+ display: grid !important;
+ }
+ .d-sm-table {
+ display: table !important;
+ }
+ .d-sm-table-row {
+ display: table-row !important;
+ }
+ .d-sm-table-cell {
+ display: table-cell !important;
+ }
+ .d-sm-flex {
+ display: flex !important;
+ }
+ .d-sm-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-sm-none {
+ display: none !important;
+ }
+ .flex-sm-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-sm-row {
+ flex-direction: row !important;
+ }
+ .flex-sm-column {
+ flex-direction: column !important;
+ }
+ .flex-sm-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-sm-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-sm-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-sm-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-sm-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-sm-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-sm-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-sm-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-sm-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-sm-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-sm-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-sm-center {
+ justify-content: center !important;
+ }
+ .justify-content-sm-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-sm-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-sm-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-sm-start {
+ align-items: flex-start !important;
+ }
+ .align-items-sm-end {
+ align-items: flex-end !important;
+ }
+ .align-items-sm-center {
+ align-items: center !important;
+ }
+ .align-items-sm-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-sm-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-sm-start {
+ align-content: flex-start !important;
+ }
+ .align-content-sm-end {
+ align-content: flex-end !important;
+ }
+ .align-content-sm-center {
+ align-content: center !important;
+ }
+ .align-content-sm-between {
+ align-content: space-between !important;
+ }
+ .align-content-sm-around {
+ align-content: space-around !important;
+ }
+ .align-content-sm-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-sm-auto {
+ align-self: auto !important;
+ }
+ .align-self-sm-start {
+ align-self: flex-start !important;
+ }
+ .align-self-sm-end {
+ align-self: flex-end !important;
+ }
+ .align-self-sm-center {
+ align-self: center !important;
+ }
+ .align-self-sm-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-sm-stretch {
+ align-self: stretch !important;
+ }
+ .order-sm-first {
+ order: -1 !important;
+ }
+ .order-sm-0 {
+ order: 0 !important;
+ }
+ .order-sm-1 {
+ order: 1 !important;
+ }
+ .order-sm-2 {
+ order: 2 !important;
+ }
+ .order-sm-3 {
+ order: 3 !important;
+ }
+ .order-sm-4 {
+ order: 4 !important;
+ }
+ .order-sm-5 {
+ order: 5 !important;
+ }
+ .order-sm-last {
+ order: 6 !important;
+ }
+ .m-sm-0 {
+ margin: 0 !important;
+ }
+ .m-sm-1 {
+ margin: 0.25rem !important;
+ }
+ .m-sm-2 {
+ margin: 0.5rem !important;
+ }
+ .m-sm-3 {
+ margin: 1rem !important;
+ }
+ .m-sm-4 {
+ margin: 1.5rem !important;
+ }
+ .m-sm-5 {
+ margin: 3rem !important;
+ }
+ .m-sm-auto {
+ margin: auto !important;
+ }
+ .mx-sm-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-sm-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-sm-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-sm-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-sm-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-sm-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-sm-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-sm-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-sm-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-sm-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-sm-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-sm-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-sm-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-sm-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-sm-0 {
+ margin-top: 0 !important;
+ }
+ .mt-sm-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-sm-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-sm-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-sm-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-sm-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-sm-auto {
+ margin-top: auto !important;
+ }
+ .me-sm-0 {
+ margin-right: 0 !important;
+ }
+ .me-sm-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-sm-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-sm-3 {
+ margin-right: 1rem !important;
+ }
+ .me-sm-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-sm-5 {
+ margin-right: 3rem !important;
+ }
+ .me-sm-auto {
+ margin-right: auto !important;
+ }
+ .mb-sm-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-sm-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-sm-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-sm-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-sm-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-sm-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-sm-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-sm-0 {
+ margin-left: 0 !important;
+ }
+ .ms-sm-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-sm-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-sm-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-sm-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-sm-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-sm-auto {
+ margin-left: auto !important;
+ }
+ .p-sm-0 {
+ padding: 0 !important;
+ }
+ .p-sm-1 {
+ padding: 0.25rem !important;
+ }
+ .p-sm-2 {
+ padding: 0.5rem !important;
+ }
+ .p-sm-3 {
+ padding: 1rem !important;
+ }
+ .p-sm-4 {
+ padding: 1.5rem !important;
+ }
+ .p-sm-5 {
+ padding: 3rem !important;
+ }
+ .px-sm-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-sm-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-sm-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-sm-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-sm-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-sm-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-sm-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-sm-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-sm-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-sm-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-sm-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-sm-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-sm-0 {
+ padding-top: 0 !important;
+ }
+ .pt-sm-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-sm-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-sm-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-sm-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-sm-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-sm-0 {
+ padding-right: 0 !important;
+ }
+ .pe-sm-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-sm-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-sm-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-sm-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-sm-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-sm-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-sm-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-sm-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-sm-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-sm-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-sm-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-sm-0 {
+ padding-left: 0 !important;
+ }
+ .ps-sm-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-sm-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-sm-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-sm-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-sm-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 768px) {
+ .d-md-inline {
+ display: inline !important;
+ }
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+ .d-md-block {
+ display: block !important;
+ }
+ .d-md-grid {
+ display: grid !important;
+ }
+ .d-md-table {
+ display: table !important;
+ }
+ .d-md-table-row {
+ display: table-row !important;
+ }
+ .d-md-table-cell {
+ display: table-cell !important;
+ }
+ .d-md-flex {
+ display: flex !important;
+ }
+ .d-md-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-md-none {
+ display: none !important;
+ }
+ .flex-md-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-md-row {
+ flex-direction: row !important;
+ }
+ .flex-md-column {
+ flex-direction: column !important;
+ }
+ .flex-md-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-md-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-md-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-md-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-md-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-md-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-md-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-md-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-md-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-md-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-md-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-md-center {
+ justify-content: center !important;
+ }
+ .justify-content-md-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-md-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-md-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-md-start {
+ align-items: flex-start !important;
+ }
+ .align-items-md-end {
+ align-items: flex-end !important;
+ }
+ .align-items-md-center {
+ align-items: center !important;
+ }
+ .align-items-md-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-md-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-md-start {
+ align-content: flex-start !important;
+ }
+ .align-content-md-end {
+ align-content: flex-end !important;
+ }
+ .align-content-md-center {
+ align-content: center !important;
+ }
+ .align-content-md-between {
+ align-content: space-between !important;
+ }
+ .align-content-md-around {
+ align-content: space-around !important;
+ }
+ .align-content-md-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-md-auto {
+ align-self: auto !important;
+ }
+ .align-self-md-start {
+ align-self: flex-start !important;
+ }
+ .align-self-md-end {
+ align-self: flex-end !important;
+ }
+ .align-self-md-center {
+ align-self: center !important;
+ }
+ .align-self-md-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-md-stretch {
+ align-self: stretch !important;
+ }
+ .order-md-first {
+ order: -1 !important;
+ }
+ .order-md-0 {
+ order: 0 !important;
+ }
+ .order-md-1 {
+ order: 1 !important;
+ }
+ .order-md-2 {
+ order: 2 !important;
+ }
+ .order-md-3 {
+ order: 3 !important;
+ }
+ .order-md-4 {
+ order: 4 !important;
+ }
+ .order-md-5 {
+ order: 5 !important;
+ }
+ .order-md-last {
+ order: 6 !important;
+ }
+ .m-md-0 {
+ margin: 0 !important;
+ }
+ .m-md-1 {
+ margin: 0.25rem !important;
+ }
+ .m-md-2 {
+ margin: 0.5rem !important;
+ }
+ .m-md-3 {
+ margin: 1rem !important;
+ }
+ .m-md-4 {
+ margin: 1.5rem !important;
+ }
+ .m-md-5 {
+ margin: 3rem !important;
+ }
+ .m-md-auto {
+ margin: auto !important;
+ }
+ .mx-md-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-md-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-md-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-md-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-md-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-md-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-md-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-md-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-md-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-md-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-md-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-md-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-md-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-md-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-md-0 {
+ margin-top: 0 !important;
+ }
+ .mt-md-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-md-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-md-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-md-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-md-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-md-auto {
+ margin-top: auto !important;
+ }
+ .me-md-0 {
+ margin-right: 0 !important;
+ }
+ .me-md-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-md-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-md-3 {
+ margin-right: 1rem !important;
+ }
+ .me-md-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-md-5 {
+ margin-right: 3rem !important;
+ }
+ .me-md-auto {
+ margin-right: auto !important;
+ }
+ .mb-md-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-md-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-md-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-md-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-md-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-md-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-md-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-md-0 {
+ margin-left: 0 !important;
+ }
+ .ms-md-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-md-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-md-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-md-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-md-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-md-auto {
+ margin-left: auto !important;
+ }
+ .p-md-0 {
+ padding: 0 !important;
+ }
+ .p-md-1 {
+ padding: 0.25rem !important;
+ }
+ .p-md-2 {
+ padding: 0.5rem !important;
+ }
+ .p-md-3 {
+ padding: 1rem !important;
+ }
+ .p-md-4 {
+ padding: 1.5rem !important;
+ }
+ .p-md-5 {
+ padding: 3rem !important;
+ }
+ .px-md-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-md-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-md-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-md-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-md-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-md-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-md-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-md-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-md-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-md-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-md-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-md-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-md-0 {
+ padding-top: 0 !important;
+ }
+ .pt-md-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-md-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-md-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-md-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-md-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-md-0 {
+ padding-right: 0 !important;
+ }
+ .pe-md-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-md-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-md-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-md-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-md-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-md-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-md-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-md-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-md-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-md-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-md-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-md-0 {
+ padding-left: 0 !important;
+ }
+ .ps-md-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-md-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-md-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-md-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-md-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 992px) {
+ .d-lg-inline {
+ display: inline !important;
+ }
+ .d-lg-inline-block {
+ display: inline-block !important;
+ }
+ .d-lg-block {
+ display: block !important;
+ }
+ .d-lg-grid {
+ display: grid !important;
+ }
+ .d-lg-table {
+ display: table !important;
+ }
+ .d-lg-table-row {
+ display: table-row !important;
+ }
+ .d-lg-table-cell {
+ display: table-cell !important;
+ }
+ .d-lg-flex {
+ display: flex !important;
+ }
+ .d-lg-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-lg-none {
+ display: none !important;
+ }
+ .flex-lg-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-lg-row {
+ flex-direction: row !important;
+ }
+ .flex-lg-column {
+ flex-direction: column !important;
+ }
+ .flex-lg-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-lg-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-lg-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-lg-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-lg-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-lg-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-lg-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-lg-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-lg-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-lg-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-lg-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-lg-center {
+ justify-content: center !important;
+ }
+ .justify-content-lg-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-lg-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-lg-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-lg-start {
+ align-items: flex-start !important;
+ }
+ .align-items-lg-end {
+ align-items: flex-end !important;
+ }
+ .align-items-lg-center {
+ align-items: center !important;
+ }
+ .align-items-lg-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-lg-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-lg-start {
+ align-content: flex-start !important;
+ }
+ .align-content-lg-end {
+ align-content: flex-end !important;
+ }
+ .align-content-lg-center {
+ align-content: center !important;
+ }
+ .align-content-lg-between {
+ align-content: space-between !important;
+ }
+ .align-content-lg-around {
+ align-content: space-around !important;
+ }
+ .align-content-lg-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-lg-auto {
+ align-self: auto !important;
+ }
+ .align-self-lg-start {
+ align-self: flex-start !important;
+ }
+ .align-self-lg-end {
+ align-self: flex-end !important;
+ }
+ .align-self-lg-center {
+ align-self: center !important;
+ }
+ .align-self-lg-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-lg-stretch {
+ align-self: stretch !important;
+ }
+ .order-lg-first {
+ order: -1 !important;
+ }
+ .order-lg-0 {
+ order: 0 !important;
+ }
+ .order-lg-1 {
+ order: 1 !important;
+ }
+ .order-lg-2 {
+ order: 2 !important;
+ }
+ .order-lg-3 {
+ order: 3 !important;
+ }
+ .order-lg-4 {
+ order: 4 !important;
+ }
+ .order-lg-5 {
+ order: 5 !important;
+ }
+ .order-lg-last {
+ order: 6 !important;
+ }
+ .m-lg-0 {
+ margin: 0 !important;
+ }
+ .m-lg-1 {
+ margin: 0.25rem !important;
+ }
+ .m-lg-2 {
+ margin: 0.5rem !important;
+ }
+ .m-lg-3 {
+ margin: 1rem !important;
+ }
+ .m-lg-4 {
+ margin: 1.5rem !important;
+ }
+ .m-lg-5 {
+ margin: 3rem !important;
+ }
+ .m-lg-auto {
+ margin: auto !important;
+ }
+ .mx-lg-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-lg-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-lg-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-lg-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-lg-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-lg-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-lg-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-lg-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-lg-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-lg-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-lg-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-lg-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-lg-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-lg-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-lg-0 {
+ margin-top: 0 !important;
+ }
+ .mt-lg-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-lg-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-lg-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-lg-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-lg-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-lg-auto {
+ margin-top: auto !important;
+ }
+ .me-lg-0 {
+ margin-right: 0 !important;
+ }
+ .me-lg-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-lg-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-lg-3 {
+ margin-right: 1rem !important;
+ }
+ .me-lg-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-lg-5 {
+ margin-right: 3rem !important;
+ }
+ .me-lg-auto {
+ margin-right: auto !important;
+ }
+ .mb-lg-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-lg-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-lg-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-lg-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-lg-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-lg-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-lg-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-lg-0 {
+ margin-left: 0 !important;
+ }
+ .ms-lg-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-lg-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-lg-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-lg-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-lg-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-lg-auto {
+ margin-left: auto !important;
+ }
+ .p-lg-0 {
+ padding: 0 !important;
+ }
+ .p-lg-1 {
+ padding: 0.25rem !important;
+ }
+ .p-lg-2 {
+ padding: 0.5rem !important;
+ }
+ .p-lg-3 {
+ padding: 1rem !important;
+ }
+ .p-lg-4 {
+ padding: 1.5rem !important;
+ }
+ .p-lg-5 {
+ padding: 3rem !important;
+ }
+ .px-lg-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-lg-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-lg-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-lg-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-lg-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-lg-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-lg-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-lg-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-lg-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-lg-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-lg-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-lg-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-lg-0 {
+ padding-top: 0 !important;
+ }
+ .pt-lg-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-lg-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-lg-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-lg-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-lg-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-lg-0 {
+ padding-right: 0 !important;
+ }
+ .pe-lg-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-lg-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-lg-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-lg-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-lg-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-lg-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-lg-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-lg-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-lg-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-lg-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-lg-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-lg-0 {
+ padding-left: 0 !important;
+ }
+ .ps-lg-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-lg-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-lg-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-lg-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-lg-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 1200px) {
+ .d-xl-inline {
+ display: inline !important;
+ }
+ .d-xl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xl-block {
+ display: block !important;
+ }
+ .d-xl-grid {
+ display: grid !important;
+ }
+ .d-xl-table {
+ display: table !important;
+ }
+ .d-xl-table-row {
+ display: table-row !important;
+ }
+ .d-xl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xl-flex {
+ display: flex !important;
+ }
+ .d-xl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xl-none {
+ display: none !important;
+ }
+ .flex-xl-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-xl-row {
+ flex-direction: row !important;
+ }
+ .flex-xl-column {
+ flex-direction: column !important;
+ }
+ .flex-xl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-xl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-xl-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-xl-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-xl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-xl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-xl-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-xl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-xl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-xl-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-xl-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-xl-center {
+ justify-content: center !important;
+ }
+ .justify-content-xl-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-xl-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-xl-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-xl-start {
+ align-items: flex-start !important;
+ }
+ .align-items-xl-end {
+ align-items: flex-end !important;
+ }
+ .align-items-xl-center {
+ align-items: center !important;
+ }
+ .align-items-xl-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-xl-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-xl-start {
+ align-content: flex-start !important;
+ }
+ .align-content-xl-end {
+ align-content: flex-end !important;
+ }
+ .align-content-xl-center {
+ align-content: center !important;
+ }
+ .align-content-xl-between {
+ align-content: space-between !important;
+ }
+ .align-content-xl-around {
+ align-content: space-around !important;
+ }
+ .align-content-xl-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-xl-auto {
+ align-self: auto !important;
+ }
+ .align-self-xl-start {
+ align-self: flex-start !important;
+ }
+ .align-self-xl-end {
+ align-self: flex-end !important;
+ }
+ .align-self-xl-center {
+ align-self: center !important;
+ }
+ .align-self-xl-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-xl-stretch {
+ align-self: stretch !important;
+ }
+ .order-xl-first {
+ order: -1 !important;
+ }
+ .order-xl-0 {
+ order: 0 !important;
+ }
+ .order-xl-1 {
+ order: 1 !important;
+ }
+ .order-xl-2 {
+ order: 2 !important;
+ }
+ .order-xl-3 {
+ order: 3 !important;
+ }
+ .order-xl-4 {
+ order: 4 !important;
+ }
+ .order-xl-5 {
+ order: 5 !important;
+ }
+ .order-xl-last {
+ order: 6 !important;
+ }
+ .m-xl-0 {
+ margin: 0 !important;
+ }
+ .m-xl-1 {
+ margin: 0.25rem !important;
+ }
+ .m-xl-2 {
+ margin: 0.5rem !important;
+ }
+ .m-xl-3 {
+ margin: 1rem !important;
+ }
+ .m-xl-4 {
+ margin: 1.5rem !important;
+ }
+ .m-xl-5 {
+ margin: 3rem !important;
+ }
+ .m-xl-auto {
+ margin: auto !important;
+ }
+ .mx-xl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-xl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-xl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-xl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-xl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-xl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-xl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-xl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-xl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-xl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-xl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-xl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-xl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-xl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-xl-0 {
+ margin-top: 0 !important;
+ }
+ .mt-xl-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-xl-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-xl-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-xl-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-xl-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-xl-auto {
+ margin-top: auto !important;
+ }
+ .me-xl-0 {
+ margin-right: 0 !important;
+ }
+ .me-xl-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-xl-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-xl-3 {
+ margin-right: 1rem !important;
+ }
+ .me-xl-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-xl-5 {
+ margin-right: 3rem !important;
+ }
+ .me-xl-auto {
+ margin-right: auto !important;
+ }
+ .mb-xl-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-xl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-xl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-xl-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-xl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-xl-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-xl-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-xl-0 {
+ margin-left: 0 !important;
+ }
+ .ms-xl-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-xl-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-xl-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-xl-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-xl-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-xl-auto {
+ margin-left: auto !important;
+ }
+ .p-xl-0 {
+ padding: 0 !important;
+ }
+ .p-xl-1 {
+ padding: 0.25rem !important;
+ }
+ .p-xl-2 {
+ padding: 0.5rem !important;
+ }
+ .p-xl-3 {
+ padding: 1rem !important;
+ }
+ .p-xl-4 {
+ padding: 1.5rem !important;
+ }
+ .p-xl-5 {
+ padding: 3rem !important;
+ }
+ .px-xl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-xl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-xl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-xl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-xl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-xl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-xl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-xl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-xl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-xl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-xl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-xl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-xl-0 {
+ padding-top: 0 !important;
+ }
+ .pt-xl-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-xl-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-xl-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-xl-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-xl-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-xl-0 {
+ padding-right: 0 !important;
+ }
+ .pe-xl-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-xl-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-xl-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-xl-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-xl-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-xl-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-xl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-xl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-xl-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-xl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-xl-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-xl-0 {
+ padding-left: 0 !important;
+ }
+ .ps-xl-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-xl-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-xl-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-xl-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-xl-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media (min-width: 1400px) {
+ .d-xxl-inline {
+ display: inline !important;
+ }
+ .d-xxl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xxl-block {
+ display: block !important;
+ }
+ .d-xxl-grid {
+ display: grid !important;
+ }
+ .d-xxl-table {
+ display: table !important;
+ }
+ .d-xxl-table-row {
+ display: table-row !important;
+ }
+ .d-xxl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xxl-flex {
+ display: flex !important;
+ }
+ .d-xxl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xxl-none {
+ display: none !important;
+ }
+ .flex-xxl-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-xxl-row {
+ flex-direction: row !important;
+ }
+ .flex-xxl-column {
+ flex-direction: column !important;
+ }
+ .flex-xxl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-xxl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-xxl-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-xxl-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-xxl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-xxl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-xxl-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-xxl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-xxl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-xxl-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-xxl-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-xxl-center {
+ justify-content: center !important;
+ }
+ .justify-content-xxl-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-xxl-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-xxl-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-xxl-start {
+ align-items: flex-start !important;
+ }
+ .align-items-xxl-end {
+ align-items: flex-end !important;
+ }
+ .align-items-xxl-center {
+ align-items: center !important;
+ }
+ .align-items-xxl-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-xxl-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-xxl-start {
+ align-content: flex-start !important;
+ }
+ .align-content-xxl-end {
+ align-content: flex-end !important;
+ }
+ .align-content-xxl-center {
+ align-content: center !important;
+ }
+ .align-content-xxl-between {
+ align-content: space-between !important;
+ }
+ .align-content-xxl-around {
+ align-content: space-around !important;
+ }
+ .align-content-xxl-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-xxl-auto {
+ align-self: auto !important;
+ }
+ .align-self-xxl-start {
+ align-self: flex-start !important;
+ }
+ .align-self-xxl-end {
+ align-self: flex-end !important;
+ }
+ .align-self-xxl-center {
+ align-self: center !important;
+ }
+ .align-self-xxl-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-xxl-stretch {
+ align-self: stretch !important;
+ }
+ .order-xxl-first {
+ order: -1 !important;
+ }
+ .order-xxl-0 {
+ order: 0 !important;
+ }
+ .order-xxl-1 {
+ order: 1 !important;
+ }
+ .order-xxl-2 {
+ order: 2 !important;
+ }
+ .order-xxl-3 {
+ order: 3 !important;
+ }
+ .order-xxl-4 {
+ order: 4 !important;
+ }
+ .order-xxl-5 {
+ order: 5 !important;
+ }
+ .order-xxl-last {
+ order: 6 !important;
+ }
+ .m-xxl-0 {
+ margin: 0 !important;
+ }
+ .m-xxl-1 {
+ margin: 0.25rem !important;
+ }
+ .m-xxl-2 {
+ margin: 0.5rem !important;
+ }
+ .m-xxl-3 {
+ margin: 1rem !important;
+ }
+ .m-xxl-4 {
+ margin: 1.5rem !important;
+ }
+ .m-xxl-5 {
+ margin: 3rem !important;
+ }
+ .m-xxl-auto {
+ margin: auto !important;
+ }
+ .mx-xxl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-xxl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-xxl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-xxl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-xxl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-xxl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-xxl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-xxl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-xxl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-xxl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-xxl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-xxl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-xxl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-xxl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-xxl-0 {
+ margin-top: 0 !important;
+ }
+ .mt-xxl-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-xxl-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-xxl-3 {
+ margin-top: 1rem !important;
+ }
+ .mt-xxl-4 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-xxl-5 {
+ margin-top: 3rem !important;
+ }
+ .mt-xxl-auto {
+ margin-top: auto !important;
+ }
+ .me-xxl-0 {
+ margin-right: 0 !important;
+ }
+ .me-xxl-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-xxl-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-xxl-3 {
+ margin-right: 1rem !important;
+ }
+ .me-xxl-4 {
+ margin-right: 1.5rem !important;
+ }
+ .me-xxl-5 {
+ margin-right: 3rem !important;
+ }
+ .me-xxl-auto {
+ margin-right: auto !important;
+ }
+ .mb-xxl-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-xxl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-xxl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-xxl-3 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-xxl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-xxl-5 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-xxl-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-xxl-0 {
+ margin-left: 0 !important;
+ }
+ .ms-xxl-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-xxl-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-xxl-3 {
+ margin-left: 1rem !important;
+ }
+ .ms-xxl-4 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-xxl-5 {
+ margin-left: 3rem !important;
+ }
+ .ms-xxl-auto {
+ margin-left: auto !important;
+ }
+ .p-xxl-0 {
+ padding: 0 !important;
+ }
+ .p-xxl-1 {
+ padding: 0.25rem !important;
+ }
+ .p-xxl-2 {
+ padding: 0.5rem !important;
+ }
+ .p-xxl-3 {
+ padding: 1rem !important;
+ }
+ .p-xxl-4 {
+ padding: 1.5rem !important;
+ }
+ .p-xxl-5 {
+ padding: 3rem !important;
+ }
+ .px-xxl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-xxl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-xxl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-xxl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-xxl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-xxl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .py-xxl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-xxl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-xxl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-xxl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-xxl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-xxl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .pt-xxl-0 {
+ padding-top: 0 !important;
+ }
+ .pt-xxl-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-xxl-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-xxl-3 {
+ padding-top: 1rem !important;
+ }
+ .pt-xxl-4 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-xxl-5 {
+ padding-top: 3rem !important;
+ }
+ .pe-xxl-0 {
+ padding-right: 0 !important;
+ }
+ .pe-xxl-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-xxl-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-xxl-3 {
+ padding-right: 1rem !important;
+ }
+ .pe-xxl-4 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-xxl-5 {
+ padding-right: 3rem !important;
+ }
+ .pb-xxl-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-xxl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-xxl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-xxl-3 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-xxl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-xxl-5 {
+ padding-bottom: 3rem !important;
+ }
+ .ps-xxl-0 {
+ padding-left: 0 !important;
+ }
+ .ps-xxl-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-xxl-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-xxl-3 {
+ padding-left: 1rem !important;
+ }
+ .ps-xxl-4 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-xxl-5 {
+ padding-left: 3rem !important;
+ }
+}
+@media print {
+ .d-print-inline {
+ display: inline !important;
+ }
+ .d-print-inline-block {
+ display: inline-block !important;
+ }
+ .d-print-block {
+ display: block !important;
+ }
+ .d-print-grid {
+ display: grid !important;
+ }
+ .d-print-table {
+ display: table !important;
+ }
+ .d-print-table-row {
+ display: table-row !important;
+ }
+ .d-print-table-cell {
+ display: table-cell !important;
+ }
+ .d-print-flex {
+ display: flex !important;
+ }
+ .d-print-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-print-none {
+ display: none !important;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1080;
+ display: block;
+ margin: 0;
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ opacity: 0;
+ pointer-events: none;
+}
+.tooltip.show {
+ opacity: 0.9;
+}
+.tooltip .tooltip-arrow {
+ position: absolute;
+ display: block;
+ width: 0.8rem;
+ height: 0.4rem;
+}
+.tooltip .tooltip-arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+.bs-tooltip-top,
+.bs-tooltip-auto[data-popper-placement^=top] {
+ padding: 0.4rem 0;
+}
+.bs-tooltip-top .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+ bottom: 0;
+}
+.bs-tooltip-top .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ top: -1px;
+ border-width: 0.4rem 0.4rem 0;
+ border-top-color: #000;
+}
+.bs-tooltip-end,
+.bs-tooltip-auto[data-popper-placement^=right] {
+ padding: 0 0.4rem;
+}
+.bs-tooltip-end .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+ left: 0;
+ width: 0.4rem;
+ height: 0.8rem;
+}
+.bs-tooltip-end .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+ right: -1px;
+ border-width: 0.4rem 0.4rem 0.4rem 0;
+ border-right-color: #000;
+}
+.bs-tooltip-bottom,
+.bs-tooltip-auto[data-popper-placement^=bottom] {
+ padding: 0.4rem 0;
+}
+.bs-tooltip-bottom .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+ top: 0;
+}
+.bs-tooltip-bottom .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 0.4rem 0.4rem;
+ border-bottom-color: #000;
+}
+.bs-tooltip-start,
+.bs-tooltip-auto[data-popper-placement^=left] {
+ padding: 0 0.4rem;
+}
+.bs-tooltip-start .tooltip-arrow,
+.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+ right: 0;
+ width: 0.4rem;
+ height: 0.8rem;
+}
+.bs-tooltip-start .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+ left: -1px;
+ border-width: 0.4rem 0 0.4rem 0.4rem;
+ border-left-color: #000;
+}
+.tooltip-inner {
+ max-width: 200px;
+ padding: 0.25rem 0.5rem;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 0.25rem;
+ -webkit-user-select: none;
+ user-select: none;
+ pointer-events: none;
+}
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0 /* rtl:ignore */;
+ z-index: 1070;
+ display: block;
+ max-width: 276px;
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+}
+.popover .popover-arrow {
+ position: absolute;
+ display: block;
+ width: 1rem;
+ height: 0.5rem;
+}
+.popover .popover-arrow::before,
+.popover .popover-arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+.bs-popover-top > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
+ bottom: calc(-0.5rem - 1px);
+}
+.bs-popover-top > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+ bottom: 0;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-top > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ bottom: 1px;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: #fff;
+}
+.bs-popover-end > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
+ left: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem;
+}
+.bs-popover-end > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+ left: 0;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-end > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ left: 1px;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: #fff;
+}
+.bs-popover-bottom > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
+ top: calc(-0.5rem - 1px);
+}
+.bs-popover-bottom > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+ top: 0;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-bottom > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ top: 1px;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: #fff;
+}
+.bs-popover-bottom .popover-header::before,
+.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: 1rem;
+ margin-left: -0.5rem;
+ content: "";
+ border-bottom: 1px solid #f0f0f0;
+}
+.bs-popover-start > .popover-arrow,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
+ right: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem;
+}
+.bs-popover-start > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+ right: 0;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-start > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ right: 1px;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: #fff;
+}
+.popover-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ background-color: #f0f0f0;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+.popover-header:empty {
+ display: none;
+}
+.popover-body {
+ padding: 1rem 1rem;
+ color: #212529;
+}
+@-webkit-keyframes notyf-fadeinup {
+ 0% {
+ opacity: 0;
+ transform: translateY(25%);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+@keyframes notyf-fadeinup {
+ 0% {
+ opacity: 0;
+ transform: translateY(25%);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+@-webkit-keyframes notyf-fadeinleft {
+ 0% {
+ opacity: 0;
+ transform: translateX(25%);
+ }
+ to {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+@keyframes notyf-fadeinleft {
+ 0% {
+ opacity: 0;
+ transform: translateX(25%);
+ }
+ to {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+@-webkit-keyframes notyf-fadeoutright {
+ 0% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+ to {
+ opacity: 0;
+ transform: translateX(25%);
+ }
+}
+@keyframes notyf-fadeoutright {
+ 0% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+ to {
+ opacity: 0;
+ transform: translateX(25%);
+ }
+}
+@-webkit-keyframes notyf-fadeoutdown {
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+ to {
+ opacity: 0;
+ transform: translateY(25%);
+ }
+}
+@keyframes notyf-fadeoutdown {
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+ to {
+ opacity: 0;
+ transform: translateY(25%);
+ }
+}
+@-webkit-keyframes ripple {
+ 0% {
+ transform: scale(0) translateY(-45%) translateX(13%);
+ }
+ to {
+ transform: scale(1) translateY(-45%) translateX(13%);
+ }
+}
+@keyframes ripple {
+ 0% {
+ transform: scale(0) translateY(-45%) translateX(13%);
+ }
+ to {
+ transform: scale(1) translateY(-45%) translateX(13%);
+ }
+}
+.notyf {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ color: #fff;
+ z-index: 9999;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ justify-content: flex-end;
+ pointer-events: none;
+ box-sizing: border-box;
+ padding: 20px;
+}
+.notyf__icon--error,
+.notyf__icon--success {
+ height: 21px;
+ width: 21px;
+ background: #fff;
+ border-radius: 50%;
+ display: block;
+ margin: 0 auto;
+ position: relative;
+}
+.notyf__icon--error:after,
+.notyf__icon--error:before {
+ content: "";
+ background: currentColor;
+ display: block;
+ position: absolute;
+ width: 3px;
+ border-radius: 3px;
+ left: 9px;
+ height: 12px;
+ top: 5px;
+}
+.notyf__icon--error:after {
+ transform: rotate(-45deg);
+}
+.notyf__icon--error:before {
+ transform: rotate(45deg);
+}
+.notyf__icon--success:after,
+.notyf__icon--success:before {
+ content: "";
+ background: currentColor;
+ display: block;
+ position: absolute;
+ width: 3px;
+ border-radius: 3px;
+}
+.notyf__icon--success:after {
+ height: 6px;
+ transform: rotate(-45deg);
+ top: 9px;
+ left: 6px;
+}
+.notyf__icon--success:before {
+ height: 11px;
+ transform: rotate(45deg);
+ top: 5px;
+ left: 10px;
+}
+.notyf__toast {
+ display: block;
+ overflow: hidden;
+ pointer-events: auto;
+ -webkit-animation: notyf-fadeinup 0.3s ease-in forwards;
+ animation: notyf-fadeinup 0.3s ease-in forwards;
+ box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.25);
+ position: relative;
+ padding: 0 15px;
+ border-radius: 2px;
+ max-width: 300px;
+ transform: translateY(25%);
+ box-sizing: border-box;
+ flex-shrink: 0;
+}
+.notyf__toast--disappear {
+ transform: translateY(0);
+ -webkit-animation: notyf-fadeoutdown 0.3s forwards;
+ animation: notyf-fadeoutdown 0.3s forwards;
+ -webkit-animation-delay: 0.25s;
+ animation-delay: 0.25s;
+}
+.notyf__toast--disappear .notyf__icon,
+.notyf__toast--disappear .notyf__message {
+ -webkit-animation: notyf-fadeoutdown 0.3s forwards;
+ animation: notyf-fadeoutdown 0.3s forwards;
+ opacity: 1;
+ transform: translateY(0);
+}
+.notyf__toast--disappear .notyf__dismiss {
+ -webkit-animation: notyf-fadeoutright 0.3s forwards;
+ animation: notyf-fadeoutright 0.3s forwards;
+ opacity: 1;
+ transform: translateX(0);
+}
+.notyf__toast--disappear .notyf__message {
+ -webkit-animation-delay: 0.05s;
+ animation-delay: 0.05s;
+}
+.notyf__toast--upper {
+ margin-bottom: 20px;
+}
+.notyf__toast--lower {
+ margin-top: 20px;
+}
+.notyf__toast--dismissible .notyf__wrapper {
+ padding-right: 30px;
+}
+.notyf__ripple {
+ height: 400px;
+ width: 400px;
+ position: absolute;
+ transform-origin: bottom right;
+ right: 0;
+ top: 0;
+ border-radius: 50%;
+ transform: scale(0) translateY(-51%) translateX(13%);
+ z-index: 5;
+ -webkit-animation: ripple 0.4s ease-out forwards;
+ animation: ripple 0.4s ease-out forwards;
+}
+.notyf__wrapper {
+ display: flex;
+ align-items: center;
+ padding-top: 17px;
+ padding-bottom: 17px;
+ padding-right: 15px;
+ border-radius: 3px;
+ position: relative;
+ z-index: 10;
+}
+.notyf__icon {
+ width: 22px;
+ text-align: center;
+ font-size: 1.3em;
+ opacity: 0;
+ -webkit-animation: notyf-fadeinup 0.3s forwards;
+ animation: notyf-fadeinup 0.3s forwards;
+ -webkit-animation-delay: 0.3s;
+ animation-delay: 0.3s;
+ margin-right: 13px;
+}
+.notyf__dismiss {
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 100%;
+ width: 26px;
+ margin-right: -15px;
+ -webkit-animation: notyf-fadeinleft 0.3s forwards;
+ animation: notyf-fadeinleft 0.3s forwards;
+ -webkit-animation-delay: 0.35s;
+ animation-delay: 0.35s;
+ opacity: 0;
+}
+.notyf__dismiss-btn {
+ background-color: rgba(0, 0, 0, 0.25);
+ border: none;
+ cursor: pointer;
+ transition: opacity 0.2s ease, background-color 0.2s ease;
+ outline: none;
+ opacity: 0.35;
+ height: 100%;
+ width: 100%;
+}
+.notyf__dismiss-btn:after,
+.notyf__dismiss-btn:before {
+ content: "";
+ background: #fff;
+ height: 12px;
+ width: 2px;
+ border-radius: 3px;
+ position: absolute;
+ left: calc(50% - 1px);
+ top: calc(50% - 5px);
+}
+.notyf__dismiss-btn:after {
+ transform: rotate(-45deg);
+}
+.notyf__dismiss-btn:before {
+ transform: rotate(45deg);
+}
+.notyf__dismiss-btn:hover {
+ opacity: 0.7;
+ background-color: rgba(0, 0, 0, 0.15);
+}
+.notyf__dismiss-btn:active {
+ opacity: 0.8;
+}
+.notyf__message {
+ vertical-align: middle;
+ position: relative;
+ opacity: 0;
+ -webkit-animation: notyf-fadeinup 0.3s forwards;
+ animation: notyf-fadeinup 0.3s forwards;
+ -webkit-animation-delay: 0.25s;
+ animation-delay: 0.25s;
+ line-height: 1.5em;
+}
+@media only screen and (max-width: 480px) {
+ .notyf {
+ padding: 0;
+ }
+ .notyf__ripple {
+ height: 600px;
+ width: 600px;
+ -webkit-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ }
+ .notyf__toast {
+ max-width: none;
+ border-radius: 0;
+ box-shadow: 0 -2px 7px 0 rgba(0, 0, 0, 0.13);
+ width: 100%;
+ }
+ .notyf__dismiss {
+ width: 56px;
+ }
+}
+.md-select {
+ padding: 6px;
+ border-radius: 6px;
+ border: 1px solid rgba(200, 200, 200, 0.1);
+ border-top: 1px solid rgba(100, 100, 100, 0.5);
+ font-family: inherit;
+ font-size: 14px;
+ background: rgba(100, 100, 100, 0.25);
+ color: #eee;
+}
+.md-select option {
+ font-size: 1em;
+ font-family: inherit;
+ padding: 8px 16px;
+ background: #404040;
+}
+.md-select optgroup {
+ background: #2c2c2c;
+}
+.md-select:focus {
+ outline: solid 1px var(--selected);
+}
+.md-btn {
+ font-family: inherit;
+ background: rgba(100, 100, 100, 0.25);
+ padding: 8px 14px;
+ border-radius: 6px;
+ font-size: 14px;
+ border: 1px solid rgba(100, 100, 100, 0.35);
+ border-top: 1px solid rgba(100, 100, 100, 0.5);
+ color: #eee;
+ white-space: nowrap;
+ transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase);
+}
+.md-btn.md-btn-block {
+ display: block;
+ width: 100%;
+}
+.md-btn.md-btn-glyph {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+}
+.md-btn.md-btn-primary {
+ background: #ff2b52a6;
+ color: white;
+ border: 1px solid rgba(220, 53, 69, 0.25);
+ border-top: 1px solid rgba(220, 53, 69, 0.5);
+}
+.md-btn.md-btn-small {
+ padding: 6px 8px;
+ font-size: 13px;
+}
+.md-btn:hover {
+ filter: brightness(125%);
+}
+.md-btn:active {
+ filter: brightness(75%);
+ transform: scale(0.98);
+ transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
+}
+.md-btn.md-btn-icon {
+ display: inline-flex;
+ vertical-align: middle;
+ justify-content: center;
+}
+.md-btn.md-btn-icon > img {
+ margin: 0px 16px 0px 0px;
+ pointer-events: none;
+}
+.md-btn.md-btn-icon > .md-btn-text {
+ margin: 0px;
+}
+.btn-group {
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+}
+.btn-group > .md-btn {
+ border-radius: 0px;
+ width: 100%;
+}
+.btn-group > .md-btn:first-child {
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
+.btn-group > .md-btn:last-child {
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+.btn-group > .md-btn:not(:first-child):not(:last-child) {
+ border-radius: 0px;
+}
+.md-close-btn {
+ -webkit-mask-image: url("ameres://icons/webui/close.svg");
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: white;
+ opacity: 0.75;
+ -webkit-mask-size: contain;
+ height: 18px;
+ width: 18px;
+}
+.md-ico-play {
+ content: url("assets/play.svg");
+ width: 10px;
+ height: 12px;
+ margin-right: 1px;
+ align-self: center;
+}
+.md-ico-shuffle {
+ content: url("assets/shuffle.svg");
+ width: 1em;
+ height: 1em;
+ margin-right: 1px;
+ margin-bottom: -2px;
+ align-self: center;
+}
+.md-ico-remove {
+ content: url("assets/feather/x-circle-white.svg");
+ width: 16px;
+ height: 16px;
+ margin-right: 1px;
+ margin-bottom: -1.5px;
+ align-self: center;
+}
+.md-ico-add {
+ content: url("assets/feather/plus-circle-white.svg");
+ width: 1em;
+ height: 1em;
+ margin-right: 1px;
+ margin-bottom: -1.5px;
+ align-self: center;
+}
+.reload-btn {
+ background: rgba(86, 86, 86, 0.52);
+ border-radius: 100%;
+ width: 32px;
+ height: 32px;
+ border: 0px;
+ appearance: none;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.reload-btn:hover {
+ background: rgba(86, 86, 86, 0.8);
+ cursor: pointer;
+}
+.reload-btn > svg {
+ height: 50%;
+ color: #eee;
+}
+.wr-btn {
+ font-family: inherit;
+ appearance: none;
+ border: 0px;
+ border-radius: 6px;
+ padding: 8px;
+ font-weight: 600;
+ background: rgba(80, 80, 80, 0.7);
+ color: white;
+}
+.cd-btn-seeall {
+ background: transparent;
+ border: 0px;
+ color: var(--keyColor);
+ font-family: inherit;
+ font-weight: 500;
+ font-size: 16px;
+ border-radius: 4px;
+ padding: 6px;
+}
+.cd-btn-seeall:hover {
+ cursor: pointer;
+ background: rgba(200, 200, 200, 0.1);
+}
+.mediaitem-artwork {
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ flex: 0 0 auto;
+ position: relative;
+ width: 100%;
+ height: 100%;
+ background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg");
+ background-size: cover;
+ background-position: center;
+}
+.mediaitem-artwork .animatedartwork-view-box {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+}
+.mediaitem-artwork .animatedartwork-view-box .animated {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+}
+.mediaitem-artwork .animatedartwork-view-box .animated video {
+ width: 100%;
+ height: 100%;
+}
+.mediaitem-artwork.rounded {
+ border-radius: 100%;
+}
+.mediaitem-artwork.rounded::after {
+ border-radius: 100%;
+}
+.mediaitem-artwork::after {
+ content: "";
+ box-shadow: var(--mediaItemShadow);
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ border-radius: inherit;
+}
+.mediaitem-artwork img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ image-rendering: -webkit-optimize-contrast;
+ pointer-events: none;
+}
+.mediaitem-artwork.no-shadow {
+ box-shadow: none;
+}
+.mediaitem-artwork.no-shadow::after {
+ display: none;
+}
+.mediaitem-artwork.subtle-shadow {
+ box-shadow: var(--mediaItemShadow-ShadowSubtle);
+}
+.mediaitem-artwork.shadow {
+ box-shadow: var(--mediaItemShadow-Shadow);
+}
+/* queue item */
+.cd-queue-item {
+ border-bottom: 1px solid rgba(200, 200, 200, 0.1);
+ padding: 8px;
+}
+.cd-queue-item .row,
+.cd-queue-item .col {
+ padding: 0px;
+ margin: 0px;
+}
+.cd-queue-item .artwork {
+ width: 32px;
+ height: 32px;
+ flex: 0 0 auto;
+}
+.cd-queue-item.selected {
+ background: var(--selected);
+}
+.cd-queue-item:active {
+ background: var(--selected-click);
+ color: #eee;
+}
+.cd-queue-item .queue-info {
+ display: flex;
+ flex-direction: column;
+}
+.cd-queue-item .queue-info .queue-title {
+ font-size: 14px;
+}
+.cd-queue-item .queue-info .queue-subtitle {
+ font-size: 13px;
+ opacity: 0.85;
+}
+/* horizontal media scroller */
+.cd-hmedia-scroller::-webkit-scrollbar-thumb {
+ box-shadow: none;
+}
+.cd-hmedia-scroller:hover::-webkit-scrollbar-thumb {
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5);
+}
+.cd-hmedia-scroller.hmedia-scroller-card .mediaitem-card {
+ margin: 16px;
+}
+/* mediaitem-list-item */
+.cd-mediaitem-list-item {
+ width: 100%;
+ height: 60px;
+ display: flex;
+ flex: 0 0 auto;
+ flex-direction: row;
+ font-size: 14px;
+ justify-content: center-between;
+ align-items: center;
+ border-radius: var(--mediaItemRadius);
+ /* CSS.gg
+ */
+}
+.cd-mediaitem-list-item .artwork {
+ height: 42px;
+ width: 42px;
+ border-radius: var(--mediaItemRadius);
+ object-fit: cover;
+ object-position: center;
+ flex: 0 0 auto;
+ background-repeat: no-repeat;
+ margin: 12px;
+ border: 0px;
+ outline: none;
+ position: relative;
+ overflow: hidden;
+}
+.cd-mediaitem-list-item .artwork .overlay-play {
+ background: rgba(0, 0, 0, 0.5);
+ opacity: 0;
+ appearance: none;
+ border: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ padding: 0px;
+ z-index: 5;
+ cursor: pointer;
+}
+.cd-mediaitem-list-item .artwork .overlay-play:hover {
+ opacity: 1;
+}
+.cd-mediaitem-list-item .artwork .overlay-play:active {
+ background: var(--selected-click);
+}
+.cd-mediaitem-list-item .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-list-item .info-rect {
+ height: 100%;
+ display: flex;
+ flex-flow: column;
+ justify-content: center;
+ flex-grow: 1;
+}
+.cd-mediaitem-list-item .title {
+ width: 100%;
+}
+.cd-mediaitem-list-item .subtitle {
+ width: 90%;
+ font-size: 0.8em;
+ opacity: 0.7;
+}
+.cd-mediaitem-list-item .duration {
+ min-width: 60px;
+ text-align: center;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.cd-mediaitem-list-item .metainfo {
+ min-width: 145px;
+ text-align: center;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.cd-mediaitem-list-item .explicit-icon {
+ background-image: url("assets/explicit.svg");
+ height: 12px;
+ width: 36px;
+ filter: contrast(0);
+ background-repeat: no-repeat;
+}
+@keyframes load-bar {
+ 10% {
+ box-shadow: inset 0 -4px 0;
+ }
+ 20% {
+ box-shadow: inset 0 -10px 0;
+ }
+ 30% {
+ box-shadow: inset 0 -12px 0;
+ }
+ 40% {
+ box-shadow: inset 0 -8px 0;
+ }
+ 50% {
+ box-shadow: inset 0 -4px 0;
+ }
+ 60% {
+ box-shadow: inset 0 -6px 0;
+ }
+ 80% {
+ box-shadow: inset 0 -12px 0;
+ }
+ 90% {
+ box-shadow: inset 0 -6px 0;
+ }
+ to {
+ box-shadow: inset 0 -2px 0;
+ }
+}
+.cd-mediaitem-list-item .loadbar-sound,
+.cd-mediaitem-list-item .loadbar-sound::after,
+.cd-mediaitem-list-item .loadbar-sound::before {
+ animation: load-bar 1.3s ease infinite alternate;
+ box-sizing: border-box;
+ width: 3px;
+ height: 28px;
+ box-shadow: inset 0 -12px 0;
+}
+.cd-mediaitem-list-item .loadbar-sound {
+ margin-left: 22px;
+ margin-top: -16px;
+ position: relative;
+ transform: scale(var(--load-bar, 1));
+ color: var(--keyColor);
+ display: block;
+}
+.cd-mediaitem-list-item .loadbar-sound::after,
+.cd-mediaitem-list-item .loadbar-sound::before {
+ content: "";
+ position: absolute;
+ bottom: 0;
+}
+.cd-mediaitem-list-item .loadbar-sound::before {
+ left: -4.5px;
+ animation-delay: -2.4s;
+}
+.cd-mediaitem-list-item .loadbar-sound::after {
+ right: -4.2px;
+ animation-delay: -3.7s;
+}
+.cd-mediaitem-list-item .isLibrary {
+ flex: 0 0 auto;
+ width: 40px;
+ text-align: center;
+}
+.cd-mediaitem-list-item .isLibrary button {
+ appearance: none;
+ border: 0px;
+ background: transparent;
+ cursor: pointer;
+ filter: contrast(0.8);
+}
+.cd-mediaitem-list-item:hover {
+ background: rgba(200, 200, 200, 0.1);
+ box-shadow: var(--mediaItemShadow);
+}
+.cd-mediaitem-list-item:hover .overlay-play {
+ opacity: 1;
+}
+.cd-mediaitem-list-item.mediaitem-selected {
+ background: var(--selected);
+ box-shadow: var(--mediaItemShadow);
+}
+.cd-mediaitem-list-item:active {
+ background: var(--selected-click);
+ box-shadow: var(--mediaItemShadow);
+ color: #eee;
+}
+.cd-mediaitem-list-item.disabled {
+ opacity: 0.5;
+ pointer-events: none;
+}
+.cd-mediaitem-list-item.compact {
+ height: 40px;
+ font-size: 13px;
+}
+.cd-mediaitem-list-item.compact .artwork {
+ display: none;
+}
+.cd-mediaitem-list-item.compact .info-rect {
+ padding-left: 1em;
+}
+/* mediaitem-hrect */
+.cd-mediaitem-hrect {
+ background: rgba(255, 255, 255, 0.18);
+ width: 264px;
+ height: 100px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: row;
+ font-size: 14px;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+ cursor: pointer;
+}
+.cd-mediaitem-hrect .artwork {
+ height: 70px;
+ width: 70px;
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: contain;
+ flex: 0 0 auto;
+ background-repeat: no-repeat;
+ margin: 18px;
+}
+.cd-mediaitem-hrect .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-hrect .info-rect {
+ width: 100%;
+}
+.cd-mediaitem-hrect .title {
+ width: 100%;
+ text-align: center;
+}
+.cd-mediaitem-hrect .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+/* mediaitem-square-sp */
+.cd-mediaitem-square-sp {
+ --spcolor: var("");
+ width: 190px;
+ height: 245px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+ background-color: var(--spcolor);
+}
+.cd-mediaitem-square-sp .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.cd-mediaitem-square-sp .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-square-sp .artwork:hover {
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset;
+}
+.cd-mediaitem-square-sp .title {
+ width: 90%;
+ text-align: center;
+}
+.cd-mediaitem-square-sp .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay {
+ z-index: 3;
+}
+.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay:hover {
+ opacity: 1;
+}
+.cd-mediaitem-square-sp + .cd-mediaitem-square-large-overlay {
+ pointer-events: none;
+}
+.cd-mediaitem-square-sp:hover + .cd-mediaitem-square-large-overlay {
+ opacity: 1;
+}
+.cd-mediaitem-square-sp:hover {
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset;
+}
+/* mediaitem-square-large */
+.cd-mediaitem-square-large {
+ width: 190px;
+ height: 250px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+}
+.cd-mediaitem-square-large > * {
+ z-index: inherit;
+}
+.cd-mediaitem-square-large .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.cd-mediaitem-square-large-overlay {
+ position: absolute;
+ width: 190px;
+ float: right;
+ height: 250px;
+ top: 0px;
+ margin: 10px;
+ margin-top: 0px;
+ opacity: 0;
+}
+.cd-mediaitem-square-large-overlay > * {
+ pointer-events: auto;
+}
+.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay {
+ z-index: 3;
+}
+.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover {
+ opacity: 1;
+}
+.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay {
+ pointer-events: none;
+}
+.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay {
+ opacity: 1;
+}
+.cd-mediaitem-square-large .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-square-large .title {
+ width: 90%;
+ text-align: center;
+}
+.cd-mediaitem-square-large .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+/* mediaitem-mvview */
+/* mediaitem-mvview */
+.cd-mediaitem-mvview {
+ width: 300px;
+ height: 250px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: flex-start;
+ align-items: center;
+ border-radius: 6px;
+ margin-left: 10px;
+ cursor: pointer;
+}
+.cd-mediaitem-mvview > * {
+ z-index: inherit;
+}
+.cd-mediaitem-mvview .artwork {
+ height: 172px;
+ width: 300px;
+ background: blue;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.cd-mediaitem-mvview-overlay {
+ position: absolute;
+ width: 300px;
+ float: right;
+ height: 250px;
+ top: 0px;
+ margin: 10px;
+ margin-top: 0px;
+ opacity: 0;
+}
+.cd-mediaitem-mvview-overlay > * {
+ pointer-events: auto;
+}
+.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay {
+ z-index: 3;
+}
+.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover {
+ opacity: 1;
+}
+.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay {
+ pointer-events: none;
+}
+.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay {
+ opacity: 1;
+}
+.cd-mediaitem-mvview .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-mvview .title {
+ width: 90%;
+ text-align: center;
+}
+.cd-mediaitem-mvview .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+/* mediaitem-square */
+.cd-mediaitem-square {
+ width: 220px;
+ height: 238px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+}
+.cd-mediaitem-square .artwork-container {
+ position: relative;
+}
+.cd-mediaitem-square .artwork-container .artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: 6px;
+ cursor: pointer;
+}
+.cd-mediaitem-square .artwork-container .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.cd-mediaitem-square .artwork-container .badge-container {
+ transition: opacity 0.1s var(--appleEase);
+ opacity: 1;
+}
+.cd-mediaitem-square .artwork-container .badge-container .socialBadge {
+ width: 32px;
+ height: 32px;
+ position: absolute;
+ right: 14px;
+ bottom: 14px;
+ border-radius: 100%;
+ overflow: hidden;
+ z-index: 2;
+ pointer-events: none;
+}
+.cd-mediaitem-square .artwork-container > .play-btn,
+.cd-mediaitem-square .artwork-container > .menu-btn {
+ opacity: 0;
+ appearance: none;
+ padding: 0px;
+ border: 0px;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ background: rgba(50, 50, 50, 0.7);
+ cursor: pointer;
+ transition: opacity 0.1s var(--appleEase);
+}
+.cd-mediaitem-square .artwork-container > .play-btn :hover,
+.cd-mediaitem-square .artwork-container > .menu-btn :hover {
+ border-radius: 50%;
+ background: rgba(250, 0, 0, 0.7);
+}
+.cd-mediaitem-square .artwork-container > .play-btn {
+ position: absolute;
+ bottom: 14px;
+ left: 14px;
+ z-index: 2;
+}
+.cd-mediaitem-square .artwork-container > .menu-btn {
+ position: absolute;
+ bottom: 14px;
+ right: 14px;
+ z-index: 2;
+}
+.cd-mediaitem-square .artwork-container:hover > .badge-container {
+ opacity: 0;
+}
+.cd-mediaitem-square .artwork-container:hover > .play-btn,
+.cd-mediaitem-square .artwork-container:hover > .menu-btn {
+ opacity: 1;
+}
+.cd-mediaitem-square .info-rect {
+ width: 90%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+.cd-mediaitem-square .title {
+ width: 100%;
+ text-align: center;
+ display: flex;
+ align-content: center;
+ justify-content: center;
+}
+.cd-mediaitem-square .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+}
+.cd-mediaitem-square .unavailable-overlay {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ bottom: 0;
+ right: 0;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ z-index: 2;
+ pointer-events: none;
+ background: rgba(0, 0, 0, 0.4);
+ margin: 2em;
+ border-radius: 10px;
+}
+.cd-mediaitem-square .unavailable-overlay > .codicon {
+ font-size: 4em;
+ font-weight: bold;
+ opacity: 0.5;
+}
+.cd-mediaitem-square.mediaitem-video {
+ height: 200px;
+ width: 240px;
+}
+.cd-mediaitem-square.mediaitem-video .artwork {
+ height: 120px;
+ width: 212px;
+}
+.cd-mediaitem-square.mediaitem-brick {
+ height: 200px;
+ width: 240px;
+}
+.cd-mediaitem-square.mediaitem-brick .artwork {
+ height: 123px;
+ width: 220px;
+}
+.cd-mediaitem-square.mediaitem-small {
+ width: 140px;
+ height: 180px;
+}
+.cd-mediaitem-square.mediaitem-small .artwork {
+ height: 128px;
+ width: 128px;
+}
+.cd-mediaitem-square.mediaitem-card {
+ background: #ccc;
+ background: var(--spcolor);
+ height: 298px;
+ width: 230px;
+ max-width: 250px;
+ max-height: 500px;
+ overflow: hidden;
+ position: relative;
+ border-radius: calc(var(--mediaItemRadius) * 2);
+ box-shadow: var(--mediaItemShadow-ShadowSubtle);
+}
+.cd-mediaitem-square.mediaitem-card .artwork {
+ width: 230px;
+ height: 230px;
+ overflow: hidden;
+ border-radius: 0px;
+ margin: 0;
+}
+.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork {
+ border-radius: 0px;
+}
+.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork::after {
+ box-shadow: unset;
+}
+.cd-mediaitem-square.mediaitem-card .info-rect-card {
+ padding: 10px 10px 14px;
+ position: relative;
+ width: 100%;
+}
+.cd-mediaitem-square.mediaitem-card .info-rect-card::before {
+ background: var(--bgartwork);
+ content: "";
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ position: absolute;
+ background-size: cover;
+ background-position: bottom;
+ z-index: 0;
+ opacity: 1;
+ filter: brightness(0.5) blur(50px) saturate(180%);
+}
+.cd-mediaitem-square.mediaitem-card .title {
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.9em;
+ font-weight: 500;
+ z-index: 1;
+}
+.cd-mediaitem-square.mediaitem-card .subtitle {
+ height: 100%;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.75em;
+ width: 100%;
+ display: flex;
+ z-index: 1;
+}
+.cd-mediaitem-square.mediaitem-card::after {
+ box-shadow: var(--mediaItemShadow);
+ content: "";
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ pointer-events: none;
+ border-radius: inherit;
+}
+/* mediaitem-square */
+.albums-square-containeru > * > .cd-mediaitem-square {
+ --frame: max(220px, 15vw);
+ width: var(--frame);
+ height: calc(var(--frame) * 13 / 11);
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: calc(var(--frame) / 220 * 14);
+ justify-content: center;
+ align-items: center;
+ border-radius: calc(var(--frame) / 220 * 6);
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container {
+ position: relative;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork {
+ height: calc(var(--frame) * 19 / 22);
+ width: calc(var(--frame) * 19 / 22);
+ background: blue;
+ border-radius: var(--mediaItemRadius);
+ background: var(--artwork);
+ background-size: cover;
+ flex: 0 0 auto;
+ margin: calc(var(--frame) / 220 * 6);
+ cursor: pointer;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork.round {
+ border-radius: var(--mediaItemRadiusRound);
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn,
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn {
+ opacity: 0;
+ appearance: none;
+ padding: 0px;
+ border: 0px;
+ width: calc(var(--frame) / 220 * 30);
+ height: calc(var(--frame) / 220 * 30);
+ border-radius: 50%;
+ background: rgba(50, 50, 50, 0.7);
+ cursor: pointer;
+ backdrop-filter: blur(32px) saturate(180%);
+ transition: opacity 0.1s var(--appleEase);
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn {
+ position: absolute;
+ bottom: calc(var(--frame) / 220 * 14);
+ left: calc(var(--frame) / 220 * 14);
+ z-index: 2;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn {
+ position: absolute;
+ bottom: calc(var(--frame) / 220 * 14);
+ right: calc(var(--frame) / 220 * 14);
+ z-index: 2;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .play-btn,
+.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .menu-btn {
+ opacity: 1;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .title {
+ width: 90%;
+ text-align: center;
+}
+.albums-square-containeru > * > .cd-mediaitem-square .subtitle {
+ width: 100%;
+ text-align: center;
+ font-size: calc(var(--frame) / 220 * 12);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video {
+ height: calc(var(--frame) / 220 * 200);
+ width: calc(var(--frame) / 220 * 240);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video .artwork {
+ height: calc(var(--frame) / 220 * 120);
+ width: calc(var(--frame) / 220 * 212);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick {
+ height: calc(var(--frame) / 220 * 200);
+ width: calc(var(--frame) / 220 * 240);
+}
+.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick .artwork {
+ height: calc(var(--frame) / 220 * 123);
+ width: calc(var(--frame));
+}
+.listitem-horizontal .cd-mediaitem-list-item {
+ width: 350px;
+ height: 60px;
+}
+.mediaitem-list-item__grid {
+ background: rgba(200, 200, 200, 0.05);
+ border-radius: 10px;
+ padding: var(--contentInnerPadding);
+ box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
+ width: 100%;
+}
+.mediaitem-list-item__grid .cd-mediaitem-list-item {
+ width: 350px;
+ height: 60px;
+}
+.mediaitem-list-item__grid::-webkit-scrollbar {
+ display: none;
+}
+.mediaitem-list-item__grid:hover::-webkit-scrollbar {
+ display: initial;
+}
+.svg-icon {
+ --color: #aaa;
+ --url: url("assets/feather/share.svg");
+ -webkit-mask-image: var(--url);
+ -webkit-mask-size: cover;
+ height: 18px;
+ width: 18px;
+ background: var(--color);
+}
+.svg-icon.inline {
+ display: inline-block;
+}
+.sidebar-icon {
+ width: 18px;
+ height: 18px;
+ margin-right: 8px;
+}
+.sidebar-icon > .svg-icon {
+ width: 100%;
+ height: 100%;
+ --color: #aaa;
+}
+.sidebar-icon > svg {
+ width: 100%;
+ height: 100%;
+ color: #aaa;
+}
+/* Switch Checkbox */
+input[type=checkbox][switch] {
+ width: 38px;
+ appearance: none;
+ border-radius: 32px;
+ height: 24px;
+ zoom: 1;
+ top: 0;
+ cursor: pointer;
+ left: 0;
+ position: relative;
+ transform: scale(1);
+ background: #8e8e93;
+ padding: 0;
+ margin: 0;
+}
+input[type=checkbox][switch]:focus,
+input[type=checkbox][switch]:active {
+ outline: none;
+}
+input[type=checkbox][switch]:checked {
+ background: var(--keyColor);
+ border: 0 solid var(--keyColor);
+ mix-blend-mode: unset;
+}
+input[type=checkbox][switch]:checked:hover {
+ background: var(--keyColor-rollover);
+}
+input[type=checkbox][switch]:checked:active {
+ background: var(--keyColor-pressed);
+}
+input[type=checkbox][switch]::before {
+ background: white;
+ width: 26px;
+ height: 26px;
+ top: -1px;
+ left: -1px;
+ position: absolute;
+ content: ' ';
+ border-radius: 32px;
+ transition: 0.1s left var(--appleEase);
+ transform: scale(0.75);
+}
+input[type=checkbox][switch]:checked::before {
+ background: white;
+ top: -1px;
+ left: 13px;
+ transition: 0.1s left var(--appleEase);
+ transform: scale(0.75);
+}
+input[type=checkbox][switch]:disabled::before {
+ opacity: 0.5;
+}
+input[type=checkbox][switch]:active::before {
+ left: 13px;
+}
+input[type=checkbox][switch]:checked:active::before {
+ left: -1px;
+}
+/* End Switch Checkbox */
+.header-text {
+ margin: 0px;
+}
+.media-item--small {
+ background: rgba(0, 0, 0, 0.25);
+ height: 162px;
+ width: 132px;
+ display: inline-flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ border-radius: 10px;
+}
+.media-item--small .artwork {
+ background: red;
+ margin: 6px;
+ border-radius: 100%;
+ width: 90px;
+ height: 90px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.3);
+}
+.playlist-artwork {
+ height: 190px;
+ width: 190px;
+ background: blue;
+ border-radius: 6px;
+ background: var(--artwork);
+ background-size: cover;
+ box-shadow: var(--mediaItemShadow);
+ flex: 0 0 auto;
+ margin: 6px;
+ margin-top: 0px;
+}
+.media-item--small .text {
+ font-weight: 600;
+ font-size: 0.9em;
+}
+.media-item--small .subtext {
+ font-size: 0.75em;
+}
+.player-duration-time {
+ opacity: 0.5;
+}
+.player-artwork-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.player-duration-container {
+ font-size: 0.85em;
+ font-weight: 500;
+}
+.media-artwork {
+ --artwork: url("");
+ width: 80vw;
+ height: 80vw;
+ max-height: 500px;
+ max-width: 500px;
+ background: black;
+ background-image: var(--artwork);
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 8px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55);
+ transition: transform 0.1s var(--appleEase);
+}
+.media-artwork.paused {
+ transition: transform 0.35s var(--appleEase);
+ transform: scale(0.85);
+}
+.playback-slider {
+ width: 90%;
+}
+.volume-slider {
+ width: 100%;
+}
+.volume-slider-container {
+ width: 90%;
+ margin: 0 auto;
+ padding: 0px;
+}
+.volume-slider-container .col-auto,
+.volume-slider-container .col {
+ display: flex;
+ align-items: center;
+ justify-self: center;
+ padding: 0px;
+ margin: 0px;
+}
+.playback-button {
+ font-size: 2em;
+ width: 40px;
+ height: 36px;
+ padding: 0px;
+ background: transparent;
+ border: 0px;
+ border-radius: 0px;
+ box-shadow: unset;
+ background-size: 12px;
+ background-position: center;
+ background-repeat: no-repeat;
+ opacity: 0.7;
+ border-radius: 6px;
+}
+.playback-button:active {
+ transform: scale(0.95);
+}
+.playback-button--small {
+ border-radius: 6px;
+ font-size: 1em;
+ color: inherit;
+ background-size: 14px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-color: transparent;
+ width: 40px;
+ height: 32px;
+ border: 0px;
+ box-shadow: unset;
+ opacity: 0.7;
+}
+.playback-button:hover,
+.playback-button--small:hover {
+ background-color: rgba(200, 200, 200, 0.1);
+}
+.playback-button:active,
+.playback-button--small:active {
+ transform: scale(0.9);
+}
+.playback-button--small.active {
+ background-color: rgba(200, 200, 200, 0.25);
+}
+.playback-button--small.search {
+ background-image: url("assets/search.svg");
+}
+.playback-button--small.cast {
+ background-image: url("assets/cast_white.svg");
+}
+.playback-button--small.miniplayer {
+ background-image: url("assets/pip.svg");
+}
+.playback-button--small.queue {
+ background-image: url("assets/list.svg");
+}
+.playback-button--small.lyrics {
+ background-image: url("assets/quote-right.svg");
+}
+.playback-button--small.shuffle {
+ background-image: url("assets/shuffle.svg");
+}
+.playback-button--small.repeat {
+ background-image: url("assets/repeat.svg");
+}
+.playback-button--small.repeat.repeatOne {
+ background-color: rgba(200, 200, 200, 0.25);
+ background-image: url("assets/repeatOne.svg");
+}
+.playback-button.pause {
+ background-image: url('assets/pause.svg');
+}
+.playback-button.play {
+ background-image: url('assets/play.svg');
+}
+.playback-button.next {
+ background-image: url('assets/forward.svg');
+}
+.playback-button.previous {
+ background-image: url('assets/backward.svg');
+}
+.playback-buttons {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.player-volume-glyph {
+ width: 32px;
+ height: 16px;
+ background-repeat: no-repeat;
+ background-size: contain;
+ background-position: center;
+}
+.player-volume-glyph.decrease {
+ background-image: url("assets/volume.svg");
+ opacity: 0.5;
+}
+.player-volume-glyph.increase {
+ background-image: url("assets/volume-2.svg");
+ opacity: 0.5;
+}
+.player-track-info {
+ width: 90%;
+ margin: 0 auto;
+}
+.player-song-title {
+ font-size: 1.25em;
+ text-align: left;
+ margin: 0 auto;
+ font-weight: 500;
+}
+.player-song-artist {
+ font-size: 1em;
+ text-align: left;
+ margin: 0 auto;
+ color: var(--keyColor);
+ font-weight: 400;
+}
+.player-song-artist:hover {
+ cursor: pointer;
+ text-decoration: underline;
+}
+.player-more-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.player-more-button {
+ appearance: none;
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ border: 0px;
+ background: var(--keyColor);
+ cursor: pointer;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16);
+ color: white;
+ font-weight: bold;
+ padding: 0px;
+ font-size: 16px;
+}
+.back-button {
+ width: 40px;
+ height: 40px;
+ background-color: transparent;
+ background-size: 16px;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url("assets/arrow-left.svg");
+ border: 0px;
+ border-radius: 0px;
+}
+.header-text {
+ height: 40px;
+ display: flex;
+ align-items: center;
+}
+.list-entry-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 12px;
+ font-size: 1em;
+ font-family: inherit;
+}
+.list-entry {
+ display: flex;
+ align-items: center;
+ /* justify-content: space-between; */
+ padding: 12px;
+ font-size: 1em;
+ font-family: inherit;
+ border-bottom: 1px solid rgba(255 255 255 / 0.1);
+ cursor: pointer;
+}
+.list-entry-image {
+ --artwork: url("");
+ width: 64px;
+ height: 64px;
+ background: var(--artwork);
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 8px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55);
+}
+.list-entry-image.artist {
+ border-radius: 50%;
+}
+.list-entry-body {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: flex-start;
+ margin-left: 12px;
+}
+.list-entry-name {
+ font-size: 14px;
+ font-weight: 500;
+ overflow: hidden;
+ width: 100%;
+}
+.list-entry-artist {
+ font-size: 12px;
+ overflow: hidden;
+ width: 100%;
+}
+.list-entry .handle {
+ height: 100%;
+ width: 28px;
+ background: var(--keyColor);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.artist-chip {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ margin: 4px 0px;
+ border-radius: 4px;
+ color: white;
+ font-size: 1em;
+ font-weight: 500;
+ cursor: pointer;
+ padding: 8px;
+}
+.artist-chip:hover {
+ background: var(--selected);
+}
+.artist-chip .artist-chip__follow {
+ appearance: none;
+ border: 0;
+ height: 32px;
+ width: 32px;
+ background: #ffffff0f;
+ margin: 0px 0px 0px 10px;
+ font-weight: bold;
+ color: white;
+ border-radius: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 12px;
+ cursor: pointer;
+ flex: 0 0 32px;
+}
+.artist-chip .artist-chip__follow:hover {
+ background: var(--selected);
+}
+.artist-chip .artist-chip__image {
+ width: 32px;
+ height: 32px;
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 100%;
+ overflow: hidden;
+ margin: 0px 12px 0px 0px;
+ pointer-events: none;
+ flex: 0 0 32px;
+}
+.artist-chip .artist-chip__image .mediaitem-artwork {
+ border-radius: inherit;
+}
+.artist-chip .artist-chip__name {
+ pointer-events: none;
+}
+.search-panel {
+ background: rgba(0, 0, 0, 0.5);
+}
+.search-header {
+ position: absolute;
+ width: 100%;
+ z-index: 1;
+ backdrop-filter: blur(16px);
+ -webkit-backdrop-filter: blur(16px);
+ border-bottom: 1px solid rgba(200, 200, 200, 0.08);
+}
+.connection-error-panel {
+ background: rgba(0, 0, 0, 0.5);
+}
+.search-type-container {
+ display: flex;
+}
+.search-type-button {
+ background: rgba(20, 20, 20, 0.85);
+ border-radius: 50px;
+ color: white;
+ border: 0px;
+ box-shadow: unset;
+ font-family: inherit;
+ padding: 8px 16px;
+ font-size: 14px;
+ font-weight: 500;
+ margin: 8px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+.search-type-button.active {
+ background: var(--keyColor);
+}
+.search-tab-container {
+ overflow: auto;
+ white-space: nowrap;
+ overflow-y: hidden;
+}
+.search-body-container {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+.search-body {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ padding-top: 220px;
+}
+.search-tab {
+ background: rgba(20, 20, 20, 0.85);
+ border-radius: 50px;
+ color: white;
+ border: 0px;
+ box-shadow: unset;
+ font-family: inherit;
+ padding: 8px 16px;
+ font-size: 14px;
+ font-weight: 500;
+}
+.search-tab.active {
+ background: var(--keyColor);
+}
+.notyf__toast {
+ -webkit-app-region: no-drag;
+ cursor: pointer;
+}
+.notyf-info {
+ background: var(--keyColor);
+}
+.tooltip-inner {
+ background: #2f2f2f;
+ opacity: 1;
+ border: 1px solid rgba(0, 0, 0, 0.35);
+ transition: all 0.3s ease-in-out;
+ box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25);
+}
+.modal-fullscreen {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.3);
+ z-index: 1000;
+}
+.modal-fullscreen .modal-window {
+ background: #333;
+ border-radius: 10px;
+ box-shadow: var(--mediaItemShadow-Shadow);
+ display: flex;
+ flex-flow: column;
+ max-height: 500px;
+ max-width: 360px;
+ background: #121212;
+ width: 100%;
+ position: relative;
+}
+.modal-fullscreen .modal-window:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ box-shadow: var(--mediaItemShadow);
+ z-index: 1;
+ border-radius: inherit;
+}
+.modal-fullscreen .modal-window .modal-header {
+ width: 100%;
+ padding: 6px;
+}
+.modal-fullscreen .modal-window .modal-content {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ overflow-y: overlay;
+}
+.spatialproperties-panel .modal-window {
+ height: 700px;
+ max-height: 700px;
+ width: 800px;
+ max-width: 800px;
+ overflow: hidden;
+}
+.spatialproperties-panel .modal-window .info-header {
+ padding-left: 12px;
+}
+.spatialproperties-panel .modal-window .visual-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+}
+.spatialproperties-panel .modal-window .visual {
+ position: relative;
+ height: 250px;
+ width: 300px;
+ display: inline-flex;
+ align-items: flex-end;
+ justify-content: center;
+ filter: drop-shadow(2px 12px 6px rgba(0, 0, 0, 0.25));
+ margin: 0 auto;
+}
+.spatialproperties-panel .modal-window .visual .face {
+ position: absolute;
+ width: calc(12px * 6);
+ height: calc(12px * 6);
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+}
+.spatialproperties-panel .modal-window .visual .listener {
+ position: absolute;
+ width: 32px;
+ height: 32px;
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+ background: white;
+ color: black;
+ z-index: 2;
+}
+.spatialproperties-panel .modal-window .visual .audiosource {
+ position: absolute;
+ width: 32px;
+ height: 32px;
+ border-radius: 6px;
+ transform: rotateX(60deg) rotateZ(-45deg);
+ transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
+ background: yellow;
+ z-index: 2;
+}
+.spatialproperties-panel .modal-window .visual .face:nth-of-type(1) {
+ background: linear-gradient(45deg, #28223a, #1f2038);
+ z-index: 1;
+}
+.spatialproperties-panel .modal-window .visual .face:nth-of-type(2) {
+ background: linear-gradient(45deg, #7d53ad, #5763ff);
+ transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px);
+ opacity: 0.7;
+ z-index: 3;
+}
+.spatialproperties-panel .modal-window .modal-header {
+ padding: 16px;
+ position: relative;
+ overflow: hidden;
+}
+.spatialproperties-panel .modal-window .modal-header .modal-title {
+ text-align: center;
+}
+.spatialproperties-panel .modal-window .modal-header .close-btn {
+ width: 50px;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.spatialproperties-panel .modal-window .modal-header .close-btn:hover {
+ background-color: #c42b1c;
+}
+.addtoplaylist-panel .modal-window {
+ max-height: 600px;
+ max-width: 400px;
+ background: rgba(18, 18, 18, 0.9);
+ overflow: hidden;
+ backdrop-filter: blur(16px) saturate(180%);
+}
+.addtoplaylist-panel .modal-window .modal-header {
+ padding: 16px;
+ position: relative;
+}
+.addtoplaylist-panel .modal-window .modal-header .modal-title {
+ text-align: center;
+}
+.addtoplaylist-panel .modal-window .modal-header .close-btn {
+ width: 50px;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.addtoplaylist-panel .modal-window .modal-header .close-btn:hover {
+ background-color: #c42b1c;
+}
+.addtoplaylist-panel .modal-window .modal-search {
+ width: 100%;
+ padding: 0px 16px;
+ position: relative;
+}
+.addtoplaylist-panel .modal-window .playlist-item {
+ appearance: none;
+ border: 0px;
+ text-align: left;
+ width: 100%;
+ margin: 0;
+ display: flex;
+ background: rgba(32, 32, 32, 0.46);
+ color: #eee;
+ font-family: inherit;
+ font-size: 0.98em;
+ padding: 6px 12px;
+ align-items: center;
+ flex-flow: row;
+}
+.addtoplaylist-panel .modal-window .playlist-item .icon {
+ pointer-events: none;
+ width: 32px;
+ height: 32px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 6px;
+}
+.addtoplaylist-panel .modal-window .playlist-item .name {
+ position: relative;
+}
+.addtoplaylist-panel .modal-window .playlist-item:hover {
+ background: var(--selected);
+}
+.addtoplaylist-panel .modal-window .playlist-item:active {
+ background: var(--selected-click);
+}
+.addtoplaylist-panel .modal-window .playlist-item.focused {
+ background: var(--keyColor);
+}
+.addtoplaylist-panel .modal-window .playlist-item:last-child {
+ border-bottom: 0px;
+}
+.menu-panel {
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 100001;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-app-region: no-drag;
+}
+.menu-panel .menu-header-body {
+ padding: 6px;
+ display: flex;
+ background: rgba(200, 200, 200, 0.1);
+}
+.menu-panel .menu-header-body .menu-option-header {
+ width: 40px;
+ height: 40px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: var(--mediaItemRadius);
+ appearance: none;
+ border: 0;
+ background: transparent;
+}
+.menu-panel .menu-header-body .menu-option-header.active .sidebar-icon > .svg-icon {
+ --color: var(--keyColor);
+}
+.menu-panel .menu-header-body .menu-option-header:hover {
+ background: var(--selected);
+}
+.menu-panel .menu-header-body .menu-option-header:active {
+ background: var(--selected-click);
+}
+.menu-panel .menu-panel-body {
+ display: flex;
+ flex-flow: column;
+ background: #262626;
+ position: relative;
+ min-width: 200px;
+ box-shadow: var(--ciderShadow-Generic);
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ font-size: 13px;
+}
+.menu-panel .menu-panel-body .menu-option {
+ text-align: left;
+ display: flex;
+ width: 100%;
+ padding: 9px 16px;
+ appearance: none;
+ border: 0px;
+ font: inherit;
+ background: transparent;
+ color: inherit;
+}
+.menu-panel .menu-panel-body .menu-option:hover {
+ background: var(--selected);
+}
+.menu-panel .menu-panel-body .menu-option:active {
+ background: var(--selected-click);
+}
+.menu-panel .menu-header-text {
+ margin: 18px 6px;
+}
+.menu-panel .menu-header-text .close-btn {
+ width: 50px;
+ height: 42px;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.menu-panel .menu-header-text .close-btn:hover {
+ background-color: #c42b1c;
+}
+.menu-panel .menu-body {
+ overflow: overlay;
+ height: 100%;
+}
+.menu-panel .menu-footer {
+ width: 100%;
+ padding: 12px;
+}
+.queue-panel {
+ height: 100%;
+ width: 100%;
+ display: flex;
+ flex-flow: column;
+}
+.queue-panel .queue-header-text {
+ margin: 18px 6px;
+}
+.queue-panel .queue-body {
+ overflow: overlay;
+ height: 100%;
+}
+.queue-panel .queue-footer {
+ width: 100%;
+ padding: 12px;
+}
+.queue-panel .autoplay {
+ background: rgba(200, 200, 200, 0.15);
+ display: flex;
+ justify-content: center;
+ appearance: none;
+ border: 0;
+ border-radius: 6px;
+ height: 32px;
+ width: 32px;
+}
+.queue-panel .infinity {
+ content: url("assets/infinity.svg");
+ margin: auto;
+}
+.content-inner {
+ position: absolute;
+ top: var(--navigationBarHeight);
+ left: 0;
+ padding: 32px;
+ width: 100%;
+ transition: zoom 1s;
+ zoom: 1;
+}
+.content-inner.centered {
+ height: 100%;
+ display: flex;
+ flex-flow: column;
+ justify-content: center;
+ align-items: center;
+}
+.github-themes-page {
+ display: flex;
+ flex-direction: column;
+ padding: 0px;
+ height: calc(100% - var(--navigationBarHeight));
+}
+.github-themes-page .github-avatar {
+ height: 42px;
+ width: 42px;
+ margin: 6px;
+ border-radius: 32px;
+}
+.github-themes-page .repo-name {
+ margin: 0px;
+ font-weight: 500;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: break-spaces;
+}
+.github-themes-page .repo-url {
+ color: var(--textColor);
+ font-size: 0.8em;
+}
+.github-themes-page .repo-preview-name {
+ margin: 0px;
+}
+.github-themes-page .repos-list {
+ height: 100%;
+ overflow-y: overlay;
+ width: 320px;
+ font-size: 14px;
+}
+.github-themes-page .repos-list > .list-group {
+ margin: 0px;
+}
+.github-themes-page .repos-list .list-group-item {
+ padding: 12px 6px;
+}
+.github-themes-page .repos-list .list-group-item:hover {
+ filter: brightness(1.2);
+}
+.github-themes-page .repos-list .list-group-item:active {
+ filter: brightness(0.8);
+}
+.github-themes-page .github-preview {
+ height: 100%;
+ flex: 1;
+ background: var(--color2);
+ padding: 16px 32px;
+ overflow-y: overlay;
+}
+.github-themes-page .gh-content {
+ display: flex;
+ flex-direction: row;
+ flex: 1;
+ overflow: hidden;
+}
+.github-themes-page .gh-header {
+ padding: 16px;
+}
+.library-page {
+ padding: 0px;
+}
+.library-page .library-header {
+ position: sticky;
+ top: 0;
+ left: 0;
+ border-bottom: 1px solid rgba(200, 200, 200, 0.05);
+ z-index: 6;
+ background: black;
+ padding: 0px 2em;
+ backdrop-filter: blur(32px);
+ background: rgba(0, 0, 0, 0.25);
+ top: var(--navigationBarHeight);
+}
+.library-page .well {
+ margin: 2em;
+}
+.content-inner.podcasts-page {
+ display: flex;
+ height: calc(100% - var(--navigationBarHeight));
+ padding: 0px;
+}
+.content-inner.podcasts-page .list-flat {
+ border-radius: 0px;
+}
+.content-inner.podcasts-page .podcast-artwork {
+ width: 200px;
+ margin: 16px auto;
+ height: 200px;
+}
+.content-inner.podcasts-page .podcasts-list {
+ height: 100%;
+ width: 280px;
+ background: rgba(200, 200, 200, 0.1);
+ overflow-y: overlay;
+ border-right: 1px solid var(--color2);
+ flex: none;
+ overflow-x: hidden;
+}
+.content-inner.podcasts-page .podcasts-list .podcast-list-header {
+ border-bottom: 1px solid var(--color2);
+ font-size: 0.7em;
+ padding: 6px;
+ background: #ffffff17;
+ text-transform: uppercase;
+ font-weight: 600;
+ opacity: 0.5;
+}
+.content-inner.podcasts-page .podcasts-list .podcasts-search {
+ padding: 10px;
+ position: sticky;
+ top: 0;
+ left: 0;
+ width: 100%;
+ border-bottom: 1px solid var(--color2);
+ z-index: 2;
+ background: #303030;
+}
+.content-inner.podcasts-page .episodes-list {
+ height: 100%;
+ width: 100%;
+ background: rgba(200, 200, 200, 0.06);
+ overflow-y: overlay;
+ overflow-x: hidden;
+}
+.content-inner.podcasts-page .episodes-list .episodes-inline-info {
+ padding: 14px 14px 0px 14px;
+}
+.content-inner.podcasts-page .episodes-list .episodes-inline-info .podcast-show-info {
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+}
+.content-inner.podcasts-page .episodes-list .episodes-inline-info .podcast-show-description {
+ margin: 32px 6px;
+ font-size: 0.8rem;
+ white-space: pre-wrap;
+ display: block;
+}
+.content-inner.podcasts-page .episodes-list .episodes-inline-info .podcast-artwork {
+ width: 120px;
+ margin: 0px auto;
+ height: 120px;
+}
+.content-inner.podcasts-page .episodes-list .podcast-no-search-results {
+ text-align: center;
+ margin-top: 40px;
+}
+.content-inner.podcasts-page .podcasts-details {
+ width: 300px;
+ flex: none;
+ background: rgba(255, 255, 255, 0.05);
+ overflow-y: overlay;
+ overflow-x: hidden;
+ top: 2%;
+ z-index: 2;
+ border-left: 1px solid var(--color2);
+ padding-bottom: 1em;
+}
+.content-inner.podcasts-page .podcasts-details .meta-btn {
+ font-size: 0.75em;
+}
+.content-inner.podcasts-page .podcasts-details .podcasts-details-header {
+ display: flex;
+ justify-content: end;
+ align-items: center;
+ position: sticky;
+ top: 0;
+ z-index: 2;
+}
+.content-inner.podcasts-page .podcasts-details .close-btn {
+ width: 50px;
+ height: 42px;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.content-inner.podcasts-page .podcasts-details .close-btn:hover {
+ background-color: #c42b1c;
+}
+.content-inner.podcasts-page .podcasts-details .podcast-genre {
+ text-align: center;
+ margin: 6px;
+ font-size: 0.8em;
+ font-weight: 500;
+ opacity: 0.8;
+}
+.content-inner.podcasts-page .podcasts-details .podcast-metainfo {
+ text-align: center;
+ font-size: 0.7em;
+ opacity: 0.8;
+}
+.content-inner.podcasts-page .podcasts-details .podcast-header {
+ text-align: center;
+}
+.content-inner.podcasts-page .podcasts-details .podcast-play-btn {
+ width: 50%;
+ display: block;
+ margin: 0 auto;
+}
+.content-inner.podcasts-page .podcasts-details .podcast-description {
+ margin: 12px;
+ font-size: 0.75em;
+ white-space: pre-wrap;
+ display: block;
+ line-break: anywhere;
+}
+@media only screen and (max-width: 1230px) {
+ .content-inner.podcasts-page .podcasts-details {
+ height: 96%;
+ width: 300px;
+ flex: none;
+ background: rgba(20, 20, 20, 0.97);
+ overflow-y: overlay;
+ overflow-x: hidden;
+ position: absolute;
+ right: 2%;
+ top: 2%;
+ border-radius: 10px;
+ box-shadow: var(--ciderShadow-Generic);
+ z-index: 2;
+ }
+}
+/* Album / Playlist Page */
+.playlist-page {
+ --bgColor: transparent;
+ padding: 0px;
+ top: 0;
+ padding-top: var(--navigationBarHeight);
+}
+.playlist-page .playlist-body {
+ padding: var(--contentInnerPadding) 2em;
+ margin-top: -75px;
+}
+.playlist-page .floating-header {
+ position: sticky;
+ top: 0;
+ left: 0;
+ border-bottom: 1px solid rgba(200, 200, 200, 0.05);
+ z-index: 6;
+ padding: 0px 1em;
+ backdrop-filter: blur(32px);
+ background: rgba(0, 0, 0, 0.25);
+ top: var(--navigationBarHeight);
+ transition: opacity 0.1s var(--appleEase);
+}
+.playlist-page .playlist-display {
+ padding: var(--contentInnerPadding);
+ min-height: 300px;
+ position: relative;
+}
+.playlist-page .playlist-display .artworkContainer {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ margin: 0;
+ margin-top: calc(var(--navigationBarHeight) * -1);
+ margin-bottom: -10px;
+ padding: 0;
+ -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, #c8c8c8, transparent 98%);
+ opacity: 0.7;
+ animation: playlistArtworkFadeIn 1s var(--appleEase);
+}
+.playlist-page .playlist-display .artworkContainer .artworkMaterial > img {
+ filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
+ object-position: center;
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+ transform: unset;
+}
+.playlist-page .playlist-display .playlistInfo {
+ z-index: 1;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+}
+.playlist-page .playlist-display .playlistInfo > .row {
+ width: calc(100% - 32px);
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info {
+ flex-shrink: unset;
+ display: flex;
+ flex-flow: column;
+ justify-content: flex-end;
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-name {
+ font-weight: 700;
+ font-size: 1.6rem;
+ margin-right: 6px;
+ flex-shrink: unset;
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .nameEdit {
+ font-weight: 700;
+ font-size: 1.6rem;
+ margin-bottom: 6px;
+ margin-right: 6px;
+ flex-shrink: unset;
+ background: transparent;
+ border: 0px;
+ color: inherit;
+ font-family: inherit;
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-artist {
+ font-size: 20px;
+ margin-bottom: 6px;
+ margin-right: 6px;
+ flex-shrink: unset;
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc {
+ box-sizing: border-box;
+ font-size: 14px;
+ flex-shrink: unset;
+ margin-right: 5px;
+ max-height: 100px;
+ position: relative;
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc .content {
+ height: 100px;
+ -webkit-mask-image: -webkit-gradient(linear, left 50%, left 90%, from(#000000), to(rgba(0, 0, 0, 0)));
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc .more-btn {
+ appearance: none;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ padding: 0 5px;
+ font-size: 14px;
+ color: var(--keyColor);
+ background-color: transparent;
+ border: 0px;
+ cursor: pointer;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ justify-content: flex-end;
+ align-items: flex-end;
+ font-weight: 600;
+ font-family: inherit;
+ text-transform: uppercase;
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc-expanded {
+ box-sizing: border-box;
+ font-size: 14px;
+ position: relative;
+}
+.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc-expanded .more-btn {
+ appearance: none;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ padding: 0 5px;
+ font-size: 14px;
+ color: var(--keyColor);
+ background-color: transparent;
+ border: 0px;
+ cursor: pointer;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ justify-content: flex-end;
+ align-items: flex-end;
+ font-weight: 600;
+ font-family: inherit;
+ text-transform: uppercase;
+}
+.playlist-page .friends-info {
+ display: flex;
+ flex-flow: column;
+}
+.playlist-page .friends-info .badge-container {
+ display: flex;
+ flex-flow: wrap;
+}
+.playlist-page .friends-info .badge-container .socialBadge {
+ width: 40px;
+ height: 40px;
+ border-radius: 100%;
+ overflow: hidden;
+ box-shadow: var(--mediaItemShadow-ShadowSubtle);
+ transition: transform 0.2s var(--appleEase);
+ margin: 6px;
+}
+.playlist-page .friends-info .badge-container .socialBadge:hover {
+ transform: scale(1.2);
+}
+.playlist-page .friends-info .friends-name {
+ text-align: center;
+ font-size: 0.9em;
+ margin: 8px;
+}
+.playlist-page .playlist-time {
+ font-size: 0.9em;
+ margin: 6px;
+ opacity: 0.7;
+}
+.playlist-page.inline-playlist {
+ overflow: hidden;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.5);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ z-index: 10;
+ position: sticky;
+ margin-top: calc(var(--navigationBarHeight) * -1);
+}
+.playlist-page.inline-playlist .floating-header {
+ opacity: 1;
+ top: 0px;
+ z-index: 6;
+ padding: 1em;
+ backdrop-filter: unset;
+ background: black;
+}
+.playlist-page.inline-playlist .floating-header h3 {
+ display: none;
+}
+.playlist-page.inline-playlist .playlist-inner {
+ background: black;
+ width: 80%;
+ height: 100%;
+ overflow: overlay;
+ box-shadow: var(--ciderShadow-Generic);
+ border-radius: var(--mediaItemRadius) var(--mediaItemRadius) 0px 0px;
+}
+.playlist-page.inline-playlist .playlist-inner .close-btn {
+ position: sticky;
+ top: 16px;
+ left: 16px;
+ margin-left: 16px;
+ z-index: 7;
+}
+@keyframes playlistArtworkFadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0.7;
+ }
+}
+.collection-page {
+ padding-bottom: 128px;
+}
+.collection-page .top-fab {
+ height: 52px;
+ width: 52px;
+ position: fixed;
+ bottom: 32px;
+ right: 32px;
+ border-radius: 100%;
+ background: #3c3c3c;
+ border: 0px;
+ appearance: none;
+ box-shadow: var(--ciderShadow-Generic);
+}
+.collection-page .top-fab > svg {
+ height: 50%;
+ color: #eee;
+ pointer-events: none;
+}
+.collection-page .top-fab:hover {
+ background: #646464;
+}
+.collection-page .top-fab:active {
+ background: var(--keyColor);
+}
+.collection-page .header-text {
+ margin-bottom: 32px;
+}
+/* Artist Page */
+.artist-page {
+ padding: 0px;
+ top: 0;
+}
+.artist-page .floating-header {
+ position: sticky;
+ top: 0;
+ left: 0;
+ border-bottom: 1px solid rgba(200, 200, 200, 0.05);
+ z-index: 6;
+ padding: 0px 1em;
+ backdrop-filter: blur(32px);
+ background: rgba(0, 0, 0, 0.25);
+ top: var(--navigationBarHeight);
+ transition: opacity 0.1s var(--appleEase);
+}
+.artist-page.animated .artist-header .more-btn-round {
+ position: absolute;
+ bottom: 22px !important;
+ right: 28px;
+}
+.artist-page .artist-header {
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ min-height: 400px;
+ position: relative;
+ pointer-events: none;
+}
+.artist-page .artist-header .header-content {
+ z-index: 1;
+ margin-top: -16px;
+}
+.artist-page .artist-header .artworkContainer {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ margin: 0;
+ padding: 0;
+ -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, #c8c8c8, transparent 98%);
+ opacity: 0.7;
+ animation: playlistArtworkFadeIn 1s var(--appleEase);
+}
+.artist-page .artist-header .artworkContainer .artworkMaterial > img {
+ filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
+ object-position: center;
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+ transform: unset;
+}
+.artist-page .artist-header .more-btn-round {
+ position: absolute;
+ bottom: 82px;
+ right: 28px;
+}
+.artist-page .artist-header .animated {
+ width: 100%;
+ height: 100%;
+ align-self: center;
+ position: absolute;
+ overflow: hidden;
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset;
+}
+.artist-page .artist-header .animated video {
+ overflow: hidden;
+ height: 100%;
+ width: 100%;
+ min-height: 56.25vw;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+.artist-page .artist-header .row .col.flex-center {
+ z-index: 4;
+}
+.artist-page .artist-image {
+ width: 200px;
+ height: 200px;
+ margin: 32px;
+ position: relative;
+}
+.artist-page .artist-image .overlay-play {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ background: rgba(0, 0, 0, 0.5);
+ transition: opacity 0.1s var(--appleEase);
+ border-radius: 100%;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ appearance: none;
+ border: 0px;
+ padding: 0px;
+}
+.artist-page .artist-image .overlay-play:hover {
+ opacity: 1;
+}
+.artist-page .artist-image .overlay-play:active {
+ background: var(--selected-click);
+}
+.artist-page .artist-image .overlay-play > svg {
+ width: 70%;
+}
+.artist-page .artist-play {
+ width: 32px;
+ height: 32px;
+ background: rgba(100, 100, 100, 0.5);
+ box-shadow: var(--ciderShadow-Generic);
+ border-radius: 100%;
+ box-shadow: var(--mediaItemShadow);
+ display: none;
+ cursor: pointer;
+ appearance: none;
+ border: 0px;
+ padding: 0px;
+}
+.artist-page .artist-play:hover {
+ filter: brightness(125%);
+}
+.artist-page .artist-play:active {
+ filter: brightness(75%);
+ transform: scale(0.98);
+ transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
+}
+.artist-page .artist-title .artist-play {
+ transform: translateY(3px);
+ margin: 14px;
+}
+.artist-page .artist-title.artist-animation-on {
+ width: 100%;
+ flex: unset;
+ margin-left: 0.5em;
+ color: whitesmoke;
+ position: absolute;
+ bottom: 0;
+}
+.artist-page .artist-title.artist-animation-on .artist-play {
+ display: block;
+}
+.artist-page .artist-body {
+ padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
+ margin: -140px 20px;
+}
+.artist-page.animated > .artist-body {
+ padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
+ margin-top: -57px;
+}
+.artist-page .showmoreless {
+ font-family: inherit;
+ font-size: 16px;
+ font-weight: 500;
+ background: transparent;
+ border: 0px;
+ border-radius: 6px;
+ appearance: none;
+ color: var(--keyColor);
+ padding: 8px 12px;
+ cursor: pointer;
+ margin-top: 12px;
+ float: right;
+}
+.artist-page .showmoreless:hover {
+ background: rgba(200, 200, 200, 0.1);
+}
+/* Artist Page End */
+.settings-page {
+ padding: 0px;
+}
+.settings-page .md-option-header {
+ padding: 1.25em 1.25em;
+ border-bottom: unset;
+ border-top: unset;
+ font-weight: 600;
+ font-size: 1em;
+ background: rgba(255, 255, 255, 0.03);
+}
+.settings-page .settings-option-body {
+ margin: 16px;
+}
+.home-page {
+ top: 0;
+ padding-top: var(--navbarHeight);
+}
+.home-page .md-btn-replay {
+ background: var(--replayGradient);
+ border: 0px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.2);
+ text-transform: uppercase;
+ font-weight: bold;
+}
+.home-page .md-btn-replay--hero {
+ font-size: 1em;
+ padding: 16px;
+ background: var(--replayGradient);
+ border: 0px;
+ box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.2);
+ margin-top: 1em;
+ font-size: 0.9em;
+ text-transform: uppercase;
+ font-weight: bold;
+}
+.home-page .artist-feed-card {
+ position: absolute;
+ bottom: 0;
+ left: 10%;
+ z-index: 1;
+ background: black;
+ width: 80%;
+ height: 96%;
+ overflow: scroll;
+ border-radius: 10px;
+}
+.home-page .col.madeforyou-col {
+ width: 420px;
+ min-width: 0px;
+ max-width: 420px;
+}
+.home-page .well.artistfeed-well {
+ margin-top: 0px;
+ height: 392px;
+ align-content: flex-start;
+}
+.home-page .hint-text {
+ font-size: 0.9rem;
+ color: rgba(200, 200, 200, 0.7);
+}
+.home-page .user-icon {
+ border-radius: 100%;
+ width: 128px;
+ height: 128px;
+ overflow: hidden;
+ box-shadow: var(--mediaItemShadow-Shadow);
+ margin: 16px;
+}
+.home-page .well.profile-well {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+.home-page .well.profile-well .name {
+ margin: 4px;
+ font-weight: 500;
+}
+.home-page .well.profile-well .handle {
+ margin: 4px;
+ opacity: 0.7;
+ font-weight: 500;
+}
+.replay-page {
+ --replayTextShadow: 0px 3px 2px #6f3f52;
+}
+.replay-page .replay-period {
+ height: 200px;
+ width: 200px;
+ margin: 6px;
+ border-radius: var(--mediaItemRadius);
+ overflow: hidden;
+ cursor: pointer;
+ transition: transform 0.2s var(--appleEase);
+ transition-delay: 0.1s;
+ align-self: center;
+}
+.replay-page .replay-period:hover {
+ transform: translateY(-6px);
+ transition-delay: 0s;
+}
+.replay-page .replay-period .artwork-container {
+ height: 200px;
+ width: 200px;
+}
+.replay-page .replay-playlist-container .cd-mediaitem-square {
+ height: 230px;
+ width: 230px;
+}
+.replay-page .replay-playlist-container .cd-mediaitem-square .info-rect {
+ display: none;
+}
+.replay-page .replay-video {
+ max-height: 300px;
+ max-width: 800px;
+ margin: 0 auto;
+}
+.replay-page .replay-video .mediaitem-artwork {
+ max-height: 300px;
+ max-width: 800px;
+}
+.replay-page .replay-video .mediaitem-artwork .animatedartwork-view-box .animated video {
+ object-fit: cover;
+}
+.replay-page .top-genres-container .genre-name {
+ font-size: 0.9em;
+ margin: 6px 0px;
+ font-weight: 500;
+}
+.replay-page .top-genres-container .genre-count {
+ width: 100%;
+ height: 32px;
+ background: #ffffff14;
+ border-radius: 10px;
+ overflow: hidden;
+}
+.replay-page .top-genres-container .genre-count .genre-count-bar {
+ height: 100%;
+ width: 0%;
+ background: var(--keyColor);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ min-width: 32px;
+ font-size: 0.9em;
+ font-weight: 500;
+}
+.replay-page .cd-mediaitem-square {
+ transition: transform 0.2s var(--appleEase);
+ transition-delay: 0.1s;
+}
+.replay-page .cd-mediaitem-square .mediaitem-artwork {
+ animation: replayFadeIn 0.5s var(--appleEase);
+}
+.replay-page .cd-mediaitem-square:hover {
+ transform: scale(1.1);
+ transition-delay: 0s;
+}
+@keyframes replayFadeIn {
+ 0% {
+ transform: translateY(10px) scale(0.9);
+ opacity: 0;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+.replay-page .replay-viewport {
+ background: var(--replayGradient);
+ padding: 16px 40px;
+ border-radius: 10px;
+ box-shadow: var(--mediaItemShadow), var(--mediaItemShadow-Shadow);
+ color: rgba(238, 238, 238, 0.86);
+}
+.replay-page .replay-viewport .replay-header {
+ text-align: center;
+ font-size: 3em;
+ text-shadow: var(--replayTextShadow);
+}
+.replay-page .replay-card {
+ background: transparent;
+ border: 0px;
+}
+:root {
+ --appleEase: cubic-bezier(0.42, 0, 0.58, 1);
+ --mediaItemShadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16);
+ --mediaItemShadow-Shadow: 0 8px 40px rgba(0, 0, 0, 0.55);
+ --mediaItemShadow-ShadowSubtle: 0 4px 14px rgba(0, 0, 0, 0.1);
+ --ciderShadow-Generic: var(--mediaItemShadow), 0 8px 40px rgb(0 0 0 / 0.55);
+ --mediaItemRadius: 6px;
+ --mediaItemRadiusRound: 100%;
+ --contentInnerPadding: 16px;
+ --navbarHeight1: 48px;
+ --navbarHeight2: 0px;
+ --navbarHeight: calc(var(--navbarHeight1) + var(--navbarHeight2));
+ --selected: rgba(130, 130, 130, 0.3);
+ --selected-click: rgba(80, 80, 80, 0.3);
+ --hover: rgba(200, 200, 200, 0.1);
+ --keyColor: #fa586a;
+ --keyColor-rgb: 250, 88, 106;
+ --keyColor-rollover: #ff8a9c;
+ --keyColor-rollover-rgb: 255, 138, 156;
+ --keyColor-pressed: #ff7183;
+ --keyColor-pressed-rgb: 255, 113, 131;
+ --keyColor-deepPressed: #ff8a9c;
+ --keyColor-deepPressed-rgb: 255, 138, 156;
+ --keyColor-disabled: rgba(250, 88, 106, 0.35);
+ --navigationBarHeight: 38px;
+ --modalBackground: #262626;
+ --songProgressColor: var(--keyColor);
+ --songProgressBackground: #333;
+ --textColor: #eee;
+ --replayGradient: linear-gradient(45deg, hsl(248, 58%, 29%), hsl(13, 41%, 42%));
+}
+*:focus-visible {
+ outline: 2px solid var(--keyColor);
+}
+html,
+body {
+ margin: 0;
+ padding: 0;
+ overflow: hidden;
+ width: 100%;
+ height: 100%;
+ box-sizing: border-box;
+ background-size: cover;
+ background-position: center;
+ background: #0000;
+ font-family: "Inter var experimental", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ transition: opacity 0.1s var(--appleEase);
+}
+a:-webkit-any-link {
+ color: var(--keyColor);
+}
+hr {
+ appearance: none;
+ border: none;
+ height: 1px;
+ background-color: rgba(255, 255, 255, 0.2);
+}
+body[loading] .app-navigation {
+ pointer-events: none;
+}
+body.stopanimation * {
+ animation: unset !important;
+}
+body.stopanimation * .loadbar-sound {
+ display: none;
+}
+body.notransparency::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 0.5;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
+}
+*,
+*:before,
+*:after {
+ box-sizing: inherit;
+}
+/* Modern style overlay scrollbars */
+::-webkit-scrollbar {
+ width: 16px;
+ height: 24px;
+}
+::-webkit-scrollbar-button {
+ display: none;
+}
+::-webkit-scrollbar-track-piece {
+ background: transparent;
+}
+::-webkit-scrollbar-thumb {
+ background: transparent;
+ border: 6px solid transparent;
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5);
+ border-radius: 16px;
+ min-height: 64px;
+ transition: border 1s;
+}
+::-webkit-scrollbar-thumb:hover {
+ border: 5px solid transparent;
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.8);
+}
+[disabled] {
+ pointer-events: none;
+ opacity: 0.5;
+}
+#app {
+ --color1: rgba(30, 30, 30, 0.3);
+ --color2: rgba(15, 15, 15, 0.3);
+ --bgColor: transparent;
+ --bgWidth: 0px;
+ --bgHeight: 0px;
+ --chromeHeight1: 55px;
+ --chromeHeight2: 0px;
+ --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2));
+ width: 100%;
+ height: 100%;
+ background: var(--color1);
+ color: var(--textColor);
+ user-select: none;
+ margin: 0 auto;
+ position: relative;
+ overflow: hidden;
+ background-size: 400% 400%;
+}
+#app.simplebg {
+ background: #0e0e0e;
+}
+#app.simplebg::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 0.5;
+ z-index: 0;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
+}
+#app.simplebg .app-chrome {
+ z-index: 1;
+}
+.bgGradientMaterial-base {
+ position: relative;
+}
+.bgGradientMaterial-base::before {
+ position: absolute;
+ top: -50%;
+ left: -50%;
+ width: 200%;
+ height: 250%;
+ background-image: var(--bgColor);
+ content: "";
+ z-index: -1;
+ transform: rotateZ(0deg);
+ transform-origin: center;
+ animation: bgRotate 10s linear infinite;
+ filter: brightness(100%) saturate(200%) contrast(1.5);
+}
+@keyframes bgRotate {
+ 0% {
+ transform: rotateZ(0deg);
+ }
+ 100% {
+ transform: rotateZ(360deg);
+ }
+}
+[hidden] {
+ display: none !important;
+}
+input[type="text"],
+input[type="number"] {
+ background: #1c1c1c;
+ border-radius: 3px;
+ border: 1px solid rgba(200, 200, 200, 0.25);
+ color: #eee;
+ padding: 6px;
+ font-size: 1em;
+ font-family: inherit;
+}
+.bg-artwork--placeholder {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: #222;
+ z-index: -1;
+ background-size: cover;
+ background-position: center;
+ opacity: 0.7;
+}
+.bg-artwork {
+ position: absolute;
+ width: 200%;
+ background: var(--artwork);
+ filter: brightness(200%) blur(180px) saturate(280%) contrast(2);
+ opacity: 1;
+ transition: opacity 0.25s var(--appleEase);
+ pointer-events: none;
+ transform: translateZ(0px);
+ animation: rotateBg 35s linear infinite;
+ backface-visibility: hidden;
+}
+@keyframes rotateBg {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+.bg-artwork-container {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ pointer-events: none;
+ transform: translateZ(0px);
+ z-index: -1;
+}
+.bg-artwork-container .bg-artwork.a {
+ top: 0;
+ left: 0;
+}
+.bg-artwork-container .bg-artwork.b {
+ bottom: 0;
+ right: 0;
+ animation-direction: reverse;
+ animation-delay: 10s;
+}
+.bg-artwork-container.noanimation .bg-artwork {
+ animation: none;
+}
+.artworkMaterial {
+ position: relative;
+ height: 100%;
+ width: 100%;
+ overflow: hidden;
+ pointer-events: none;
+}
+.artworkMaterial > img {
+ position: absolute;
+ width: 200%;
+ opacity: 0.5;
+ filter: brightness(200%) blur(180px) saturate(280%) contrast(2);
+}
+.artworkMaterial > img:first-child {
+ top: 0;
+ left: 0;
+}
+.artworkMaterial > img:last-child {
+ bottom: 0;
+ right: 0;
+ transform: rotate(180deg);
+}
+[artwork-hidden] {
+ transition: opacity 0.25s var(--appleEase);
+ opacity: 0;
+}
+input[type="range"].web-slider {
+ -webkit-appearance: none;
+ height: 4px;
+ background: rgba(255, 255, 255, 0.6);
+ border-radius: 5px;
+ background-size: 70% 100%;
+ background-repeat: no-repeat;
+}
+input[type="range"].web-slider::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 20px;
+ width: 20px;
+ border-radius: 50%;
+ background: #ffffff;
+ cursor: ew-resize;
+ box-shadow: 0 0 2px 0 #555;
+}
+input[type=range].web-slider::-webkit-slider-runnable-track {
+ -webkit-appearance: none;
+ box-shadow: none;
+ border: none;
+ background: transparent;
+}
+.nopadding {
+ padding: 0px;
+}
+#app-main {
+ display: flex;
+ width: 100%;
+ height: 100%;
+ flex-direction: column;
+ opacity: 1;
+ overflow: hidden;
+}
+#app-sidebar {
+ /* background-color: var(--color1); */
+ height: 100%;
+ width: 260px;
+ display: flex;
+ flex-direction: column;
+ flex: 0 0 auto;
+ position: relative;
+}
+#app-navbar {
+ height: 40px;
+ width: 100%;
+ background: rgba(30, 30, 30, 0.85);
+ position: sticky;
+ top: 0px;
+ left: 0;
+ z-index: 2;
+ backdrop-filter: blur(16px) saturate(180%);
+}
+#app-content {
+ background-color: var(--color2);
+ height: 100%;
+ width: 100%;
+ overflow-y: scroll;
+ overflow-y: overlay;
+ overflow-x: hidden;
+ border-radius: 10px 0px 0px 0px;
+ border-left: 1px solid rgba(0, 0, 0, 0.25);
+ border-top: 1px solid rgba(0, 0, 0, 0.25);
+ position: relative;
+}
+.app-drawer {
+ width: 300px;
+ flex: 0 0 auto;
+ position: absolute;
+ right: 16px;
+ top: 3%;
+ background: #1c1c1c8f;
+ border-radius: 12px;
+ z-index: 9;
+ height: 94%;
+ backdrop-filter: blur(40px) saturate(180%);
+ box-shadow: var(--ciderShadow-Generic);
+ overflow: hidden;
+}
+.app-drawer .bgArtworkMaterial {
+ display: none;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+.app-drawer .bgArtworkMaterial .bg-artwork-container .bg-artwork {
+ filter: brightness(80%) blur(180px) saturate(180%) contrast(1);
+}
+.search-input-container {
+ position: relative;
+}
+.search-input {
+ width: 100%;
+ padding: 6px;
+ border-radius: 6px;
+ border: 1px solid rgba(200, 200, 200, 0.1);
+ font-family: inherit;
+ font-size: 14px;
+ background: rgba(100, 100, 100, 0.25);
+ color: #c8c8c8;
+ font-weight: 500;
+ padding-left: 32px;
+ position: relative;
+ filter: contrast(0.1);
+}
+.search-input:focus {
+ outline: none;
+ border-bottom: 1px solid var(--keyColor);
+}
+.search-input--icon {
+ content: '';
+ width: 100%;
+ height: 100%;
+ display: block;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ background-image: url('assets/search.svg');
+ background-position: 10px;
+ background-repeat: no-repeat;
+ background-size: 12px;
+ pointer-events: none;
+ opacity: 0.55;
+}
+.app-sidebar-header {
+ font-size: 14px;
+ padding: 11px;
+ font-weight: 600;
+}
+.app-sidebar-header-text {
+ font-size: 11px;
+ margin: 6px 3px;
+ font-weight: 600;
+ opacity: 0.5;
+}
+.app-sidebar-footer {
+ border-top: 1px solid rgba(200, 200, 200, 0.15);
+ padding: 11px;
+}
+.app-sidebar-footer .app-playback-controls {
+ margin: 0 auto;
+}
+.app-sidebar-footer .app-playback-controls .control-buttons {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+}
+.app-sidebar-footer .app-playback-controls .volume {
+ display: flex;
+}
+.app-sidebar-button {
+ width: 100%;
+ padding: 0px;
+ font-family: inherit;
+ display: flex;
+ border-radius: 6px;
+ border: 1px solid rgba(200, 200, 200, 0.05);
+ background: rgba(100, 100, 100, 0.25);
+ color: #eee;
+ font-weight: 500;
+ align-items: center;
+}
+.app-sidebar-button.active {
+ background: rgba(200, 200, 200, 0.15);
+ animation: usermenuBtnClick 0.3s cubic-bezier(0.36, 0, 0.66, -0.56);
+}
+@keyframes usermenuBtnClick {
+ 0% {
+ transform: translateY(0px);
+ }
+ 50% {
+ transform: translateY(-6px);
+ }
+ 100% {
+ transform: translateY(0px);
+ }
+}
+.app-sidebar-button > .sidebar-user-icon {
+ width: 32px;
+ height: 32px;
+ border-radius: 100%;
+ background-image: var(--artwork);
+ margin: 10px;
+ flex: 0 0 auto;
+ box-shadow: var(--mediaItemShadow);
+ background-size: contain;
+}
+.app-sidebar-button > .sidebar-user-text {
+ width: 100%;
+ display: flex;
+ font-size: 14px;
+ flex-direction: column;
+ text-align: center;
+ margin-right: 35px;
+}
+.app-sidebar-button > .sidebar-user-text .fullname {
+ text-align: left;
+}
+.app-sidebar-button > .sidebar-user-text .handle-text {
+ font-size: 12px;
+ opacity: 0.7;
+ text-align: left;
+}
+.app-sidebar-notification {
+ text-align: center;
+ font-size: 12px;
+ min-height: 36px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-top: 1px solid rgba(200, 200, 200, 0.15);
+ background: rgba(0, 0, 0, 0.15);
+ flex-direction: column;
+ padding: 10px 0px;
+}
+.app-sidebar-notification.libraryNotification {
+ flex-direction: row;
+ padding: 0px;
+}
+.app-sidebar-notification.libraryNotification .message {
+ flex-grow: 1;
+}
+.app-sidebar-notification.libraryNotification .spinner {
+ width: 46px;
+ height: 30px;
+ margin-left: 1em;
+}
+.app-sidebar-content {
+ padding: 8px;
+ overflow-y: scroll;
+ overflow-y: overlay;
+ height: 100%;
+}
+.search-hints-container {
+ top: 44px;
+ position: absolute;
+ width: 100%;
+ padding: 10px;
+ z-index: 1;
+}
+.search-hints-container .search-hints {
+ background: #242424;
+ padding: 6px;
+ border-radius: 6px;
+ width: 100%;
+ box-shadow: var(--ciderShadow-Generic);
+}
+.search-hints-container .search-hints .search-hint {
+ background: transparent;
+ display: block;
+ width: 100%;
+ text-align: left;
+ color: #eee;
+ font-family: inherit;
+ font-size: 15px;
+ padding: 8px 12px;
+ border: 0px;
+ appearance: none;
+ border-radius: 6px;
+ margin: 2px 0px;
+}
+.search-hints-container .search-hints .search-hint:hover {
+ background: var(--keyColor);
+}
+.usermenu-container {
+ top: 0px;
+ z-index: 200001 !important;
+ position: absolute;
+ width: 100%;
+ padding: 10px;
+ z-index: 1;
+}
+.usermenu-container .usermenu-body {
+ background: #242424;
+ padding: 6px;
+ border-radius: 6px;
+ width: 100%;
+ box-shadow: var(--ciderShadow-Generic);
+}
+.usermenu-container .usermenu-body .usermenu-item {
+ background: transparent;
+ display: block;
+ width: 100%;
+ text-align: left;
+ color: #eee;
+ font-family: inherit;
+ font-size: 15px;
+ padding: 8px 12px;
+ border: 0px;
+ appearance: none;
+ border-radius: 6px;
+ margin: 2px 0px;
+}
+.usermenu-container .usermenu-body .usermenu-item:hover {
+ background: var(--keyColor);
+}
+.usermenu-container .usermenu-body .usermenu-item .usermenu-item-icon {
+ position: relative;
+ top: 1.5px;
+ right: 3px;
+ display: table-cell;
+}
+.usermenu-container .usermenu-body .usermenu-item .usermenu-item-name {
+ position: relative;
+ bottom: 2px;
+ padding-left: 5px;
+ display: table-cell;
+}
+.context-menu {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0);
+ z-index: 100;
+}
+.context-menu .context-menu-item {
+ background: transparent;
+ display: flex;
+ width: 100%;
+ text-align: left;
+ color: #eee;
+ font-family: inherit;
+ font-size: 14px;
+ padding: 6px 12px;
+ border: 0px;
+ appearance: none;
+ border-radius: 6px;
+ margin: 2px 0px;
+}
+.context-menu .context-menu-item:hover {
+ background: var(--selected);
+ cursor: pointer;
+}
+.context-menu .context-menu-item:active {
+ background: var(--selected-click);
+}
+.context-menu .context-menu-body {
+ background: #242424;
+ padding: 6px;
+ border-radius: 6px;
+ box-shadow: var(--ciderShadow-Generic);
+}
+.context-menu .context-menu-body.context-menu-open {
+ animation-duration: 0.1s;
+ animation-name: contextMenuIn;
+ animation-iteration-count: 1;
+ animation-easings: var(--appleEase);
+}
+.context-menu .context-menu-body.context-menu-close {
+ animation-duration: 0.1s;
+ animation-name: contextMenuOut;
+ animation-iteration-count: 1;
+ animation-easings: var(--appleEase);
+}
+@keyframes contextMenuIn {
+ 0% {
+ transform: scale(0.9);
+ opacity: 0;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+@keyframes contextMenuOut {
+ 0% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ 100% {
+ transform: scale(0.9);
+ opacity: 0;
+ }
+}
+.hidden-opacity {
+ opacity: 0;
+ height: 0px;
+ width: 0px;
+ margin: 0px;
+}
+.spinner {
+ background-image: url("assets/spinner.svg");
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: contain;
+ width: 50px;
+ height: 50px;
+ display: inline-block;
+}
+.app-sidebar-content::-webkit-scrollbar {
+ display: none;
+}
+.app-sidebar-content:hover::-webkit-scrollbar {
+ display: initial;
+}
+.app-sidebar-item {
+ display: flex;
+ width: 100%;
+ padding: 8px 12px;
+ font-weight: 400;
+ font-family: inherit;
+ font-size: 14px;
+ margin: 3px 0px;
+ border: 1px solid transparent;
+ border-radius: 6px;
+ background: transparent;
+ color: #eee;
+ transition: transform 0.1s;
+ text-align: left;
+}
+.app-sidebar-item.app-sidebar-item-playlist {
+ -webkit-user-drag: element;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.app-sidebar-item.app-sidebar-item-playlist .presentNotice {
+ align-self: center;
+ margin-left: 8px;
+ text-transform: uppercase;
+ font-size: 0.7em;
+ opacity: 0.6;
+}
+.app-sidebar-item:hover {
+ border: 1px solid rgba(200, 200, 200, 0.05);
+ background: rgba(200, 200, 200, 0.15);
+}
+.app-sidebar-item:active {
+ border: 1px solid rgba(200, 200, 200, 0.05);
+ background: rgba(200, 200, 200, 0.15);
+ transform: scale(0.98);
+ transition: transform 0s;
+}
+.app-sidebar-item.active {
+ border: 1px solid rgba(200, 200, 200, 0.05);
+ background: rgba(200, 200, 200, 0.15);
+ transform: scale(1);
+ transition: transform 0s;
+}
+.app-sidebar-item.active::after {
+ content: '';
+ width: 4px;
+ height: 16px;
+ display: block;
+ position: absolute;
+ top: calc(100% - 72%);
+ border-radius: 10px;
+ left: 0px;
+ background: var(--keyColor);
+}
+.app-chrome {
+ background: var(--color1);
+ width: 100%;
+ height: var(--chromeHeight1);
+ display: flex;
+ flex-direction: row;
+ -webkit-app-region: drag;
+}
+.mv-chrome {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 90%;
+ height: 55px;
+ -webkit-app-region: drag;
+}
+.app-chrome .app-chrome--left,
+.app-chrome .app-chrome--center,
+.app-chrome .app-chrome--right {
+ height: 100%;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.app-chrome .app-chrome--left {
+ width: 30%;
+ justify-content: left;
+ -webkit-app-region: drag;
+}
+.app-chrome .app-chrome--center {
+ width: 40%;
+}
+.app-chrome .app-chrome--right {
+ width: 30%;
+ justify-content: right;
+}
+.app-chrome .app-chrome-item {
+ height: 100%;
+ width: auto;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-app-region: no-drag;
+ height: auto;
+}
+.app-chrome .app-chrome-item.generic {
+ width: 50px;
+ opacity: 0.7;
+}
+.app-chrome .app-chrome-item.volume {
+ width: 100px;
+ margin-right: 6px;
+}
+.volume-button {
+ background-image: url("assets/feather/volume-2.svg");
+ height: 15px;
+ width: 30px;
+ padding: 0px;
+ background: transparent;
+ border: 0px;
+ border-radius: 0px;
+ box-shadow: unset;
+ background-size: 12px;
+ background-position: center;
+ background-repeat: no-repeat;
+ opacity: 0.7;
+ border-radius: 6px;
+}
+.volume-button:active,
+.volume-button--small:active {
+ transform: scale(0.9);
+}
+.volume-button.active,
+.volume-button--small.active {
+ background-image: url("assets/feather/volume.svg");
+}
+.volume-button--small {
+ border-radius: 6px;
+ color: inherit;
+ background-size: 16px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-color: transparent;
+ height: 15px;
+ width: 30px;
+ border: 0px;
+ box-shadow: unset;
+ opacity: 0.7;
+ background-image: url("assets/feather/volume-2.svg");
+}
+.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #323232;
+ cursor: default;
+ box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4);
+ transition: all var(--appleTransition);
+}
+.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-thumb:hover {
+ background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px);
+ transform: scale(1.2);
+}
+.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-thumb:active {
+ background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px);
+ transform: scale(1);
+}
+.app-chrome .app-chrome-item.volume > input[type=range] {
+ -webkit-appearance: none;
+ height: 4px;
+ background: rgba(255, 255, 255, 0.4);
+ border-radius: 5px;
+ background-size: 70% 100%;
+ background-repeat: no-repeat;
+ width: 100%;
+}
+.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-runnable-track {
+ -webkit-appearance: none;
+ box-shadow: none;
+ border: none;
+ background: transparent;
+}
+.app-chrome .back-button {
+ height: 100%;
+ width: 60px;
+}
+.app-chrome .app-chrome-item.full-height {
+ height: 100%;
+}
+.app-chrome .app-chrome-item > .app-mainmenu {
+ width: 110px;
+ font-size: 13px;
+ background: url("assets/AppChromeBtn.svg");
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-position: center;
+ height: 70%;
+ margin-right: 16px;
+ margin-left: 16px;
+ margin-top: 1.5px;
+ border: 0px;
+ border-radius: 6px;
+}
+.app-chrome .app-chrome-item > .app-mainmenu:hover {
+ background-color: var(--selected);
+}
+.app-chrome .app-chrome-item > .app-mainmenu:active,
+.app-chrome .app-chrome-item > .app-mainmenu.active {
+ background-color: var(--selected-click);
+}
+.app-chrome .app-chrome-item > .app-mainmenu.active {
+ background-image: url("assets/AppChromeBtn-Open.svg");
+}
+.app-chrome .app-chrome-item > .window-controls {
+ width: 138px;
+ font-size: 13px;
+ height: 100%;
+ display: flex;
+}
+.app-chrome .app-chrome-item > .window-controls > div {
+ height: 100%;
+ width: 32px;
+}
+.app-chrome .app-chrome-item > .window-controls > div:hover {
+ background: rgba(200, 200, 200, 0.1);
+}
+.app-chrome .app-chrome-item > .window-controls > div.close {
+ width: 100%;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+}
+.app-chrome .app-chrome-item > .window-controls > div.close:hover {
+ background-color: #c42b1c;
+}
+.app-chrome .app-chrome-item > .window-controls > div.minmax {
+ background-image: var(--gfx-maxBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ width: 100%;
+ height: 100%;
+}
+.app-chrome .app-chrome-item > .window-controls > div.minmax.restore {
+ background-image: var(--gfx-restoreBtn);
+}
+.app-chrome .app-chrome-item > .window-controls > div.minimize {
+ background-image: var(--gfx-minBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ width: 100%;
+ height: 100%;
+}
+body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minimize {
+ display: none;
+}
+body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls {
+ display: none;
+}
+body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minmax {
+ display: none;
+}
+body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.close {
+ display: none;
+}
+.app-chrome .app-chrome-item.playback-controls {
+ width: 80%;
+ height: 90%;
+ display: flex;
+ max-width: 500px;
+ border-left: 1px solid rgba(200, 200, 200, 0.08);
+ border-right: 1px solid rgba(200, 200, 200, 0.08);
+ -webkit-app-region: drag;
+}
+.app-chrome .app-chrome-item > .app-playback-controls {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ width: 100%;
+ -webkit-app-region: no-drag;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-name {
+ font-weight: 600;
+ text-align: center;
+ font-size: 13px;
+ height: 1.3em;
+ line-height: 1.3em;
+ white-space: nowrap;
+ max-width: 360px;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-name .song-name-normal {
+ height: inherit;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-name .explicit-icon {
+ background-image: url("assets/explicit.svg");
+ height: 9px;
+ width: 13px;
+ filter: contrast(0);
+ background-repeat: no-repeat;
+ margin-left: 3px;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .lossless-icon {
+ background-image: url("assets/lossless.svg") !important;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .ppe-icon {
+ background-image: url("assets/ppe.svg") !important;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .audio-type {
+ filter: contrast(0);
+ background-repeat: no-repeat;
+ background-size: contain;
+ height: 15px;
+ width: 15px;
+ position: absolute;
+ right: 0;
+ margin-bottom: 15px;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-duration p {
+ font-weight: 400;
+ font-size: 10px;
+ height: 1.2em;
+ line-height: 1.3em;
+ overflow: hidden;
+ margin: 0 0 0 0.25em;
+}
+.app-playback-controls:hover .marquee {
+ animation: unset;
+}
+.app-playback-controls:hover .marquee.song-artist {
+ overflow: hidden;
+}
+.app-playback-controls:hover .marquee .song-artist {
+ overflow: hidden;
+}
+.app-playback-controls:hover .marquee.song-name {
+ overflow: hidden;
+}
+.app-playback-controls:hover .marquee::after {
+ content: none !important;
+ display: none;
+}
+.marquee {
+ animation: marquee 15s linear infinite;
+}
+.marquee.song-artist {
+ overflow: unset;
+}
+.marquee .song-artist {
+ overflow: unset;
+}
+.marquee.song-name {
+ overflow: unset;
+}
+.marquee::after {
+ content: attr(data-value);
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-progress {
+ position: absolute;
+ bottom: 0px;
+ left: 0px;
+ background: transparent;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-progress:hover > input[type=range]::-webkit-slider-thumb {
+ opacity: 1;
+ transform: scale(1);
+ z-index: 1;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-progress > input[type=range] {
+ appearance: none;
+ width: 100%;
+ height: 4px;
+ background-color: rgba(200, 200, 200, 0.1);
+ border-radius: 2px;
+ margin: 0;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-progress > input[type=range]::-webkit-slider-thumb {
+ opacity: 0;
+ transform: scale(0.5);
+ -webkit-appearance: none;
+ appearance: none;
+ width: 12px;
+ height: 12px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+ transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase);
+}
+.app-chrome .app-chrome-item > .app-playback-controls .song-progress > input[type=range]::-moz-range-thumb {
+ width: 8px;
+ height: 8px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+}
+@keyframes marquee {
+ from {
+ transform: translateX(0);
+ }
+ to {
+ transform: translateX(-140%);
+ }
+}
+.app-chrome .app-chrome-item > .app-playback-controls .artwork {
+ width: 42px;
+ height: 42px;
+ background-image: var(--artwork);
+ background-position: center;
+ background-size: contain;
+ background-repeat: no-repeat;
+ border-radius: 4px;
+ flex: 0 0 auto;
+ margin: 6px;
+ image-rendering: -webkit-optimize-contrast;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .actions {
+ width: 42px;
+ height: 42px;
+ border-radius: 2px;
+ flex: 0 0 auto;
+ margin: 6px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ filter: contrast(0.8);
+}
+.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu {
+ height: 100%;
+ width: 100%;
+ padding: 0px;
+ margin: 0px;
+ background: transparent;
+ border: 0px;
+ appearance: none;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu:focus {
+ outline: none;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu:hover {
+ background: var(--hover);
+}
+.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu:active {
+ background: var(--selected-click);
+ transform: scale(0.95);
+}
+.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu .svg-icon {
+ --url: url('views/svg/more.svg') !important;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .playback-info {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+ position: relative;
+ overflow: hidden;
+}
+.app-chrome .app-chrome-item > .app-playback-controls .playback-info > .song-progress {
+ width: 100%;
+}
+.app-navigation {
+ background: var(--color1);
+ height: calc(100% - var(--chromeHeight));
+ width: 100%;
+ display: flex;
+ position: relative;
+}
+.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album {
+ font-weight: 400;
+ font-size: 12px;
+ text-align: center;
+ /*height: 1.2em;
+ line-height: 1.2em;*/
+ z-index: 1;
+ align-items: center;
+ justify-content: center;
+ width: 80%;
+ max-width: 340px;
+ overflow: hidden;
+}
+.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album .song-artist-album-content {
+ font-weight: 400;
+ font-size: 12px;
+ text-align: center;
+ width: 100%;
+}
+.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album .song-artist-album-content.song-artist-normal {
+ height: inherit;
+}
+.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album.song-artist-marquee > marquee {
+ margin-bottom: -3px;
+}
+.display--small {
+ display: none !important;
+}
+.web-slider.display--small {
+ margin: 10px;
+}
+input[type="range"].web-slider.display--small::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #323232;
+ cursor: default;
+ box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4);
+}
+/* Window is smaller <= 1023px width */
+@media only screen and (max-width: 1120px) {
+ .display--small {
+ display: inherit !important;
+ }
+ .display--small .slider {
+ width: 100%;
+ z-index: 1;
+ }
+ .display--small .input-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ padding-bottom: 10px;
+ }
+ .display--small input[type=range] {
+ -webkit-appearance: none;
+ height: 4px;
+ background: rgba(255, 255, 255, 0.4);
+ border-radius: 5px;
+ background-size: 70% 100%;
+ background-repeat: no-repeat;
+ }
+ .display--small input[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #323232;
+ cursor: default;
+ box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4);
+ transition: all var(--appleTransition);
+ }
+ .display--small input[type=range]::-webkit-slider-thumb:hover {
+ background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px);
+ transform: scale(1.2);
+ }
+ .display--small input[type=range]::-webkit-slider-thumb:active {
+ background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px);
+ transform: scale(1);
+ }
+ .display--small input[type=range]::-webkit-slider-runnable-track {
+ -webkit-appearance: none;
+ box-shadow: none;
+ border: none;
+ background: transparent;
+ }
+ .display--large {
+ display: none !important;
+ }
+}
+.flex-center {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+}
+.md-container {
+ width: 100%;
+ position: relative;
+}
+.lyric-body {
+ -webkit-mask-image: -webkit-gradient(linear, left 95%, left bottom, from(#000000), to(rgba(0, 0, 0, 0)));
+ overflow-y: scroll;
+ overflow-x: hidden;
+ display: flex;
+ flex-flow: column;
+ font-family: 'Inter', 'Noto Sans JP', 'Source Han Sans SC', 'Source Han Sans HK', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif;
+}
+.lyric-body .no-lyrics {
+ width: 100%;
+ justify-content: center;
+ align-items: center;
+ font-weight: bold;
+ font-size: 26px;
+}
+.lyric-line {
+ --bgSpeed: 1s;
+ appearance: none;
+ color: white;
+ font-size: 26px;
+ transform: scale(0.8);
+ transform-origin: left center;
+ transition: transform 0.2s var(--appleEase);
+ opacity: 0.75;
+ width: auto;
+ display: inline-block;
+ margin: 10px;
+ margin-left: 5%;
+ margin-right: 0px;
+}
+.lyric-line.active .verse {
+ opacity: 0.6;
+}
+.lyric-line.active .verse.verse-active {
+ opacity: 1;
+}
+.lyric-line:hover {
+ cursor: pointer;
+}
+.lyric-line:hover::after {
+ content: ' ';
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ transform: scale(1.06);
+ background: rgba(200, 200, 200, 0.1);
+ pointer-events: none;
+ border-radius: 10px;
+ -webkit-backface-visibility: hidden;
+}
+.lyric-line.active {
+ --bgSpeed: 1s;
+ opacity: 1;
+ transform: scale(1);
+ /*background: var(--keyColor);*/
+ transition: transform 0.2s var(--appleEase);
+}
+.lyric-line:not(.active) {
+ filter: blur(1px);
+}
+.lyric-line:not(.active).unsynced {
+ filter: none !important;
+}
+.lyric-line.unsynced {
+ filter: none !important;
+}
+.lyricWaiting {
+ margin-top: 8px;
+ display: none;
+}
+.lyric-line.active .lyricWaiting {
+ display: inline-flex;
+ animation: lyricWaitingLine 6s cubic-bezier(0.42, 0, 0.58, 1) infinite;
+}
+.lyric-line.active .lyricWaiting > div {
+ width: 10px;
+ height: 10px;
+ background: white;
+ border-radius: 50%;
+ margin: 3px;
+}
+.lyrics-translation {
+ font-size: 1.6rem;
+ font-weight: 450;
+ font-family: 'Inter', 'Noto Sans JP', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif;
+ filter: contrast(0.5);
+}
+.lyric-footer {
+ bottom: 0;
+ height: 50px;
+ width: 100%;
+ position: absolute;
+ z-index: 1000;
+ opacity: 1;
+ background: rgba(30, 30, 30, 0.8);
+ justify-content: center;
+ align-items: center;
+ display: none;
+ transition: opacity 0.1s var(--appleEase);
+}
+.lyric-body:hover + .lyric-footer,
+.lyric-footer:hover {
+ display: flex;
+}
+.modular-fs .app-drawer .lyric-footer {
+ background: unset;
+ display: flex;
+ opacity: 0.3;
+}
+.modular-fs .app-drawer .lyric-footer:hover {
+ opacity: 1;
+}
+.modular-fs .app-drawer .lyric-body .no-lyrics {
+ height: 100%;
+ display: flex;
+}
+@keyframes lyricWaitingLine {
+ 0% {
+ opacity: 0.25;
+ transform: scale(0.85);
+ }
+ 50% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ 100% {
+ opacity: 0.25;
+ transform: scale(0.85);
+ }
+}
+@keyframes dotOpacity {
+ 0% {
+ opacity: 0.25;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+.lyric-line2:before {
+ background: var(--keyColor);
+ content: '';
+ width: 0%;
+ height: 6px;
+ position: absolute;
+ bottom: -8px;
+ left: 0;
+ border-radius: 10px;
+ z-index: -1;
+ transition: width var(--bgSpeed);
+}
+.lyric-line2.active:before {
+ width: 100%;
+ transition: width var(--bgSpeed);
+}
+.player_top {
+ height: 100%;
+}
+/* Cider */
+.more-btn-round {
+ border-radius: 100%;
+ background: rgba(100, 100, 100, 0.5);
+ box-shadow: var(--ciderShadow-Generic);
+ width: 32px;
+ height: 32px;
+ border: 0px;
+ cursor: pointer;
+ z-index: 5;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.more-btn-round:hover {
+ filter: brightness(125%);
+}
+.more-btn-round:active {
+ filter: brightness(75%);
+ transform: scale(0.98);
+ transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
+}
+.more-btn-round .svg-icon {
+ width: 100%;
+ background: #eee;
+ --url: url("views/svg/more.svg");
+}
+.about-page .teamBtn {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ font-size: 14px;
+ padding: 6px 16px;
+ margin: 4px;
+}
+.about-page .teamBtn > img {
+ width: 30px;
+ margin: 0px 16px 0px 0px;
+ pointer-events: none;
+ border-radius: 100%;
+ box-shadow: var(--mediaItemShadow);
+ image-rendering: -webkit-optimize-contrast;
+}
+.about-page .sponsorBtn {
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+}
+.about-page .sponsorBtn > img {
+ width: 26px;
+ margin: 0px 16px 0px 0px;
+ pointer-events: none;
+}
+.sidebar-playlist .folder-button-active {
+ background: rgba(255, 255, 255, 0.12);
+}
+.sidebar-playlist .folder-body {
+ background: #ffffff0a;
+ border-radius: 10px;
+ padding: 1px 6px;
+}
+.sidebar-playlist .folder-body .spinner {
+ display: block;
+ width: 100%;
+ height: 32px;
+ background-size: 16px;
+}
+#navigation-bar {
+ width: 100%;
+ background: rgba(0, 0, 0, 0.25);
+ height: var(--navigationBarHeight);
+ display: flex;
+ align-items: center;
+ padding: 0px 6px;
+ z-index: 7;
+ position: sticky;
+ top: 0;
+ left: 0;
+ backdrop-filter: blur(32px);
+ mix-blend-mode: hard-light;
+}
+#navigation-bar .nav-item {
+ appearance: none;
+ border: 0px;
+ height: 32px;
+ width: 40px;
+ background: transparent;
+ padding: 6px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: rgba(200, 200, 200, 0.8);
+ margin: 2px;
+ border-radius: 6px;
+ transition: transform 0.1s var(--appleEase);
+}
+#navigation-bar .nav-item:active {
+ background: var(--selected-click);
+ transform: scale(0.96);
+ transition: transform 0s var(--appleEase);
+}
+#navigation-bar .nav-item > svg {
+ width: 8px;
+ pointer-events: none;
+}
+#navigation-bar .nav-item:hover {
+ background: var(--selected);
+}
+#navigation-bar .nav-item:hover > svg {
+ color: #c8c8c8;
+}
+.well {
+ background: rgba(200, 200, 200, 0.05);
+ border-radius: 10px;
+ padding: var(--contentInnerPadding);
+ box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
+ margin-top: 16px;
+}
+.well.itemContainer {
+ display: flex;
+ flex-flow: wrap;
+ justify-content: center;
+}
+.well.itemContainer .cd-mediaitem-square {
+ width: 220px;
+ height: 260px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
+ justify-content: center;
+ align-items: center;
+ border-radius: 6px;
+ max-width: 240px;
+ flex-grow: 1;
+}
+.text-overflow-elipsis {
+ display: -webkit-box;
+ min-width: 0px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+}
+.no-animation {
+ animation: unset !important;
+}
+.fullscreen-view-container {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: black;
+ z-index: 99;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ opacity: 1;
+}
+.fullscreen-view {
+ width: 100%;
+ height: 100%;
+ background: black;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.fullscreen-view .fs-row {
+ flex-grow: 1;
+}
+.fullscreen-view .playback-button--small.active {
+ background-color: rgba(200, 200, 200, 0.25);
+}
+.fullscreen-view .playback-button--small {
+ opacity: 0.7;
+}
+.fullscreen-view .right-col {
+ height: 50vh;
+}
+.fullscreen-view .bg-artwork-container {
+ display: block !important;
+}
+@media only screen and (max-width: 1121px) {
+ .fullscreen-view .display--large {
+ display: flex !important;
+ }
+}
+.fullscreen-view .display--large {
+ display: flex;
+}
+.fullscreen-view .display--large .slider {
+ width: 100%;
+ z-index: 1;
+}
+.fullscreen-view .display--large .input-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+}
+.fullscreen-view .display--large .volume-button--small {
+ border-radius: 6px;
+ color: inherit;
+ background-size: 16px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-color: transparent;
+ height: 15px;
+ width: 30px;
+ border: 0px;
+ box-shadow: unset;
+ opacity: 0.7;
+ background-image: url("assets/feather/volume-2.svg");
+}
+.fullscreen-view .display--large .volume-button--small:active {
+ transform: scale(0.9);
+}
+.fullscreen-view .display--large .volume-button--small.active {
+ background-image: url("assets/feather/volume.svg");
+}
+.fullscreen-view .display--large input[type=range] {
+ -webkit-appearance: none;
+ height: 4px;
+ background: rgba(255, 255, 255, 0.4);
+ border-radius: 5px;
+ background-size: 70% 100%;
+ background-repeat: no-repeat;
+}
+.fullscreen-view .display--large input[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #323232;
+ cursor: default;
+ box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4);
+ transition: all var(--appleTransition);
+}
+.fullscreen-view .display--large input[type=range]::-webkit-slider-thumb:hover {
+ background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px);
+ transform: scale(1.2);
+}
+.fullscreen-view .display--large input[type=range]::-webkit-slider-thumb:active {
+ background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px);
+ transform: scale(1);
+}
+.fullscreen-view .display--large input[type=range]::-webkit-slider-runnable-track {
+ -webkit-appearance: none;
+ box-shadow: none;
+ border: none;
+ background: transparent;
+}
+.fullscreen-view .background {
+ position: absolute;
+ background-size: cover;
+ width: 100%;
+ height: 100%;
+}
+.fullscreen-view .background .bgArtworkMaterial {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+.fullscreen-view .background .bgArtworkMaterial .bg-artwork-container {
+ z-index: unset;
+}
+.fullscreen-view .background .bgArtworkMaterial .bg-artwork-container .bg-artwork {
+ filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9);
+}
+.fullscreen-view .lyrics-col {
+ height: 62vh;
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ width: 80%;
+}
+.fullscreen-view .lyrics-col ::-webkit-scrollbar-thumb {
+ box-shadow: unset;
+}
+.fullscreen-view .lyrics-col:hover ::-webkit-scrollbar-thumb {
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5);
+}
+.fullscreen-view .lyrics-col .no-lyrics {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+}
+.fullscreen-view .lyrics-col .lyric-line {
+ font-size: 35px;
+}
+.fullscreen-view .queue-col {
+ width: 60vh;
+ height: 62vh;
+}
+.fullscreen-view .queue-col .queue-title {
+ opacity: 0.6;
+}
+.fullscreen-view .queue-col .queue-panel > * {
+ z-index: 3;
+}
+.fullscreen-view .queue-col ::-webkit-scrollbar-thumb {
+ box-shadow: unset;
+}
+.fullscreen-view .queue-col:hover ::-webkit-scrollbar-thumb {
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5);
+}
+.fullscreen-view .tab-toggles {
+ display: flex;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 15vh;
+ height: 5vh;
+ justify-content: space-evenly;
+}
+.fullscreen-view .tab-toggles .volume {
+ background-image: url("assets/feathers/volume.svg");
+ padding: 0.5vh;
+ width: 2vh;
+ height: 2vh;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+}
+.fullscreen-view .tab-toggles .queue {
+ background-image: url("assets/list.svg");
+ padding: 0.5vh;
+ width: 2.5vh;
+ height: 2.5vh;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+}
+.fullscreen-view .tab-toggles .lyrics {
+ background-image: url("assets/quote-right.svg");
+ padding: 0.5vh;
+ width: 2.5vh;
+ height: 2.5vh;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+}
+.fullscreen-view .tab-toggles .active {
+ background-color: rgba(200, 200, 200, 0.7);
+ border-radius: 3px;
+}
+.fullscreen-view .artwork-col {
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ flex-direction: column;
+}
+.fullscreen-view .artwork-col .artwork {
+ width: 50vh;
+ height: 50vh;
+}
+.fullscreen-view .artwork-col .controls-parents {
+ width: 50vh;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-artist,
+.fullscreen-view .artwork-col .app-playback-controls .song-name {
+ font-weight: 600;
+ text-align: center;
+ font-size: 0.9em;
+ height: 1.2em;
+ line-height: 0.9em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 360px;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-artist .song-name-normal,
+.fullscreen-view .artwork-col .app-playback-controls .song-name .song-name-normal {
+ height: inherit;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-artist {
+ font-size: 0.875em;
+ font-weight: 400;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-name {
+ width: unset !important;
+ margin-top: 0.15vh;
+ display: -webkit-box;
+ line-height: 1.2;
+ text-overflow: ellipsis;
+ text-align: center;
+}
+.fullscreen-view .artwork-col .app-playback-controls .playback-info {
+ margin-top: 0.5vh;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+ position: relative;
+}
+.fullscreen-view .artwork-col .app-playback-controls .playback-info input[type="range"] {
+ width: 100%;
+}
+.fullscreen-view .artwork-col .app-playback-controls .playback-info > div {
+ width: 100%;
+ text-align: center;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-progress {
+ position: absolute;
+ bottom: -1.5vh;
+ left: 0px;
+ background: transparent;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-progress .song-duration p {
+ font-weight: 400;
+ font-size: 10px;
+ height: 1.2em;
+ line-height: 1.3em;
+ overflow: hidden;
+ margin: 0 0 0 0.25em;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-progress:hover > input[type=range]::-webkit-slider-thumb {
+ opacity: 1;
+ transform: scale(1);
+ z-index: 1;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-progress input[type=range] {
+ appearance: none;
+ width: 100%;
+ height: 4px;
+ background-color: rgba(200, 200, 200, 0.1);
+ border-radius: 2px;
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-progress input[type=range]::-webkit-slider-thumb {
+ opacity: 0;
+ transform: scale(0.5);
+ -webkit-appearance: none;
+ appearance: none;
+ width: 12px;
+ height: 12px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+ transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase);
+}
+.fullscreen-view .artwork-col .app-playback-controls .song-progress input[type=range]::-moz-range-thumb {
+ width: 8px;
+ height: 8px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+}
+.fullscreen-view .artwork-col .control-buttons {
+ margin-top: 2vh;
+ display: inline-flex;
+ width: 100%;
+ justify-content: center;
+}
+.mini-view {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.mini-view .fs-row {
+ flex-grow: 1;
+}
+.mini-view .playback-button--small.active {
+ background-color: rgba(200, 200, 200, 0.25);
+}
+.mini-view .player-exit {
+ z-index: 3;
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ -webkit-app-region: no-drag;
+}
+.mini-view .player-pin {
+ z-index: 3;
+ position: absolute;
+ min-width: 20px;
+ min-height: 20px;
+ top: 5px;
+ right: 30px;
+ -webkit-app-region: no-drag;
+}
+.mini-view #mini-pin {
+ display: none;
+}
+.mini-view .player-pin:hover #mini-pin {
+ display: block;
+}
+.mini-view .playback-button--small {
+ opacity: 0.7;
+}
+.mini-view .right-col {
+ height: 50vh;
+}
+@media only screen and (max-width: 1121px) {
+ .mini-view .display--large {
+ display: flex !important;
+ }
+}
+.mini-view .display--large {
+ display: flex;
+}
+.mini-view .display--large .slider {
+ width: 100%;
+ z-index: 1;
+}
+.mini-view .display--large .input-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+}
+.mini-view .display--large .volume-button--small {
+ border-radius: 6px;
+ color: inherit;
+ background-size: 16px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-color: transparent;
+ height: 15px;
+ width: 30px;
+ border: 0px;
+ box-shadow: unset;
+ opacity: 0.7;
+ background-image: url("assets/feather/volume-2.svg");
+}
+.mini-view .display--large .volume-button--small:active {
+ transform: scale(0.9);
+}
+.mini-view .display--large .volume-button--small.active {
+ background-image: url("assets/feather/volume.svg");
+}
+.mini-view .display--large input[type=range] {
+ -webkit-appearance: none;
+ height: 4px;
+ background: rgba(255, 255, 255, 0.4);
+ border-radius: 5px;
+ background-size: 70% 100%;
+ background-repeat: no-repeat;
+}
+.mini-view .display--large input[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #323232;
+ cursor: default;
+ box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4);
+ transition: all var(--appleTransition);
+}
+.mini-view .display--large input[type=range]::-webkit-slider-thumb:hover {
+ background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px);
+ transform: scale(1.2);
+}
+.mini-view .display--large input[type=range]::-webkit-slider-thumb:active {
+ background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px);
+ transform: scale(1);
+}
+.mini-view .display--large input[type=range]::-webkit-slider-runnable-track {
+ -webkit-appearance: none;
+ box-shadow: none;
+ border: none;
+ background: transparent;
+}
+.mini-view .background {
+ position: absolute;
+ background-size: cover;
+ width: 100%;
+ height: 100%;
+ -webkit-user-select: none;
+ -webkit-app-region: drag;
+}
+.mini-view .background .bgArtworkMaterial {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+.mini-view .background .bgArtworkMaterial .bg-artwork-container {
+ z-index: unset;
+}
+.mini-view .background .bgArtworkMaterial .bg-artwork-container .bg-artwork {
+ filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9);
+}
+.mini-view .background .bgArtworkMaterial .no-animation {
+ animation: unset;
+}
+.mini-view .lyrics-col {
+ height: 62vh;
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ width: 80%;
+}
+.mini-view .lyrics-col ::-webkit-scrollbar-thumb {
+ box-shadow: unset;
+}
+.mini-view .lyrics-col:hover ::-webkit-scrollbar-thumb {
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5);
+}
+.mini-view .lyrics-col .no-lyrics {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+}
+.mini-view .lyrics-col .lyric-line {
+ font-size: 35px;
+}
+.mini-view .queue-col {
+ width: 60vh;
+ height: 50vh;
+}
+.mini-view .queue-col .queue-title {
+ opacity: 0.6;
+}
+.mini-view .queue-col .queue-panel > * {
+ z-index: 3;
+}
+.mini-view .queue-col ::-webkit-scrollbar-thumb {
+ box-shadow: unset;
+}
+.mini-view .queue-col:hover ::-webkit-scrollbar-thumb {
+ box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5);
+}
+.mini-view .tab-toggles {
+ display: flex;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 15vh;
+ height: 5vh;
+ justify-content: space-evenly;
+}
+.mini-view .tab-toggles .volume {
+ background-image: url("assets/feathers/volume.svg");
+ padding: 0.5vh;
+ width: 2vh;
+ height: 2vh;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+}
+.mini-view .tab-toggles .queue {
+ background-image: url("assets/list.svg");
+ padding: 0.5vh;
+ width: 2.5vh;
+ height: 2.5vh;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+}
+.mini-view .tab-toggles .lyrics {
+ background-image: url("assets/quote-right.svg");
+ padding: 0.5vh;
+ width: 2.5vh;
+ height: 2.5vh;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+}
+.mini-view .tab-toggles .active {
+ background-color: rgba(200, 200, 200, 0.7);
+ border-radius: 3px;
+}
+.mini-view .artwork-col {
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ flex-direction: column;
+}
+.mini-view .artwork-col .artwork {
+ width: 100%;
+ height: 100%;
+}
+.mini-view .artwork-col .artwork .mediaitem-artwork {
+ border-radius: unset;
+}
+.mini-view .artwork-col .controls-parents {
+ width: 100%;
+ position: absolute;
+ background: #0000009e;
+ backdrop-filter: blur(10px);
+ bottom: 0px;
+ z-index: 3;
+ opacity: 0;
+ padding: 3%;
+}
+.mini-view .artwork-col .controls-parents:hover {
+ opacity: 1;
+}
+.mini-view .artwork-col .app-playback-controls {
+ -webkit-app-region: no-drag;
+}
+.mini-view .artwork-col .app-playback-controls .song-artist,
+.mini-view .artwork-col .app-playback-controls .song-name {
+ font-weight: 600;
+ text-align: center;
+ font-size: 0.9em;
+ height: 1.2em;
+ line-height: 0.9em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 360px;
+}
+.mini-view .artwork-col .app-playback-controls .song-artist .song-name-normal,
+.mini-view .artwork-col .app-playback-controls .song-name .song-name-normal {
+ height: inherit;
+}
+.mini-view .artwork-col .app-playback-controls .song-artist {
+ font-size: 0.875em;
+ font-weight: 400;
+}
+.mini-view .artwork-col .app-playback-controls .song-name {
+ width: unset !important;
+ margin-top: 0.15vh;
+ display: -webkit-box;
+ line-height: 1.2;
+ text-overflow: ellipsis;
+ text-align: center;
+}
+.mini-view .artwork-col .app-playback-controls .playback-info {
+ margin-top: 0.5vh;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+ position: relative;
+}
+.mini-view .artwork-col .app-playback-controls .playback-info input[type="range"] {
+ width: 100%;
+}
+.mini-view .artwork-col .app-playback-controls .playback-info > div {
+ width: 100%;
+ text-align: center;
+}
+.mini-view .artwork-col .app-playback-controls .song-progress {
+ position: absolute;
+ bottom: -3.5vh;
+ left: 0px;
+ background: transparent;
+}
+.mini-view .artwork-col .app-playback-controls .song-progress .song-duration p {
+ font-weight: 400;
+ font-size: 10px;
+ height: 1.2em;
+ line-height: 1.3em;
+ overflow: hidden;
+ margin: 0 0 0 0.25em;
+}
+.mini-view .artwork-col .app-playback-controls .song-progress:hover > input[type=range]::-webkit-slider-thumb {
+ opacity: 1;
+ transform: scale(1);
+ z-index: 1;
+}
+.mini-view .artwork-col .app-playback-controls .song-progress input[type=range] {
+ appearance: none;
+ width: 100%;
+ height: 4px;
+ background-color: rgba(200, 200, 200, 0.1);
+ border-radius: 2px;
+}
+.mini-view .artwork-col .app-playback-controls .song-progress input[type=range]::-webkit-slider-thumb {
+ opacity: 0;
+ transform: scale(0.5);
+ -webkit-appearance: none;
+ appearance: none;
+ width: 12px;
+ height: 12px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+ transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase);
+}
+.mini-view .artwork-col .app-playback-controls .song-progress input[type=range]::-moz-range-thumb {
+ width: 8px;
+ height: 8px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+}
+.mini-view .artwork-col .control-buttons {
+ margin-top: 3.5vh;
+ display: inline-flex;
+ width: 100%;
+ justify-content: center;
+}
+#micaEffect {
+ opacity: 1;
+ filter: brightness(0.5);
+}
+@keyframes micaEnter {
+ 0% {
+ opacity: 0;
+ transform: translateY(10px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0px);
+ }
+}
+@keyframes rotate {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+.modular-fs .app-drawer {
+ width: 100%;
+ right: 0px;
+ top: 0px;
+ height: 100%;
+ border-radius: 0px;
+ box-shadow: unset;
+ background: black;
+}
+.modular-fs .app-drawer .bgArtworkMaterial {
+ display: block;
+}
+.modular-fs .app-drawer .bgArtworkMaterial::before {
+ top: -50%;
+ left: -20%;
+ width: 200VH;
+ height: 200VH;
+}
+.modular-fs .app-drawer .bgArtworkMaterial .bg-artwork-container {
+ display: block !important;
+}
+.modular-fs .app-drawer .lyric-body {
+ justify-content: center;
+ align-items: center;
+ padding: 0px;
+ margin: 0px;
+ overflow: hidden;
+ filter: drop-shadow(0px 4px 6px rgba(0, 0, 0, 0.7));
+}
+.modular-fs .app-drawer .lyric-body .lyric-line {
+ pointer-events: none;
+ font-weight: 600;
+ font-size: 2em;
+ transform-origin: center;
+ animation: fsLyricIn var(--appleEase) 0.2s;
+ opacity: 0.9;
+}
+.modular-fs .app-drawer .lyric-body .lyric-line:not(.active) {
+ display: none;
+ margin: 0;
+ transform: scale(1);
+}
+.modular-fs .app-drawer .lyric-body .lyric-line.active {
+ margin: 0;
+ transform: scale(1);
+}
+@keyframes fsLyricIn {
+ 0% {
+ opacity: 0;
+ transform: scale(0.98);
+ }
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ }
+}
+/* Transitions */
+.replaycard-enter-active,
+.replaycard-leave-active {
+ transition: opacity 0.5s var(--appleEase), transform 0.5s var(--appleEase);
+}
+.replaycard-enter,
+.replaycard-leave-to {
+ opacity: 0;
+ transform: translateY(20px);
+}
+.modal-enter-active,
+.modal-leave-active {
+ transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase);
+}
+.modal-enter,
+.modal-leave-to {
+ opacity: 0;
+ transform: scale(1.1);
+}
+.wpfade-enter-active,
+.wpfade-leave-active {
+ transition: opacity 0.1s var(--appleEase);
+}
+.wpfade-enter,
+.wpfade-leave-to {
+ opacity: 0;
+}
+.wpfade_transform-enter-active,
+.wpfade_transform-leave-active {
+ --transitionTime: 0.2s;
+ transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase);
+ will-change: opacity, transform;
+}
+.wpfade_transform-enter {
+ opacity: 0;
+ transform: translateX(50%) translate3d(0, 0, 0);
+ will-change: opacity, transform;
+}
+.wpfade_transform-leave-to {
+ opacity: 0;
+ transform: translateX(-50%) translate3d(0, 0, 0);
+ will-change: opacity, transform;
+}
+.wpfade_transform_backwards-enter-active,
+.wpfade_transform_backwards-leave-active {
+ --transitionTime: 0.2s;
+ transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase);
+}
+.wpfade_transform_backwards-enter {
+ opacity: 0;
+ transform: translateX(-50%) translate3d(0, 0, 0);
+ will-change: opacity, transform;
+}
+.wpfade_transform_backwards-leave-to {
+ opacity: 0;
+ transform: translateX(50%) translate3d(0, 0, 0);
+ will-change: opacity, transform;
+}
+.fabfade-enter-active,
+.fabfade-leave-active {
+ transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase);
+}
+.fabfade-enter,
+.fabfade-leave-to {
+ opacity: 0;
+ transform: scale(0.5);
+}
+.fsModeSwitch-enter-active,
+.fsModeSwitch-leave-active {
+ transition: transform 1s var(--appleEase), opacity 1s var(--appleEase);
+}
+.fsModeSwitch-enter,
+.fsModeSwitch-leave-to {
+ transform: scale(1.1);
+ opacity: 0;
+}
+.drawertransition-enter-active,
+.drawertransition-leave-active {
+ transition: right 0.25s var(--appleEase);
+}
+.drawertransition-enter,
+.drawertransition-leave-to {
+ right: -300px;
+}
+:root {
+ --gfx-closeBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjM2LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PmN2D9EAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEtJREFUGJWNkMENwDAIA1FGY/8hkn8HOAqPfBsFKvz1yZYtbqwAlUIB6saUAH2NJ4MvL4PLgK/x13LAGTSqEaVa1a0x7XvcmI3D1wbntaRbB2haYwAAAABJRU5ErkJggg==');
+ --gfx-maxBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6NTgtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjU4LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6NTgtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PlwQMBUAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAFBJREFUGJXV0LERgCAUBNHVsQADM3uwWWbojQIs47MEGhgAuS/eSw41qeFYqGlRA7iAm74DKLyrfRABoLrOgq+/hJXngi71BOoGZKBMHqhAbtMvQzel9pREAAAAAElFTkSuQmCC');
+ --gfx-restoreBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6MjQtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjI0LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6MjQtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PqiFCFwAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHNJREFUGJWtkKEOwlAMRc+QM5AwQYJFoPjZCWb2YRPIaeRTLwfTLQs0UxzX3tumtxCog78UdVTbZmM8AmsdXIABeKH2ak221dDuamnUCjyA+WtbB0zAGXgT0ycSFk31kBky/moUeBLpbsl91wi6Nnbfs/g+7XOQq6ifjfkAAAAASUVORK5CYII=');
+ --gfx-minBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGOmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMi0xN1QxMzowMDozMloiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NWQwZWRiMC1mZDAwLWI2NGYtOWVmYi1hMmI0NTg3MDVhOGEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDphMzAwMWUxYS0yOTE5LWU0NDktYjk0Yy1jMjEyMjQ4YTlmOGEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHN0RXZ0OndoZW49IjIwMjAtMDItMTdUMTM6MDA6MzJaIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg1ZDBlZGIwLWZkMDAtYjY0Zi05ZWZiLWEyYjQ1ODcwNWE4YSIgc3RFdnQ6d2hlbj0iMjAyMC0wMi0xN1QxMzowMDozMloiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHBob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8cmRmOkJhZz4gPHJkZjpsaSBwaG90b3Nob3A6TGF5ZXJOYW1lPSLupKEiIHBob3Rvc2hvcDpMYXllclRleHQ9Iu6koSIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FwvRXAAAABdJREFUGNNj/P//PwMxgHGIKPw/XDwDAOr1HuzlELLnAAAAAElFTkSuQmCC');
+}
+#apple-music-video-container {
+ background: black;
+ position: absolute;
+ float: left;
+ display: none;
+ width: 100%;
+ height: calc(100% - var(--chromeHeight));
+ bottom: 0;
+ z-index: 100000;
+}
+#apple-music-video-player {
+ position: absolute;
+ top: 50%;
+ width: 100%;
+ transform: translate(0, -50%);
+ height: 100%;
+}
+#app.twopanel #apple-music-video-container {
+ top: var(--chromeHeight1);
+ bottom: unset;
+}
+#apple-music-video-player-controls {
+ position: absolute;
+ z-index: 100001;
+ float: left;
+ width: 100%;
+ height: 100%;
+}
+#apple-music-video-player-controls #player-exit {
+ position: absolute;
+ z-index: 100001;
+ float: left;
+ width: 100%;
+ margin: 10px;
+ cursor: pointer;
+}
+#apple-music-video-player-controls #player-pip {
+ position: absolute;
+ z-index: 100001;
+ width: 32px;
+ height: 32px;
+ margin: 10px;
+ right: 50px;
+ border-radius: 100%;
+ background: rgba(255, 255, 255, 0.5);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+}
+#apple-music-video-player-controls #player-pip > svg {
+ width: 50%;
+}
+#apple-music-video-player-controls #player-fullscreen {
+ position: absolute;
+ z-index: 100001;
+ width: 32px;
+ height: 32px;
+ margin: 10px;
+ right: 0px;
+ border-radius: 100%;
+ background: rgba(255, 255, 255, 0.5);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+}
+#apple-music-video-player-controls #player-fullscreen > svg {
+ width: 70%;
+}
+#apple-music-video-player-controls:hover {
+ opacity: 1;
+}
+img[src=""] {
+ text-indent: -10000px;
+}
+div#captions {
+ font-size: 1.2rem;
+ position: absolute;
+ top: 85%;
+ text-align: center;
+ width: auto;
+ align-self: center;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ background: rgba(0, 0, 0, 0.6);
+ color: yellow;
+ white-space: pre-line;
+ font-family: 'Inter', 'Noto Sans JP', 'Source Han Sans SC', 'Source Han Sans HK', 'Source Han Sans SC', 'Source Han Sans HK', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif;
+}
+[v-cloak] {
+ display: none !important;
+}
+.item-navigate:hover {
+ text-decoration: underline;
+ cursor: pointer;
+}
+.title-browse-sp {
+ width: 100%;
+ text-align: left;
+ margin-bottom: 2px;
+}
+.bold {
+ font-weight: bold;
+}
+.semibold {
+ font-weight: 500;
+}
+.madeforyou-body {
+ margin-top: 15px;
+}
+.albums-square-container {
+ text-align: center;
+}
+body.no-gpu {
+ --ciderShadow-Generic: var(--mediaItemShadow);
+ --mediaItemShadow-Shadow: var(--mediaItemShadow);
+ --mediaItemShadow-ShadowSubtle: var(--mediaItemShadow);
+}
+body.no-gpu .bg-artwork-container {
+ display: none;
+ animation: none !important;
+}
+body.no-gpu .bg-artwork-container .bg-artwork {
+ animation: none !important;
+}
+body.no-gpu #navigation-bar {
+ backdrop-filter: unset;
+ mix-blend-mode: unset;
+ background: #000000;
+}
+body.no-gpu .addtoplaylist-panel .modal-window {
+ background: #121212;
+ backdrop-filter: unset;
+}
+body.no-gpu .app-drawer {
+ backdrop-filter: unset;
+ mix-blend-mode: unset;
+ background: #1c1c1c;
+}
+body.no-gpu .wpfade-enter-active,
+body.no-gpu .wpfade-leave-active {
+ transition: opacity 0s var(--appleEase);
+}
+body.no-gpu .wpfade-enter,
+body.no-gpu .wpfade-leave-to {
+ opacity: 0;
+}
+body.no-gpu .drawertransition-enter-active,
+body.no-gpu .drawertransition-leave-active {
+ transition: right 0s var(--appleEase);
+}
+body.no-gpu .drawertransition-enter,
+body.no-gpu .drawertransition-leave-to {
+ right: -300px;
+}
+body.no-gpu .lyric-line:hover::after {
+ display: none;
+}
+.qrimg {
+ width: -webkit-fill-available;
+ max-block-size: -webkit-fill-available;
+ object-fit: contain;
+ overflow-x: hidden;
+ overflow-y: hidden;
+}
+.equalizer-panel .modal-window {
+ height: 330px;
+ max-height: 330px;
+ width: 740px;
+ max-width: 800px;
+ overflow: hidden;
+}
+.equalizer-panel .modal-window .info-header {
+ padding-left: 12px;
+}
+.equalizer-panel .modal-window .visual-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+}
+.equalizer-panel .modal-window .modal-header {
+ padding: 16px;
+ position: relative;
+ overflow: hidden;
+}
+.equalizer-panel .modal-window .modal-header .modal-title {
+ text-align: center;
+}
+.equalizer-panel .modal-window .modal-header .close-btn {
+ width: 50px;
+ height: 100%;
+ background-image: var(--gfx-closeBtn);
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-app-region: no-drag;
+ appearance: none;
+ border: 0;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.equalizer-panel .modal-window .modal-header .close-btn:hover {
+ background-color: #c42b1c;
+}
+.equalizer-panel .modal-window .modal-content {
+ display: block;
+}
+.equalizer-panel .modal-window .modal-content .inputs-container {
+ margin-left: 8px;
+}
+.equalizer-panel .modal-window .modal-content .input-container {
+ display: inline-grid;
+ width: 54px;
+ justify-items: center;
+ font-size: 0.7em;
+}
+.equalizer-panel .modal-window .modal-content .input-container.mini {
+ display: inline-grid;
+ width: 43px;
+ justify-items: center;
+ font-size: 0.7em;
+}
+.equalizer-panel .modal-window .modal-content .freq-header {
+ margin-bottom: 2px;
+}
+.equalizer-panel .modal-window .modal-content .reset-button {
+ width: 50%;
+ margin-left: 25%;
+ text-align: center;
+}
+.equalizer-panel .modal-window .modal-content input.eq-slider {
+ -webkit-appearance: slider-vertical;
+ width: 5%;
+}
+.equalizer-panel .modal-window .modal-content input[type="number"] {
+ padding: unset;
+ width: 55px;
+}
+.equalizer-panel .modal-window .modal-content .header input.eq-slider {
+ -webkit-appearance: slider-vertical;
+ width: 5%;
+ opacity: 0;
+}
+.equalizer-panel .modal-window .modal-lowercontent {
+ padding: 16px;
+ background-color: var(--modalBackground);
+}
+body[platform='darwin'] #window-controls-container {
+ display: none;
+}
+body[platform='darwin'] .app-chrome .app-chrome-item > .app-mainmenu {
+ opacity: 0;
+ pointer-events: none;
+ -webkit-app-region: drag;
+}
+.percent {
+ display: inline-block;
+ position: relative;
+}
+.percent::after {
+ position: relative;
+ right: 2em;
+ transition: all 0.05s ease-in-out;
+}
+.percent:hover::after,
+.percent:focus-within::after {
+ right: 3.5em;
+}
+.percent::after {
+ content: '%';
+}
+.spatialproperties-panel.modal-fullscreen {
+ flex-direction: column;
+}
+.cursor {
+ background: rgba(255, 255, 255, 0.5);
+ width: 16px;
+ height: 16px;
+ position: fixed;
+ z-index: 9999999999;
+ pointer-events: none;
+ border-radius: 100%;
+ box-shadow: 0px 0px 0px 2px #c8c8c8;
+ top: 0;
+ left: 0;
+ display: none;
+}
+body[platform="darwin"] html {
+ background: transparent!important;
+}
+body[platform="darwin"].notransparency::before {
+ display: none;
+}
+body[platform="darwin"] #app.simplebg {
+ background: transparent;
+}
+body[platform="darwin"] #app::before {
+ display: none;
+}
+body[platform="linux"] #window-controls-container {
+ display: none;
+}
+#app.compact .content-inner {
+ zoom: 0.95;
+}
+#app.compact .app-sidebar-content {
+ padding: 0px;
+}
+#app.compact .app-sidebar-content .app-sidebar-header-text {
+ padding: 6px 10px;
+ margin: 0px;
+}
+#app.compact .app-sidebar-content .app-sidebar-item {
+ display: flex;
+ width: 100%;
+ padding: 8px 12px;
+ font-size: 13px;
+ margin: 0px;
+ border: 1px solid transparent;
+ border-radius: 0px;
+ transition: unset;
+ transform: unset;
+}
+#app.compact .app-sidebar-content .app-sidebar-item:active {
+ background: var(--selected-click);
+}
+#app.compact .app-sidebar-content .app-sidebar-item::after {
+ display: none;
+}
+#app.compact .app-sidebar-content .app-sidebar-item.active {
+ background: var(--keyColor-disabled);
+}
+#app.compact .app-sidebar-content .sidebar-icon {
+ width: 14px;
+ height: 16px;
+ margin-right: 8px;
+}
+#app.compact .app-sidebar-content .folder-body {
+ border-radius: 0px;
+ padding: 0px;
+}
+@media (max-width: 951px) {
+ #app.compact #app-content {
+ zoom: 0.8;
+ }
+}
+@media (max-width: 951px) {
+ #app-content {
+ zoom: 0.8;
+ }
+}
+#app.twopanel {
+ --chromeHeight1: 42px;
+ --chromeHeight2: 76px;
+ --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2));
+}
+#app.twopanel .app-chrome {
+ height: var(--chromeHeight1);
+}
+#app.twopanel .app-chrome .app-mainmenu {
+ margin-left: 10px;
+ width: 88px;
+}
+#app.twopanel .app-chrome.chrome-bottom {
+ height: var(--chromeHeight2);
+ box-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25);
+ z-index: 1;
+}
+#app.twopanel .app-sidebar-footer--controls {
+ display: none !important;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-playback-controls .actions {
+ align-self: center;
+}
+#app.twopanel .app-chrome.chrome-bottom .playback-button.play,
+#app.twopanel .app-chrome.chrome-bottom .playback-button.pause {
+ width: 42px;
+ height: 42px;
+ background-color: rgba(200, 200, 200, 0.2);
+ border-radius: 50%;
+ margin: 6px;
+ box-shadow: 0px 0px 0px 2px var(--keyColor);
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center {
+ display: flex;
+ flex-direction: column;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-controls {
+ display: flex;
+ z-index: 1;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration {
+ position: relative;
+ width: 80%;
+ -webkit-app-region: no-drag;
+ height: 16px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress {
+ height: 16px;
+ position: absolute;
+ bottom: 4px;
+ left: 0px;
+ right: 4px;
+ background: transparent;
+ z-index: 0;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress .song-duration {
+ display: flex;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress .song-duration p {
+ font-weight: 400;
+ font-size: 10px;
+ height: 1.2em;
+ line-height: 1.3em;
+ overflow: hidden;
+ margin: 0 0 0 0.25em;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress:hover > input[type=range]::-webkit-slider-thumb {
+ opacity: 1;
+ transform: scale(1);
+ z-index: 1;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress input[type=range] {
+ appearance: none;
+ width: 100%;
+ height: 4px;
+ background-color: rgba(200, 200, 200, 0.1);
+ border-radius: 2px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress input[type=range]::-webkit-slider-thumb {
+ opacity: 0;
+ transform: scale(0.5);
+ -webkit-appearance: none;
+ appearance: none;
+ width: 12px;
+ height: 12px;
+ border-radius: 100%;
+ background: var(--keyColor);
+ cursor: default;
+ transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase);
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left {
+ width: 30%;
+ justify-content: flex-start;
+ align-items: flex-start;
+ flex: 0 0 auto;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls {
+ width: 100%;
+ height: 100%;
+ max-width: 100%;
+ border: 0px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .artwork {
+ width: var(--chromeHeight2);
+ height: var(--chromeHeight2);
+ margin: 0px 6px 0px 0px;
+ box-shadow: unset;
+ border: 0px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .artwork .mediaitem-artwork,
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .artwork img {
+ border-radius: 0px;
+ box-shadow: unset;
+ border: 0px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info {
+ align-items: flex-start;
+ margin: 6px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .song-name {
+ text-align: left;
+ font-size: 15px;
+ font-weight: initial;
+ width: 100%;
+ -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%);
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .song-artist-album {
+ width: 100%;
+ -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%);
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .audio-type {
+ margin: 0px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .song-artist-album-content {
+ text-align: left;
+ font-size: 12px;
+}
+#app.twopanel .app-chrome.chrome-bottom .app-chrome--right {
+ width: 30%;
+ flex: 0 0 auto;
+}
+#app.twopanel .collection-page .top-fab {
+ bottom: 96px;
+}
diff --git a/src/renderer/style.less b/src/renderer/style.less
index 4b88be9c..1ad5ba32 100644
--- a/src/renderer/style.less
+++ b/src/renderer/style.less
@@ -4,9 +4,14 @@
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+HK:wght@100;300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap");
+@import url("less/bootstrap-vue.min.css");
@import url("less/ameframework.less");
+@import url("less/codicon.css");
@import url("less/bootstrap.less");
@import url("less/notyf.less");
+@import url("less/elements.less");
+@import url("less/helpers.less");
+@import url("less/pages.less");
:root {
--appleEase: cubic-bezier(0.42, 0, 0.58, 1);
@@ -17,7 +22,9 @@
--mediaItemRadius: 6px;
--mediaItemRadiusRound: 100%;
--contentInnerPadding: 16px;
- --navbarHeight: 48px;
+ --navbarHeight1: 48px;
+ --navbarHeight2: 0px;
+ --navbarHeight: calc(var(--navbarHeight1) + var(--navbarHeight2));
--selected: rgb(130 130 130 / 30%);
--selected-click: rgb(80 80 80 / 30%);
--hover: rgb(200 200 200 / 10%);
@@ -32,7 +39,14 @@
--keyColor-disabled: rgba(250, 88, 106, 0.35);
--navigationBarHeight: 38px;
--modalBackground: #262626;
+ --songProgressColor: var(--keyColor);
+ --songProgressBackground: #333;
--textColor: #eee;
+ --replayGradient: linear-gradient(45deg, hsl(248deg 58% 29%), hsl(13deg 41% 42%));
+}
+
+*:focus-visible {
+ outline:2px solid var(--keyColor);
}
html,
@@ -68,6 +82,14 @@ body[loading] {
}
}
+body.stopanimation * {
+ animation: unset !important;
+
+ .loadbar-sound {
+ display: none;
+ }
+}
+
body.notransparency::before {
content: "";
position: absolute;
@@ -79,14 +101,6 @@ body.notransparency::before {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
}
-body.stopanimation * {
- animation: unset !important;
-
- .loadbar-sound {
- display: none;
- }
-}
-
*,
*:before,
*:after {
@@ -128,16 +142,18 @@ body.stopanimation * {
}
#app {
- --color1: rgba(30, 30, 30, 30%);
- --color2: rgba(15, 15, 15, 30%);
+ --color1: rgba(15, 15, 15, 30%);
+ --color2: rgba(30, 30, 30, 50%);
--bgColor: transparent;
--bgWidth: 0px;
--bgHeight: 0px;
- --chromeHeight: 55px;
+ --chromeHeight1: 55px;
+ --chromeHeight2: 0px;
+ --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2));
width: 100%;
height: 100%;
background: var(--color1);
- color: white;
+ color: var(--textColor);
user-select: none;
margin: 0 auto;
position: relative;
@@ -163,21 +179,6 @@ body.stopanimation * {
z-index: 1;
}
}
-
- //&::before {
- // position: absolute;
- // top: -50%;
- // left: -50%;
- // width: var(--bgWidth);
- // height: var(--bgHeight);
- // background-image: var(--bgColor);
- // content: "";
- // z-index: -1;
- // transform: rotateZ(0deg);
- // transform-origin: center;
- // animation: bgRotate 10s linear infinite;
- // filter: brightness(100%) saturate(200%) contrast(1.5);
- //}
}
.bgGradientMaterial-base {
@@ -352,11 +353,6 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
padding: 0px;
}
-.md-btn {
- font-family: inherit;
- font-size: 14px;
-}
-
#app-main {
display: flex;
width: 100%;
@@ -400,24 +396,6 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
position: relative;
}
-.content-inner {
- position: absolute;
- top: var(--navigationBarHeight);
- left: 0;
- padding: 32px;
- width: 100%;
- transition: zoom 1s;
- zoom: 1;
-}
-
-.content-inner.centered {
- height: 100%;
- display: flex;
- flex-flow: column;
- justify-content: center;
- align-items: center;
-}
-
.app-drawer {
width: 300px;
flex: 0 0 auto;
@@ -580,14 +558,14 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
.app-sidebar-notification {
text-align: center;
font-size: 12px;
- min-height: 60px;
+ min-height: 36px;
display: flex;
justify-content: center;
align-items: center;
border-top: 1px solid rgb(200 200 200 / 15%);
background: rgb(0 0 0 / 15%);
flex-direction: column;
- padding: 20px 0px;
+ padding: 10px 0px;
&.libraryNotification {
flex-direction: row;
@@ -663,6 +641,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
.usermenu-container {
top: 0px;
+ z-index: 200001 !important;
#cmenu.container();
.usermenu-body {
@@ -799,38 +778,49 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
font-weight: 400;
font-family: inherit;
font-size: 14px;
- margin: 6px 0px;
+ margin: 3px 0px;
border: 1px solid transparent;
border-radius: 6px;
background: transparent;
color: #eee;
- transition: transform .1s;
+ transition: transform 0.1s;
text-align: left;
&.app-sidebar-item-playlist {
-webkit-user-drag: element;
overflow: hidden;
text-overflow: ellipsis;
+
+ .presentNotice {
+ align-self: center;
+ margin-left: 8px;
+ text-transform: uppercase;
+ font-size: 0.7em;
+ opacity: 0.6;
+ }
}
+
}
.app-sidebar-item:hover {
- border: 1px solid rgb(200 200 200 / 5%);
- background: rgb(200 200 200 / 15%);
+ border: 1px solid rgb(200 200 200 / 0%);
+ background: rgb(180 180 180 / 15%);
+ // cursor: pointer;
}
.app-sidebar-item:active {
- border: 1px solid rgb(200 200 200 / 5%);
- background: rgb(200 200 200 / 15%);
- transform: scale(0.98);
+ border: 1px solid rgb(200 200 200 / 0%);
+ background: rgb(150 150 150 / 15%);
+ // transform: scale(0.98);
transition: transform 0s;
}
.app-sidebar-item.active {
- border: 1px solid rgb(200 200 200 / 5%);
+ border: 1px solid rgb(200 200 200 / 0%);
background: rgb(200 200 200 / 15%);
transform: scale(1);
transition: transform 0s;
+ cursor: default;
}
.app-sidebar-item.active::after {
@@ -843,12 +833,23 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
border-radius: 10px;
left: 0px;
background: var(--keyColor);
+ animation: expandIndicator .2s cubic-bezier(0.25, 1, 0.5, 1);
+
+ @keyframes expandIndicator {
+ 0% {
+ transform: scaleY(0);
+ }
+
+ 100% {
+ transform: scaleY(1);
+ }
+ }
}
.app-chrome {
background: var(--color1);
width: 100%;
- height: var(--chromeHeight);
+ height: var(--chromeHeight1);
display: flex;
flex-direction: row;
-webkit-app-region: drag;
@@ -880,7 +881,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
}
.app-chrome .app-chrome--center {
- width: 100%;
+ width: 40%;
}
.app-chrome .app-chrome--right {
@@ -1073,41 +1074,19 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
}
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minimize {
- height: 12px;
- width: 12px;
- background-color: rgb(255, 92, 92);
- border-radius: 50%;
- display: inline-block;
- margin: auto 4px;
- color: rgb(130, 0, 5);
- -webkit-app-region: no-drag;
- background-image: unset;
+ display: none;
}
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls {
- width: 67px;
+ display: none;
}
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minmax {
- height: 12px;
- width: 12px;
- background-color: rgb(255, 189, 76);
- border-radius: 50%;
- display: inline-block;
- margin: auto 4px;
- -webkit-app-region: no-drag;
- background-image: unset;
+ display: none;
}
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.close {
- height: 12px;
- width: 12px;
- background-color: rgb(0, 202, 86);
- border-radius: 50%;
- display: inline-block;
- margin: auto 4px auto 4px;
- -webkit-app-region: no-drag;
- background-image: unset;
+ display: none;
}
.app-chrome .app-chrome-item.playback-controls {
@@ -1117,6 +1096,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
max-width: 500px;
border-left: 1px solid rgb(200 200 200 / 8%);
border-right: 1px solid rgb(200 200 200 / 8%);
+ -webkit-app-region: drag;
}
.app-chrome .app-chrome-item > .app-playback-controls {
@@ -1124,6 +1104,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
justify-content: center;
align-content: center;
width: 100%;
+ -webkit-app-region: no-drag;
}
.app-chrome .app-chrome-item > .app-playback-controls {
@@ -1252,6 +1233,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
height: 4px;
background-color: rgb(200 200 200 / 10%);
border-radius: 2px;
+ margin: 0;
&::-webkit-slider-thumb {
opacity: 0;
@@ -1296,7 +1278,6 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
border-radius: 4px;
flex: 0 0 auto;
margin: 6px;
- box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 25%);
image-rendering: -webkit-optimize-contrast;
}
@@ -1477,450 +1458,17 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
}
}
-.header-text {
- margin: 0px;
-}
-
-.media-item--small {
- background: rgb(0 0 0 / 25%);
- height: 162px;
- width: 132px;
- display: inline-flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- border-radius: 10px;
-}
-
-.media-item--small .artwork {
- background: red;
- margin: 6px;
- border-radius: 100%;
- width: 90px;
- height: 90px;
- box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 30%);
-}
-
-.playlist-artwork {
- height: 190px;
- width: 190px;
- background: blue;
- border-radius: 6px;
- background: var(--artwork);
- background-size: cover;
- box-shadow: var(--mediaItemShadow);
- flex: 0 0 auto;
- margin: 6px;
- margin-top: 0px;
-}
-
-.media-item--small .text {
- font-weight: 600;
- font-size: 0.90em;
-}
-
-.media-item--small .subtext {
- font-size: 0.75em;
-}
-
-.player-duration-time {
- opacity: 0.5;
-}
-
-.player-artwork-container {
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.player-duration-container {
- font-size: 0.85em;
- font-weight: 500;
-}
-
-.media-artwork {
- --artwork: url("");
- width: 80vw;
- height: 80vw;
- max-height: 500px;
- max-width: 500px;
- background: black;
- background-image: var(--artwork);
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
- border-radius: 8px;
- box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55);
- transition: transform .10s var(--appleEase);
-}
-
-.media-artwork.paused {
- transition: transform .35s var(--appleEase);
- transform: scale(0.85);
-}
-
-.playback-slider {
- width: 90%;
-}
-
-.volume-slider {
- width: 100%;
-}
-
-.volume-slider-container {
- width: 90%;
- margin: 0 auto;
- padding: 0px;
-}
-
-.volume-slider-container .col-auto,
-.volume-slider-container .col {
- display: flex;
- align-items: center;
- justify-self: center;
- padding: 0px;
- margin: 0px;
-}
-
-.playback-button {
- font-size: 2em;
- width: 40px;
- height: 36px;
- padding: 0px;
- background: transparent;
- border: 0px;
- border-radius: 0px;
- box-shadow: unset;
- background-size: 12px;
- background-position: center;
- background-repeat: no-repeat;
- opacity: 0.70;
- border-radius: 6px;
-}
-
-.playback-button:active {
- transform: scale(0.95);
-}
-
-.playback-button--small {
- border-radius: 6px;
- font-size: 1em;
- color: inherit;
- background-size: 14px;
- background-repeat: no-repeat;
- background-position: center;
- background-color: transparent;
- width: 40px;
- height: 32px;
- border: 0px;
- box-shadow: unset;
- opacity: 0.70;
-}
-
-.playback-button:hover,
-.playback-button--small:hover {
- background-color: rgb(200 200 200 / 10%);
-}
-
-.playback-button:active,
-.playback-button--small:active {
- transform: scale(0.9);
-}
-
-.playback-button--small.active {
- background-color: rgb(200 200 200 / 25%);
-}
-
-.playback-button--small.search {
- background-image: url("./assets/search.svg");
-}
-
-.playback-button--small.cast {
- background-image: url("./assets/cast_white.svg");
-}
-
-.playback-button--small.miniplayer {
- background-image: url("./assets/pip.svg");
-}
-
-.playback-button--small.queue {
- background-image: url("./assets/list.svg");
-}
-
-.playback-button--small.lyrics {
- background-image: url("./assets/quote-right.svg");
-}
-
-.playback-button--small.shuffle {
- background-image: url("./assets/shuffle.svg");
-}
-
-.playback-button--small.repeat {
- background-image: url("./assets/repeat.svg");
-}
-
-.playback-button--small.repeat.repeatOne {
- background-color: rgb(200 200 200 / 25%);
- background-image: url("./assets/repeatOne.svg");
-}
-
-.playback-button.pause {
- background-image: url('./assets/pause.svg');
-}
-
-.playback-button.play {
- background-image: url('./assets/play.svg');
-}
-
-.playback-button.next {
- background-image: url('./assets/forward.svg');
-}
-
-.playback-button.previous {
- background-image: url('./assets/backward.svg');
-}
-
-.playback-buttons {
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.player-volume-glyph {
- width: 32px;
- height: 16px;
- background-repeat: no-repeat;
- background-size: contain;
- background-position: center;
-}
-
-.player-volume-glyph.decrease {
- background-image: url("./assets/volume.svg");
- opacity: 0.5;
-}
-
-.player-volume-glyph.increase {
- background-image: url("./assets/volume-2.svg");
- opacity: 0.5;
-}
-
-.player-track-info {
- width: 90%;
- margin: 0 auto;
-}
-
-.player-song-title {
- font-size: 1.25em;
- text-align: left;
- margin: 0 auto;
- font-weight: 500;
-}
-
-.player-song-artist {
- font-size: 1.0em;
- text-align: left;
- margin: 0 auto;
- color: var(--keyColor);
- font-weight: 400;
-}
-
-.player-song-artist:hover {
- cursor: pointer;
- text-decoration: underline;
-}
-
-.player-more-container {
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.player-more-button {
- appearance: none;
- width: 32px;
- height: 32px;
- border-radius: 50%;
- border: 0px;
- background: var(--keyColor);
- cursor: pointer;
- box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%);
- color: white;
- font-weight: bold;
- padding: 0px;
- font-size: 16px;
-}
-
-.back-button {
- width: 40px;
- height: 40px;
- background-color: transparent;
- background-size: 16px;
- background-position: center;
- background-repeat: no-repeat;
- background-image: url("./assets/arrow-left.svg");
- border: 0px;
- border-radius: 0px;
-}
-
-.header-text {
- height: 40px;
- display: flex;
- align-items: center;
-
-}
-
-
.flex-center {
display: flex;
align-items: center;
flex-wrap: wrap;
}
-.list-entry-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 12px;
- font-size: 1em;
- font-family: inherit;
-}
-
-.list-entry {
- display: flex;
- align-items: center;
- /* justify-content: space-between; */
- padding: 12px;
- font-size: 1em;
- font-family: inherit;
- border-bottom: 1px solid rgba(255 255 255 / 0.1);
- cursor: pointer;
-}
-
-.list-entry-image {
- --artwork: url("");
- width: 64px;
- height: 64px;
- background: var(--artwork);
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
- border-radius: 8px;
- box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55);
-}
-
-.list-entry-image.artist {
- border-radius: 50%;
-}
-
-.list-entry-body {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: flex-start;
- margin-left: 12px;
-}
-
-.list-entry-name {
- font-size: 14px;
- font-weight: 500;
- overflow: hidden;
- width: 100%;
-}
-
-.list-entry-artist {
- font-size: 12px;
- overflow: hidden;
- width: 100%;
-}
-
-.list-entry .handle {
- height: 100%;
- width: 28px;
- background: var(--keyColor);
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
.md-container {
width: 100%;
position: relative;
}
-.search-panel {
- background: rgb(0 0 0 / 50%);
-}
-
-.search-header {
- position: absolute;
- width: 100%;
- z-index: 1;
- backdrop-filter: blur(16px);
- -webkit-backdrop-filter: blur(16px);
- border-bottom: 1px solid rgb(200 200 200 / 8%);
-}
-
-.connection-error-panel {
- background: rgb(0 0 0 / 50%);
-}
-
-.search-type-container {
- display: flex;
-}
-
-.search-type-button {
- background: rgb(20 20 20 / 0.85);
- border-radius: 50px;
- color: white;
- border: 0px;
- box-shadow: unset;
- font-family: inherit;
- padding: 8px 16px;
- font-size: 14px;
- font-weight: 500;
- margin: 8px;
- margin-top: 0px;
- margin-bottom: 0px;
-}
-
-.search-type-button.active {
- background: var(--keyColor);
-}
-
-.search-tab-container {
- overflow: auto;
- white-space: nowrap;
- overflow-y: hidden;
-}
-
-.search-body-container {
- position: relative;
- width: 100%;
- height: 100%;
-}
-
-.search-body {
- position: absolute;
- width: 100%;
- height: 100%;
- padding-top: 220px;
-}
-
-.search-tab {
- background: rgb(20 20 20 / 0.85);
- border-radius: 50px;
- color: white;
- border: 0px;
- box-shadow: unset;
- font-family: inherit;
- padding: 8px 16px;
- font-size: 14px;
- font-weight: 500;
-}
-
-.search-tab.active {
- background: var(--keyColor);
-}
.lyric-body {
-webkit-mask-image: -webkit-gradient(linear, left 95%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));
@@ -2001,6 +1549,14 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
filter: none !important;
}
+
+.lyric-body:hover > .lyric-line:not(.active) {
+ filter: none !important;
+}
+.lyric-body > .lyric-line:not(.active) {
+ transition: filter var(--appleEase) 0.5s ease;
+}
+
.lyricWaiting {
margin-top: 8px;
display: none;
@@ -2110,66 +1666,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
height: 100%;
}
-.home-page {
- top: 0;
- padding-top: var(--navbarHeight);
-
- .artist-feed-card {
- position: absolute;
- bottom: 0;
- left: 10%;
- z-index: 1;
- background: black;
- width: 80%;
- height: 96%;
- overflow: scroll;
- border-radius: 10px;
- }
-
- .col.madeforyou-col {
- width: 420px;
- min-width: 0px;
- max-width: 420px;
- }
-
- .well.artistfeed-well {
- margin-top: 0px;
- height: 392px;
- align-content: flex-start;
- }
-
- .hint-text {
- font-size: 0.9rem;
- color: rgb(200 200 200 / 70%);
- }
-
- .user-icon {
- border-radius: 100%;
- width: 128px;
- height: 128px;
- overflow: hidden;
- box-shadow: var(--mediaItemShadow-Shadow);
- margin: 16px;
- }
-
- .well.profile-well {
- flex-direction: column;
- justify-content: center;
- align-items: center;
-
- .name {
- margin: 4px;
- font-weight: 500;
- }
-
- .handle {
- margin: 4px;
- opacity: 0.7;
- font-weight: 500;
- }
- }
-}
-
/* Cider */
.more-btn-round {
@@ -2234,159 +1730,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
}
}
-.md-close-btn {
- -webkit-mask-image: url("ameres://icons/webui/close.svg");
- -webkit-mask-repeat: no-repeat;
- -webkit-mask-position: center;
- background-color: white;
- opacity: 0.75;
- -webkit-mask-size: contain;
- height: 18px;
- width: 18px;
-}
-
-.md-btn {
- background: rgb(100 100 100 / 25%);
- padding: 8px 14px;
- border-radius: 6px;
- font-size: 14px;
- border: 1px solid rgba(100, 100, 100, 0.35);
- border-top: 1px solid rgba(100, 100, 100, 0.5);
- color: #eee;
- white-space: nowrap;
- transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase);
-
- &.md-btn-block {
- display: block;
- width: 100%;
- }
-
- &.md-btn-glyph {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- }
-
- &.md-btn-primary {
- background: #ff2b52a6;
- color: white;
- border: 1px solid rgb(220 53 69 / 25%);
- border-top: 1px solid rgb(220 53 69 / 50%);
- }
-
- &.md-btn-small {
- padding: 6px 8px;
- font-size: 13px;
- }
-
- &:hover {
- filter: brightness(125%);
- }
-
- &:active {
- filter: brightness(75%);
- transform: scale(0.98);
- transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
- }
-
- &.md-btn-icon {
- display: inline-flex;
- vertical-align: middle;
- justify-content: center;
-
- > img {
- margin: 0px 16px 0px 0px;
- pointer-events: none;
- }
-
- > .md-btn-text {
- margin: 0px;
- }
- }
-}
-
-.btn-group {
- display:inline-flex;
- justify-content: center;
- align-items: center;
- > .md-btn {
- border-radius:0px;
- width:100%;
- }
- > .md-btn:first-child {
- border-top-left-radius: 6px;
- border-bottom-left-radius: 6px;
- }
- > .md-btn:last-child {
- border-top-right-radius: 6px;
- border-bottom-right-radius: 6px;
- }
- > .md-btn:not(:first-child):not(:last-child) {
- border-radius: 0px;
- }
-}
-
-.md-ico-play {
- content: url("./assets/play.svg");
- width: 10px;
- height: 12px;
- margin-right: 1px;
- align-self: center;
-}
-
-.md-ico-shuffle {
- content: url("./assets/shuffle.svg");
- width: 1em;
- height: 1em;
- margin-right: 1px;
- margin-bottom: -2px;
- align-self: center;
-}
-
-.md-ico-remove {
- content: url("./assets/feather/x-circle-white.svg");
- width: 16px;
- height: 16px;
- margin-right: 1px;
- margin-bottom: -1.5px;
- align-self: center;
-}
-
-.md-ico-add {
- content: url("./assets/feather/plus-circle-white.svg");
- width: 1em;
- height: 1em;
- margin-right: 1px;
- margin-bottom: -1.5px;
- align-self: center;
-}
-
-.md-select {
- padding: 6px;
- border-radius: 6px;
- border: 1px solid rgba(200, 200, 200, 0.1);
- border-top: 1px solid rgba(100, 100, 100, 0.5);
- font-family: inherit;
- font-size: 14px;
- background: rgba(100, 100, 100, 0.25);
- color: #eee;
-
- option {
- font-size: 1em;
- font-family: inherit;
- padding: 8px 16px;
- background: #404040;
- }
-
- optgroup {
- background: #2c2c2c;
- }
-
- &:focus {
- outline: solid 1px var(--selected);
- }
-}
.sidebar-playlist {
.folder-button-active {
@@ -2407,254 +1750,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
}
}
-.modal-fullscreen {
- display: flex;
- justify-content: center;
- align-items: center;
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background: rgba(0, 0, 0, 0.3);
- z-index: 1000;
-
- .modal-window {
- background: #333;
- border-radius: 10px;
- box-shadow: var(--mediaItemShadow-Shadow);
- display: flex;
- flex-flow: column;
- max-height: 500px;
- max-width: 360px;
- background: #121212;
- width: 100%;
- position: relative;
-
- &:after {
- content: "";
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- pointer-events: none;
- box-shadow: var(--mediaItemShadow);
- z-index: 1;
- border-radius: inherit;
- }
-
- .modal-header {
- width: 100%;
- padding: 6px;
- }
-
- .modal-content {
- width: 100%;
- height: 100%;
- overflow: hidden;
- overflow-y: overlay;
- }
-
- .modal-footer {
- }
- }
-}
-
-.spatialproperties-panel {
- .modal-window {
- height: 700px;
- max-height: 700px;
- width: 800px;
- max-width: 800px;
- overflow: hidden;
-
- .info-header {
- padding-left: 12px;
- }
-
- .visual-container {
- display: flex;
- justify-content: center;
- align-items: center;
- overflow: hidden;
- }
-
- .visual {
- position: relative;
- height: 250px;
- width: 300px;
- display: inline-flex;
- align-items: flex-end;
- justify-content: center;
- filter: drop-shadow(2px 12px 6px rgb(0 0 0 / 25%));
- margin: 0 auto;
-
- .face {
- position: absolute;
- width: calc(12px * 6);
- height: calc(12px * 6);
- border-radius: 6px;
- transform: rotateX(60deg) rotateZ(-45deg);
- transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
- }
-
- .listener {
- position: absolute;
- width: 32px;
- height: 32px;
- border-radius: 6px;
- transform: rotateX(60deg) rotateZ(-45deg);
- transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
- background: white;
- color: black;
- z-index: 2;
- }
-
- .audiosource {
- position: absolute;
- width: 32px;
- height: 32px;
- border-radius: 6px;
- transform: rotateX(60deg) rotateZ(-45deg);
- transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear;
- background: yellow;
- z-index: 2;
- }
-
- .face:nth-of-type(1) {
- background: linear-gradient(45deg, #28223a, #1f2038);
- z-index: 1;
- }
-
- .face:nth-of-type(2) {
- background: linear-gradient(45deg, #7d53ad, #5763ff);
- transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px);
- opacity: 0.7;
- z-index: 3;
- }
- }
-
- .modal-header {
- padding: 16px;
- position: relative;
- overflow: hidden;
-
- .modal-title {
- text-align: center;
- }
-
- .close-btn {
- width: 50px;
- height: 100%;
- background-image: var(--gfx-closeBtn);
- background-position: center;
- background-repeat: no-repeat;
- -webkit-app-region: no-drag;
- appearance: none;
- border: 0;
- background-color: transparent;
- position: absolute;
- top: 0;
- right: 0;
-
- &:hover {
- background-color: rgb(196, 43, 28)
- }
- }
- }
- }
-}
-
-.addtoplaylist-panel {
- .modal-window {
- max-height: 600px;
- max-width: 400px;
- background: rgb(18 18 18 / 90%);
- overflow: hidden;
- backdrop-filter: blur(16px) saturate(180%);
-
- .modal-header {
- padding: 16px;
- position: relative;
-
- .modal-title {
- text-align: center;
- }
-
- .close-btn {
- width: 50px;
- height: 100%;
- background-image: var(--gfx-closeBtn);
- background-position: center;
- background-repeat: no-repeat;
- -webkit-app-region: no-drag;
- appearance: none;
- border: 0;
- background-color: transparent;
- position: absolute;
- top: 0;
- right: 0;
-
- &:hover {
- background-color: rgb(196, 43, 28)
- }
- }
- }
-
- .modal-search {
- width: 100%;
- padding: 0px 16px;
- position: relative;
- }
-
- .playlist-item {
- appearance: none;
- border: 0px;
- text-align: left;
- width: 100%;
- margin: 0;
- display: flex;
- background: rgba(32, 32, 32, 0.46);
- color: #eee;
- font-family: inherit;
- font-size: 0.98em;
- padding: 6px 12px;
- align-items: center;
- flex-flow: row;
-
- .icon {
- pointer-events: none;
- width: 32px;
- height: 32px;
- display: flex;
- justify-content: center;
- align-items: center;
- margin-right: 6px;
- }
-
- .name {
- }
-
- &:hover {
- background: var(--selected);
- }
-
- &:active {
- background: var(--selected-click);
- }
-
- &.focused {
- background: var(--keyColor);
- }
- }
-
- .playlist-item:last-child {
- border-bottom: 0px;
- }
- }
-}
-
#navigation-bar {
width: 100%;
background: rgba(0, 0, 0, 0.25);
@@ -2706,775 +1801,34 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
}
}
-.reload-btn {
- background: rgb(86 86 86 / 52%);
- border-radius: 100%;
- width: 32px;
- height: 32px;
- border: 0px;
- appearance: none;
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
-.reload-btn:hover {
- background: rgb(86 86 86 / 80%);
- cursor: pointer;
-}
-
-.reload-btn > svg {
- height: 50%;
- color: #eee;
-}
-
-.wr-btn {
- font-family: inherit;
- appearance: none;
- border: 0px;
- border-radius: 6px;
- padding: 8px;
- font-weight: 600;
- background: rgb(80 80 80 / 70%);
- color: white;
-}
-
.well {
background: rgba(200, 200, 200, 0.05);
border-radius: 10px;
padding: var(--contentInnerPadding);
box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
margin-top: 16px;
- display: flex;
- flex-flow: wrap;
- justify-content: center;
- > .cd-mediaitem-square {
- width: 220px;
- height: 260px;
- display: inline-flex;
- flex: 0 0 auto;
- flex-direction: column;
- font-size: 14px;
+
+ &.itemContainer {
+ display: flex;
+ flex-flow: wrap;
justify-content: center;
- align-items: center;
- border-radius: 6px;
- max-width: 240px;
- flex-grow: 1;
- }
-}
-
-// Library - Songs page
-.library-page {
- padding: 0px;
-
- .library-header {
- position: sticky;
- top: 0;
- left: 0;
- border-bottom: 1px solid rgba(200, 200, 200, 0.05);
- z-index: 6;
- background: black;
- padding: 0px 2em;
- backdrop-filter: blur(32px);
- background: rgba(0, 0, 0, 0.25);
- top: var(--navigationBarHeight);
- }
-
- .well {
- margin: 2em;
- }
-}
-
-// Podcast Page
-.content-inner.podcasts-page {
- display: flex;
- height: calc(100% - var(--navigationBarHeight));
- padding: 0px;
-
- .list-flat {
- border-radius: 0px;
- }
-
- .podcast-artwork {
- width: 200px;
- margin: 16px auto;
- height: 200px;
- }
-
- .podcasts-list {
- height: 100%;
- width: 280px;
- background: rgb(200 200 200 / 10%);
- overflow-y: overlay;
- border-right: 1px solid var(--color2);
- flex: none;
- overflow-x: hidden;
-
- .podcast-list-header {
- border-bottom: 1px solid var(--color2);
- font-size: 0.7em;
- padding: 6px;
- background: #ffffff17;
- text-transform: uppercase;
- font-weight: 600;
- opacity: 0.5;
- }
-
- .podcasts-search {
- padding: 10px;
- position: sticky;
- top: 0;
- left: 0;
- width: 100%;
- border-bottom: 1px solid var(--color2);
- z-index: 2;
- background: #303030;
- }
- }
-
- .episodes-list {
- height: 100%;
- width: 100%;
- background: rgb(200 200 200 / 6%);
- overflow-y: overlay;
- overflow-x: hidden;
-
- .episodes-inline-info {
- padding: 14px 14px 0px 14px;
-
- .podcast-show-info {
- display: flex;
- justify-content: center;
- flex-direction: column;
- }
-
- .podcast-show-description {
- margin: 32px 6px;
- font-size: 0.8rem;
- white-space: pre-wrap;
- display: block;
- }
-
- .podcast-artwork {
- width: 120px;
- margin: 0px auto;
- height: 120px;
- }
- }
-
- .podcast-no-search-results {
- text-align: center;
- margin-top: 40px;
- }
- }
-
- .podcasts-details {
- width: 300px;
- flex: none;
- background: rgb(255 255 255 / 5%);
- overflow-y: overlay;
- overflow-x: hidden;
- top: 2%;
- z-index: 2;
- border-left: 1px solid var(--color2);
- padding-bottom: 1em;
-
- .meta-btn {
- font-size: 0.75em;
- }
-
- .podcasts-details-header {
- display: flex;
- justify-content: end;
- align-items: center;
- position: sticky;
- top: 0;
- z-index: 2;
- }
-
- .close-btn {
- width: 50px;
- height: 42px;
- background-image: var(--gfx-closeBtn);
- background-position: center;
- background-repeat: no-repeat;
- -webkit-app-region: no-drag;
- appearance: none;
- border: 0;
- background-color: transparent;
- position: absolute;
- top: 0;
- right: 0;
-
- &:hover {
- background-color: rgb(196, 43, 28)
- }
- }
-
- .podcast-genre {
- text-align: center;
- margin: 6px;
- font-size: 0.8em;
- font-weight: 500;
- opacity: 0.8;
- }
-
- .podcast-metainfo {
- text-align: center;
- font-size: 0.7em;
- opacity: 0.8;
- }
-
- .podcast-header {
- text-align: center;
- }
-
- .podcast-play-btn {
- width: 50%;
- display: block;
- margin: 0 auto;
- }
-
- .podcast-description {
- margin: 12px;
- font-size: 0.75em;
- white-space: pre-wrap;
- display: block;
- line-break: anywhere;
- }
-
-
- }
-
-}
-
-@media only screen and (max-width: 1230px) {
- .content-inner.podcasts-page {
- .podcasts-details {
- height: 96%;
- width: 300px;
- flex: none;
- background: rgb(20 20 20 / 97%);
- overflow-y: overlay;
- overflow-x: hidden;
- position: absolute;
- right: 2%;
- top: 2%;
- border-radius: 10px;
- box-shadow: var(--ciderShadow-Generic);
- z-index: 2;
- }
- }
-}
-
-/* Album / Playlist Page */
-.playlist-page {
- --bgColor: transparent;
- padding: 0px;
- //background: linear-gradient(180deg, var(--bgColor) 32px, var(--bgColor) 18px, transparent 60px, transparent 100%);
- top: 0;
- padding-top: var(--navigationBarHeight);
-
- .playlist-body {
- padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
- margin-top: -75px;
- }
-
- .floating-header {
- position: sticky;
- top: 0;
- left: 0;
- border-bottom: 1px solid rgba(200, 200, 200, 0.05);
- z-index: 6;
- padding: 0px 1em;
- backdrop-filter: blur(32px);
- background: rgba(0, 0, 0, 0.25);
- top: var(--navigationBarHeight);
- transition: opacity 0.1s var(--appleEase);
- }
-
- .playlist-display {
- padding: var(--contentInnerPadding);
- min-height: 300px;
- position: relative;
-
- .artworkContainer {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- margin: 0;
- margin-top: calc(var(--navigationBarHeight) * -1);
- margin-bottom: -10px;
- padding: 0;
- -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%);
- opacity: .7;
- animation: playlistArtworkFadeIn 1s var(--appleEase);
-
- .artworkMaterial > img {
- filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
- object-position: center;
- object-fit: cover;
- width: 100%;
- height: 100%;
- transform: unset;
- }
- }
-
- .playlistInfo {
- z-index: 1;
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- top: 0;
- display: flex;
+ .cd-mediaitem-square {
+ width: 220px;
+ height: 260px;
+ display: inline-flex;
+ flex: 0 0 auto;
+ flex-direction: column;
+ font-size: 14px;
justify-content: center;
align-items: center;
- width: 100%;
- height: 100%;
-
- > .row {
- width: calc(100% - 32px);
- }
-
- .playlist-info {
- flex-shrink: unset;
- display: flex;
- flex-flow: column;
- justify-content: flex-end;
-
- .playlist-name {
- font-weight: 700;
- font-size: 1.6rem;
- margin-bottom: 6px;
- margin-right: 6px;
- flex-shrink: unset;
- }
-
- .nameEdit {
- font-weight: 700;
- font-size: 1.6rem;
- margin-bottom: 6px;
- margin-right: 6px;
- flex-shrink: unset;
- background: transparent;
- border: 0px;
- color: inherit;
- font-family: inherit;
- }
-
- .playlist-artist {
- font-size: 20px;
- margin-bottom: 6px;
- margin-right: 6px;
- flex-shrink: unset;
- }
-
- .playlist-desc {
- box-sizing: border-box;
- font-size: 14px;
- flex-shrink: unset;
- margin-right: 5px;
- max-height: 100px;
- position: relative;
-
- .content {
- height: 100px;
- -webkit-mask-image: -webkit-gradient(linear, left 50%, left 90%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));
- }
-
- .more-btn {
- appearance: none;
- position: absolute;
- right: 0;
- bottom: 0;
- padding: 0 5px;
- font-size: 14px;
- color: var(--keyColor);
- background-color: transparent;
- border: 0px;
- cursor: pointer;
- width: 100%;
- height: 100%;
- overflow: hidden;
- display: flex;
- justify-content: flex-end;
- align-items: flex-end;
- font-weight: 600;
- font-family: inherit;
- text-transform: uppercase;
- }
- }
-
- .playlist-desc-expanded {
- box-sizing: border-box;
- font-size: 14px;
- position: relative;
-
- .more-btn {
- appearance: none;
- position: absolute;
- right: 0;
- bottom: 0;
- padding: 0 5px;
- font-size: 14px;
- color: var(--keyColor);
- background-color: transparent;
- border: 0px;
- cursor: pointer;
- width: 100%;
- height: 100%;
- overflow: hidden;
- display: flex;
- justify-content: flex-end;
- align-items: flex-end;
- font-weight: 600;
- font-family: inherit;
- text-transform: uppercase;
- }
- }
- }
- }
-
-
- }
-
- .friends-info {
- display: flex;
- flex-flow: column;
-
- .badge-container {
- display: flex;
- flex-flow: wrap;
-
- .socialBadge {
- width: 40px;
- height: 40px;
- border-radius: 100%;
- overflow: hidden;
- box-shadow: var(--mediaItemShadow-ShadowSubtle);
- transition: transform .2s var(--appleEase);
- margin: 6px;
-
- &:hover {
- transform: scale(1.2);
- }
- }
- }
-
- .friends-name {
- text-align: center;
- font-size: 0.9em;
- margin: 8px;
- }
- }
-
- .playlist-time {
- font-size: 0.9em;
- margin: 6px;
- opacity: 0.7;
- }
-
- &.inline-playlist {
- overflow: hidden;
- width: 100%;
- height: 100%;
- background: rgba(0, 0, 0, 0.5);
- display: flex;
- justify-content: center;
- align-items: center;
- z-index: 6;
- position: sticky;
- margin-top: calc(var(--navigationBarHeight) * -1);
-
- .floating-header {
- opacity: 1;
- top: 0px;
- z-index: 6;
- padding: 1em;
- backdrop-filter: unset;
- background: black;
- h3 {
- display: none;
- }
- }
- .playlist-inner {
- background: black;
- width: 80%;
- height: 100%;
- overflow: overlay;
- box-shadow: var(--ciderShadow-Generic);
- border-radius: var(--mediaItemRadius) var(--mediaItemRadius) 0px 0px;
-
- .close-btn {
- position: sticky;
- top: 16px;
- left: 16px;
- margin-left: 16px;
- z-index: 7;
- }
+ border-radius: 6px;
+ max-width: 240px;
+ flex-grow: 1;
}
}
}
-@keyframes playlistArtworkFadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 0.7;
- }
-}
-
-// Collection Page
-.collection-page {
- padding-bottom: 128px;
-
- .top-fab {
- height: 52px;
- width: 52px;
- position: fixed;
- bottom: 32px;
- right: 32px;
- border-radius: 100%;
- background: rgb(60 60 60);
- border: 0px;
- appearance: none;
- box-shadow: var(--ciderShadow-Generic);
-
- > svg {
- height: 50%;
- color: #eee;
- pointer-events: none;
- }
-
- &:hover {
- background: rgb(100 100 100);
- }
-
- &:active {
- background: var(--keyColor);
- }
- }
-
- .header-text {
- margin-bottom: 32px;
- }
-}
-
-/* Artist Page */
-
-.artist-page {
- padding: 0px;
- top: 0;
-
- .floating-header {
- position: sticky;
- top: 0;
- left: 0;
- border-bottom: 1px solid rgba(200, 200, 200, 0.05);
- z-index: 6;
- padding: 0px 1em;
- backdrop-filter: blur(32px);
- background: rgba(0, 0, 0, 0.25);
- top: var(--navigationBarHeight);
- transition: opacity 0.1s var(--appleEase);
- }
-
- &.animated .artist-header .more-btn-round {
- position: absolute;
- bottom: 22px !important;
- right: 28px;
- }
-
- .artist-header {
- //background: linear-gradient(45deg, var(--keyColor), #0e0e0e);
- color: white;
- display: flex;
- align-items: center;
- justify-content: space-between;
- min-height: 400px;
- position: relative;
- pointer-events: none;
-
- .header-content {
- z-index: 1;
- margin-top: -16px;
- }
-
-
- .artworkContainer {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- margin: 0;
- padding: 0;
- -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%);
- opacity: .7;
- animation: playlistArtworkFadeIn 1s var(--appleEase);
-
- .artworkMaterial > img {
- filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
- object-position: center;
- object-fit: cover;
- width: 100%;
- height: 100%;
- transform: unset;
- }
- }
-
- .more-btn-round {
- position: absolute;
- bottom: 82px;
- right: 28px;
- }
-
- .animated {
- width: 100%;
- height: 100%;
- align-self: center;
- position: absolute;
- overflow: hidden;
- box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset;
-
- video {
- overflow: hidden;
- height: 100%;
- width: 100%;
- min-height: 56.25vw;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- }
- }
-
- .row .col.flex-center {
- z-index: 4;
- }
- }
-
- .artist-image {
- width: 200px;
- height: 200px;
- margin: 32px;
- position: relative;
-
- .overlay-play {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- opacity: 0;
- background: rgb(0 0 0 / 50%);
- transition: opacity 0.1s var(--appleEase);
- border-radius: 100%;
- z-index: 1;
- display: flex;
- align-items: center;
- justify-content: center;
- cursor: pointer;
- appearance: none;
- border: 0px;
- padding: 0px;
-
- &:hover {
- opacity: 1;
- }
-
- &:active {
- background: var(--selected-click);
- }
-
- > svg {
- width: 70%;
- }
- }
- }
-
- .artist-play {
- width: 32px;
- height: 32px;
- background: rgba(100, 100, 100, 0.5);
- box-shadow: var(--ciderShadow-Generic);
- border-radius: 100%;
- box-shadow: var(--mediaItemShadow);
- display: none;
- cursor: pointer;
- appearance: none;
- border: 0px;
- padding: 0px;
-
- &:hover {
- filter: brightness(125%);
- }
-
- &:active {
- filter: brightness(75%);
- transform: scale(0.98);
- transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
- }
- }
-
- .artist-title {
-
- .artist-play {
- transform: translateY(3px);
- margin: 14px;
- }
-
- &.artist-animation-on {
- width: 100%;
- flex: unset;
- margin-left: 0.5em;
- color: whitesmoke;
- position: absolute;
- bottom: 0;
-
- .artist-play {
- display: block;
- }
- }
- }
-
- .artist-body {
- padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
- margin-top: -140px;
- }
-
- &.animated > .artist-body {
- padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding);
- margin-top: -57px;
- }
-
- .showmoreless {
- font-family: inherit;
- font-size: 16px;
- font-weight: 500;
- background: transparent;
- border: 0px;
- border-radius: 6px;
- appearance: none;
- color: var(--keyColor);
- padding: 8px 12px;
- cursor: pointer;
- margin-top: 12px;
- float: right;
- }
-
- .showmoreless:hover {
- background: rgb(200 200 200 / 10%);
- }
-}
-
-/* Artist Page End */
-
.text-overflow-elipsis {
display: -webkit-box;
min-width: 0px;
@@ -3484,1152 +1838,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
-webkit-box-orient: vertical;
}
-
-.mediaitem-artwork {
- border-radius: var(--mediaItemRadius);
- overflow: hidden;
- flex: 0 0 auto;
- position: relative;
- width: 100%;
- height: 100%;
- background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg");
- background-size: cover;
- background-position: center;
-
- .animatedartwork-view-box {
- position: absolute;
- top: 0px;
- width: 100%;
- height: 100%;
-
- .animated {
- position: absolute;
- top: 0px;
- width: 100%;
- height: 100%;
-
- video {
- width: 100%;
- height: 100%;
- }
- }
- }
-
- &.rounded {
- border-radius: 100%;
-
- &::after {
- border-radius: 100%;
- }
- }
-
- &::after {
- content: "";
- box-shadow: var(--mediaItemShadow);
- z-index: 1;
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- border-radius: inherit;
- }
-
- img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- image-rendering: -webkit-optimize-contrast;
- pointer-events: none;
- }
-
- &.no-shadow {
- box-shadow: none;
-
- &::after {
- display: none;
- }
- }
-
- &.subtle-shadow {
- box-shadow: var(--mediaItemShadow-ShadowSubtle);
- }
-
- &.shadow {
- box-shadow: var(--mediaItemShadow-Shadow);
- }
-}
-
-.menu-panel {
- width: 100%;
- height: 100%;
- position: fixed;
- top: 0;
- left: 0;
- z-index: 1001;
- display: flex;
- justify-content: center;
- align-items: center;
- -webkit-app-region: no-drag;
-
- .menu-header-body {
- padding: 6px;
- display: flex;
- background: rgb(200 200 200 / 10%);
-
- .menu-option-header {
- width: 40px;
- height: 40px;
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: var(--mediaItemRadius);
- appearance: none;
- border: 0;
- background: transparent;
-
- &.active {
- .sidebar-icon > .svg-icon {
- --color: var(--keyColor);
- }
- }
-
- &:hover {
- background: var(--selected);
- }
-
- &:active {
- background: var(--selected-click);
- }
- }
- }
-
- .menu-panel-body {
- display: flex;
- flex-flow: column;
- background: rgb(38 38 38);
- position: relative;
- min-width: 200px;
- box-shadow: var(--ciderShadow-Generic);
- border-radius: var(--mediaItemRadius);
- overflow: hidden;
- font-size: 14px;
-
- .menu-option {
- text-align: left;
- display: flex;
- width: 100%;
- padding: 12px 16px;
- appearance: none;
- border: 0px;
- font: inherit;
- background: transparent;
- color: inherit;
-
- &:hover {
- background: var(--selected);
- }
-
- &:active {
- background: var(--selected-click);
- }
- }
- }
-
-
- .menu-header-text {
- margin: 18px 6px;
-
- .close-btn {
- width: 50px;
- height: 42px;
- background-image: var(--gfx-closeBtn);
- background-position: center;
- background-repeat: no-repeat;
- -webkit-app-region: no-drag;
- appearance: none;
- border: 0;
- background-color: transparent;
- position: absolute;
- top: 0;
- right: 0;
-
- &:hover {
- background-color: rgb(196, 43, 28)
- }
- }
- }
-
- .menu-body {
- overflow: overlay;
- height: 100%;
- }
-
- .menu-footer {
- width: 100%;
- padding: 12px;
- }
-}
-
-.queue-panel {
- height: 100%;
- width: 100%;
- display: flex;
- flex-flow: column;
-
- .queue-header-text {
- margin: 18px 6px;
- }
-
- .queue-body {
- overflow: overlay;
- height: 100%;
- }
-
- .queue-footer {
- width: 100%;
- padding: 12px;
- }
-
- .autoplay {
- background: rgb(200 200 200 / 15%);
- display: flex;
- justify-content: center;
- appearance: none;
- border: 0;
- border-radius: 6px;
- height: 32px;
- width: 32px;
- }
-
- .infinity {
- content: url("./assets/infinity.svg");
- margin: auto;
- }
-}
-
-/* queue item */
-.cd-queue-item {
- border-bottom: 1px solid rgb(200 200 200 / 10%);
- padding: 8px;
-
- .row,
- .col {
- padding: 0px;
- margin: 0px;
- }
-
- .artwork {
- width: 32px;
- height: 32px;
- flex: 0 0 auto;
- }
-
- &.selected {
- background: var(--selected);
- }
-
- &:active {
- background: var(--selected-click);
- color: #eee;
- }
-
- .queue-info {
- display: flex;
- flex-direction: column;
-
- .queue-title {
- font-size: 14px;
- }
-
- .queue-subtitle {
- font-size: 13px;
- opacity: 0.85;
- }
- }
-}
-
-/* horizontal media scroller */
-.cd-hmedia-scroller {
- margin: 0 auto;
- display: flex;
- flex-flow: row;
- overflow-x: scroll;
- overflow-y: hidden;
- height: 284px;
- align-items: center;
-
- &::-webkit-scrollbar-thumb {
- box-shadow: none;
- }
-
- &:hover::-webkit-scrollbar-thumb {
- box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%);
- }
-
- &.small {
- overflow-x: overlay;
- height: 210px;
- }
-
- &.hmedia-scroller-card {
- height: 370px;
-
- .mediaitem-card {
- margin: 12px;
- }
- }
-}
-
-/* mediaitem-list-item */
-.cd-mediaitem-list-item {
- width: 100%;
- height: 60px;
- display: flex;
- flex: 0 0 auto;
- flex-direction: row;
- font-size: 14px;
- justify-content: center-between;
- align-items: center;
- border-radius: var(--mediaItemRadius);
-
- .artwork {
- height: 42px;
- width: 42px;
- border-radius: var(--mediaItemRadius);
- object-fit: cover;
- object-position: center;
- flex: 0 0 auto;
- background-repeat: no-repeat;
- margin: 12px;
- border: 0px;
- outline: none;
- position: relative;
- overflow: hidden;
-
- .overlay-play {
- background: rgba(0, 0, 0, 0.5);
- opacity: 0;
- appearance: none;
- border: 0;
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- padding: 0px;
- z-index: 5;
- cursor: pointer;
-
- &:hover {
- opacity: 1;
- }
-
- &:active {
- background: var(--selected-click);
- }
- }
- }
-
- .artwork.round {
- border-radius: var(--mediaItemRadiusRound);
- }
-
- .info-rect {
- height: 100%;
- display: flex;
- flex-flow: column;
- justify-content: center;
- flex-grow: 1;
- }
-
- .title {
- width: 100%;
- }
-
- .subtitle {
- width: 90%;
- font-size: .8em;
- opacity: 0.7;
- }
-
- .duration {
- min-width: 60px;
- text-align: center;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .metainfo {
- min-width: 145px;
- text-align: center;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .explicit-icon {
- background-image: url("./assets/explicit.svg");
- height: 12px;
- width: 36px;
- filter: contrast(0);
- background-repeat: no-repeat;
- }
-
- /* CSS.gg
- */
- @keyframes load-bar {
- 10% {
- box-shadow: inset 0 -4px 0
- }
- 20% {
- box-shadow: inset 0 -10px 0
- }
- 30% {
- box-shadow: inset 0 -12px 0
- }
- 40% {
- box-shadow: inset 0 -8px 0
- }
- 50% {
- box-shadow: inset 0 -4px 0
- }
- 60% {
- box-shadow: inset 0 -6px 0
- }
- 80% {
- box-shadow: inset 0 -12px 0
- }
- 90% {
- box-shadow: inset 0 -6px 0
- }
- to {
- box-shadow: inset 0 -2px 0
- }
- }
-
- .loadbar-sound,
- .loadbar-sound::after,
- .loadbar-sound::before {
- animation: load-bar 1.3s ease infinite alternate;
- box-sizing: border-box;
- width: 3px;
- height: 28px;
- box-shadow: inset 0 -12px 0;
- }
-
- .loadbar-sound {
- margin-left: 22px;
- margin-top: -16px;
- position: relative;
- transform: scale(var(--load-bar, 1));
- color: var(--keyColor);
- display: block;
- }
-
- .loadbar-sound::after,
- .loadbar-sound::before {
- content: "";
- position: absolute;
- bottom: 0
- }
-
- .loadbar-sound::before {
- left: -4.5px;
- animation-delay: -2.4s
- }
-
- .loadbar-sound::after {
- right: -4.2px;
- animation-delay: -3.7s
- }
-
- .isLibrary {
- flex: 0 0 auto;
- width: 40px;
- text-align: center;
-
- button {
- appearance: none;
- border: 0px;
- background: transparent;
- cursor: pointer;
- filter: contrast(0.8);
- }
- }
-
- &:hover {
- background: rgb(200 200 200 / 10%);
- box-shadow: var(--mediaItemShadow);
-
- .overlay-play {
- opacity: 1;
- }
- }
-
- &.mediaitem-selected {
- background: var(--selected);
- box-shadow: var(--mediaItemShadow);
- }
-
-
- &:active {
- background: var(--selected-click);
- box-shadow: var(--mediaItemShadow);
- color: #eee;
- }
-
- // list item compact
- &.compact {
- height: 40px;
- font-size: 13px;
-
- .artwork {
- display: none;
- }
-
- .info-rect {
- padding-left: 1em;
- }
- }
-}
-
-/* mediaitem-hrect */
-.cd-mediaitem-hrect {
- background: rgb(255 255 255 / 18%);
- width: 264px;
- height: 100px;
- display: inline-flex;
- flex: 0 0 auto;
- flex-direction: row;
- font-size: 14px;
- justify-content: center;
- align-items: center;
- border-radius: 6px;
- cursor: pointer;
-
- .artwork {
- height: 70px;
- width: 70px;
- background: blue;
- border-radius: var(--mediaItemRadius);
- background: var(--artwork);
- background-size: contain;
- flex: 0 0 auto;
- background-repeat: no-repeat;
- margin: 18px;
- }
-
- .artwork.round {
- border-radius: var(--mediaItemRadiusRound);
- }
-
- .info-rect {
- width: 100%;
- }
-
- .title {
- width: 100%;
- text-align: center;
- }
-
- .subtitle {
- width: 100%;
- text-align: center;
- font-size: 12px;
- }
-}
-
-/* mediaitem-square-sp */
-.cd-mediaitem-square-sp {
- --spcolor: var("");
- width: 190px;
- height: 250px;
- display: inline-flex;
- flex: 0 0 auto;
- flex-direction: column;
- font-size: 14px;
- justify-content: flex-start;
- align-items: center;
- border-radius: 6px;
- margin-left: 10px;
- cursor: pointer;
- background-color: var(--spcolor);
-
- .artwork {
- height: 190px;
- width: 190px;
- background: blue;
- border-top-left-radius: 6px;
- border-top-right-radius: 6px;
- background: var(--artwork);
- background-size: cover;
- flex: 0 0 auto;
- margin: 6px;
- margin-top: 0px;
-
- &.round {
- border-radius: var(--mediaItemRadiusRound);
- }
-
- &:hover {
- box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset;
- }
- }
-
- .title {
- width: 90%;
- text-align: center;
- }
-
- .subtitle {
- width: 100%;
- text-align: center;
- font-size: 12px;
- }
-
- > .cd-mediaitem-square-large-overlay {
- z-index: 3;
-
- &:hover {
- opacity: 1;
- }
- }
-
- + .cd-mediaitem-square-large-overlay {
- pointer-events: none;
- }
-
- &:hover + .cd-mediaitem-square-large-overlay {
- opacity: 1;
-
- }
-
- &:hover {
- box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset;
- }
-}
-
-
-/* mediaitem-square-large */
-.cd-mediaitem-square-large {
- width: 190px;
- height: 250px;
- display: inline-flex;
- flex: 0 0 auto;
- flex-direction: column;
- font-size: 14px;
- justify-content: flex-start;
- align-items: center;
- border-radius: 6px;
- margin-left: 10px;
- cursor: pointer;
-
- > * {
- z-index: inherit;
- }
-}
-
-.cd-mediaitem-square-large .artwork {
- height: 190px;
- width: 190px;
- background: blue;
- border-top-left-radius: 6px;
- border-top-right-radius: 6px;
- background: var(--artwork);
- background-size: cover;
- flex: 0 0 auto;
- margin: 6px;
- margin-top: 0px;
-}
-
-.cd-mediaitem-square-large-overlay {
- position: absolute;
- width: 190px;
- float: right;
- height: 250px;
- top: 0px;
- margin: 10px;
- margin-top: 0px;
- opacity: 0;
-
-}
-
-.cd-mediaitem-square-large-overlay > * {
- pointer-events: auto;
-
-}
-
-.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay {
- z-index: 3;
-}
-
-.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover {
- opacity: 1;
-}
-
-.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay {
- pointer-events: none;
-
-}
-
-.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay {
- opacity: 1;
-
-}
-
-
-.cd-mediaitem-square-large .artwork.round {
- border-radius: var(--mediaItemRadiusRound);
-}
-
-.cd-mediaitem-square-large .title {
- width: 90%;
- text-align: center;
-}
-
-.cd-mediaitem-square-large .subtitle {
- width: 100%;
- text-align: center;
- font-size: 12px;
-}
-
-/* mediaitem-mvview */
-
-/* mediaitem-mvview */
-.cd-mediaitem-mvview {
- width: 300px;
- height: 250px;
- display: inline-flex;
- flex: 0 0 auto;
- flex-direction: column;
- font-size: 14px;
- justify-content: flex-start;
- align-items: center;
- border-radius: 6px;
- margin-left: 10px;
- cursor: pointer;
-
- > * {
- z-index: inherit;
- }
-}
-
-.cd-mediaitem-mvview .artwork {
- height: 172px;
- width: 300px;
- background: blue;
- border-top-left-radius: 6px;
- border-top-right-radius: 6px;
- background: var(--artwork);
- background-size: cover;
- flex: 0 0 auto;
- margin: 6px;
- margin-top: 0px;
-}
-
-.cd-mediaitem-mvview-overlay {
- position: absolute;
- width: 300px;
- float: right;
- height: 250px;
- top: 0px;
- margin: 10px;
- margin-top: 0px;
- opacity: 0;
-
-}
-
-.cd-mediaitem-mvview-overlay > * {
- pointer-events: auto;
-
-}
-
-.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay {
- z-index: 3;
-}
-
-.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover {
- opacity: 1;
-}
-
-.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay {
- pointer-events: none;
-
-}
-
-.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay {
- opacity: 1;
-
-}
-
-
-.cd-mediaitem-mvview .artwork.round {
- border-radius: var(--mediaItemRadiusRound);
-}
-
-.cd-mediaitem-mvview .title {
- width: 90%;
- text-align: center;
-}
-
-.cd-mediaitem-mvview .subtitle {
- width: 100%;
- text-align: center;
- font-size: 12px;
-}
-
-
-/* mediaitem-square */
-.cd-mediaitem-square {
- width: 220px;
- height: 260px;
- display: inline-flex;
- flex: 0 0 auto;
- flex-direction: column;
- font-size: 14px;
- justify-content: center;
- align-items: center;
- border-radius: 6px;
-
- .artwork-container {
- position: relative;
-
- .artwork {
- height: 190px;
- width: 190px;
- background: blue;
- border-radius: var(--mediaItemRadius);
- background: var(--artwork);
- background-size: cover;
- flex: 0 0 auto;
- margin: 6px;
- cursor: pointer;
-
- &.round {
- border-radius: var(--mediaItemRadiusRound);
- }
- }
-
- .badge-container {
- transition: opacity 0.1s var(--appleEase);
- opacity: 1;
-
- .socialBadge {
- width: 32px;
- height: 32px;
- position: absolute;
- right: 14px;
- bottom: 14px;
- border-radius: 100%;
- overflow: hidden;
- z-index: 2;
- pointer-events: none;
- }
- }
-
- > .play-btn,
- > .menu-btn {
- opacity: 0;
- appearance: none;
- padding: 0px;
- border: 0px;
- width: 30px;
- height: 30px;
- border-radius: 50%;
- background: rgba(50, 50, 50, 0.7);
- cursor: pointer;
- transition: opacity 0.1s var(--appleEase);
-
- :hover {
- border-radius: 50%;
- background: rgba(250, 0, 0, 0.7);
- }
- }
-
- > .play-btn {
- position: absolute;
- bottom: 14px;
- left: 14px;
- z-index: 2;
-
- }
-
- > .menu-btn {
- position: absolute;
- bottom: 14px;
- right: 14px;
- z-index: 2;
- }
-
- &:hover {
- > .badge-container {
- opacity: 0;
- }
-
- > .play-btn,
- > .menu-btn {
- opacity: 1;
- }
- }
- }
-
- .info-rect {
- width: 90%;
- height: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
- }
-
-
- .title {
- width: 100%;
- text-align: center;
- display: flex;
- align-content: center;
- justify-content: center;
- }
-
- .subtitle {
- width: 100%;
- text-align: center;
- font-size: 12px;
- }
-
- &.mediaitem-video {
- height: 200px;
- width: 240px;
-
- .artwork {
- height: 120px;
- width: 212px;
- }
- }
-
- &.mediaitem-brick {
- height: 200px;
- width: 240px;
-
- .artwork {
- height: 123px;
- width: 220px;
- }
- }
-
- &.mediaitem-small {
- width: 140px;
- height: 180px;
-
- .artwork {
- height: 128px;
- width: 128px;
- }
- }
-
- &.mediaitem-card {
- background: #ccc;
- background: var(--spcolor);
- height: 298px;
- width: 230px;
- max-width: 250px;
- max-height: 500px;
- overflow: hidden;
- position: relative;
- border-radius: calc(var(--mediaItemRadius) * 2);
- box-shadow: var(--mediaItemShadow-ShadowSubtle);
-
- .artwork {
- width: 230px;
- height: 230px;
- overflow: hidden;
- border-radius: 0px;
- margin: 0;
-
- .mediaitem-artwork {
- border-radius: 0px;
-
- &::after {
- box-shadow: unset;
- }
- }
- }
-
- .info-rect-card {
- padding: 10px 10px 14px;
- position: relative;
- width: 100%;
-
- &::before {
- background: var(--bgartwork);
- content: "";
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- position: absolute;
- background-size: cover;
- background-position: bottom;
- z-index: 0;
- opacity: 1;
- filter: brightness(0.5) blur(50px) saturate(180%);
- }
- }
-
- .title {
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 0.9em;
- font-weight: 500;
- z-index: 1;
- }
-
- .subtitle {
- height: 100%;
- justify-content: center;
- align-items: center;
- font-size: 0.75em;
- width: 100%;
- display: flex;
- z-index: 1;
- }
-
- &::after {
- box-shadow: var(--mediaItemShadow);
- content: "";
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- pointer-events: none;
- border-radius: inherit;
- }
- }
-}
-
-/* mediaitem-square */
-.albums-square-containeru > * > .cd-mediaitem-square {
- --frame: max(220px, 15vw);
- width: var(--frame);
- height: calc(var(--frame) * 13 / 11);
- display: inline-flex;
- flex: 0 0 auto;
- flex-direction: column;
- font-size: calc(var(--frame) / 220 * 14);
- justify-content: center;
- align-items: center;
- border-radius: calc(var(--frame) / 220 * 6);
-
- .artwork-container {
- position: relative;
-
- .artwork {
- height: calc(var(--frame) * 19 / 22);
- width: calc(var(--frame) * 19 / 22);
- background: blue;
- border-radius: var(--mediaItemRadius);
- background: var(--artwork);
- background-size: cover;
- flex: 0 0 auto;
- margin: calc(var(--frame) / 220 * 6);
- cursor: pointer;
-
- &.round {
- border-radius: var(--mediaItemRadiusRound);
- }
- }
-
- > .play-btn,
- > .menu-btn {
- opacity: 0;
- appearance: none;
- padding: 0px;
- border: 0px;
- width: calc(var(--frame) / 220 * 30);
- height: calc(var(--frame) / 220 * 30);
- border-radius: 50%;
- background: rgba(50, 50, 50, 0.7);
- cursor: pointer;
- backdrop-filter: blur(32px) saturate(180%);
- transition: opacity 0.1s var(--appleEase);
- }
-
- > .play-btn {
- position: absolute;
- bottom: calc(var(--frame) / 220 * 14);
- left: calc(var(--frame) / 220 * 14);
- z-index: 2;
- }
-
- > .menu-btn {
- position: absolute;
- bottom: calc(var(--frame) / 220 * 14);
- right: calc(var(--frame) / 220 * 14);
- z-index: 2;
- }
-
- &:hover {
-
- > .play-btn,
- > .menu-btn {
- opacity: 1;
- }
- }
- }
-
-
- .title {
- width: 90%;
- text-align: center;
- }
-
- .subtitle {
- width: 100%;
- text-align: center;
- font-size: calc(var(--frame) / 220 * 12);
- }
-
- &.mediaitem-video {
- height: calc(var(--frame) / 220 * 200);
- width: calc(var(--frame) / 220 * 240);
-
- .artwork {
- height: calc(var(--frame) / 220 * 120);
- width: calc(var(--frame) / 220 * 212);
- }
- }
-
- &.mediaitem-brick {
- height: calc(var(--frame) / 220 * 200);
- width: calc(var(--frame) / 220 * 240);
-
- .artwork {
- height: calc(var(--frame) / 220 * 123);
- width: calc(var(--frame));
- }
- }
-}
-
-.cd-btn-seeall {
- background: transparent;
- border: 0px;
- color: var(--keyColor);
- font-family: inherit;
- font-weight: 500;
- font-size: 16px;
- border-radius: 4px;
- padding: 6px;
-
- &:hover {
- cursor: pointer;
- background: rgb(200 200 200 / 10%)
- }
+.no-animation {
+ animation: unset !important;
}
.fullscreen-view-container {
@@ -4670,6 +1880,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
height: 50vh;
}
+ .bg-artwork-container {
+ display: block !important;
+ }
+
@media only screen and (max-width: 1121px) {
.display--large {
display: flex !important;
@@ -4772,13 +1986,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9);
}
- .no-animation {
- animation: unset;
- }
+
}
}
-
.lyrics-col {
height: 62vh;
@@ -5425,87 +2636,22 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
// Cider App
-.mediaitem-list-item__grid {
- overflow-x: overlay;
- overflow-y: hidden;
- background: rgba(200, 200, 200, 0.05);
- border-radius: 10px;
- padding: var(--contentInnerPadding);
- box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
- height: 300px;
- display: flex;
- align-items: center;
-
- .grid-body {
- display: grid;
- grid-auto-flow: column dense;
- grid-template-rows: auto auto auto auto;
- grid-gap: 0 6px;
- padding: 2px 0;
- justify-content: left;
- width: 0;
- }
-
- .cd-mediaitem-list-item {
- width: 350px;
- height: 60px;
- }
-
- &::-webkit-scrollbar {
- display: none;
- }
-
- &:hover::-webkit-scrollbar {
- display: initial;
-
+#micaEffect {
+ opacity:1;
+ // animation: micaEnter 1s ease-in-out forwards;
+ filter: brightness(0.5);
+ @keyframes micaEnter {
+ 0% {
+ opacity: 0;
+ transform: translateY(10px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0px);
+ }
}
}
-.settings-page {
- padding: 0px;
-
- .md-option-header {
- padding: 1.25em 1.25em;
- border-bottom: unset;
- border-top: unset;
- font-weight: 600;
- font-size: 1.0em;
- background: rgb(255 255 255 / 3%);
- }
-
- .settings-option-body {
- margin: 16px;
- }
-}
-
-// sidebar icon
-.svg-icon {
- --color: #aaa;
- --url: url("./assets/feather/share.svg");
- -webkit-mask-image: var(--url);
- -webkit-mask-size: cover;
- height: 18px;
- width: 18px;
- background: var(--color);
-}
-
-.sidebar-icon {
- width: 18px;
- height: 18px;
- margin-right: 8px;
-
- > .svg-icon {
- width: 100%;
- height: 100%;
- --color: #aaa;
- }
-
- > svg {
- width: 100%;
- height: 100%;
- color: #aaa;
- }
-}
@keyframes rotate {
from {
@@ -5537,6 +2683,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
width: 200VH;
height: 200VH;
}
+
+ .bg-artwork-container{
+ display: block !important;
+ }
}
.lyric-body {
@@ -5545,22 +2695,15 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
padding: 0px;
margin: 0px;
overflow: hidden;
+ filter: drop-shadow(0px 4px 6px rgb(0 0 0 / 70%));
.lyric-line {
pointer-events: none;
- font-weight: 500;
+ font-weight: 600;
font-size: 2em;
transform-origin: center;
animation: fsLyricIn var(--appleEase) .2s;
opacity: 0.9;
- text-shadow: -1px -1px 0 #000,
- 0 -1px 0 #000,
- 1px -1px 0 #000,
- 1px 0 0 #000,
- 1px 1px 0 #000,
- 0 1px 0 #000,
- -1px 1px 0 #000,
- -1px 0 0 #000;
&:not(.active) {
display: none;
@@ -5592,6 +2735,17 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
/* Transitions */
+.replaycard-enter-active,
+.replaycard-leave-active {
+ transition: opacity .5s var(--appleEase), transform .5s var(--appleEase);
+}
+
+.replaycard-enter,
+.replaycard-leave-to {
+ opacity: 0;
+ transform: translateY(20px);
+}
+
.modal-enter-active,
.modal-leave-active {
transition: opacity .1s var(--appleEase), transform .1s var(--appleEase);
@@ -5615,13 +2769,38 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
.wpfade_transform-enter-active,
.wpfade_transform-leave-active {
- transition: opacity .1s var(--appleEase), transform .1s var(--appleEase);
+ --transitionTime: 0.2s;
+ transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase);
+ will-change: opacity, transform;
}
-.wpfade_transform-enter,
-.wpfade_transform-leave-to {
- transform: scale(0.90);
+.wpfade_transform-enter {
opacity: 0;
+ transform: translateX(50%) translate3d(0,0,0);
+ will-change: opacity, transform;
+}
+.wpfade_transform-leave-to {
+ opacity: 0;
+ transform: translateX(-50%) translate3d(0,0,0);
+ will-change: opacity, transform;
+}
+
+
+.wpfade_transform_backwards-enter-active,
+.wpfade_transform_backwards-leave-active {
+ --transitionTime: 0.2s;
+ transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase);
+}
+
+.wpfade_transform_backwards-enter {
+ opacity: 0;
+ transform: translateX(-50%) translate3d(0,0,0);
+ will-change: opacity, transform;
+}
+.wpfade_transform_backwards-leave-to {
+ opacity: 0;
+ transform: translateX(50%) translate3d(0,0,0);
+ will-change: opacity, transform;
}
.fabfade-enter-active,
@@ -5657,18 +2836,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
right: -300px;
}
-/* Transitions End */
-
-// @media (prefers-color-scheme: light) {
-// :root {
-// /* */
-// --gfx-closeBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6MjY6MjgtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI2OjI4LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6MjY6MjgtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PtPY89oAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEpJREFUGJWNkMENwDAIA1Gh3F7sP0Ty7xD5JgpU+OuTLVvMmQohhRTCnCEK8TpfBl9eBpcBu/HXcsAZ9FQjSrWqW2Pa95gzGofPBQZRG2fS0899AAAAAElFTkSuQmCC');
-// --gfx-maxBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6MjU6NTItMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI1OjUyLTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6MjU6NTItMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PntJ23wAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEhJREFUGJVjYGBgmMzAwPCXgYHhPw78l4GBYTIjlKHHwMDwlAE7EGFgYLjJANUlgEMRDPxnIqAADoaKwn8MkCDABaShaogLcACWZRl4ajKVtAAAAABJRU5ErkJggg==');
-// --gfx-restoreBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6MjY6NTMtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI2OjUzLTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6MjY6NTMtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PluKsJ0AAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAGlJREFUGJWt0LEOgkAQhOFPShspSWyvMPFxKaDh0XgOq8tZuCqBIzRMMsXmn51slr9GlJVfmHC9LII3LGfoomCGHrnSloM9olnGE+3KKVgbi0oMNX1ZaXYCG50aLBj4HJwqgXuwn47eA95vgSGy6zr7OwAAAABJRU5ErkJggg==');
-// --gfx-minBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxMAAAsTAQCanBgAAAaxaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPg0KICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPg0KICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDItMTdUMTM6MDA6MzJaIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDItMTdUMTM6MDA6MzJaIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg1ZDBlZGIwLWZkMDAtYjY0Zi05ZWZiLWEyYjQ1ODcwNWE4YSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEzMDAxZTFhLTI5MTktZTQ0OS1iOTRjLWMyMTIyNDhhOWY4YSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjc4N2Y3OTljLTRiMTEtZTU0YS1iMjBkLTY4NjE3ZWQ5YzVlMiIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciPg0KICAgICAgPHhtcE1NOkhpc3Rvcnk+DQogICAgICAgIDxyZGY6U2VxPg0KICAgICAgICAgIDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjc4N2Y3OTljLTRiMTEtZTU0YS1iMjBkLTY4NjE3ZWQ5YzVlMiIgc3RFdnQ6d2hlbj0iMjAyMC0wMi0xN1QxMzowMDozMloiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgLz4NCiAgICAgICAgICA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODVkMGVkYjAtZmQwMC1iNjRmLTllZmItYTJiNDU4NzA1YThhIiBzdEV2dDp3aGVuPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIiAvPg0KICAgICAgICA8L3JkZjpTZXE+DQogICAgICA8L3htcE1NOkhpc3Rvcnk+DQogICAgICA8cGhvdG9zaG9wOlRleHRMYXllcnM+DQogICAgICAgIDxyZGY6QmFnPg0KICAgICAgICAgIDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qShIiBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKEiIC8+DQogICAgICAgIDwvcmRmOkJhZz4NCiAgICAgIDwvcGhvdG9zaG9wOlRleHRMYXllcnM+DQogICAgPC9yZGY6RGVzY3JpcHRpb24+DQogIDwvcmRmOlJERj4NCjwveDp4bXBtZXRhPg0KPD94cGFja2V0IGVuZD0iciI/PmeGdrgAAAAVSURBVChTYxhOgBGI/0OYQx0wMAAAyp4BAZ26NiYAAAAASUVORK5CYII=');
-// }
-// }
-
@media (prefers-color-scheme: dark) {
}
@@ -5680,7 +2847,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
--gfx-minBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGOmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMi0xN1QxMzowMDozMloiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NWQwZWRiMC1mZDAwLWI2NGYtOWVmYi1hMmI0NTg3MDVhOGEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDphMzAwMWUxYS0yOTE5LWU0NDktYjk0Yy1jMjEyMjQ4YTlmOGEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHN0RXZ0OndoZW49IjIwMjAtMDItMTdUMTM6MDA6MzJaIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg1ZDBlZGIwLWZkMDAtYjY0Zi05ZWZiLWEyYjQ1ODcwNWE4YSIgc3RFdnQ6d2hlbj0iMjAyMC0wMi0xN1QxMzowMDozMloiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHBob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8cmRmOkJhZz4gPHJkZjpsaSBwaG90b3Nob3A6TGF5ZXJOYW1lPSLupKEiIHBob3Rvc2hvcDpMYXllclRleHQ9Iu6koSIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FwvRXAAAABdJREFUGNNj/P//PwMxgHGIKPw/XDwDAOr1HuzlELLnAAAAAElFTkSuQmCC');
}
-
#apple-music-video-container {
background: black;
position: absolute;
@@ -5692,6 +2858,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
z-index: 100000;
}
+
+
#apple-music-video-player {
position: absolute;
top: 50%;
@@ -5700,6 +2868,11 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
height: 100%;
}
+#app.twopanel #apple-music-video-container {
+ top: var(--chromeHeight1);
+ bottom: unset;
+}
+
#apple-music-video-player-controls {
position: absolute;
z-index: 100001;
@@ -5801,78 +2974,6 @@ div#captions {
font-weight: 500;
}
-/* Switch Checkbox */
-input[type=checkbox][switch] {
- width: 38px;
- appearance: none;
- border-radius: 32px;
- height: 24px;
- zoom: 1;
- top: 0;
- cursor: pointer;
- left: 0;
- position: relative;
- transform: scale(1);
- background: rgb(142 142 147 / 100%);
- padding: 0;
- margin: 0;
-}
-
-input[type=checkbox][switch]:focus,
-input[type=checkbox][switch]:active {
- outline: none;
-}
-
-input[type=checkbox][switch]:checked {
- background: var(--keyColor);
- border: 0 solid var(--keyColor);
- mix-blend-mode: unset;
-
- &:hover {
- background: var(--keyColor-rollover);
- }
-
- &:active {
- background: var(--keyColor-pressed);
- }
-}
-
-input[type=checkbox][switch]::before {
- background: white;
- width: 26px;
- height: 26px;
- top: -1px;
- left: -1px;
- position: absolute;
- content: ' ';
- border-radius: 32px;
- transition: .10s left var(--appleEase);
- transform: scale(.75);
-}
-
-
-input[type=checkbox][switch]:checked::before {
- background: white;
- top: -1px;
- left: 13px;
- transition: .10s left var(--appleEase);
- transform: scale(.75);
-}
-
-input[type=checkbox][switch]:disabled::before {
- opacity: .5;
-}
-
-input[type=checkbox][switch]:active::before {
- left: 13px;
-}
-
-input[type=checkbox][switch]:checked:active::before {
- left: -1px;
-}
-
-/* End Switch Checkbox */
-
.madeforyou-body {
margin-top: 15px;
}
@@ -5888,6 +2989,10 @@ body.no-gpu {
.bg-artwork-container {
display: none;
+ animation: none !important;
+ .bg-artwork{
+ animation: none !important;
+ }
}
#navigation-bar {
@@ -5928,6 +3033,10 @@ body.no-gpu {
.drawertransition-leave-to {
right: -300px;
}
+
+ .lyric-line:hover::after {
+ display: none;
+ }
}
.qrimg {
@@ -6054,5 +3163,45 @@ body[platform='darwin'] {
}
}
+.percent {
+ display: inline-block;
+ position: relative;
+}
+.percent::after {
+ position: relative;
+ right: 2em;
+ transition: all .05s ease-in-out;
+}
+
+.percent:hover::after,
+.percent:focus-within::after {
+ right: 3.5em;
+}
+
+.percent::after {
+ content: '%';
+}
+
+.spatialproperties-panel.modal-fullscreen{
+ flex-direction: column;
+}
+
+.cursor {
+ background: rgb(255 255 255 / 50%);
+ width: 16px;
+ height: 16px;
+ position: fixed;
+ z-index: 9999999999;
+ pointer-events: none;
+ border-radius: 100%;
+ box-shadow: 0px 0px 0px 2px rgb(200 200 200 / 100%);
+ top: 0;
+ left: 0;
+ display: none;
+}
+
+@import url("less/macos.less");
+@import url("less/linux.less");
@import url("less/compact.less");
+@import url("less/directives.less");
\ No newline at end of file
diff --git a/src/renderer/themes/groovy/index.less b/src/renderer/themes/groovy/index.less
new file mode 100644
index 00000000..ab0c0141
--- /dev/null
+++ b/src/renderer/themes/groovy/index.less
@@ -0,0 +1 @@
+//
\ No newline at end of file
diff --git a/src/renderer/themes/groovy/theme.json b/src/renderer/themes/groovy/theme.json
new file mode 100644
index 00000000..db9f5469
--- /dev/null
+++ b/src/renderer/themes/groovy/theme.json
@@ -0,0 +1,15 @@
+{
+ "name": "Groovy",
+ "description": "Inspired by Groove Music and Media Player found on Windows",
+ "version": "1.0.0",
+ "author": "ciderapp",
+ "github_repo": "ciderapp/Groovy",
+ "directives": {
+ "windowLayout": {
+ "value": "twopanel"
+ },
+ "lcdArtworkSize": {
+ "value": 70
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/renderer/themes/sweetener.css b/src/renderer/themes/sweetener.css
new file mode 100644
index 00000000..51e9f4e3
--- /dev/null
+++ b/src/renderer/themes/sweetener.css
@@ -0,0 +1,40 @@
+.menu-panel .menu-panel-body {
+ background-color: rgba(30, 30, 30, 0.45);
+ backdrop-filter: blur(32px) saturate(180%);
+ animation: menuIn 0.1s var(--appleEase);
+}
+@keyframes menuIn {
+ 0% {
+ opacity: 0;
+ transform: translateY(-10px) translate3d(0, 0, 0);
+ background: #1e1e1e;
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ background: rgba(30, 30, 30, 0.45);
+ }
+}
+.cd-mediaitem-square:not(.mediaitem-card) {
+ transition: transform 0.2s var(--appleEase);
+ transition-delay: 0.1s;
+ padding: 12px;
+ height: 250px;
+}
+.cd-mediaitem-square:not(.mediaitem-card) .artwork-container,
+.cd-mediaitem-square:not(.mediaitem-card) .info-rect {
+ transition: transform 0.22s var(--appleEase);
+ transition-delay: 0.05s;
+}
+.cd-mediaitem-square:not(.mediaitem-card):hover .artwork-container {
+ transform: scale(1.1);
+ transition: transform 0.1s var(--appleEase);
+ transition-delay: 0s;
+ transform-origin: center;
+}
+.cd-mediaitem-square:not(.mediaitem-card):hover .info-rect {
+ z-index: 1;
+ transition: transform 0.1s var(--appleEase);
+ transition-delay: 0s;
+ transform: translateY(8px) translate3d(0, 0, 0);
+}
diff --git a/src/renderer/themes/sweetener.less b/src/renderer/themes/sweetener.less
new file mode 100644
index 00000000..681f41d3
--- /dev/null
+++ b/src/renderer/themes/sweetener.less
@@ -0,0 +1,68 @@
+@panelColorsFallback: rgb(30 30 30);
+@panelColors : rgb(30 30 30 / 45%);
+
+.menu-panel {
+ .menu-panel-body {
+ background-color: @panelColors;
+ backdrop-filter : blur(32px) saturate(180%);
+ animation: menuIn .10s var(--appleEase);
+ }
+
+
+ @keyframes menuIn {
+ 0% {
+ opacity : 0;
+ transform : translateY(-10px) translate3d(0,0,0);
+ background: @panelColorsFallback;
+ }
+
+ 100% {
+ opacity : 1;
+ transform : translateY(0);
+ background: @panelColors;
+ }
+ }
+
+}
+
+
+.cd-mediaitem-square:not(.mediaitem-card) {
+ transition : transform .2s var(--appleEase);
+ transition-delay: .1s;
+ padding : 12px;
+
+ // background-color: red;
+ height: 250px;
+
+
+ .artwork-container {}
+
+ .info-rect {}
+
+ .artwork-container,
+ .info-rect {
+ transition : transform .22s var(--appleEase);
+ transition-delay: .05s;
+ }
+
+ &:hover {
+ .artwork-container {
+ transform : scale(1.1);
+ transition : transform .1s var(--appleEase);
+ transition-delay: 0s;
+ transform-origin: center;
+ }
+
+
+ .info-rect {
+ z-index : 1;
+ transition : transform .1s var(--appleEase);
+ transition-delay: 0s;
+ transform : translateY(8px) translate3d(0,0,0);
+ }
+ }
+
+ &:active {
+
+ }
+}
\ No newline at end of file
diff --git a/src/renderer/views/app/app-content.ejs b/src/renderer/views/app/app-content.ejs
index e3ad44a4..3912c46f 100644
--- a/src/renderer/views/app/app-content.ejs
+++ b/src/renderer/views/app/app-content.ejs
@@ -1,4 +1,4 @@
-
+
<%- include('../svg/chevron-left.svg') %>
@@ -8,103 +8,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+ <% for(var i=0; i < Object.keys(env.appRoutes).length ; i++) {%>
+
+ v-on:enter="<%- env.appRoutes[i].onEnter %>"
+ <%
+ }
+ %>
+ :name="chrome.desiredPageTransition">
+
+ <%- env.appRoutes[i].component %>
+
+
+ <% } %>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <%- include('../pages/zoo') %>
-
-
- <%- include('../pages/webview') %>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -113,51 +34,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
<%- include('../pages/library-recentlyadded') %>');
-
-
-
-
-
-
-
-
- <%- include('../pages/library-albums') %>');
- %>
-
-
+
<%- include('../pages/madeforyou') %>');
%>
-
+
<%- include('../pages/library-artists') %>');
%>
-
-
-
-
-
\ No newline at end of file
diff --git a/src/renderer/views/app/app-navigation.ejs b/src/renderer/views/app/app-navigation.ejs
index b7d7f654..58833a1c 100644
--- a/src/renderer/views/app/app-navigation.ejs
+++ b/src/renderer/views/app/app-navigation.ejs
@@ -6,8 +6,9 @@
v-if="drawer.open && drawer.panel == 'lyrics' && lyrics && lyrics != [] && lyrics.length > 0">
+
+
+
+
+
+
+
+
+
+ {{ mk.nowPlayingItem["attributes"]["name"] }}
+
+
+
+
+
+
+ {{ mk.nowPlayingItem["attributes"]["artistName"] }}
+
+
+
{{"â"}}
+ {{(mk.nowPlayingItem["attributes"]["albumName"]) ?
+ (mk.nowPlayingItem["attributes"]["albumName"]) : "" }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ convertTime(getSongProgress()) }}
+
{{ convertTime(mk.currentPlaybackDuration) }}
+
+
+
+
{playerLCD.desiredDuration = 0;playerLCD.userInteraction = false}, 1000);"
+ :max="mk.currentPlaybackDuration" :value="getSongProgress()">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs
index fa2e3012..17a9eafe 100644
--- a/src/renderer/views/app/chrome-top.ejs
+++ b/src/renderer/views/app/chrome-top.ejs
@@ -16,33 +16,35 @@
@click="mainMenuVisibility(true)"
:class="{active: chrome.menuOpened}">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -57,7 +59,7 @@
v-if="mk.nowPlayingItem['attributes']['contentRating'] == 'explicit'"
style="display: inline-block">
-
+
{playerLCD.desiredDuration = 0;playerLCD.userInteraction = false}, 1000);"
:max="mk.currentPlaybackDuration" :value="getSongProgress()">
@@ -105,28 +107,41 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/views/app/panels.ejs b/src/renderer/views/app/panels.ejs
index bb8a4008..78751e87 100644
--- a/src/renderer/views/app/panels.ejs
+++ b/src/renderer/views/app/panels.ejs
@@ -1,17 +1,5 @@
-
-
-
-
-
-
-
-
-
-
@@ -28,9 +16,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/views/app/sidebar.ejs b/src/renderer/views/app/sidebar.ejs
index b4260263..102ab15c 100644
--- a/src/renderer/views/app/sidebar.ejs
+++ b/src/renderer/views/app/sidebar.ejs
@@ -19,7 +19,7 @@
-
-
diff --git a/src/renderer/views/components/add-to-playlist.ejs b/src/renderer/views/components/add-to-playlist.ejs
index ee093413..f209f5b8 100644
--- a/src/renderer/views/components/add-to-playlist.ejs
+++ b/src/renderer/views/components/add-to-playlist.ejs
@@ -12,7 +12,7 @@
<%- include("../svg/plus.svg") %>
{{app.getLz('action.createPlaylist')}}
-
+
@@ -42,6 +42,7 @@
searchQuery: "",
focused: "",
app: this.$root,
+ relateItems: []
}
},
props: {
@@ -51,6 +52,7 @@
}
},
mounted() {
+ this.relateItems = [this.$root.selectedMediaItems[0].id]
this.search()
this.$refs.searchInput.focus()
this.$refs.searchInput.addEventListener('keydown', (e) => {
diff --git a/src/renderer/views/components/animatedartwork-view.ejs b/src/renderer/views/components/animatedartwork-view.ejs
index b6cae3cd..ef091ee3 100644
--- a/src/renderer/views/components/animatedartwork-view.ejs
+++ b/src/renderer/views/components/animatedartwork-view.ejs
@@ -57,9 +57,32 @@
platformInfo: {requiresCDMAttachOnStart: !0, maxSecurityLevel: d, keySystemConfig: h},
appData: {serviceName: "Apple Music"}
}
+
this.hls.attachMedia(this.$refs.video);
this.hls.loadSource(this.video);
- this.hls.loadLevel = parseInt(app.cfg.visual.animated_artwork_qualityLevel || 1);
+ let u = this.hls;
+ var quality = app.cfg.visual.animated_artwork_qualityLevel;
+ setTimeout(() => {
+ let levelsnum = u.levels.map((level)=>{return level.width})
+ if (levelsnum.length > 0) {
+ let qualities = []
+ let qualities2 = []
+ for (let i = 0; i < levelsnum.length; i++) {
+ if (qualities2.indexOf(levelsnum[i]) == -1) {
+ qualities.push({level: i, quality: levelsnum[i]})
+ qualities2.push(levelsnum[i])
+ }
+ }
+ let actualnum = Math.floor(qualities[qualities.length -1 ].level * (quality / 4))
+ if (quality != 0 ){
+ quality = qualities[Math.min(actualnum,qualities.length -1 )].level
+ }
+ if (quality == 4 ){
+ quality = qualities[qualities.length - 1].level
+ }
+ }
+ try{
+ this.hls.loadLevel = parseInt( quality || 1);} catch(e){}},200)
}
})
}
diff --git a/src/renderer/views/components/artist-chip.ejs b/src/renderer/views/components/artist-chip.ejs
new file mode 100644
index 00000000..d0be7f95
--- /dev/null
+++ b/src/renderer/views/components/artist-chip.ejs
@@ -0,0 +1,45 @@
+
+
+
\ No newline at end of file
diff --git a/src/renderer/views/components/audio-controls.ejs b/src/renderer/views/components/audio-controls.ejs
new file mode 100644
index 00000000..57a174e6
--- /dev/null
+++ b/src/renderer/views/components/audio-controls.ejs
@@ -0,0 +1,87 @@
+
+
+
\ No newline at end of file
diff --git a/src/renderer/views/components/audio-settings.ejs b/src/renderer/views/components/audio-settings.ejs
index 379cf9ae..a26ae1b3 100644
--- a/src/renderer/views/components/audio-settings.ejs
+++ b/src/renderer/views/components/audio-settings.ejs
@@ -13,10 +13,20 @@
{{app.getLz('term.equalizer')}}
+ @click="openSpatialAudio()" style="width:100%;">
<%- include("../svg/speaker.svg") %>
{{app.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization')}}
+
+ <%- include("../svg/speaker.svg") %>
+ {{app.getLz('term.audioControls')}}
+
+
+ <%- include("../svg/speaker.svg") %>
+ {{app.getLz('settings.option.audio.audioLab')}}
+
@@ -38,14 +48,19 @@
app.modals.equalizer = true
app.modals.audioSettings = false
},
- openSpacialAudio() {
- if(app.cfg.audio.spatial) {
+ openSpatialAudio() {
+ if(app.cfg.audio.spatial === true && app.cfg.audio.maikiwiAudio.spatial === false) {
app.modals.spatialProperties = true
app.modals.audioSettings = false
} else {
notyf.error(app.getLz('spatial.notTurnedOn'))
}
},
+ openAudioControls() {
+ app.modals.audioControls = true
+ app.modals.audioSettings = false
+ },
+ },
}
- });
+ );
\ No newline at end of file
diff --git a/src/renderer/views/components/castmenu.ejs b/src/renderer/views/components/castmenu.ejs
new file mode 100644
index 00000000..8fa0a61e
--- /dev/null
+++ b/src/renderer/views/components/castmenu.ejs
@@ -0,0 +1,107 @@
+
+
\ No newline at end of file
diff --git a/src/renderer/views/components/equalizer.ejs b/src/renderer/views/components/equalizer.ejs
index 2d4f6f3b..17890854 100644
--- a/src/renderer/views/components/equalizer.ejs
+++ b/src/renderer/views/components/equalizer.ejs
@@ -1,15 +1,15 @@
+
+
\ No newline at end of file
diff --git a/src/renderer/views/components/mediaitem-artwork.ejs b/src/renderer/views/components/mediaitem-artwork.ejs
index e39a621b..16a79210 100644
--- a/src/renderer/views/components/mediaitem-artwork.ejs
+++ b/src/renderer/views/components/mediaitem-artwork.ejs
@@ -1,5 +1,5 @@
@@ -86,7 +95,9 @@
guid: this.uuidv4(),
app: this.$root,
displayDuration: true,
- addClasses: {}
+ addClasses: {},
+ itemId: 0,
+ isLibrary: false
}
},
props: {
@@ -103,6 +114,12 @@
'class-list': { type: String, required: false, default: "" },
},
mounted() {
+ if (this.item.attributes.playParams) {
+ this.itemId = this.item.attributes.playParams.id ?? this.item.id;
+ this.isLibrary = this.item.attributes.playParams.isLibrary ?? false;
+ } else {
+ this.itemId = this.item.id;
+ }
let duration = this.item.attributes.durationInMillis ?? 0
if (duration == 0 || !this.showDuration) {
this.displayDuration = false
@@ -121,13 +138,16 @@
return
}
this.$root.inLibrary([this.item]).then(res => {
- this.addedToLibrary = res[0].attributes.inLibrary
+ this.addedToLibrary = res[0]?.attributes?.inLibrary ?? false
})
return this.addedToLibrary
},
getClasses() {
+ this.addClasses = {}
+ if(typeof this.item.attributes.playParams == "undefined") {
+ this.addClasses["disabled"] = true
+ }
if (this.classList) {
- this.addClasses = {}
let classList = this.classList.split(' ')
for (let i = 0; i < classList.length; i++) {
this.addClasses[classList[i]] = true
@@ -151,10 +171,14 @@
return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
},
getDataType() {
- if (this.item.attributes.playParams.isLibrary) {
+ if (typeof this.item.attributes.playParams != "undefined") {
+ if (this.item.attributes.playParams.isLibrary) {
+ return this.item.type
+ } else {
+ return this.item.attributes.playParams.kind
+ }
+ }else{
return this.item.type
- } else {
- return this.item.attributes.playParams.kind
}
},
select(e) {
@@ -468,7 +492,7 @@
menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true
}
} catch (err) {
-
+ console.log(err)
}
},
visibilityChanged: function (isVisible, entry) {
@@ -528,7 +552,7 @@
array[j] = temp;
}
}
- app.mk.setQueue({ [truekind]: [item.attributes.playParams.id ?? item.id] }).then(function () {
+ app.mk.setQueue({ [truekind]: [item.attributes.playParams.id ?? item.id], parameters: { l: this.app.mklang } }).then(function () {
app.mk.play().then(function () {
var playlistId = id
function getPlaylist(id, isLibrary) {
diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs
index a8c709f6..0c26d60d 100644
--- a/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs
+++ b/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs
@@ -1,10 +1,8 @@
diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs
index a9c3a036..da292a71 100644
--- a/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs
+++ b/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs
@@ -1,18 +1,18 @@
@@ -43,6 +43,8 @@
app: this.$root,
}
},
- methods: {}
+ // mounted(){
+ // console.log('hes',this.items)
+ // }
});
\ No newline at end of file
diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs
index f7a5e4b3..d83cd68e 100644
--- a/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs
+++ b/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs
@@ -1,9 +1,11 @@
diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal.ejs
index e1413c7c..dfda58e4 100644
--- a/src/renderer/views/components/mediaitem-scroller-horizontal.ejs
+++ b/src/renderer/views/components/mediaitem-scroller-horizontal.ejs
@@ -1,11 +1,8 @@
+
+
\ No newline at end of file
diff --git a/src/renderer/views/components/queue.ejs b/src/renderer/views/components/queue.ejs
index 90061dc8..b08bdebf 100644
--- a/src/renderer/views/components/queue.ejs
+++ b/src/renderer/views/components/queue.ejs
@@ -66,7 +66,7 @@
},
methods: {
async getHistory() {
- let history = await app.mk.api.v3.music(`/v1/me/recent/played/tracks`)
+ let history = await app.mk.api.v3.music(`/v1/me/recent/played/tracks`, { l : this.$root.mklang})
this.history = history.data.data
},
select(e, position) {
@@ -94,8 +94,8 @@
self.queueItems.splice(position, 1)
app.mk.queue._queueItems = self.queueItems;
app.mk.queue._reindex()
- }
- },
+ }
+ },
{
"name": app.getLz('action.startRadio'),
"action": function () {
@@ -106,6 +106,18 @@
})
}
},
+ {
+ "name": app.getLz('action.goToArtist'),
+ "action": function () {
+ app.searchAndNavigate(item,'artist')
+ }
+ },
+ {
+ "name": app.getLz('action.goToAlbum'),
+ "action": function () {
+ app.searchAndNavigate(item,'album')
+ }
+ },
]
},
multiple: {
diff --git a/src/renderer/views/components/sidebar-playlist.ejs b/src/renderer/views/components/sidebar-playlist.ejs
index 83df7072..2b1b9070 100644
--- a/src/renderer/views/components/sidebar-playlist.ejs
+++ b/src/renderer/views/components/sidebar-playlist.ejs
@@ -9,13 +9,14 @@
:href="item.href"
@click='clickEvent()'>
- {{ item.attributes.name }}
+ {{ item.attributes.name }}
+ (Track present)
-
+
@@ -35,6 +36,13 @@
playlistSelect: {
type: Function,
required: false
+ },
+ relateMediaItems: {
+ type: Array,
+ required: false,
+ default () {
+ return []
+ }
}
},
data: function () {
@@ -43,7 +51,8 @@
children: [],
playlistRoot: "p.playlistsroot",
renaming: false,
- icon: ""
+ icon: "",
+ hasRelatedMediaItems: false
}
},
async mounted() {
@@ -52,6 +61,12 @@
} else {
this.icon = await this.$root.getSvgIcon("./assets/feather/folder.svg")
}
+ let playlistMap = this.$root.playlists.trackMapping
+ if(this.relateMediaItems.length != 0) {
+ if(playlistMap[this.relateMediaItems[0]].includes(this.item.id)) {
+ this.hasRelatedMediaItems = true
+ }
+ }
},
methods: {
clickEvent() {
@@ -189,7 +204,7 @@
openPlaylist(item) {
this.$root.appRoute(`playlist_` + item.id);
this.$root.showingPlaylist = [];
- this.$root.getPlaylistFromID(this.$root.page.substring(9))
+ this.$root.getPlaylistFromID(this.$root.page.substring(9), true)
},
getPlaylistChildren(item) {
let self = this
diff --git a/src/renderer/views/components/spatial-properties.ejs b/src/renderer/views/components/spatial-properties.ejs
index 93613e05..d802ca2a 100644
--- a/src/renderer/views/components/spatial-properties.ejs
+++ b/src/renderer/views/components/spatial-properties.ejs
@@ -1,5 +1,5 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- <%- include('app/chrome-top'); %>
- <%- include('app/app-navigation'); %>
-
-
- <%- include('app/panels'); %>
-
+
+ <%- include("../assets/cider-round.svg") %>
+
+
+
+
+ <%- include('app/chrome-top'); %>
+ <%- include('app/app-navigation'); %>
+ <%- include('app/chrome-bottom'); %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%- include('app/panels'); %>
+
+
-<% for(var i=0; i < Object.keys(env.components).length ; i++) {%>
- <%- include(env.components[i]); %>
-<% } %>
+ <% for(var i=0; i < Object.keys(env.components).length ; i++) {%>
+ <%- include(env.components[i]); %>
+ <% } %>
-
+
+
+
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/src/renderer/views/pages/about.ejs b/src/renderer/views/pages/about.ejs
index 69cf3a3d..61d10410 100644
--- a/src/renderer/views/pages/about.ejs
+++ b/src/renderer/views/pages/about.ejs
@@ -3,6 +3,7 @@
+
{{ $root.getLz("term.version") }} {{ $root.version }}
{{$root.getLz('about.thanks')}}
"{{$root.getLz('term.appleMusic')}}" - {{$root.getLz('term.copyright')}} Š 2022
@@ -56,6 +59,7 @@
data: function () {
return {
window: window,
+ version: app.version,
team: [
{
name: 'cryptofyre',
@@ -86,6 +90,18 @@
link: 'https://github.com/vapormusic',
role: app.getLz('term.developer'),
avatar: 'https://avatars.githubusercontent.com/u/27716185?v=4'
+ },
+ {
+ name: 'crypticplank',
+ link: 'https://github.com/crypticplank',
+ role: app.getLz('term.developer'),
+ avatar: 'https://avatars.githubusercontent.com/u/52553007?v=4'
+ },
+ {
+ name: 'Maikiwi',
+ link: 'https://github.com/maikirakiwi',
+ role: app.getLz('term.developer'),
+ avatar: 'https://avatars.githubusercontent.com/u/74925636?v=4'
},
{
name: 'Void',
@@ -97,7 +113,7 @@
name: 'NoseySG',
link: 'https://twitter.com/noah_grose',
role: app.getLz('term.socialTeam'),
- avatar: 'https://pbs.twimg.com/profile_images/1422541289837535239/qg-aaoP9_400x400.jpg'
+ avatar: 'https://pbs.twimg.com/profile_images/1496944907260420099/D5gl6H4J_400x400.jpg'
}
]
}
diff --git a/src/renderer/views/pages/artist-feed.ejs b/src/renderer/views/pages/artist-feed.ejs
index 2a354bd8..e2af0b51 100644
--- a/src/renderer/views/pages/artist-feed.ejs
+++ b/src/renderer/views/pages/artist-feed.ejs
@@ -8,18 +8,16 @@
{{app.getLz('home.followedArtists')}}
-
-
-
-
-
- {{app.getLz('action.unfollow')}}
-
-
-
-
+
+
+
+
+ {{app.getLz('action.unfollow')}}
+
+
+
@@ -80,21 +78,30 @@
let self = this
this.artists = []
this.artistFeed = []
- this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${artists.toString()}&views=latest-release&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=2&art[url]=f`).then(artistData => {
- artistData.data.data.forEach(item => {
- self.artists.push(item)
- if (item.views["latest-release"].data.length != 0) {
- self.artistFeed.push(item.views["latest-release"].data[0])
- }
- })
+
+ // Apple limits the number of IDs we can provide in a single API call to 50.
+ // Divide it into groups of 50 and send parallel requests
+ let chunks = []
+ for (let artistIdx = 0; artistIdx < artists.length; artistIdx += 50) {
+ chunks.push(artists.slice(artistIdx, artistIdx + 50))
+ }
+ try {
+ const chunkArtistData = await Promise.all(chunks.map(chunk =>
+ this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists?ids=${chunk.toString()}&views=latest-release&include[songs]=albums&fields[albums]=artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount&limit[artists:top-songs]=2&art[url]=f`)))
+ chunkArtistData.forEach(chunkResult =>
+ chunkResult.data.data.forEach(item => {
+ self.artists.push(item)
+ if (item.views["latest-release"].data.length != 0) {
+ self.artistFeed.push(item.views["latest-release"].data[0])
+ }
+ }))
// sort artistFeed by attributes.releaseDate descending, date is formatted as "YYYY-MM-DD"
this.artistFeed.sort((a, b) => {
let dateA = new Date(a.attributes.releaseDate)
let dateB = new Date(b.attributes.releaseDate)
return dateB - dateA
})
- })
-
+ } catch (err) { }
}
}
});
diff --git a/src/renderer/views/pages/artist.ejs b/src/renderer/views/pages/artist.ejs
index d6c69394..04171b26 100644
--- a/src/renderer/views/pages/artist.ejs
+++ b/src/renderer/views/pages/artist.ejs
@@ -56,36 +56,33 @@
-
-
+
+
+
{{app.getLz('term.latestReleases')}}
+
+
+
+
+
+
-
-
{{app.getLz('term.latestReleases')}}
-
-
-
-
+
+
{{app.getLz('term.topSongs')}}
-
-
-
-
{{app.getLz('term.topSongs')}}
-
-
- {{app.getLz('term.seeAll')}}
-
-
-
+
+ {{app.getLz('term.seeAll')}}
+
+
diff --git a/src/renderer/views/pages/audiolabs.ejs b/src/renderer/views/pages/audiolabs.ejs
new file mode 100644
index 00000000..8c1ee6c2
--- /dev/null
+++ b/src/renderer/views/pages/audiolabs.ejs
@@ -0,0 +1,283 @@
+
+
+
\ No newline at end of file
diff --git a/src/renderer/views/pages/cider-playlist.ejs b/src/renderer/views/pages/cider-playlist.ejs
index a34b3f94..c49d03f4 100644
--- a/src/renderer/views/pages/cider-playlist.ejs
+++ b/src/renderer/views/pages/cider-playlist.ejs
@@ -21,7 +21,7 @@
:video-priority="true"
:url="(data.attributes != null && data.attributes.artwork != null) ? data.attributes.artwork.url : ((data.relationships != null && data.relationships.tracks.data.length > 0 && data.relationships.tracks.data[0].attributes != null) ? ((data.relationships.tracks.data[0].attributes.artwork != null)? data.relationships.tracks.data[0].attributes.artwork.url : ''):'')"
:video="(data.attributes != null && data.attributes.editorialVideo != null) ? (data.attributes.editorialVideo.motionDetailSquare ? data.attributes.editorialVideo.motionDetailSquare.video : (data.attributes.editorialVideo.motionSquareVideo1x1 ? data.attributes.editorialVideo.motionSquareVideo1x1.video : '')) : '' "
- size="260"
+ size="500"
>
@@ -32,23 +32,32 @@
{{data.attributes ? (data.attributes.name ??
(data.attributes.title ?? '') ?? '') : ''}}
-
+ @keydown.enter="editPlaylist"/>
+
{{getArtistName(data)}}
-
-
-
+
+
+
+
+
+
- {{app.getLz('term.showMore')}}
+ {{app.getLz('term.showMore')}}
@@ -57,26 +66,31 @@
-
{{app.getLz('term.showLess')}}
+
+ {{app.getLz('term.showLess')}}
-