From 6a125902cd708783b580b6768a6ffbaf26f8ce61 Mon Sep 17 00:00:00 2001 From: SeedList Date: Thu, 10 Apr 2025 14:05:11 +0800 Subject: [PATCH] vault backup: 2025-04-10 14:05:11 --- .../.editorconfig | 13 - .../obsidian-enhancing-export-main/.env | 3 - .../.env.development | 1 - .../.eslintrc.json | 52 - .../.gitattributes | 1 - .../.github/dependabot.yml | 20 - .../.github/workflows/release.yml | 119 - .../.github/workflows/test.yml | 34 - .../obsidian-enhancing-export-main/.gitignore | 6 - .../obsidian-enhancing-export-main/.npmrc | 1 - .../.prettierrc | 8 - .../.vscode/settings.json | 2 - .../CONTRIBUTING.md | 63 - .../obsidian-enhancing-export-main/LICENSE | 21 - .../obsidian-enhancing-export-main/README.md | 67 - .../README_zh-CN.md | 52 - .../jest.config.cjs | 5 - .../lua/citefilter.lua | 6 - .../lua/markdown+hugo.lua | 5 - .../lua/markdown.lua | 237 - .../lua/math_block.lua | 68 - .../lua/pdf.lua | 12 - .../lua/polyfill.lua | 61 - .../lua/url.lua | 18 - .../lua/utf8_filenames.lua.bak | 1278 -- .../manifest.json | 10 - .../package.json | 46 - .../pnpm-lock.yaml | 4201 ---- .../screenshot/exportview_en-US.png | Bin 30140 -> 0 bytes .../screenshot/exportview_zh-CN.png | Bin 30094 -> 0 bytes .../screenshot/settingview_en-US.png | Bin 47268 -> 0 bytes .../screenshot/settingview_zh-CN.png | Bin 47690 -> 0 bytes .../src/export_templates.ts | 141 - .../src/exporto0o.ts | 234 - .../obsidian-enhancing-export-main/src/hmr.ts | 79 - .../src/lang/de-DE.ts | 71 - .../src/lang/en-US.ts | 69 - .../src/lang/index.ts | 27 - .../src/lang/zh-CN.ts | 70 - .../src/main.ts | 153 - .../src/pandoc.ts | 28 - .../src/resources.ts | 9 - .../src/settings.ts | 172 - .../src/styles.css | 8 - .../src/ui/ExportDialog.tsx | 141 - .../src/ui/SettingTab.tsx | 362 - .../src/ui/components/Button.tsx | 5 - .../src/ui/components/Icon.tsx | 12 - .../src/ui/components/Modal.tsx | 53 - .../src/ui/components/ProgressBar.tsx | 36 - .../src/ui/components/PropertyGrid.tsx | 155 - .../src/ui/components/Setting.tsx | 124 - .../src/ui/index.tsx | 6 - .../src/ui/legacy/export_dialog.ts | 158 - .../src/ui/legacy/index.ts | 4 - .../src/ui/legacy/setting_tab.ts | 573 - .../src/ui/message_box.ts | 110 - .../src/utils.ts | 127 - .../src/vite-env.d.ts | 1 - .../tests/common.ts | 38 - .../tests/internalLink.spec.ts | 15 - .../tests/markdowns/internal-link-basic.md | 1 - .../tests/markdowns/internal-link-basic.out | 14 - .../tests/markdowns/internal-link-bullet.md | 3 - .../tests/markdowns/internal-link-bullet.out | 19 - .../markdowns/internal-link-described.md | 1 - .../markdowns/internal-link-described.out | 14 - .../markdowns/math-block-01-no-empty-lines.md | 41 - .../math-block-01-no-empty-lines.out | 8 - .../tests/markdowns/math-block-01.md | 51 - .../tests/markdowns/math-block-01.orig | 28 - .../tests/markdowns/math-block-01.out | 11 - .../tests/markdowns/math-block.md | 13 - .../tests/markdowns/math-block.orig | 12 - .../tests/markdowns/math-block.out | 8 - .../tests/mathBlock.spec.ts | 23 - .../tests/pandocVersion.spec.ts | 7 - .../tests/platformValue.spec.ts | 26 - .../tests/renderTemplate.spec.ts | 32 - .../textemplate/dissertation.tex | 1210 -- .../textemplate/neurips.sty | 373 - .../textemplate/neurips.tex | 159 - .../tsconfig.json | 29 - .../typings/electron.d.ts | 16204 ---------------- .../typings/obsidian.d.ts | 34 - .../version-bump.mjs | 29 - .../versions.json | 53 - .../vite.config.ts | 143 - 88 files changed, 27937 deletions(-) delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.editorconfig delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.env delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.env.development delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.eslintrc.json delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.gitattributes delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.github/dependabot.yml delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/release.yml delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/test.yml delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.gitignore delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.npmrc delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.prettierrc delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/.vscode/settings.json delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/CONTRIBUTING.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/LICENSE delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/README.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/README_zh-CN.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/jest.config.cjs delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/citefilter.lua delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/markdown+hugo.lua delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/markdown.lua delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/math_block.lua delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/pdf.lua delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/polyfill.lua delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/url.lua delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/lua/utf8_filenames.lua.bak delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/manifest.json delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/package.json delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/pnpm-lock.yaml delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/screenshot/exportview_en-US.png delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/screenshot/exportview_zh-CN.png delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/screenshot/settingview_en-US.png delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/screenshot/settingview_zh-CN.png delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/export_templates.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/exporto0o.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/hmr.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/lang/de-DE.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/lang/en-US.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/lang/index.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/lang/zh-CN.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/main.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/pandoc.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/resources.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/settings.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/styles.css delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/ExportDialog.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/SettingTab.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/components/Button.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/components/Icon.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/components/Modal.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/components/ProgressBar.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/components/PropertyGrid.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/components/Setting.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/index.tsx delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/legacy/export_dialog.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/legacy/index.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/legacy/setting_tab.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/ui/message_box.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/utils.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/src/vite-env.d.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/common.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/internalLink.spec.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/internal-link-basic.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/internal-link-basic.out delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/internal-link-bullet.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/internal-link-bullet.out delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/internal-link-described.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/internal-link-described.out delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block-01-no-empty-lines.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block-01-no-empty-lines.out delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block-01.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block-01.orig delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block-01.out delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block.md delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block.orig delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/markdowns/math-block.out delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/mathBlock.spec.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/pandocVersion.spec.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/platformValue.spec.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tests/renderTemplate.spec.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/textemplate/dissertation.tex delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/textemplate/neurips.sty delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/textemplate/neurips.tex delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/tsconfig.json delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/typings/electron.d.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/typings/obsidian.d.ts delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/version-bump.mjs delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/versions.json delete mode 100644 .obsidian/plugins/obsidian-enhancing-export-main/vite.config.ts diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.editorconfig b/.obsidian/plugins/obsidian-enhancing-export-main/.editorconfig deleted file mode 100644 index 078c7b88..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# EditorConfig is awesome: https://EditorConfig.org - -# top-most EditorConfig file -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = false -insert_final_newline = false -max_line_length = 140 diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.env b/.obsidian/plugins/obsidian-enhancing-export-main/.env deleted file mode 100644 index 2bb68099..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.env +++ /dev/null @@ -1,3 +0,0 @@ - -# export to obsidian plugin directory directly? -OUT_DIR="./dist" diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.env.development b/.obsidian/plugins/obsidian-enhancing-export-main/.env.development deleted file mode 100644 index 083c815f..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.env.development +++ /dev/null @@ -1 +0,0 @@ -NODE_ENV=development \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.eslintrc.json b/.obsidian/plugins/obsidian-enhancing-export-main/.eslintrc.json deleted file mode 100644 index e6572780..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.eslintrc.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "env": { - "browser": true, - "commonjs": true, - "es2021": true - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest" - }, - "plugins": [ - "@typescript-eslint" - ], - "rules": { - "indent": [ - "error", - 2, - { - "SwitchCase": 1 - } - ], - "linebreak-style": [ - "error", - "unix" - ], - "quotes": [ - "error", - "single", - { - "avoidEscape": true - } - ], - "semi": [ - "error", - "always" - ], - "no-prototype-builtins": "off", - "no-constant-condition": [ - "error", - { - "checkLoops": false - } - ] - }, - "ignorePatterns": [ - "dist/*" - ] -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.gitattributes b/.obsidian/plugins/obsidian-enhancing-export-main/.gitattributes deleted file mode 100644 index 94f480de..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto eol=lf \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.github/dependabot.yml b/.obsidian/plugins/obsidian-enhancing-export-main/.github/dependabot.yml deleted file mode 100644 index 2488e178..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.github/dependabot.yml +++ /dev/null @@ -1,20 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "npm" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "weekly" - time: "13:00" - open-pull-requests-limit: 10 - - - package-ecosystem: github-actions - directory: "/" - schedule: - interval: weekly - time: "13:00" - open-pull-requests-limit: 10 diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/release.yml b/.obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/release.yml deleted file mode 100644 index f48fd93d..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/release.yml +++ /dev/null @@ -1,119 +0,0 @@ -name: Release Obsidian plugin - -on: - workflow_dispatch: - inputs: - version: - description: 'version' - required: true - -env: - PLUGIN_NAME: obsidian-enhancing-export - -jobs: - bump: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token. - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - - name: Create local changes - run: | - npm run version ${{ github.event.inputs.version }} - - name: Commit files - run: | - git config --local user.email "github-actions[bot]@users.noreply.github.com" - git config --local user.name "github-actions[bot]" - git commit -a -m "🔖 Bump version number to ${{ github.event.inputs.version }}" - git tag -a ${{ github.event.inputs.version }} -m "" - - name: Push changes - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ github.ref }} - tags: true - - build: - runs-on: ubuntu-latest - needs: [ "bump"] - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.version }} - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version: 18 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Build - id: build - run: | - pnpm install - npm run build - mkdir ${{ env.PLUGIN_NAME }} - cp dist/* ${{ env.PLUGIN_NAME }} - zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }} - ls - - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VERSION: ${{ github.event.inputs.version }} - with: - tag_name: ${{ github.event.inputs.version }} - release_name: ${{ github.event.inputs.version }} - draft: false - prerelease: false - - - name: Upload zip file - id: upload-zip - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./${{ env.PLUGIN_NAME }}.zip - asset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zip - asset_content_type: application/zip - - - name: Upload main.js - id: upload-main - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./dist/main.js - asset_name: main.js - asset_content_type: text/javascript - - - name: Upload manifest.json - id: upload-manifest - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./dist/manifest.json - asset_name: manifest.json - asset_content_type: application/json - - - name: Upload styles.css - id: upload-css - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./dist/styles.css - asset_name: styles.css - asset_content_type: text/css \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/test.yml b/.obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/test.yml deleted file mode 100644 index 0385176f..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.github/workflows/test.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Test - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [20.x] - - steps: - - uses: actions/checkout@v4 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Install Pandoc - run: | - wget https://github.com/jgm/pandoc/releases/download/3.1.11.1/pandoc-3.1.11.1-1-amd64.deb - sudo dpkg -i pandoc-3.1.11.1-1-amd64.deb - - name: Install Dependencies - run: pnpm install - - name: Test - run: npm test diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.gitignore b/.obsidian/plugins/obsidian-enhancing-export-main/.gitignore deleted file mode 100644 index 2e828035..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/dist -/node_modules -/coverage -/lua/main.lua -/.env.local -/.idea \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.npmrc b/.obsidian/plugins/obsidian-enhancing-export-main/.npmrc deleted file mode 100644 index b9737525..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.npmrc +++ /dev/null @@ -1 +0,0 @@ -tag-version-prefix="" \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.prettierrc b/.obsidian/plugins/obsidian-enhancing-export-main/.prettierrc deleted file mode 100644 index fdffd089..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -tabWidth: 2 -useTabs: false -semi: true -singleQuote: true -quoteProps: preserve -trailingComma: es5 -arrowParens: avoid - diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/.vscode/settings.json b/.obsidian/plugins/obsidian-enhancing-export-main/.vscode/settings.json deleted file mode 100644 index 7a73a41b..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/.vscode/settings.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/CONTRIBUTING.md b/.obsidian/plugins/obsidian-enhancing-export-main/CONTRIBUTING.md deleted file mode 100644 index 25beb612..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/CONTRIBUTING.md +++ /dev/null @@ -1,63 +0,0 @@ -# Contributing to Obsidian Enhancing Export - -First, thank you for your willingness to contribute to this project. - -## Simple guide - -1. Environment Preparing - - - Install the `nodejs` - - [https://nodejs.org/en/download](https://nodejs.org/en/download) - - - Install the `pnpm` - - ```shell - npm install -g pnpm - ``` - - - Clone the repository - - ```shell' - git clone https://github.com/mokeyish/obsidian-enhancing-export.git - ``` - - - Install the dependencies - - ```shell - cd obsidian-enhancing-export - pnpm install - ``` - -2. Development & debugging (Recommend [VsCode](https://code.visualstudio.com/)) - - - Add `.env.local` to project root with following content - - ```shell - # export to obsidian plugin directory directly - OUT_DIR="path/to/.obsidian/plugins/obsidian-enhancing-export" - ``` - - - Enable `dev-mode ` - - To enable dev-mode in the obsidian, use the shortcut `Ctrl+Shift+I` or the `` key to open DevTools. and run following commands in the Console Tab of DevTools. - - ```shell - localStorage.setItem('debug-plugin', '1') - ``` - - - Build the code for debugging - - ```shell - npm run dev - ``` - - More debug tips please see: [How to debug TypeScript in Chrome](https://blog.logrocket.com/how-to-debug-typescript-chrome/) - -3. Building for Production - - ```shell - npm run build - ``` - -4. Other commands please see `sciprts` of `package.json` in the project root. diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/LICENSE b/.obsidian/plugins/obsidian-enhancing-export-main/LICENSE deleted file mode 100644 index cfccb224..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 YISH - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/README.md b/.obsidian/plugins/obsidian-enhancing-export-main/README.md deleted file mode 100644 index 99e61241..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# Obsidian Enhancing Export Plugin - -![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/mokeyish/obsidian-enhancing-export?display_name=tag&include_prereleases) -![Obsidian Downloads](https://img.shields.io/badge/dynamic/json?logo=obsidian&color=%23483699&label=downloads&query=%24%5B%27obsidian-enhancing-export%27%5D.downloads&url=https%3A%2F%2Fraw.githubusercontent.com%2Fobsidianmd%2Fobsidian-releases%2Fmaster%2Fcommunity-plugin-stats.json) - -English | [中文](https://github.com/mokeyish/obsidian-enhancing-export/blob/master/README_zh-CN.md) - -This is an enhancing export plugin base on `Pandoc` for Obsidian ([https://obsidian.md/](https://obsidian.md/)). It's allow you to export to formats like `Markdown`,`Markdown (Hugo)`,`HTML`,`docx`,`Latex` etc. - -Where `Markdown`,`Markdown (Hugo)`,`HTML` will export and its media resource together. - -**Note:** `Markdown`,`Markdown (Hugo)`,`HTML` are tested in Mac OS, Windows, and Linux as I used it for myself, others are not tested well. - - -**Ads**: You might like my other plugins 🤪 -- [Obsidian Code Emitter](https://github.com/mokeyish/obsidian-code-emitter) - - -## Screen shot - -- Export view,click on `Export to...` on file menu. - - ![](https://raw.githubusercontent.com/mokeyish/obsidian-enhancing-export/master/screenshot/exportview_en-US.png) -- Setting view - - ![](https://raw.githubusercontent.com/mokeyish/obsidian-enhancing-export/master/screenshot/settingview_en-US.png) - -## Installation - -1. First install the latest `pandoc` (3.1.9+), and then add `pandoc` path to environment variable `PATH` or set absolute path of `pandoc` in the plugin setting view. - - See more details in [https://pandoc.org/installing.html](https://pandoc.org/installing.html)。 - -2. Search `obsidian-enhancing-export` in the community plugins of obsidian, and install it. - -## Customize export commands - -You can customize your export command by yourself, click `add` in the plugin setting view and then choose template `custom` to add new custom configuration. - -## Variables - -You can use `${variables}` in custom export command, their values are: - -| Key | Value | -| ------------------------- | ------------------------------------------------------------ | -| `${outputPath}` | Output file path after export. For example, if your export to location `/User/aaa/Documents/test.pdf`, then `${outputDir}` will be replace that path. | -| `${outputDir}` | Output directory of saved exported file,It will be `/User/aaa/Documents` in above case. | -| `${outputFileName}` | File name (without extension) of the saved exported file. It will be `test` in above case. | -| `${outputFileFullName}` | File name (with extension) of the saved exported file. It will be `test.pdf` in above case. | -| `${currentPath}` | Path of currently edited file. For example, if your are editing `/User/aaa/Documents/readme.md`, the the value will be `/User/aaa/Documents/readme.md`. | -| `${currentDir}` | Current directory of currently edited file, It will be`/User/aaa/Documents` in above case. | -| `${currentFileName}` | Filename without extension of currently edited file, It will be `readme` in above case. | -| `${currentFileFullName}` | Filename with extension of currently edited file. It will be `readme.md` in above case. | -| `${vaultDir}` | The obsidian current vaultDir. | -| `${attachmentFolderPath}` | The `attachmentFolderPath` of Obsidian. | -| Others variables | You can use `keyword: value` in [YAML Front Matter](https://jekyllrb.com/docs/front-matter/), then use `${metadata.keyword}` | - -## Related resources - -- **Tutorial**: [Obsidian Tutorial for Academic Writing](https://betterhumans.pub/obsidian-tutorial-for-academic-writing-87b038060522) - tutorial on how to setup this plugin and use it for academic writing (export to `.docx`, `.pdf`, `.tex`, `.bib`) -- **A collection of lua filters for pandoc**: [https://github.com/pandoc-ext](https://github.com/pandoc-ext) - Filters and other goodies to get the most out of pandoc, the universal document converter. -- **Math latex editor**: [https://math.yish.org/](https://math.yish.org/) - -## Finally - -- Welcome to provide more command templates to [here](src/export_templates.ts). -- Feel free to file an issue for any questions. diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/README_zh-CN.md b/.obsidian/plugins/obsidian-enhancing-export-main/README_zh-CN.md deleted file mode 100644 index 693a72ff..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/README_zh-CN.md +++ /dev/null @@ -1,52 +0,0 @@ -# Obsidian Enhancing Export Plugin - -[English](https://github.com/mokeyish/obsidian-enhancing-export/blob/master/README.md) | 中文 - -这是一个基于 Pandoc 的 Obsidian 加强版导出插件。提供了基本的导出格式:Markdown 、Markdown(Hugo [https://gohugo.io/](https://gohugo.io/))、Html、docx、Latex等。 -其中 Markdown 、Markdown(Hugo)、Html 会把媒体资源一并导出。 - -**注意:** 目前自用的就是 Markdown 、Markdown(Hugo)、Html,在 Mac OS、Windows、Linux 可正常使用,其他未经严格测试。 - -## 界面截图 -- 导出界面,在文件菜单上点击 `导出为......` - - ![](https://raw.githubusercontent.com/mokeyish/obsidian-enhancing-export/master/screenshot/exportview_zh-CN.png) -- 设置界面 - - ![](https://raw.githubusercontent.com/mokeyish/obsidian-enhancing-export/master/screenshot/settingview_zh-CN.png) - -## 安装 -1. 需要先安装最新的 `pandoc`(3.1.9+),最好配置到 PATH 环境变量,或者设置界面指定路径。 - 参考地址:[https://pandoc.org/installing.html](https://pandoc.org/installing.html) -2. 在 Obsidian 插件市场,搜索 `obsidian-enhancing-export` 进行安装。 - -## 自定义命令 - -本插件是支持自定义导出命令的,在设置界面,点击添加按钮,选择 `Custom` 作为模板,即可新增一个自定义导出的配置了。 - -### 变量 -你可以使用 `${variable}` 在自定义导出的命令中。它们的值是: - -| 变量名 | 值 | -| -- | -- | -| `${outputPath}` |导出路径,例如,你的导出位置是:`/User/aaa/Documents/test.pdf` ,则 `${outputDir}` 会替换为那个路径。| -| `${outputDir}` | 导出目录,按上面的例子,它会被替换为 `/User/aaa/Documents`。 | -| `${outputFileName}` | 没有扩展名的文件名,按上面的例子,它会被替换为 `test`。 | -| `${outputFileFullName}` | 文件的全名,按上面的例子,它会被替换为 `test.pdf`。 | -| `${currentPath}` | 当前文件路径,例如当前的文件位置是 `/User/aaa/Documents/readme.md`,那么它会被替换为这个文件的位置。 | -| `${currentDir}` | 当前文件所在目录,按上面的例子,值为 `/User/aaa/Documents`。 | -| `${currentFileName}` | 当前文件不带扩展名的名字,值是 `readme` | -| `${currentFileFullName}` | 当前文件全名,值是 `readme.md`。 | -| `${vaultDir}` | Obsidian 当前的 vaultDir. | -| `${attachmentFolderPath}`| Obsidian 的附件目录 | -| 其他变量 | 你可以在 [YAML Front Matter](https://jekyllrb.com/docs/front-matter/) 中定义 `keyword: value` 变量,然后以 `${metadata.keyword}`引用它。 | - -## Related resources - -- **Pandoc 的 lua filters 集合**: [https://github.com/pandoc-ext](https://github.com/pandoc-ext) -- **Latex 数学公式编辑器**: [https://math.yish.org/](https://math.yish.org/) - -## 最后 - -- 欢迎提供更多命令模板到[这里](src/export_templates.ts).。 -- 有问题可以提交 Issue 给我。 diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/jest.config.cjs b/.obsidian/plugins/obsidian-enhancing-export-main/jest.config.cjs deleted file mode 100644 index d9818b25..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/jest.config.cjs +++ /dev/null @@ -1,5 +0,0 @@ -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node' -}; \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/citefilter.lua b/.obsidian/plugins/obsidian-enhancing-export-main/lua/citefilter.lua deleted file mode 100644 index 01700edd..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/citefilter.lua +++ /dev/null @@ -1,6 +0,0 @@ --- credits to tarleb — StackExchange: https://tex.stackexchange.com/questions/392070/pandoc-markdown-create-self-contained-bib-file-from-cited-references -function Pandoc(d) - d.meta.references = pandoc.utils.references(d) - d.meta.bibliography = nil - return d -end diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/markdown+hugo.lua b/.obsidian/plugins/obsidian-enhancing-export-main/lua/markdown+hugo.lua deleted file mode 100644 index 9341fd9f..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/markdown+hugo.lua +++ /dev/null @@ -1,5 +0,0 @@ -package.path=package.path..";" ..debug.getinfo(1).source:match("(.*[/\\])"):sub(2) .. "?.lua" - -Mode='hugo' - -require('markdown') \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/markdown.lua b/.obsidian/plugins/obsidian-enhancing-export-main/lua/markdown.lua deleted file mode 100644 index 60711482..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/markdown.lua +++ /dev/null @@ -1,237 +0,0 @@ -package.path=debug.getinfo(1).source:gsub('@',''):sub(0):match('(.*[/\\])'):sub(0) .. '?.lua' .. ';' .. package.path - -require("polyfill") -local url = require('url') - -local pandoc=pandoc -local PANDOC_STATE=PANDOC_STATE - -PANDOC_VERSION:must_be_at_least '3.1.7' - -os.text = pandoc.text - -local PATH = pandoc.path -local doc_dir = nil -local media_dir = nil - -if Mode == nil then - Mode = 'default' -end - --- print("Mode: "..Mode) - -if PANDOC_STATE.output_file then - local output_file = PANDOC_STATE.output_file - doc_dir = PATH.directory(output_file) - if PANDOC_WRITER_OPTIONS.variables["media_dir"] then - media_dir = tostring(PANDOC_WRITER_OPTIONS.variables["media_dir"]) - else - media_dir = PATH.split_extension(output_file) - if Mode ~= 'hugo' then - media_dir = media_dir .. '-media' - end - end -end -assert(doc_dir, "doc_dir is nil") -assert(media_dir, "media_dir is nil") - - -local function get_absolute_path(file_path) - if PATH.is_absolute(file_path) then - return file_path - end - for _, dir in pairs(PANDOC_STATE.resource_path) do - local full_path = PATH.join({dir, file_path}) - if os.exists(full_path) then - return full_path - end - end - for _, file in pairs(PANDOC_STATE.input_files) do - if not PATH.is_absolute(file) then - file = PATH.join({pandoc.system.get_working_directory(), file_path}) - end - local dir = PATH.directory(file) - local full_path = PATH.join({dir, file_path}) - if os.exists(full_path) then - return full_path - end - end - return nil -end - -local function get_output_file(file_path) - if media_dir then - local new_file_name = pandoc.utils.sha1(file_path) - local _, new_file_ext = PATH.split_extension(file_path) - file_path = new_file_name .. new_file_ext - local full_path = PATH.join({media_dir, file_path}) - return full_path - else - return nil - end -end - -local function extract_media(file_path) - os.mkdir(media_dir) - file_path = url.decode(file_path) - local abs_path = get_absolute_path(file_path) - local file = get_output_file(file_path) - if abs_path and file then - if not os.exists(file) then - os.copy(abs_path, file) - end - local rel_path = PATH.make_relative(file, doc_dir, false) - local parts = PATH.split(rel_path) - for i,v in ipairs(parts) do - parts[i] = url.encode(v) - end - local encoded_rel_path = table.concat(parts, "/") - if Mode == 'hugo' then - encoded_rel_path = '../' .. encoded_rel_path - end - return encoded_rel_path - end -end - -local function raw(s) - return pandoc.RawInline('markdown', s) -end - -function Image(el) - local src = extract_media(el.src) - if src then - el.src = src - end - return el -end - -function Space() - return raw(' ') -end - -function SoftBreak() - return raw('\n') -end - -function RawInline(el) - if el.format == "html" then - el.format = 'markdown' - el.text = string.gsub(el.text, ']+>', function(img) - return string.gsub(img, 'src="([^"]+)"', function(url) - if string.find(url, '^[Hh][Tt][Tt][Pp][Ss]?://') == nil then - local extract_media_url = extract_media(url) - if extract_media_url then - return 'src="' .. extract_media_url .. '"' - end - return '123' - end - return 'src="' .. url .. '"' - end) - end) - end - return el -end - -function RawBlock(el) - if el.format == "html" then - el.format = 'markdown' - end - return el -end - -function Math(el) - if Mode == 'hugo' then - if el.mathtype == 'DisplayMath' then - return raw('{{< mathjax >}}\n$$' .. el.text .. '$$\n{{}}') - else - el.text = string.gsub(el.text, '\\[\\{\\}]', function (v) - return '\\' .. v - end) - el.text = string.gsub(el.text, '_', function (v) - return '\\' .. v - end) - end - end - return el -end - -local function headerLink(input) - -- github style section link - return "#"..input:gsub(' ', '-') -end - - -local function insertLink(content, linkDescription) - local descriptionText = table.concat(linkDescription, "") - - if string.find(descriptionText, '|') then - local target, desc = descriptionText:match("(.*)|(.*)") - table.insert(content, pandoc.Link(desc, headerLink(target))) - else - table.insert(content, pandoc.Link(descriptionText, headerLink(descriptionText))) - end -end - -function Para(el) - local content = el.content - content = ProcessMath(content) - content = ProcessInternalLinks(content) - el.content = content - return el -end - -function ProcessMath(elements) - local content = {} - local in_display_math = false - for _, item in pairs(elements) do - if item.t == 'Str'and item.text == "$$" then - in_display_math = not in_display_math - else - if in_display_math then - if item.t == 'RawInline' and item.format == 'tex' then - local n = pandoc.Math('DisplayMath', '\n' .. item.text .. '\n') - table.insert(content, Math(n)) - else - table.insert(content, item) - end - else - table.insert(content, item) - end - end - end - return content -end - -function ProcessInternalLinks(elements) - local content = {} - local in_section_link = false - local linkDescription = {} - - for _, item in pairs(elements) do - if item.t == 'Str' and string.starts_with(item.text, '[[#') then - in_section_link = true - table.insert(linkDescription, string.sub(item.text, 4)) - elseif in_section_link then - if string.ends_with(item.text, ']]') then - table.insert(linkDescription, string.sub(item.text, 1, -3)) - insertLink(content, linkDescription) - in_section_link = false - linkDescription = {} - else - table.insert(linkDescription, item.text) - end - else - table.insert(content, item) - end - end - return content -end - -function Plain(el) - el.content = ProcessInternalLinks(el.content) - return el -end - -function Pandoc(el) - return el -end diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/math_block.lua b/.obsidian/plugins/obsidian-enhancing-export-main/lua/math_block.lua deleted file mode 100644 index 380d96a9..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/math_block.lua +++ /dev/null @@ -1,68 +0,0 @@ -traverse = 'topdown' - -math_block_text = nil -function process(el) - - -- MathBlock start or end - if el.t == 'Str' and el.text == '$$' then - if math_block_text == nil then -- start - math_block_text = '' - else -- end - local math_block = pandoc.Math('DisplayMath', '\n' .. math_block_text .. '\n') - math_block_text = nil - return math_block - end - return {} - end - - if math_block_text then - if (el.t == 'RawInline' or el.t == 'RawBlock') and el.format == 'tex' then - math_block_text = math_block_text .. el.text - return {} - elseif el.t == 'Str' then - math_block_text = math_block_text .. el.text - return {} - elseif el.t == 'SoftBreak' or el.t == 'BulletList' then - return {} - end - end - return el -end - -function RawInline(el) - return process(el) -end - -function RawBlock(el) - return process(el) -end - -function Str(el) - return process(el) -end - -function SoftBreak(el) - return process(el) -end - -function Header(el) - return process(el) -end - -function Para(el) - return process(el) -end - -function Plain(el) - return process(el) -end - -function BulletList(el) - return process(el) -end - - - - - - diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/pdf.lua b/.obsidian/plugins/obsidian-enhancing-export-main/lua/pdf.lua deleted file mode 100644 index 05fc651a..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/pdf.lua +++ /dev/null @@ -1,12 +0,0 @@ - -return { - { - Math = function (elem) - if elem.text:find("^%s*\\begin{") ~= nil then - return pandoc.RawInline('tex', elem.text) - else - return elem - end - end, - } -} diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/polyfill.lua b/.obsidian/plugins/obsidian-enhancing-export-main/lua/polyfill.lua deleted file mode 100644 index 1e8f3e55..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/polyfill.lua +++ /dev/null @@ -1,61 +0,0 @@ -os.platform = nil -if os.platform == nil then - local libExt = package.cpath:match("%p[\\|/]?\\.%p(%a+)") - if libExt == 'dll' then - os.platform = "Windows" - elseif libExt == 'so' then - os.platform = "Linux" - elseif libExt == 'dylib' then - os.platform = "MacOS" - end -end - - -os.copy = function(src, dest) - if os.platform == "Windows" then - src = string.gsub(src, "/", "\\") - src = os.text.toencoding(src) - dest = os.text.toencoding(dest) - os.execute('copy "' .. src .. '" "' .. dest .. '" >NUL') - else - os.execute('cp "' .. src .. '" "' .. dest .. '"') - end -end - -os.mkdir = function(dir) - if os.exists(dir) then - return - end - if os.platform == "Windows" then - dir = os.text.toencoding(dir) - os.execute('mkdir "' .. dir .. '"') - else - os.execute('mkdir -p "' .. dir .. '"') - end -end - -os.exists = function(path) - if os.platform == "Windows" then - path = string.gsub(path, "/", "\\") - path = os.text.toencoding(path) - local _, _, code = os.execute('if exist "' .. path .. '" (exit 0) else (exit 1)') - return code == 0 - else - local _, _, code = os.execute('test -e "' .. path .. '"') - return code == 0 - end -end - -string.starts_with = function(str, start) - return str:sub(1, #start) == start -end - -string.ends_with = function(str, ending) - return ending == "" or str:sub(-#ending) == ending -end - - -return { - os = os, - string = string -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/url.lua b/.obsidian/plugins/obsidian-enhancing-export-main/lua/url.lua deleted file mode 100644 index 47981462..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/url.lua +++ /dev/null @@ -1,18 +0,0 @@ -local function encode (str) - str = string.gsub (str, "([^0-9a-zA-Z !'()*._~-])", -- locale independent - function (c) return string.format ("%%%02X", string.byte(c)) end) - str = string.gsub (str, " ", "%%20") - return str - end - - -local function decode (str) - str = string.gsub (str, "%%20", " ") - str = string.gsub (str, "%%(%x%x)", function(h) return string.char(tonumber(h,16)) end) - return str -end - -return { - encode = encode, - decode = decode -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/lua/utf8_filenames.lua.bak b/.obsidian/plugins/obsidian-enhancing-export-main/lua/utf8_filenames.lua.bak deleted file mode 100644 index e1b0907b..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/lua/utf8_filenames.lua.bak +++ /dev/null @@ -1,1278 +0,0 @@ ------------------------------------------------------------------------------------------------------------------------------- --- Module: utf8_filenames ------------------------------------------------------------------------------------------------------------------------------- --- Filename: utf8_filenames.lua --- Version: 2019-07-13 --- License: MIT (see at the end of this file) - --- This module modifies standard Lua functions so that they work with UTF-8 filenames on Windows: --- io.open --- io.popen --- io.lines --- io.input --- io.output --- os.rename --- os.remove --- os.execute --- dofile --- loadfile --- require --- Only filename-related functions are modified (for example, this module DOES NOT change Lua patterns behavior). - --- Please note that filenames must contain only symbols from your Windows ANSI codepage (which depends on OS locale). --- Unfortunately, it's impossible to work with a file having arbitrary UTF-8 symbols in its name. - --- This module is compatible with Lua 5.1, 5.2, 5.3, LuaJIT, and probably 5.4. --- Lua implementations having shortened FP numbers (4-byte "float" instead of 8-byte "double") are not supported. --- Lua 5.3+ implementations with shortened integers (int32 instead of int64) are OK. - --- This module returns a "convertor" function which converts a string from UTF-8 to OS-specific codepage. --- On Linux/MacOS/etc. this module doesn't modify any Lua functions and returns "empty convertor" (which simply returns its argument). - --- Usage example #1 (executing a Lua script): --- require"utf8_filenames" --- dofile(script_filename_in_utf8) - --- Usage example #2 (loading a Lua module): --- local convert_from_utf8 = require"utf8_filenames" --- package.path = package.path..";"..convert_from_utf8(module_folder_in_utf8).."/?.lua" --- require(module_name_in_utf8) - --- Please note that these examples would work on both Windows and Linux. --- BTW, Windows does accept both / and \ as path separators, so it's OK to use / on any OS. - --- The conversion from UTF-8 to "Windows ANSI codepage" is implemented according to mapping tables published at unicode.org. --- Mapping tables are stored in human-unreadable compressed form to significantly reduce module size. - - -local test_data_integrity = false -- set to true if you are unsure about correctness of human-unreadable parts of this file - -local function modify_lua_functions(all_compressed_mappings) - - local function convert_from_utf8(...) -- for all OS except Windows - return ... - end - - local char, byte, floor, table_insert, table_concat = string.char, string.byte, math.floor, table.insert, table.concat - - local function decompress_mapping(compressed_mapping) - - local width, offset, base, CS1, CS2, get_next_char = 1.0, 0.0, 0.0, 7^18, 5^22, compressed_mapping:gmatch"%S" - local mapping, trees, unicode, ansi, prev_delta_unicode, prev_delta_ansi = {}, {}, 0x7F, 0x7F - - local function decompress_selection(qty, tree) - while width <= 94^7 do - width, offset, base = width * 94.0, offset * 94.0 + byte(get_next_char()) - 33.0, (base - floor((base + width - 1) / 94^7) * 94^7) * 94.0 - end - if qty then - local big_qty = width % qty - local small_unit = (width - big_qty) / qty - local big_unit = small_unit + 1.0 - local offset_small = big_qty * big_unit - local from, offset_from, left, right - if offset < offset_small then - width = big_unit - offset_from = offset - offset % big_unit - from = offset_from / big_unit - else - width = small_unit - offset_from = offset - (offset - offset_small) % small_unit - from = big_qty + (offset_from - offset_small) / small_unit - end - local len, leaf = 1.0, from - if tree then - leaf, left, right = 4, 0, qty - repeat - local middle = tree[leaf] - if from < middle then - right = middle - else - left, leaf = middle, leaf + 1 - end - leaf = tree[leaf + 1] - until leaf < 0 - from, len = left, right - left - offset_from = left < big_qty and left * big_unit or offset_small + (left - big_qty) * small_unit - width = (right < big_qty and right * big_unit or offset_small + (right - big_qty) * small_unit) - offset_from - end - base, offset = base + offset_from, offset - offset_from - CS1, CS2 = (CS1 % 93471801.0) * (CS2 % 93471811.0) + qty, (CS1 % 93471821.0) * (CS2 % 93471831.0) - from * 773.0 - len * 7789.0 - return leaf - end - assert((CS1 - CS2) % width == offset) - end - - local function get_delta(tree_idx) - local tree = trees[tree_idx] - local val = tree[3] - if val == 0.0 then - local leaf = decompress_selection(tree[1], tree) - local max_exp_cnt = tree[2] - val = leaf % max_exp_cnt - leaf = (leaf - val) / max_exp_cnt + 2.0 - val = 2.0^val - val = val + decompress_selection(val) - if leaf ~= 0.0 then - return leaf * val - end - end - tree[3] = val - 1.0 - end - - for tree_idx = 1, 2 do - local total_freq = decompress_selection(2^15) - local max_exp_cnt = decompress_selection(17) - local tree, qty_for_leaf_info = {total_freq, max_exp_cnt, 0.0}, 3 * max_exp_cnt - - local function build_subtree(left, right, idx) - local middle, subtree = left + 1 - middle = decompress_selection(right - middle) + middle - tree[idx], idx = middle, idx + 3 - for next_idx = idx - 2, idx - 1 do - if decompress_selection(2) == 1 then - subtree, idx = idx, build_subtree(left, middle, idx) - else - subtree = decompress_selection(qty_for_leaf_info) - qty_for_leaf_info - end - tree[next_idx], left, middle = subtree, middle, right - end - return idx - end - - build_subtree(0, total_freq, 4) - trees[tree_idx] = tree - end - while true do - local delta = get_delta(1) - if not delta then - delta = prev_delta_unicode - elseif delta == prev_delta_unicode then - decompress_selection() - return mapping - end - unicode, prev_delta_unicode, delta = unicode + delta, delta, get_delta(2) or prev_delta_ansi - ansi, prev_delta_ansi = ansi + delta, delta - mapping[unicode] = ansi - end - end - - if test_data_integrity then - print"-------------------------------------------------" - print"Testing data integrity of all compressed mappings" - for codepage, compressed_mapping in pairs(all_compressed_mappings) do - print(codepage, pcall(decompress_mapping, compressed_mapping) and "OK" or "FAILED") - end - print"-------------------------------------------------" - end - - if (os.getenv"os" or ""):match"^Windows" then - - local function get_windows_ansi_codepage() - -- returns string "1253" for Greek, "1251" for Russian, etc. - local pipe = assert(io.popen[[reg query HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage /v ACP]]) - local codepage = pipe:read"*a":match"%sACP%s+REG_SZ%s+(.-)%s*$" - pipe:close() - return assert(codepage, "Failed to determine Windows ANSI codepage from Windows registry") - end - - local codepage = get_windows_ansi_codepage() - -- print("Your codepage is "..codepage) - local compressed_mapping = all_compressed_mappings[codepage] - if compressed_mapping then - local map_unicode_to_ansi = decompress_mapping(compressed_mapping) - - local function utf8_to_unicode(utf8str, pos) - -- pos = starting byte position inside input string (default 1) - -- returns code, number of bytes in this utf8 char - pos = pos or 1 - local code, size = byte(utf8str, pos), 1 - if code >= 0xC0 and code < 0xFE then - local mask = 64 - code = code - 128 - repeat - local next_byte = byte(utf8str, pos + size) or 0 - if next_byte >= 0x80 and next_byte < 0xC0 then - code, size = (code - mask - 2) * 64 + next_byte, size + 1 - else - code, size = byte(utf8str, pos), 1 - end - mask = mask * 32 - until code < mask - end - return code, size - end - - function convert_from_utf8(utf8str) - local pos, result_ansi = 1, {} - while pos <= #utf8str do - local code, size = utf8_to_unicode(utf8str, pos) - pos = pos + size - code = code < 128 and code or map_unicode_to_ansi[code] or byte"?" - if code > 255 then - table_insert(result_ansi, char(floor(code / 256))) - end - table_insert(result_ansi, char(code % 256)) - end - return table_concat(result_ansi) - end - - local orig_os_rename = os.rename - - function os.rename(old, new) - return orig_os_rename(convert_from_utf8(old), convert_from_utf8(new)) - end - - local orig_os_remove = os.remove - - function os.remove(filename) - return orig_os_remove(convert_from_utf8(filename)) - end - - local orig_os_execute = os.execute - - function os.execute(command) - if command then - command = convert_from_utf8(command) - end - return orig_os_execute(command) - end - - local orig_io_open = io.open - - function io.open(filename, ...) - return orig_io_open(convert_from_utf8(filename), ...) - end - - local orig_io_popen = io.popen - - function io.popen(prog, ...) - return orig_io_popen(convert_from_utf8(prog), ...) - end - - local orig_io_lines = io.lines - - function io.lines(filename, ...) - if filename then - filename = convert_from_utf8(filename) - return orig_io_lines(filename, ...) - else - return orig_io_lines() - end - end - - local orig_dofile = dofile - - function dofile(filename) - if filename then - filename = convert_from_utf8(filename) - end - return orig_dofile(filename) - end - - local orig_loadfile = loadfile - - function loadfile(filename, ...) - if filename then - filename = convert_from_utf8(filename) - end - return orig_loadfile(filename, ...) - end - - local orig_require = require - - function require(modname) - modname = convert_from_utf8(modname) - return orig_require(modname) - end - - local orig_io_input = io.input - - function io.input(file) - if type(file) == "string" then - file = convert_from_utf8(file) - end - return orig_io_input(file) - end - - local orig_io_output = io.output - - function io.output(file) - if type(file) == "string" then - file = convert_from_utf8(file) - end - return orig_io_output(file) - end - - else - -- print("Mapping for codepage "..codepage.." not found") - end - - end - - return convert_from_utf8 - -end - -return modify_lua_functions{ - - -- Unicode to Windows ANSI codepage mappings (compressed and protected by a checksum) - - ["874"] = -- Thai, 97 codepoints above U+007F - [[!%l+$"""WN^9=&$pqF'oheO#;0l#"hs)mI[=e!ufwkDB#OwLnJ|IRIUz8Q(MMM]], - - ["1250"] = -- Central European, 123 codepoints above U+007F - [[!<2#?v"1(ro;xh/tL_3hC^i;e~PjO"pYd8m?6LpsUA\V=x'VcMOM*|:)t.}QH*)]AD|LqjsB+JCdKmbRIjO,]], - - ["1253"] = -- Greek, 111 codepoints above U+007F - [[!./yDCq;#WAuC\C1R{=[n'FpSuc!"R\EZ|4&J?A3-z?*TI?ufbhFq1J!x@Sjff\!G{o^dDXl|8NLZ!$d'8$f^=hh_DPm!<>>bCgV(>erUWhX - ?R+-JP@4ju:Yw#*C]], - - ["1254"] = -- Turkish, 121 codepoints above U+007F - [[!-(R[SPKY>cgcK5cCs4vk%MuL`yFx^Bl#/!l#M@#yoe|Jx+pxZuvh%r>OhDjmG]j#lA{]2"R-Z@(6Wy:Q~%;327b&fRSkF#BM/d+% - iWmSx4E*\F_z=s>QeJBqC^]], - - ["1255"] = -- Hebrew, 105 codepoints above U+007F - [[!.b\.H?S\21+7efm'`w&MW_Jg,mRbB;{X@T\3::DC#7|9KU-N72!1J4c2NAUE3a,HlOE=M`@rsa||Nh_!og]:dILz9KNlF~vigNH*a0KxwjjfR*]?tO87(a3-RQex^V - Ww&SY{:AqE|s%}@U8%rKcr0,NCjR:N&L'YyGuL[3D5F<_IcGpn=oX"JR1%arS|FX|dia4]BeF>d5p`EV+:;*I< - x^Voq{"f]], - - ["1258"] = -- Vietnamese, 119 codepoints above U+007F - [[!3n8C{%C0}&p3gE0~|&RVm9Wr&^ln1}'$gV{bml1oByN*bb:Bm^E;~B3-WjF6Qubq^`Y*6\0^w!DKpK<\7lHVELmSXN{2~B"0C"<1CYN2{$a - 5M?>|7%~qm{pXphwm3$}iyXjBYwtGqxp(f[!g^Ee9H.}1~0H-k-dzNDh1L]], - - ["932"] = -- Japanese, 7389 codepoints above U+007F - [=[3+=&7~sLTy"n^PnVG*Gx&j>4Lxml%}fe|7_}nbsu1ImFj_eqZ%/jkS#qT2PD9?]Kq'fK>~C.Ymj#VyzuhHQ=Nhul - Hy,C`=^\&X/rOoEsP.$yExlmU5m>WtY\^7]hCArb1#1H|Q=55V]zc$> - G%s4WZYuUUFkq^wO(681x$$#J.`laeSd9~!}7Ip/*o#|[SO50hAWAwh`u*NwSng#rD{-.WtePD%lVgYW*`SGn.CZIG}@D+OO>YB"luuc-*J-$P - Pj*S_Yc$'~c|,^DEtqFEWav/?*)T_}}af2hRP - Ii]lNz|UAs/un_?$6St9u+>on~>stTvEHu - ]geHLKtj@XG5Q%ttLU)05.*4o<*h~Vtp5LSmw"bRv*uaL)(s5WB-j!\uGg(\!w/o6"^Av88>.x{d&{0S?1*$""62or)97@2S,\Y.2\\8&FV*3J - J`L6'UXC_Hj:}VCNpi"}0)c;B~.LXo_2|]3s:m.RT/a?quBI<^\{c'eL|*^*mM-=6VEyN~fNiE59X_2H=Ay.Uv$)SMA*qtd8tU4y"fr2,sGl?7 - fN:LpZ&"WA^D$V1(di[n>oZk@t-DYN=[#vlso$[o8u/^;w<{'mES%}0Z8EZ5[U=4Kc[<"8/'R7pc)QO0";m/wwj\]#N[U-jQt"e8|FE=\ur5es - 4F$5M=-^(:;D/.6HqvNf3 - '9,!z9Y-=Jp{l-a1k_9nom]L`}\P6a(Lg4Nni3T5G%MeEaA6OscY4BEuD]%P|57}>a?,&|zrX:P{bL`Y|5yZ]F;vf'[c0ODor"^,e)dF&r:BdWhy}mfQov{zB4M_dig$Oo=u?>C'aDLC/D*f`n~5p7`qf>WUQ|sMLzsD21w8lD4410Ydndn@r~V2;T8iTtcM=)oU?h=rl8-FZkX-!E(h - cEEWzjwNr>gr$A.zmh}2&5-a[AGDjcO:(jc:E,C,u1!/\5&!0R7&(*`Eqjtq+osO9'M{:$k1@\(A*M]C2,{^gL_OL>7&W1M5>w!}7dQ6G:q[z- - Br>tUQBDzTTZLbLUC6G{Y*[z:S*6xc9=DvPhJ1HtPHV1osdrW3ga,Pf.MX[rJ*B5bHh#nPkny7gNVmxy8oL;5]N-*|a1-F"Gw<^h9 - H$-6los2}g'b:c]c0~{ywe>5=w;,{]~.~488{z/J&rO\XG}8$*;y.402N#qQpj9#3r-ix$zj*v$dJC7\()bqdi!549}+u~;My]6&5bJotP^anT - D_b%uRZ\5qb/:F0Ku=Y2*!6'i^lAxWJ#jt"M1c{)*v@,qD'VV/!wQ.c\4>;kt&_|%V8JPUEjCMvg_Ne<7UeQqo}W=8N3e0.h[[l@:477m_e5g+ - u&v/>TBR"+}i:pP-If^~hbZ[S-kK\9F,!D8QJrryQEzA7RIc\1?WTia_|#e/c=Aa#I`$YtT8%UZ6$Xt"?`X_/RC'vpn8f_5[ini3})^tns`\/) - Hk4yx)'LsV\'kGq~+2?d"8)_zk/5\CoEp)0|SDQLA3WrT}T!{2lm9o>r0!|SoX97f/f.z:b/W}p>M|Q?Wcgb{O|&J7, - RBvCFk["gIXLBzU%2N{hd8hEwHD,]:5#jd9v,4"oQ0X#(P1q'>KR[[&oKjj7|u''b}Pg!mc\4qoKTy-*1/;CkV&+}[-pIVG3v@EuWdtJ+3p@XW - ]Sa01ZD{Dr=/HG3Rhi:WH%{+RO9A1,,"=Mcz7H(*drx5;uY7vA@amw~,i/>m*{NYV%}dB##c`+K8H}H1[`}~K>sG$kv3Gdc:x@oaJj@8m-wNIK - gh?{F-b:EYDO\6r=GL,Z4pgA@uKyNg^rq0j[YZg,[ox#m%<7U"y\UJ4{z_Uj-z7.AKe@1X)Egs~Wkl*W%$|b?Kg@)%.gS^bzV;.S{R}TpuM}\0 - $3vACCQ))[fRvD#SW=5QW/'`WB/PqM&})tN1_|U4-3*G.9-7H.]I!yG%%~o8$ssX}cgEhU`&mH3[5}>.)#3@~rD!Yx>v@jWLMQ-H20F@3O4 - E{uD^cG!vt$zJ-=tJsFOIo^ck$})34xN]D=HbEOqVr|"7@2yY6_z))sUt?nn>-s(S=SUA.3+b1){ne{RXWNS4[;Lmpk?{\EbQJ7Q4%=J6v|=N_ - _.."\BTJE}0`J7(882F20|DeZ2ms%="gk]3>f5fKTJ.p0x/atIg(%{bdLZZ\>0z1j]_iI5RT%*{Rt0{UL5I6In3RTk(lSd/]5Qy]:=$u-@8\Au6#yBnDe[@kC-^2e0kZRY[CVy&E2{de)Q,*IoHZOD)Xh*iT*@\7CV'WV`7IU33#{;r!Xw.Fj< - 4OhCk[MtJ*gMi$Bd1eJ^,moda]4W[6"!It"i:":II|zsDrz^)%.mRdTIt"JZ]m6;E:FMwF6w.8+}'d}rFV$SI+Ujg_&3U[xa`buN3e`%{R.,H= - q]"-(iu,NDnUW*E'GN,z\0y_*-G0CHB#!zDp>?)2s"!XtEQhoX-l}Y%]VG?%a34QGTUA&$Tvmwokw,QP(F*l.Vvo"Ftw;yS8n.5ymW((B^>b]r - wt#LNeUjh^egC;4)f0}q^M@kWR@t!?E&uK7_R#"#V^Gm5+:om59?`(lDjH:|?v1g%EW|}!mf$4>>@7n.pvqv3;|ZVx+(U*Q>eA9mKx - DS=XYp`l*)@[`/KZV=nvawT+pEvai^"4WRE,v2J+,e\e\e"EB&&5AD6x':ou63C:kOo/)1er*N{}ywN_]Y|HP6 - Z4ZZT^L0{AaIOd*H^5B|iUn<>=YZ7jBWjJmr-rlNcY9+;ZZ=l~M;%"$Wnf9'ui`E>x[=-M1XHU6F\d(i[i|Z*OuZralbIW:6@+wGcs$%@tZCTa - o=OWO;-b'n@H3u6>;d05A/-}EMyY:>T`/Wd>%V?:qM/tbT\T$0%Bm~py[6W%6}>4-#d9(f1|xWXo[2{d~PYbtC$p{$f2>R+2(mcu1plYu%5y|9 - D8i:0nG.gj#F - x~63(HArB'h_k{obW0JFW@YgoZeMI}.6ao7.p:FvM7@JA=U0@QiT"Q[T=j[H5OxaYxoR$M@(ym_h6Bb1wN&I/j]725k#h - pr+u^,}`id07#;\R+t}5yYmH/fk#!XqKLl<,Yv^=x.hj@v4.q]tiBx}2VdGBzmw(%A"'T!-8;-wDz.dlP(3);La)1*||[k(Po"1'Q>UrCsz4C-CR>Xw0S?{PBHAy\S@jJ'ES*kQ*D(3M:B5qi942'G^%G&qqrga8&$N`a14>v@GPD+m'`/0[DXF@Z0jSSY - z]j#Bw]'uWf(5okA+*+B\hI}1.e)ped$u0S-#O~V^:VdQEG|<#JQp"4Ak9tHO?h/{yPWZv*W'>-msylMWt?45?"fW^1\Z%zJ'&#VfXAs_7}Eg- - $2iQ`jTjyzu!=vnL/+~ms;{ouR - ^=oZ@o$qWB`!B\4u):xnHD{@IRaAFj+UT}|J",EaN##PwzQi(O1b,fAUmMxS'!$R]b,Ss^HGXtKza=?gX)z%_?%29)W~bP86-IXXZC&E|n:7t" - }l|Ow0;72,Zd~"gvD>1}`$>OO0[=_.i*"qWEWP-!^swWsjpo$wv[meyS3ta(.\q!faz^lq@g*9wq;Rs$*@$ryckoNyfx32|EacT4aCLGm1v{de - EIiih:X8OlOA}xHf.p#)zTd0>("L?.xGq+}Pf's(Hq!~g"u@am_e!-y3##^-hH@gd3b2bLyYOg@S2>aP[[+8Tn6TNOoVy - N3KHj9t+j&z;9WNe2o=M.syk7-G0r[=+Zg=N%KeR(x-+xKBA@8k&PwG1v*Ue/p2cbdX~-FF$2DmK_J~"]K|UR!C'r"-G`QvH]*f_P$|OX2/~{_k"+~n7>V<\!};(yT+k2=dc}*RF!dt!aTE;gY{&GiG86BQDo`V2~; - -t#>.?jXX.7P!SUZd_k&N4Pa-~lFz'*;~6WvH]0k;|s3SZY@H,MjE}'5Uu,dlXW>.i`Tgs8?.X3Yd+L}-H98]@]}{W!-s&l - 8y*]=cCWg7/j=O)}^<0H9,bLN1EF_U/.f.cy#h[q,?5yXA0q9b%GwK(C*"[/pVGiMo3%f+$\74Di - |c@?p1iaY'%$_5IefGOQ}qm!U4.6i2:?R,"fzq?,Izwk%u[mU)#|VZJ3[#y3FaE}kg]jMe_@cWF/0utR^|.Wn8wo<:W2Qfx@$^:nhXvgkD4W+Q - eb?E)O?xT.`@M*)0[A}uSs{T_)g>zoLNP}C^s&~]DK-aDI%P2yS1@Buw:jYbwx%KPSVG(.c#QT5J&^.O;,[xh51(Ayx'7a:~&z<;8muJwZ'a - w!lYhk,POW-b"~%ZvHefKcX[="Ngyhe=RnrP@>asJu~5eux8UY]}m8z@mFozI~usafELixGwvRo_9p= - ;e(>"wf~Xm7(&%JCX^4tI5-V7n^`Hll61^DFojjSa$K+3JP.q:$^ua0a'24)a8^/G8m3WfmWdN}Y/I:n1-,@F*X,}vYnyfevl);ktnTiY=SA+M - U>mS4GT#!I[mk'j]a#h5]I_^K8,kl]V<([vv/j`KjM&~][q^>-LmS'j+X]O|I\)ocbKV,@20(qI8b`V]$M9!wy%ph(7q~.lOu?sjp0b - ya'U>eQ(TsTLMpb3KvV+4>m[*\f!BQAR7w|).{g+LGc=%y+n7:oQac$t@4:ub_~p+9d^L\_uW'wn?222sr3Itk`nrIW{23:OQ=q/=)n4{?aOCd - kd,/Nhlt&j?n}(<_3-}W\m*-m5*FmyH'HaSDCGcmheDf@&iJTNMvJg?gl*9IY"N* - ]5)[B.uOhUi?v?fjL4<>V>L;2XIZ'~b3g'#"1n5}7/eVlb1kY9FXGGg#uKQE1|#K;N}wJc4bAkIq^qu6UxJi)+!~ikv!3 - ?c7mg]P2>Zd#3%/`^R\w!1Gu]xrw'r!5ms$('3|)-2(,vTlv*_ET[7mGIhxSv^@,3N\|@SG^.R1<(wV5`"Kc^[),k/Z^fPT5"r8z)![(3RDLAS - ~OcylxH+=FC\T>^8jm9#Bn:1*sU06\=7wiu3htOw5.0dU?fI=)GT}R8]'xiD@2Y{jF#J)+I,1mH/[52Ul*AE]2.E"*9#ed/\T|IhCTgkTqx+ij - '33|(V7;AXYo_DVOGS6E416}]$Ke7{(Um-O9R/_w$e*S*]=O@#Wpu8;c1v>BWL3Oip=L6+UUj1~Qb2Qq-!c"45|.'<(M5?U}}Y-%%M-K`<{cvI - 3lt\Se=WrtQxEZI90".S1D>p*DF#9:ah/CyPiA*j2;lK:JO1b={,5g5's_4o02,->kH.Y=rY_;_8e"K`]\`OMFq-=Bc6jL"s[G&T`,K7%CCy~Z - 3&J9(Qa=9'}NNkM)i14'YAV^}<[t;H"e@yi6iAXSGT?!r6p45)F-B(ga?$au5O`v8H)g'UwH~TMEMY-nn1EvG;('ThX*+5(3BdlL^k"bIZZxbL@z>d!Rj^8B1Lt#FAXWgb>a*{\/P!k2'cX$:}&@ - I}asGeb#LTPZbBuF:t8<..;n{AS^S@k+:-mJcaV'Ql,qrq!|NAyz6Ro!o*{?xAA|?Ec3bprqDvl{L=~?3[$Z}IrTG^Ka - 5PM0h$WsEVw2\QBJ"gVy2v.ubkd%_+;SL&^CT81>wWm@YR0-0K/m5PVY.qPB%(4L-"C(}/[[PElSziB,t'=6d>!7z^^r14mGbW4l?";#@ - D"KFGa^LoXsWH>9]x`elDsrp!BH=Hj9CfG0xo=!CwY@d^*'ED[he7[<|O"^G@WVJ<-odk;V`&([|&4UMI/Pp3w:D.-,u2GzI@suXD,L$W-5[Z{ - LhjaFF#(+P|VVF5x&6O`Icz6}2L$7fa*:nbxkT!+7D-3QjN[Dbn"K5U\sXh|a<:F[l('ZXhE!^#-7iiYzgQ&XB]T`)!g$}/qd?/s>$'08N+"tF - JdkE^"$\9AN$3Yi-xD>=T)BK|{'ZWT5A.uL`,"ql?$R'^>5v|9~X%XzX[_tE_YNDT - 6PaA}&s}xN{BNy}?K6"}:-dC"?*\%/dJ%2CGkW1j}VO/V1Szy(+f6,k&.M\$PWcgZ[ZXQXUf}+U[_ir=z45kR=.WS'~aA{r6>ZTr=Mc#jFC?g2 - ?<+ohgY&kIZgN^t~q!+gC*Co%n,fvL=R%Hh&x-|0v!76^'[lk&TUPq^"xubISp0P>4\5REJ^`Xs|Kx2Zp-~U+3Ur"W*<^<6IC=tG&mGg]\skh- - xvm=7i)g#*a-|}g\;G6QKPvU=tt_"jW,]nC:|L:bCV?e6KSMG\A;:-Un7DL6AcN9IxyVjbqh=yYr6]V>nS[*BUEv=U`9k(_\[c#xzn<`Ru}c;6 - Ukmj1DZtQ!.pA,?JD2#R;oV(ei#,%\m"r?G^/GvaKZnC$bbqu|9J-1XhpYk|Npj;5r]hCEhv2.:Z:!*}]mO}{64`8ZRfk)[,geYleWpw5^eM%\ - 5?CG)rHGIP[|QU.(m0f]Bt;-1>4gjoPM#?.\yDTY$^:+F2AM&<|#AD"-g[nV?RHx*L9K;I_4}?<;hG)E$@?d(0]%1pj?H#Z|oz*F+J>Xat|Av~ - _F"x>8=8;euSJ%c`jw|qRfGG&{S|\MOJ,rzkNZ>VFq+gRWXEEB3Orpz8-f[YW\<(3`>6\-pk;W - %A(E%}&>'cw!TW-AG!saRDJP0^d(HEvS]V.oDN{Jz'$0^z'0R[sNO:EE0/We*`!v*y_o",Z0g$lvE5OBC4=6luM'iKPS( - v8w8\oYZwo$hoAdf;UNK::G+Ck1jR0ZN%F;&v1Gbzo8:|/htoq`YZ;=0*~jL(FvCvcp3\;6[wS$CIx%2'F0$;.Pl]\VVi' - k[yxN5S1&h&b%M+jWLB&,4<@}=CRtXhf_/X|pN[Kd]]AIE.l1;A_?e=MWO45+>FK(}xBvsF\nk}idT(n5b]=eo6UVBd}F,mH_Uw|S}7%Rl!{HN&#|_7+C^zdKV:zqw - a+U!jbMG'l:oDf#>k$Gs$T(+@4IZ;pELTcz;>7yk^NRq{B?vhj;we%PP_SDKbNL6h:$a)~:`emir#wIH$J - vjiLSE[Bu86:a[XSF/[tpxMpwg5.u(oZt|Tz;L*jE7NB='@D5)cb\ylIC~gK+isq9.2K(qmNug]A>J$#R:+_e'F1oeov& - yl]wLm[6)[q%Ru~;AUGy<=six?2|%qezw\8vwJ,t`TTEeW%TwaxK5bK*TkR^j$>Wr$Nj2x%Q"d_R/@b!`*"6'2PrFQVi|K,'*6K1ld0~b6h\Bg - %dGmlJ~w}73qo::Sf8+At?P0,Df'oYP,|#?w"_Dy&+s4fQ@y\0xjJz_}W.ejjmdz`=Z&@?Bx++'"V+z,pAzR\J - 4v#Vf+@v"d<<'$"WqK@TrH1!&y);rIB7v@CgR;Cw3U|13]@"HSRHt0M7?q>jRxT5;o}5-=SNqE_R^{$kZ!%;?l,r/89@S`|@,dTG?" - 1ZW?_[8tW/`TYA*o|CpzPS^0DMW3zH.p/PyqMa~$"1;k[@x"YPMkw[sczP.Mr?=d3.8\Vq]OD+xfMh>6QC$Kv}D0he`4n.z&hw?fL.^wH}.]wo - #6#looo_`qHrj5gyI\hP.\yT(-!;Bt3dPjXx>~0'E;#P3[?-%[<_P]:4eKx,Gx+t.Rg%\@K>V@-KF"nza`-X>..D.js|sbfGg;XAVH/Fxp8(DtAv6l'-ab=-S=5p'V_~u^!IrSWUYLHT9_Y/j,`wuU__xw/?c:V|\]Dq8d_0axY-7Rb6Jz(>,"!*@|L$s"I: - \Nn2-cq=X'ZJ:tzHJ@R0bhCeZl*i)Sbol;u0jqGs'u;&uF'/j{m}AFRqhQV?8?5*2F|qV~ - zg+S6TD,yh\X>zh<.FownA;@uNs-I)G{l]81*+-,jord~&gyY#q]e,MAT3`28N.6":h=3+vS,lVKD@6$]qKae!ITU.ewqweL8!UcHpZ[5}.M"d - ZrG6&)fV8|wHm0N#Zq*5yc&oSe=GiTYM - cAvaSVan?{Mr9bV93ojkJm5F<{r-U`cfhsq#3z(2>A./U8%Tq474tB3$<7;N\kNP"$yeJE8=7@]UHEE:+<_z{`op.=|@S},Ayg6qCNJPTQDK8\ - /L'1wY-3Vk+DVEOR"EN(A3I+AxuSl+`-ZuGl6@i.18JVH/{*_)VohDI[`ed^O){KSlW@kM,ws_^{j:hFC5Teo;U.P8}9iIr+HG&|.COS}%ZE") - 1$QaN9Hi~KyUG@ZJVB=<_k?/-9]P0kj<3&$)r21/\Kg#K9;_C4dBf:xU>3O#~uZ=GZ{3 - |43Xq'wm>1]+Auh'_5?.>fl"g1i$xHR=c0FM%>hV=LtnvQ{/kH8B`76Z::X;=^,oUE!m - ~6up3slcqucAz,6+)Lnt4SO*kF+ME;,-a|s^/%*J:&-gPfs2:VM*62-4s'op%D_Ci}}E[X'5'B`-aaCU0+dL$G(bAiKoZ*hXhynhIj@!srBbGL - `>Z)-uiN$Xj,KktACV(f:"xJ0xY3*Uqt/h*{TeG2&])'?elCdVO"F<]<=2CxV%(S@%NyhWV0v8:j%95MD>akjK9lI1pgU0rlS~AJ\\;r{45FtaU.7LQT%O$lAd?pz.8itqQWX:.\c{%[TMPx9Nw"r}? - 70AB*?ubP^neZ]6~&\0y9=G)7P\|:Oy3EA)\Iwn>^[Nc%-{?JT8$2Eq8=puK@=JPN?v2`^BIhf*cCKf$+~jR\v5s[jpo}K+oO^uT$Cgm7*|+([>yQoKfExbEamKoL?og{-UKooZw8>tN&8|);/0=a`'`[P6Y6Y0v6W$J>Gn@a8.T;y7WZF}hi-?A4eWlZ,=!qV,= - FRm80=SLru!#]yGTw&%(;=z$xsft]^Gt1%>mi;6yF_H--Lb}7*Ztbe~JJ>`E~c]Bt18Hb/ktJC&wb8SB1($0Vsf1/0P-LLLjwbRL+J?/US;o:H-veHc+c8yd:AB]]>u+]@4pQ*pS:Ti%Ndigm!/Xa=MMJi61p\KjC@M - ?:dbt)%&qJhrC'!qw[p`>u)(aQt5LdXc`1L0)J&xWhvyH1yXJ&}a3;\tL'?;m:PaBpd=j~bhP~K"0y5JmZ3B/qVPW@k)4H'bL2T"FQ9mWJ-+2G - x/-F3|ei'W{9IY,*=j;cAM4k0c,(&OQjp>ZV&wKn+2Wx7U#plLm,/QVo-R\&,y2,O^@g8C;v1#5%fD11~CT`.-B'|B0ZDG.}u_/uo2psV_OI[\ - ]aKaYD1t)1nhM=/.L,@L'c]("o3Kj.4iS[e!~ncyTuIB%Q,2<@.:.~lYGl9n7wANE'26,+h@X)5flScMas|aGwm0QQdj(RBh6_V95BqzwT1*cZ - 'u[&MOu!tv&I%A0Sv{,?qEya~Mo[UgV,@K+9&'!9ih,incTghH-gXrA~O%:=E^vJ/K#jY2n0aOij;(RiKKZ66)M7bs6hb7BK_Y~#%[KU1FC:r{Ov)ao.p@ - ^W<>rz4M)wNC;g'}u/>0x)NY,[2P|^b,ANWUIFrPhIwhTQ27kZOV*6%D7cQoM,T8=u"9+u,4pMC.8b(h%&3VOliyc\2FSt#:KA2h{w6-:1Yh@h - PnowA-V_,9M/I3`\)A[CSDK(TRN#n`Odq.cbbld6.WHsq=34(5:qM?_ii@MY&$YB%6]{V_Q+l7mA#!jJXxc)@N(NI!wLydm@Sy/qt*&eLd*>Rl - h&pj#*MO53l>G[8,5@>A>.vU.RQTMSOU3uzKPsql5hd8G[!#% - 0X8Etb6d.Z[S@#i.w>Whv839)"`!r=,]=\Q!#?hp8&e:;OAP+&VWhZG]j`~\nzEv.p,b(]CJ\|2:,D\iGkCx$Z^Uj~po9M&$X'wT"|!bBt)uLN - 1;N`)!1|ZQQ/Oij+i")S9saH*=?X>PxanZB(?uC2cT9I0f - `'k>.#wD{E\DL@EX@(em*~5e3PjlxLeh@S[E)mDCz4*Cje!'91*vTE}5QJO$noN6.Lp^;3zrQlIvcf98Fo5|/`fu8/_*](:T9e:8 - pwK/)-ik2T7:@0oZ%`Jei#CS1M.l|bJtqQdUYz$d.1<[KdU:VCBN.PxzTK%_SF|""RCE!uUjmtT:MTHI!H]B.SXJs)08` - ]Zg`j.6kKc*o{$wQ:V8i^(~-OOssak*K:Z>H|J|b/1LV#>g/7tT>r"gmZl7V{cF[3$$CdOr4wbz0dtGw\R)W!+a - JJ,[FAmyu={9Zu.7xf!;R4Ga+dI{v,s}*kq(I_Q)ndVj4VnqdB8:~@yu4Aastr;n1B^_1MyX - E=d7$0gkh9zG(1=TZIc(Mhf^V$3g#+dn\y~B&a6pdGboh@i$p^S#jtF[W(_z'%0B4*2!cC{GcnA|lCA#Tb|aa9}dkP(qF(SGSNU?&gCYB1V6mL_F}Urcw'|:q5KQJ5[}D\3uiyLZAk=7{Puq>v9}4qk - e};w}4L[J{(>t~t-oawQ{,;>frRZ\eLO\lQJ{"`H^E,l#6`XeD);nFJW?Vk4`a.!2Vt4f38&R&TAVE-%tilxAK@A[[UY2X>8=JK%9TkHyJ)@_^ - a"O$*G+GF(qhy)`c0/k)N79a0P*\T?TY").?4Qs?5BqbX&]s%yT~JO^bE@N7z]R,7U~oe|sn$x3$59fj[QxLLxwgvbx+K]aP8CiU4w8sn7Xf!6 - 0'">,!o+%mux*|Q?D{GUY3Qm]7)k]E}8Nq(AF9\)SREQCFV5$P*NJs^g6yUQ7+?3m;vo@+w6=[4lT$pxLG3Z<(@\/]DNBbOwYITG;Z|Q>[z-jj - R_GdC$70-l[n%w?%MzC7HIMfp5MhTq=Lm'F6,~U^1K$HsIHodm9WMM=bx$F3_aJL$G'?4vYiz_j@2e4FZQeX*'TX`+Q6?:L)1YuSuBw5sji~w\U?Nf3zK,5@9$BaK*jVz!ygm5=X?)n:&.~_6B5|18Ot8(wks,;cw - H<:$=ZI6Jj2N-G0H4mRXr\e,xVfn~55^RJSxe~'LIB2,^Z=(:L->jkl@@vlOMP(2HYtDqZ=CE{6w89$-QMAmM=yjyuext/9^>o"(n}rRN0XD|eH}+M7fc^f"gV;sYA&4"-]gYHf.oIGZ - Ul+Wt?Do^tX+C)iSAsjU!$"crF~S_MV?9_/Z(@(=yGrY@yD_^/;}dmp_wYx%J%"_kCV/S;NwC+IzI7*0aGuv~qs\La%eI'y4;mNlkMGNkQR?:W - x?K\z,V((+O(ZYm/xGGqik;L0k|3iWs@"|8?@j%MG{BK1Dk3pXHVnN^0[?X#Kqp~fd3wA,R;gvz}>XB{Q{Jo&>)#]'Cf&&T{TQ"H=|h^auS6>" - :10_$.BeUI/7TzvDJwI{:2~z8IO3}T_n:ORStD8!M-kk^gD\I86G37`j5,+B*,vS~$6XF">A8o7)'pj5%3x?nwf3knRx1\HZR`_7DB3Rzj[Q|S - 3bx+#EV|z~]3M&pewrj|q)=[s:iZ%UF+sZd$t\sV%CD?cSOFEg0xizR|ME~`6x0kx'imf1aB}^Ql$RmH8C4Kf+W2(9;'v_kFs,~mIW?V:I!x7d - -(z-A[D6B3LHcO1I).D*}{A(*)!yzZzAEJkowkf*$pOluBN_B@xW7a$wJX>RR;p\!zh;Vs{}7gB4v+u8IrZlPhk^m@~1Tx\hDGmF8>(N4&!1(P - J3ks=(^b*"!r{{N/cx[@_~cJY`SXi(!1.G5q;)ttt4xWgorIb/Yn#pxMll-pJ-5xG%=aSdQ')iZ$W,Mvr*BW5;g%yh?PVe"3:B!1+2Nl(A3Lkv - .AAPz(%Zx6gu4|=xufBEk1cY%qIl%L;[RB9O*US#RQf[>ToY0X=+Z>%7C~vkpxL1mpFsJ7;44|z!V=s-qKW0>z]xC4vPq\lpDsri}0E,KA=z:^ - Q+st(@ZgK4QNjts5Z6}1-OE?zEzNOREl]#)dJpIRlqmq{6iN,~nb~ma./YXED^b>2>,>6mrS#>815-3s6M8geiXiy,4W^62ccM.J5?@xC"Y`=Q - y$A4|zIiJHF>sy'6hh!sB{eDra.eW{{mTZG;0cm>"Fd&BXY]D}2w$%wrm%.V.}YTR9Q>8A!mgH%*m)gLW'vSQou+;$M1zR;R9":8z[3b|VJB?e - )Z2rV!@k>2|/#W-H(pmeZ\"=gB:6%oO~^NG}93wq5sx%RMhI9b6!60^Xy1z4G*0E=|6'Wn^P%;jwHFV`;C3P>AT,2lNNeWm'*|JH8h-RNCFGW$'-|X60kc|cYIeiv(5X?>:dR|qw-^/vTv[.A>iSQf$^it}+zp&>bTL*Sd/t0N%F~O.#Vg5/+AP4F6=*"{}sOxjT~h - iW87A%2*VJ-&TnExoGa%iitm6cJuX-#wJYq,=/e3,WA}F7moF?GGNK{eA_~\R!G&=DqEVyLG%+8`f;uiG&*s\LJ5-@2REyvm\;qe`DVpB),eN - ),C1Q+OlaPLJ{b-~i%`q~DTWDU|D-J:.lgpLzHZfIFO4[Bf.Q.[c?f?|)K?_0a})kWG(R,MVmUXpyia6Gs0#4&hd*/~JJ${Tz%IC7$W.rV^ydLxhN3Oh#l&9D.3dQ!`7?b=5[@*D94x.!F{!p)+Q*E3B!i(I|'7S^9=IRXJQbvK=gn4z>qY0hm'CTl7;3<#/Y'hE)s8IrRhpi\h{%p3(^* - &RZAO>>z7VKGK6[H}0AL[kA3WrrLBo.1J!:Ve4h%Y$?|#=C@o!,al_*e},iS7=\9%NvKQfm9{uhx4-/I - ,m){c?VKzYG=rr"L(-62J_-9R8%ZEe-s~`V._A~_WH]61]e!y#A0H2"a0rpe9#2bLDL8Ip")o~cu-b5/S){*i[L@[x8@)YT>94 - kwy(SjEwK`iPB4VmrQ0)1ii1!(2(?tZhAwz3uaS9O~csX;BH]m>'%7a?rmnNPveGx@h,`|Bupeq?[BbxJ~#z|wZqpRdc"S]roMN\Y0Ia)mDC@)HW2pS[vfY{3}Rmh?cIbk-X\mj90#8xegQ[`)H&;#%W:I - ]4t+rXLs,\4"z/dbz-0;lV:Zr#7SM]e0&74Dw|3*mer[JDj]+Y@|f"_T.yiVQL2P`&lHTuj0YPpWKK)pSZcK{IRu_gfFPRGWIH_lY&H4\iVu/z - \%O+8"sZi$Djk*PL[sTnEByy^g{wun{(E$lVSbKv&_wmB(tx31%S=,g7j-=7I]|@frz#cc|2SG~IryH/J](*sg'rE*=Xn&~Tf`"$'au%%4S/+n - psCs!HqU64TFjs>Xn]]#V2V~v~ySldR:{?0@@>:ac>l1\L.OT14*7Xx>JFG-#q0.I-UR!E.+UWVI\RIPiFn5~F?)'IV*lg7f?M/>I?IL^.8gik - }&f+|3m^w#PVYn@ASYy3R1%:gs5UP9np>;V10'wB5-,wrSt@B'JJ4a=}NN - V<6}hF6:~UKJIkJ\OqMpex'WH>+=!J1!#DzM$_w/DVU>O2y_due-Nn#9JOXQ}];! - rbuM7jG&@5Q0rw$k.n;wj@K%xWn6R^B1dQRLI,T<^Wpe:AXG@8]VQFc21z=m-TT9jxno - 4QNm1dBePs<'%l4Vj~RbxV2>QLe--hpg>.mznB0]8=]AzWOl[8zf+rXKF-8x-h"92VkV7}(>G}|dT,:;jd5VZutz/]`SFhhB4F/.a=h=c.`7i6kJFgF%Ggaae^tZ`]X~x4a< - #()TEz'u{&W5r@xQ|)IpQm]]"{z$4|~ybNTsx"ioy+Ey5<"I[|P;boqJ);iII-*!FK2=(+c,i]<;zj!o*k]Yo7>^](G(#$t04\g|Aq.&BiMG[9 - 9U:=9}W]!LhXpygwMyA1zA`8!77X'SvU!;|nbO""cSd[zGx0XH3OIl>9,NEO-6QzghN$Dh)8z.2@XYm`kC$hn\8wHXIBW&#~(;bNs*gC[$P(p*K9B[7?nOW?^0iZJ$z-RAQeuQ1^fbpDcz`N#A^.JCQ| - 3*FG@/DYL+$Hua[LsbV+59(5p$I|6eR"i+$)R`e-*.yKVAGakI655F}z,bYmn.]7I-fBm)<;*iuyMuxnHSh8""/3@zuD*+:OY$Je,ugjY9]zhm - rW/e29X91jdNW>N!8*B*$&zw(+%>7}iPc[bOChX]}$\U'sV;*eI&nJ.DJmr[?qxP-FTh=Q|Ul9TYX - KsQ:I=Af95pHEflnyw+l}YKFbFaj<41_0k`6R!*)66y,6/f/|jht;V;ianD'S.0jqUvK}jk4|65>4;}_aBE6>jb+HCDB0`@g=+i>fZ,:r+dh8fz7v`;V8'=+0[ - {@?|ixg4&tctBSRwPi{2!q%QM]}Jd^xqi"y/NH^R|[v/iD43A}zs|uzC*'5n}q.w<=x3mp`d@{H5NgHT}N's<5sMN& - !Rqzn]Fpo+l$j|R!`P^N9>poUe@sjsTPVXsyfcSBN^Q}d>5H$),>K)J,M{5$b|mdK|(N:+q1n,`jH\A=;_X$aEaDcs@\_J0n\T7]*'Rtb!)UI! - t}i\(*1.oN;Ij_f{p2Ph-ir{PZtnfXC26Jy.qeb/a;E%&Pk8=K'fx66s"gNVkH33liJYH0N\~_D:WBfV>rI_j^a1O(lT#L8_R(Mel:h\2(^B?R - Ct=}azXv(VU:0gXb78G9BV1Ic8)r`"otFVP\g\#QR12j{Mh}cd31JbxF`Mf29?ES"xQ,)|:9Y@\(onVv=!|@&bHl!g]sdvRd:p|.;y|Z2se;{n - =tIm7E~%Z/^MId9u~=q]eHzuQXo%d(9gr)"[H_D7>RRy9Eo~LQh6FpIgo'v*{Ga'By[{q(oRc/8uOjs_M*M[ja96hd?v=U^?YY(V3WKDfB\"3*p..z6~\Xat*qWzAxu)-T2Xt+p-YxDX2'QrI8 - vaw-YC;.pGg~EOo|8Ly0`VT]CXBD2r{|VAX&O#`,wl,GEQ/DU_lrM`y~A`nA]`'&%V0Nl{oZt53H&=7KZcm|?rXXc4,f`!n?7MlTaxZMcW8U{p - dUkLibgscLZVN)G=W&7;R2*Y86I\'@J_VPs5l6N4|q|Q'51f;t;N^'RA;Lw~Sw - 6p`u*k[3>|90H&>R,a}rf6!*Eb9r|qKA!_%tOTbWj"fcr0sAnkQuUrmaKw]K^1z/mm}'sB-8<#I,U7[_|44$bwQ#.9vBI>R+Mwhn[!*~=MNXCi - J22+i&qf52!i#j.hq0WP8p~.s+.yGw}Yel~n@[2u*C%Z^;A+~U"9}X0%l9F!LQa]yB4tcHqn7Mv}V7/G7DMhfAuNFszwAvG[24``t1f6AeZ2|w - vzD!h/KJ*).Bs]fztTK)pM'Z{TId*Enfro~$~*wV'FxTFx$q;Crw)};yv{:E~JUR(qPCWxnfZIIb|:UBG^]Cj8ELONoVP)7o8 - r|TRv"vG%,1kfX-ny:8=NGjMhE08;`23vyJZIG:*Aq{^I"+Dom}QW%uYCT~umw9[i\o__MZ3VVsN{`S:Aqh`b=(3i"xN,e^-97]X;EwBYpJ%)w\bPm3>%~<<)c[#t!u]qZtFC!<.<33u{2f\B^8kQO;I>c#Z2-z~?k+w;Pg7MZ?<)8d#yK-j?w - >X`d-W|F<')s)kl?e.yGJL(W(P%0lA6sOpr_m#?T`iDvtGpj\bDr'pFbn57EMVdZLCeMPu;G?IX0}I_~QQ/Gw|I{QZm;&:bCMl_VCn:7L1~fpN - T-xkP1blxfAh/vrfcK`g3H*1<%&4*,[1'{[5HqHQ[E};7iZ>A\!U*:(xtb==")I\=qG1?XN6dVNq8FwNked.]gg>3ZN - dDJ_o,=m>mV"*x,[]f(tc31L'MDv-/eFb[K:;]Xmk)?n%HcHDX\dA@M.!$(VR,W-ppZ>c=X~EU%s3LVl3OH[Ent9a61Q$"sPgl2}@MB8{$3c}i - oftLOebZG6/^>NH36nG(vybF%hdwD`!WE5xx!z$Ld;RGwHy!{{Go6]_3(jyVcNGyDH+'^)(C`2~QmMKq^~dE@yfvL,'1m3i;|HPXvT]-_OOf1z$dc1yM]8x-ecb,QC'Bu"[D/^E^=m93/y_06*%uu&q=Yo^@[;t[K0.=QK,raYOrccCTY#s%JT,c$)C5sl|MyVJKWTQW'< - 7x2~g.,}a{c\9Oh{qE"d`aAXA(Ta5467zdFY:vp:ug\Iz\nahnz%vf\1W9sF9Op)_8PSbUSV340Q#6.d:_6fxO2x:"03fBe#9Yi>w'v:M9n|X@ - U~;bGBinws3e=L&\(G48[Bjq0j%I)oeCgI?zL7f2x0)f3c}4OZQZ%#"&kDt6|TZ3S75\OM,P*.YYGhY#BetD)eJGYz)ocP(4O!ulf953!gjj+o - vnJI+xwL.[zx,!1Vth+*w_X3px1:;ef;WSw4kQSOEM'R[EV[ASA:HIJh2n.,#uJd;So.:RNX0G-c:iH%OeX]jUj2(&j"CX>Wq+@XZsZafAAEtK - G]^jGXkb9+5,KCmz*x"!Bh6OaAV.F6b>4Mt=+9a[XJM\X\HVgrav9)$?l$tV*]""O~1e:m;#-:J6Ing]atTtAs`vx;mop$FvKU;O;'Yn.b=Gj0 - vWW61Oz}d9c`;h1&o2`Agj\$EC}'/`G/%=X|`aT74`1jFX0KN.kHmt4(IXYQjs^-A4c;E{/XG(1wbh4JAJj$\DX[XSKud4~S#zHu`QuL;;k;-gLbf_cuh~M,?Ml~0rASf82m-U!%fZ#VnCux:e@%Sq|22i5R$Ne=>]e|[Vfu*jJcS'Ie&)0IH: - v+"=p="}0oDT~=(xO8`RZB\,So\Y2_]!A@.1C^=WemN2G.qM'snZMIgagL?5Uj'1eIT]N*A_GX6.toXzx|bPPW5vGLU+8kkQV[bVCOK^Z]h - )us8scS.w_e|_}@|Jj#MRx2F-&Z,M,{Xyw_|.{MM7nCSH`SQ)wtCRfdx}aZ\n[&j|S8!+R^dKW=,9qVKe=Sr3>=7Fzz[PfvIDHTi`5 - H,l(V&$dQ#E,2]Iy*gH[=5{CrP.)baW:4[V]Z8%;eg_pbX{~wC";y{+ovQydR`8yw-e05,`6}@&k/_WQ$:RuohP"zE6UV - 2l~Q5J~7ck6pP&o;zHfj3@!WLRwm/e(GgC0[(6L+PhVM[=iU}nA_zn]3B4&~pQYa&5`5sDr=HPwys-LR5YDU\UC[nxh96<,}!Q)au:Q&'P9zHvm5uA#:j - KJ>0OGvb/mT{IW4wlH.&aAW~T]JQTR*h?!Eh|tmi[$L$UwXlt?Ko5G,X&_ - }t$cjW"=e>X@&[fAm6xK9m)@2kJMJGLra3YOwJFel@}3s{_zpQ0<5xP6-dT}Ym_/VtC:,?4odK{cpY"N@J~jA>Nw^FQ;Y|_K;_T\:/QQ_k`]-M - sasg:^GID_sSzsXZ;p:n3JS\T?qffK[8J*'MCG*`_M9K8xD%\.f<`*ih?85?PcAgX3~5gi4:C)%+5OcQ'KR-jLH`o7y0wvAD4M'VV*~~3vQ'V_FacN!Q1ue+E6$>,'y&P;-xifk",yEb.!P%?jv)tJP%$8C|!?pC@|*>\b{K - /+7j&lZ4+?8Dg6coiueKK<(K;Ek:3HYd+-uGrGP=W/?vkmsvq2#]n0~0i}@-snT39R}?Eh"%s[q4UFm)PB>4x+"b"C:}-]`tzjcyxnB!3Ls2^J - /7oIqV6`/QQCp|UzBb\Dkl^5f4^;\S]%-&Pr>Y@G]E*^6/H\7*X"Rn=~4$0mW^g1LX2<3X!ly1X65BjWTy2FzbK^dTPUIn'UA}Ja&E:7\CUf2V - {K$aN-%[mW:VDbda"KKB|(6.!9-Hz3,0*w}4VPB8i?/~?NEG4l1;UX^bg+4:CbBF;^n21\bTg`vBfFhAx9>H|]b?j'v\)yA7l({6k}=k`s{]0g - Fb"E0tn2ZR($rgL6U0R9@4dTN>~d-]4!Ul[jju;Y"X|@|'}"R`;45w@n>EFF%U^0[6VAS&>8T-htl5;0^.V,tN^13R"<]{j^)'xb'd5SCqRE91~[k|n4;#%m:%+i( - *aubA5=Pvwn-D';#`2eV=l@Zypk4u":v,5Z24"1#\7?I?"e?O|vAg!=uwEf]DH1y4u4.]pD4^Mc$<}.QwV\g}eg9B^{x3g)S#(F)|0YzR3df&h0V_5F>W'$:h1rh}mf - |C&{zgP\J}ZeSQGN0!EzkLxL^]0^D4m5:m%2Re$XQikF2T^=78jWE?|84:6u5p99Y':"Mf3x*X/3.,dG~`V{:e7\,}pM'cx%RO3i.b[dQKinLn - t:,UhuD8.u\_S3[7L;I@'A+`DlVR<3>s$mF_]MX]|atLizK&wN"Xq.KRjK|0t"w$3Ily(1AKu>$W:WAsmc-:"SS3/-tIyS;n'{pi>f&5ns_kr0 - $Wd|[2Pl!|p^8Y(zg),H]Qo?3\xG{gv64%PXJHlg@%FQa:OV>3@#}(^7N35~.LzRA57pCyaA~bbE{3RReOW,0[,GutmFiI?mg%\XH%X0!wq.sx}DkUpk%9b=&uG%ZhWsa_Oy?wEH<{<|xC988hzFp^i_;kr{DF - Y.N9,-iG`DlpVz*h"b'DU=upH:@5KvlAqKP]F;&[0c\F3SF`O|oQ\^@E1d6g$Vp7FS.)&Cg^{SP9<,jZ~u\}|n8E:>`A-bontp^{PV:*d|e~3; - (3YJh090sls^Beyq\c4)cVSfj`FR|.U^2Qy31$./FXNP|fg(\ofU4#3PBN.oQc2(#o(AZSbu|YMj}\Gl<{`R/{dR4%QvUuc2Ffg~03EgJL)["I - ANuBeyqV4r}=[O@Z(SDbE.\n./0wc^uaJ"|>O>>j]g4r]u(Tdq,@f=&E8-YB!a%%5P,VtYGOFh(T%r@RwjU)1d1e"f9lCv]pcUa8(e:8W-w%2) - GB,JbJX}~MxIQt5#L4Mo,=N]agT["D)D;KxB#?tm1(z2$g.~e7OS}KWnIDWu".Ut?'BG&1.@2T}q8-oFwS^p)V6wm58LE( - -=>gD@CBIy}##MG$&)5a5F/y2S^5)/nE`'lh0_p%["LJe~-.j&ar!(J_Y6VSS?Xw~5h:%6&hbD7wGbH*t]Jr$8}7XVe5$fH@+agP8atF;0guQ= - |8?zTZJW*/pSZxcp*o)WgsmTBoatZPc9XpC&.6x7"li@=pM~[s7k"~NxM(qr2,^@F0toP}$*V]pYGL!^f2J05'>z2Uy7FG>Yf_"< - /_a`UboR&SFaB#Y'`.wih;+n>9WdbGo-]H>$H\AG~C9'Ti[p6a<4Xq?]J}m\W$^zg9{giC(]&b}:CVjC{{-xUp2j^[:eGK%Jb9WvWQpQh)[^)9 - Hw<4vXJ{bvHBcUoNci[:G9W)b#)xfF=CJL.mS0e\?\YLu^#~c-j9,uw3n)'oc-&.J}#j*>/}bz!|A25H~)/$!imZ5yF{scJOOb`G$j - axjPw~f%L',s8Ss_5m-Tkt;(;'5`ukWZGQ`l1GWFX+'\d$wk}Q8UlvzCYNlgkEh6IkN+-%(4YV#")o3R`{*E9s4.4cvH@}l/QQ[tJl?<[^*-SHwBF_3%|#w(/D,q]J#4t- - @#5CSH7GSL6a5}S]-sVYnD^@15te9ZlV>O:4B>QAI!O7Vzv8Uq\&QK)q5G3fNc*G~uRi{=pR0\CW=?m!ULE~Z$#APP3op~gKXppz7n%k|iCWQY - PT2WK|)~n\#ns`,at?y,bybqO7rfgUa2oP)jY{P`CrY|.a]w/G{[bk,$t7K.yVu6S/k:$zLI\%eL"lE+NLz.\.cqDxouh!!svJ*uV85QL/s{81 - G,Ohjw^qnx*Odm*TY4~uo%3jDmICsY9$CV$e6*6xq~+84+ui<5$=WH9H{*zfV8eF^1TXcw,T7w+m\`D9H(Q{*`=&kDji0gmlubbhzpn2)XsF_1LiZ+xscE?_*Iy5}YW~cRoXZ$g_qYld67hzwoo#:|`RB<'1J3X - Ez4Ehgekx>pyy*IP~G*GTS.=I[!nse@N-)FCu=S@]zWIZD>h#bv!(0X;d8JFHM]9C#%*u.!1J4b1wPAdr'k~1_{DzKT:.>M^r3e{~]yt3|YF~6 - 3!PfJUri7:/RhzkSFT^xhi>'Va$lGvd6*7WjH,/4\}P(}{*kq|g_,/wDMa7\#GC~^sQ[_@QK{_h7C?[V1?r<+ - 0b6(q87e)'oV3s^nyP5Ckm?V0~x83!3i!J>.`V|tm2Y2X-"+Z!=aep'?"cMhx(L.r&jOh5XHJPb|.|-X4 - $RAeyPBugpY8}4|WppJ1!kX^c*K31^AD]VkXKq'lZvENvBg"Yx|9aKoh7R;UV9U3&v)iGdNk&n#iB(.}A^sZ,@BVD21XmbK9;`nGRN;KJ-*m=9"#ovF_cZ%4E-44Xns!+R|EsoGSfL - uvn_+M)2:'C}5-dHZII - JY.IQ=(q1OSs-T1%`O1w"qJ%Xq;!D3qc*1j}+=5;ZC.}H4Z>=![3$J3E^f~b9H5@O7M;)A-_ntm|^2|?3?'*)srGP/h#_peF$:6]:kQ"zdl&:FUBFJ21WP/e:>~{wkI$Qpebx\2+bnu=+jk&O/e:(?^{jTV2@0IzH$9va;qOX[JCbtlUVf|;Jck!.R+it9B - ge}Eo'WW?(glphv]Nm|}Uc*2&=x~mSb])lT^Oe79>G\/]N=y(XNCb5YtrNnT|f3p:leH8n@f9CgmT3>9`?B'k"r[mdu/v/Qyt\X~;6&1,nCUi" - i/,M5-1OBAV\#lFlyneI,QGn#/>UC7jrlsta{f5c2I3TyZRei{6~Uv{EL(ltze,zGKOLgi@.]U)rrywoAR3>ZlvH>LzxN532}W7L%JjO.UJo<< - |O>dN/jOMW+;r*a&/N[s[c{`c<~$#QcQe2`?p9+0$s>[\r9Z7UWl+~U_5>Wh5%4>yVQ:g39OTeN:.L|D50lP;+6C`8#o~m:~9ftPx(spn66n_;tH#Q;3iNWrP;Gvy#q.|rk6OXHhlZ1d3HtB%[% - N)MS8'n-t9aD0`4Ir5A2KRpV-(H~i:A)0z$l'W1&=+Uh9`,Ss3+'k|y"Fv}~P2b[p]QgIS@Ffw*B(1I'LH^DDL~m2ZbLl - 6LpcCtk6bDhD6>5WZ+Y2<>()~g]=bH`YHIss4vsR]4}-bGh@E]F4cN75{Ey0&O[=F2mf6vbRT/]#q>1Z58sN:Fcw-IVY!ks;Y>`9fKCUhgUVnT - 0!I2&":I#m=JM%4o{kb=vy|%*Nz)+Y/YdIbBRjhF6Ftfgnv`!/>_PSR+c*m5S-@KvmtrK.YJYMM)sq(>w2po~`Lp);P~:,GX0yr-?AJ0kW)Kxo - U"SgC?oZ/7}s,fc79i1[K2Q`9l?OgJl0dG'nbgM&*`=]Fy&lzbd>XZgkUO[IN=`A#K%C5K!ckK$&4w0EXO\}Z'p9eLoObZ&94T(>7dfzlTg/sc - O8UAE({G+#0@vl&BmUuIBxaeH_!^p-81.k5n`V0]],yX~R~{Ul{@M\xn{r,6Oa4.[~pJ5]-F$/_9?6m6.^#ePI\,CA_@;FR)|3leFjcS4*{Mpc/xy9*\]Bi5#)?B&]y,Olh-td7Ph*.)0'C%9\K4OT:xje];:Qt_`Y|1LHt_ch# - 4ydpYRHc~Tl0p|hT~WV$;1Jt0%r~LgZzOH8[Z~}X|J\\>y.HwR{{7`*tkG=qes82q*t$TW43tstJ|+i"2:]m9P"\!w}MDCA.,+y6B4bJDV~"`N - wHaRHf:k0Gf/`0!kWj2}a"Tl[e5MyG"Ni]=GWK!H_J7?4vR_ - -5dO6gh_*X^K.a-'V33r]rj+Zr(\"{gy]r[%5\SFqQH}i!2wALaTs5#2?8WRjUmQOBpp9Rv5CJxcO/)sBs7%M%-B_e$!=F - 4.^?@6'Cv8vH-"3r)_pFw6nxIn-Gso;j_x2`"zp^q5~dW!D:v-:i&7AKX'_v^Q\7fG;buWh|G(bpy=_4;j|]PG8$=Tn3ZjWH]h_ZAyh#_Al#}7 - wt5$:"_@?n0kxP0JZHMvi9G!IyP0Iv0w'25F{,d#",pQrVPk+{kb,ve0+}zT*y4[8/S(*+gS)nwDV^y;,!J;]|1N{au[rD*j(UUH'5\Yc%E6'N - HU\hEh/]6rX.mIH<. - C(MYj>5JS'iTP`7\+8-'-;BO^tM5ntZJz`}.^g!Nk>Q~TGpX"c[Qt~p61P#_Ba>Yuc - 1}#"ps5:vLQKUO]V{D8.(W~ketn[5Z,UsimqnwNw5&5hrYk>yw2k'O@>}>VfA;.a,7LSm@]PWMLw^{n1s$(+OR^~ZdXN\fT@|1)*xOQy`!E1%F - _8F+>-W]@sX{z,G3`urKovn~9,o:8Zp1fd3@HY=VBi%=biPes^gM^lY5%9-"W|B]RSGt8!@au3E3&EGaHRVZ|}FX[HB>Z,4~g{A$ZN:2W$ - z#Q|_soa:=S`qsE@Oc|s>6(sV1}e0{\c*pURo'sbm6sB'gHKqhI11#1\:8e>D;Pb>*7R~G,c[G`;iasl=Zd#w*tG"8gn!5kJ!i6b9=1D}/KBPv - s}Vt"J^3edQA~iYdK8uZv79lNLun}]wyqk`y&HGUsmTBHZI>JSkN}e4e]Tqu(lsQdE/SqL~9V{qyHDov.3~yq)jT~"3hT#qc<5F&Ak - 9"XJYyvbU=W(&9g;*!9s-$UI7w=="&viLDsBPmI2[J~'9S'C.'wr]#9.RwRpB3(%R8xput#AWxr&PBt_)bZHa+JAd=gck)q7cCmK){o{q2s`C/ - qh5Rqv86ku/on:e[7=#Zppj}tw[`G;2/0_6w[QtX~!:WnC$HV;iXC0}H{lJ*2s3\eC8kl: - FUPn.OW`'_:?wC/1]O=16A&l'q(Cb$4he$m_N?Sm}a|bd7pMEA!J?U&K1HZ{>p#6O/^XVK[QO*`2Zxk8[sw\ - J%V5u|3Rvf%;^U~-Y;$[()@_=VVUw'PGJZ>gTt/.2RaL]%S0^DGP-k7QZ;a1dxu~_Xxu0kaQbBkhODf~dRaDLe. - nEz/Y%$XGM]I/2tpa)E%X+U&1OFvsn)KfZp^>I*H0u9\~W{j[-J=c@Ist)iAcS!;*MIE?V$Et?7PexPSyxSGA{hRskoZQt@>!XA}P7R;Nwg.~E - UG??eZf}1-N^Mra!eL8c,JPqd*"hy;Rd'b-;bW+dp6C/"p*kvDkXY33mF}=>HJ=4xf=:AMs:yZA%='{!aq`*:SSUoS~ldJ;@fM-?17k;{cg-"O - wO?1Gvp1./pr+I+xZE0A[vLCEPU@s-::3?{V?p*BH1J^_-^'Mi4+nRJ.-eHK[K55;q]Mtn>Flw_=>~1l}X@9#$7S:YDYUYu#8^{w[%lGJeu8@J52{~s&qR[qZ]+eqM`miFm=Qf<;i}to.~YF<~\-i'O)YqDL[K2"<7m\.cH7\L"Ra{{Us,r~`Kg$=?fRe=;Ky0qQt'`,fLHMZ5?tjm!2Jq - K2X)'/ga7!0&ZFx_L""/?{ot_Q'a+N_oELz=wSF-yWq_QM2-thxMi5!?FE}al$pH}zSz]TxX&I-xP&;I8Igx.RY:GWOc1C_M)R6=h0ur'MB8kMtd/v; - Ity~*}O/!A5qeJk,o=9w,Rmnl_uEqcGzG?D$6nCFRM0zJ'Z]'!?LjcxbeZ8[J{XA8C}`rQABfr};b&Z[}O!.ebT<2*HT7qK*$X:&),T'(`cb/j - 3TTrLe-,_bN]r*#yu8\55rNK*/EKGB.-F5F{2/58Me4j,EC{ybvy'%O - EUQ{>Xo{xL9j2(7*)E3$F5X|NB[%ay*.2ee\5[I?b02GuueY>MGz{Y*l3:l&T'Yd;gZs\aG~,Xb*9XP1LGY6tiwMCSe.UWD0TY[zw91mY'04Yt - SQo1rV$%O*Ui2O%|$OFRh^\Rl>/%lDFf$nW7f`$tNA-d;T@)DtUwwK|`;8 - T-%sm/'(A=ERz|G36=v=.edqdojsDi&6-;)t-|4o~PIBkmjHt~lt5mvS43[I:KXQkqD"{xrm-O;jWwzVvTo84n<%@U3B-GdCK}+~S^G[-Vl8o!52m%\Q"KF~w$ETau,4zWI12"lQ^D|i]QC-43-,cgu=|fK8\mCY,9x&0B~;2Ym"},{W)>jq+XpVlpmB){tio;Ut`-|"G5 - (!g2HGV6`XI2$uw7"H`QM_+_v}?Z8Wi)Sn41'EBcF|#4XA2Jvqvgcn8mFTnu(bGM}C~>t0'orS\{xpn$3)WXf^$gJo+4zd\A{"kjRQf!tJ!uf0 - WgnA.i{@GRn+ow}_~(5j$rSrC@XG|L9.XcN3s&;]^%UJAMt3qp=/3v|`I/]V|=4#=C.!-}UeQk00!fYn+|6>iSP?\%uah?p1Wm>}1YG{Cq~*i5r>#BlHI=!JzDSsC@q1FMH|fE47.__&B2CFC%"V - qO/+OV[bt'Td;Yr>HCKs|$zTKGu}h#`]PVFFw").}_i;Is'~#zmsCgQ!Yf`0UU2(>x:[d3XZu-'Ee{,OYK}_[!X^3e#>OAa{L(Z*4b@`&F|EaHM+Zs_vvcfTu@mn5@Hhc1SO[v!dYFb1xv@fA}VHQVT?}X]X!^`A3$1I - ua:Oai$lW0J}OV;`!$4!3d9R"H-04n`9,DK!-ZqW$Es9!(ib(ELQZ'yWxo6/tf!OXfe/?3jpW@SWbzH,.=]zo9=br@tK0GX>V+~?-R7Sp$5Pmb - z4y[;9I)i@L$[)q%C&C_}+$-KSG{T;zZWxGEa+`|?)UvBifJ3#L)m0Xw7Boap~/7zX5cx~hkt`nPU7]Ko1[kJV/)DBI7M`wL3`;3ks&v_*z8"< - zF~SA\D):-,D@,y[jd?S~aUbR[nufx'r\),PA|1MX--B%H>I]_Cd'o(;Utq@`t3_J'5LQ{.K$><0/wwjmeH6U&h;M9Xoe56?MVAXQHO%W8 - l`L~`\;7d[F#rf{|xv,5Z|n"EY.Weq>mo:VR)HRM}M[;gV~cv\x0=C)J#C8/*%$2#h!VATnHWx`}c:y_HPKb1/H<5RitiRl0d&lVqtLN(jBZXpQPaxX?x! - }qI63G*KSLve'sM+!G3lEB+*#bdSOz[@abfE2!/D$naK0]uPhG!]jM|1k*m3}PN]|a4CheAMn~7{2/^D/I;f`!}A+-]f~(!xA`C=*dZ0k)V3m+Tk5nMm[.2NU#mE2JZ - /+Yu`*hrPvs0k-SKfMS|0T7)sa5s+1K~#W8#&BV$*yt`CJ9kGP_)T~U*TYv_Az>E{#bIKk|~szlr`%^DD"t{'Fxf+~t>DhEuu'UdU7KH7B - yzCTvekl%[@H;UP>,P;n)8UcA@r(_som2a|!xM=mB-)r#6MMGg/Bjy;^Dbj'I`!AVjbW@~^lrBk[aD!p=r[WE2OmB8L8SFvT+K}yE?ZQSM.EqD - -1u_zx}@!:8I=^y*n"T"k=x2SG\@Z}merC{FgU*[XG:l7kTBj~D6/%(n[4dFRX2d3qU#+Fs - ?GIK"D|dzFF]&gO|f-s|)`pd0K33%_c9j'D$$r/33pJcgCV^mM}wVXplY%]J0PHB8RG+cb3UN#BprAddjzw9A/6i40g!Fe8e^?{L%(e_gQ@EkS - V?,XP"^%WSCM"K{cQ2_?Ne_pEpdP_Xc]Mz_6hJ-^XKXFu~d - nzKEY4>G.S.d>|@cjCs,39+.!6^lfuf6CqgO;uUdP'Z!VvBkfNeW6_7yR,/)QsqxL$mn"q<4@N/U}*@,ljpviITxu#1*Iey0*7YOp>L1x<&eT# - @V[?z3&CGwCI,O5Jd3pawR\?l6L+TbA^ZSJ3{{TC&k;kL/`i-|-0hUrE5=U?"H!6.p=w]<"9*'d9(oL[kPC42Q>COmt7C1!I\VnIN~:0NtM,i1 - 8mI8T`g9/rT,,TcKK1?@jz}89tT>F+G]6X0`|fL(,T=y?1>tO}q7mtVa~BdzM6/Aqj\=Ln9kVATO7+da&`S=RB*Z~=;_O%,<'2=\,+,dEu&T{K - %LFy'Mxr203RCkCO,|3kG+|>=stG_4\q~hCVSO[TPD=F.'S$v'ylnEg(e]\<|.`V~s:x0(Z[%)_@K]7O\*~b@u90c%lQ^orZ3[n+%?"RU`ABw7a#?x - jH06xB]"21hB/*,Wj(iw9]#"Kt6(/t)Y.8^!ukVG/%L0m6c7X(OMQa@@.Tv}7]w(H43vSNY?.9tl)[ei-=&[40;6iZZNPuvDLs1@'I\>0H;[%% - y!tL@LAK~6?f(7(5by)Ql9]X8{PWyA/"C%s:3YRmlo{LP*+CE9#pBo>A}ChkK9@.@u(IN@UkCj^>f!/SettD6TIF/\jW06l{T3^zv&RA~xD{P7 - ufCe%sNQCfs4R+U9n7*4!XRiA|"RQ>Qr_im3bf;5|kN8XVF5*zw"@s6E;L]K)RS4ZG*nfk$vFr5**,8aA@w5gi+=[(UO6[50(SCylrC\mq0YFv - 5+>"vC_Ooih$[0[3j,=^'z$lK*iYacW/}Tfc\I*"Dj5[d{]opB)VE*/Z3`K=_f14.WL%jVp4omt^;l+{?J((]ABef2n$a;FHC$#"aj~^.Ay;^! - ,V^e5Ve=gFzF_mxO/IpkjSoxV96?}ef""!ra3Q(#/{6j7i4cmwl[5AEn9<{$c'u^ - w{GDIQ1L-0dyVa:KG6GZ/8!YwqQ\:48R53!WEM6$_kRm4D).AYFg",B!$DRe+jUQf51D&BV=Nh=t;Z$h*G - L8x'y)#>fL|a%HWqO9QM#'X*M/p.nqtPTsY`zz?Ub?#m49a(Um6eP.&?NMvpvV;]Z~]~WWz;Oy%QZnjBVDcF`Sdh+eNpXO!;A7jjEq(eq'Rg`= - f;9^I0~Z5nIJTbUtfnEckHWtj`sATud/1$jJ}l,52>OBVuJE!xci5*k3n7C/@Tzmv`3Q|(MZ!&p5pH[PUSJcn/UQ7:mOepXyS\*|$J^O-|Xq{j - Qlj@^2djU\r@Xtoe:$Dv''k:%WTz)VVPzSYPlUckX(0\P(@?\&nuxi8{/!Y8_=5(T'o$FF2!j%4"a(W%y]5r>^,v0rzc*w)e4ZU;yp\R]7HQ,J,3t$N1_T)gM'?J1'*=bS_S4]}~eg@/^~uDi*Xh)MreE+;w9s~"3IJG`cN!=c*|^cY%@'jzWc&qmTCr_T6N>'P}*VMc - VkQsXY^)UsoA?K_Wj{DVFXQ&80/w}U$kO?lH3@Khu3(n-O+R7hDQKlE?]=], - - ["936"] = -- Simplified Chinese, 21792 codepoints above U+007F - [=[!cq%Lf7]BuTvd\U$`xY;Ze%;A&P\kuvz~3R?dWHc6_}0*g^iH5?2RM4s9j-8~\oon,AgsbSH_mPJl-8Y@4D@,'P#{#~/"O[/w[;cmtOz:%p - -*4YA##^(FdQJ9Ur:ynHFL+NEb4\AF`Tlf<+\4RsHBy0KA-^3-J}(H5b!rj=rl2v8$yhK'rHo4v2;ByE2I)LZ1Ke`#AFR``)Mx{l-T`8@*BYs!PI?W_a3GYF"xe!rXhMXRGT4NIPg#j=}?>0/>WW%AK,,\B%Jib^Osm%WV0<0>(fDRt"CJ*;`6''sZm{x$-;f - T(4!":9:$8=n9GSg5obD/o&Jcthrr`T)3(.ng?l}0*3h+i?N[V.UgqD!sWdHI],E=r+W?&G(HmBvXW}C{f{yG2=:G[#`es5**|umb`O+jLMuzI - 2<&Mbsfo){~fHiC5Q~$|b]Z9;NEfM]l!|IcFX[Ac8J}B!s1{fZ@9k.zB*`t)3:5X"MRQzKsA>8?0CC#V^P$*-_jH?H<'#nvn0yU{A0sdfcPDUT - F27'PNTY(Y:a3LZ5#}Eb:(2v$@$4E|ew7l4ats0Nb>vS(?hg`1"`zveqBK8_6KMMm''c]GDwNT2_x{sHdSLidYg@Fgo~=2/$^2s'Qw"D~@0`]L)=x]|[Q[_G6'o?0wh[7h"!FfYW0{v\U)GBKw"q&[zq>(r_IQ{+:x^jt|X/A$ZWdU;(l5EyRo$9!slilrgDuW - 9,S@xm+UpqY<%e>E&&bvHV@d~I"-gz'M]cNLj4?!C)+QVM6|;YTQ/~S^l+f%Dei?14H7fVF6z$g>C~mZ2liR~|P~d>X.Osf//wfoqC~a$BC - Z.})H7@^E3l]zzqs<3AH}i-!':_Ok=Y[#PuSa&p4gB(P<6#Lh5~D%<[i7I;@ppGpe+"cQ\}.`x44pF=L'HCW5/~r:;\v_mp!JL'v*T$I"|@h(7 - Vs/<@&Bn9f|8SCxl~;O/bEQs7vz2!&)Bby5\+[}bnba(Q_jXFN1F'BEe]>Vi$5A<<|;KKFN-D4GiKcAchq|=a7$!8hr:>OO8Kk(fS!IXx;UF+, - #Mk.r&7Af+8?h:&0CetkX/JzYWzg$F*a>~|&yzDXN;+c2A\M'saKrt>8~mJLKa:dk="v2IQ7llRgj)I!.m$cX#qB3BLiup#0Q$^.nA^c8,N*)\ - 1`6t:0%I#_jHkDsj'4@hfCg7(/ZgkM=A=t^p5i.ppDT0AgO^%pxrWL6Yp.;9Rn<`d9mgKOrK.A03cL*m6;nr$@>uo(*&0KITT2B[u3P5@b;_DC - ";-Y,1.Hqk._YK)MJJ>.`Ps`IJz7;5oJ=D_:vWCTBtz`!=]I7EYz7uHe_B{Vzob+k@=I$='o3MX$3Jo!oTtPbl^cuHSLj6o(fYH)MoJle_{e(Z - l25yTdwhfdRvEs{8.7tTTxxBCzcQ5Y/g\UO^#?m_/C7)<5Fc$X$>uA$<&N%w~ZwU6RKM8"%~aT(#'8Ju;VjMl\rrPC8'T\pB"o-jl,NqsP[Tkd - /|dE{p?)MghlpRy@DPF,ugi.\iHP6SBLlCs@GSm|FKo+3fkk.VX_)vxK3g4ki]XltyH^Z=6Vre'2Q0BcmHB0Q\MwjUEsg1"64Jdzv;2C`Fr)~{ - @\8:%_\5nw8x]fL_h'h<3/dN`LIF<]:=mc#|E[&$,+2?='^#_`O'.a87@kpt0HDr%$5/A'"XrB[;(FLqkIp - eBB`;C6l1o-!@9y2Wrv'H$+%E)vfBjn.'r`Iw;*$IX,fdJ^xr`2May%(/54|O@%^>sMoQjwzYLjM&+Qj.['r^eyJ!F-!$A$l:&T=j({@>fN\7= - 2=lQOIc6=LpG*nZ>kbi5!0^ul7jO)LGBq9lTQJX;5KN)SLeA(BNm^A?0hG/~(HaWV1Bq1HYFsiWc"#&d|Vq(svyUC[|N\awgX)I%_PXnu1!6C=R_.')y41,9tv:=50)C)tx-D$83\+.Ac: - vVQ{x93"_7_J}?4n'I7K - =U2e8{3J']+*t2v>u6a6M9Y]+1#WBbpyx\6;:e+I.;h&[R{5!*Z,6A$lzqkQ6$t]cjXw,FUDhfL!4G9bP+o^Qeth)C^g#6DU+iSpZDNU(/\q/- - ,>C4nh)Y%bW$&H^cZR,Ode#G|?~J{edObiL5}`o(27b^EGZ}(349md9.d-GDUq`w~m?!Fnv.aZl~W2\&G"O36p@%q$MF,b"UyMcf6T{Yx6.k&. - nTz3_w.qq]eL4]{{Az"|H<0NDKbM*@7f2Is'{cboWVm`tGwAS:U2kjoBx1q?\uH):xb[e-J4q\;/(p5r5jc+@:I[4Xm,qaPE'J'B|K{HXq1|>{ - 5vpZPS*`u3t.yA*._8mu^F$.\6}bo^8P;<#+=P`Uu'fZg;q%Q,/h\r/-?x8EFoz7VUa;v{Mu@a{;)u?Smj3aCZw<98=~RHriIa?\PB>:sehz0E - $LVt-1r,:&~X5n>P25S5TsDJl+6+a>?yTK$]IIh~hg^}*rc|;"qo1{+Iz3_{zEw(\n.Dhwb_/CN)v/s=^oG+=2J\uEM3Mkbg9ZIWhIS]E)',f2P&j`}%9Z1--P<_`~^wp+F - ILoetUN+;{O(&zjg,d@4m"&Nqg{YWXhCtCVVNkdo^w&;D5k{,=0?xQ`,<+aU8!av3`hcHEs;@YcuL?K:m!c~hEarZT2)a0S"cFL?.&/%8^M)_&a*fQdAXn"R%k - %W%EUrMjne62N>MF7Cu=?@3s6q6RRm/)2"g\4R$LkCJFb5Rj8Se#D(:AMJs^cj@pFK=]s-BOLJx4k*hCD2kz9^e}vaF/`lr.l:d[0HmHCdcc@C,*\p>Y,< - b]{S^ay_E{sc+b8a>m.|&+5"sab<,>RsqAbnaql8E#0)w!)!h6VY"iLFwLH9NyeZ'p"p[fC3x\L!M1q)[^X2}EO:"jF~/{c}~c}[L+~/CrBy!@ - iln5xAOgDvia99d:"[|45I(=NnN8#k{d.bbR.=%X - 5#^]{;znumYk>5j>T?c9bz5DDBk%;}#m%`?&4d18S%5,:?^|-,gw&AIQk{HS)"V#R13T`7vQIBVEyA^mPdeg`T;r)be%5l)i/LVZD1=:>TD|]X - zkMDg#85e:2g|^UH?=70|YcgS4UUJc*~YT3c?L26|&_nv~3!NISmvE@n}EG_jMB[&>.MN - +l~>UWx:pC$nD9*2kOYVO,3a,"3=/{tmi7BJA'oC6^!`lImD_tf9Om-g#r;-*)%3|ZEFns@?S_L5cnwGKvU]v:^G'*BW>je};*e#_z'OZjNCQ|wQ)5VlRF,2YkjZSLxL$Bw,{IK?DmNT@rqk~Zt}A"oplyRVLtIC8Z1JT|W&@5,0+K0bGUG\q;MK^kLpIzZPF6FLC6HdvA1x(*C~# - f`,GD;GoF.IWos=~o3*&F2D_Wy;/Zs,;gU[R/#G*P2qV|gV.H@o&{bi/Tr1zZ^(R~LT[|'{O;H~q63FM^MSe:^?C-@6$94sM\T9v//[GFAOWRu - ZlH9*#a*H,HaR*QCt0^V$%Gw!{bNjjAeUMR&Mp4{01*}R+H$AtTf1_oat:"SU};eI+sQ[ik0{wY]WEH-q)ol'S*N8Cp!ckL)j]pTcA}{m|f\{! - j)$_&P){4TZpJ]xz3o;]"[q.Y&72[01j5m5h=*5]5\J+)-p{dT/uj\/t1qgjIqfMq7NvfN=c`{+x57J1-Ynk+6 - ]LZ{JsA~RFHF5+pvQCYuB-&N"}$2#hd}5v;erld%RWgk2U}ufD3mY|9m%L_K]S?#.XL - x&BqMK]N!=z7b=RG]>n>B%->k5H^"YOFLO|(MlY_JpTc5XC@8rqf5!T3W4b^l:)B_h)p>>P}#OO/ITl()vI`/7ko[IOO0Zl0!A&ikIl[R^#9Fi - IH)7FlGbr-%tjB6\q["?N:dB>\_orf+,f!%'&8=VrPcyw]Xh&y]@+W@o,,HVYb2>skR`(2e~ncb|K_o(rAmcm:XRQ*p8Ceh?ZDrgm`H3S`?;G4 - ?7a]s+_qF\qN%{:ak[.O5-\L1zm<1)h0P`i&m>q`"k/|%1)J@E/z_NT'l.@#b-b#]*N)0"]*qzCoC?XbPyFLtHT - SAEcImHLPOu0eez^$2:?/xUpsUMRR!M\zjQ=VY)$,3G.]jzWIg*M&[+0Qp!Q`"#\"$JfAxq:jo"H,}"i!FJ2ry)94w6nJ(q9&@4AL#$~#Xq\t1 - x#3IR20Fmc3u"4c'%!V+(}/6SZ7Jc&Q5t^9\*r0vHKj%{`Ja#Zv\kfYfmj^jw#sEq:znEU"SB&n"wUo_(mh0pLvf2asI$>R/>`!k8Mq@-8q!!\ - -:L>1Q%=ankNa~(,K)e}nqBw\Z"0p'?Nf@Zpa]SV:\6WE<(n&N~ul)"\OY8H~d+R]WC}I{4IFxGiLD[^^PEO2DkD[,:h2arBNreAX1R]fgMRN= - >eir%[oLn?t|1C4a<&+$#C`x\_v$/29%X"e[BZ)o7W|ui0Z2t#gq=eofU4*3J@'E[se-C@}06YF - |WkWnIGl1=RUTaN#s8_M(}d?Z#^@!}Iqk3u"t?:H@vUC)QO!&r'F#p'3in%)2Zf'2TfnZS7u/lEc,\uz6d[S-K)AJYD!JOYzonmTG7SR62E8q' - :HqB)!B-c5cOBC*2k_MH#rKM"A0RO^_IHPO=78\`A,=\@?Vhq7o~5^CbBScYKUK-=.XE\CEmEtM'[aK1a - C\pDHYrwBI=11+t6+(|j{A]pGB`TcZ*Ysp}70wLmISA8W>qE,>;cmNG#Pvm5.zty^g~AB$rbHR,$u\?V=Uglen>KAi5pK"oA!BCoE@ETy?InH( - -C%;it8.ilL%VYH="XQDbUs4qu;F`g(zz(]Z}iy!Xd5v+Z8QR>^T$[Go88hv5Se_#Dy90$G=3vu0?bSZ`QbR>PQK-$/%f#B3S^m#TRy?etypy< - d1bMGn8F?GhY'I=^#%FBEh9XN@:(EJMETJ,Osps;nsMsT&K=5R+v*Oum?I+A'Z;W*e4zR=xzF&P6Dez,Rl'I&4#f|dE/DIV"(:u$v$Ik>%[dl5 - W#:Lh7}1!}_UN4K~MJU[9mkc|~BFZdn/dprJ^UsfW:pk]n,;m>=v4Wk?^6~dPO",P:8;#<&^Wx;LH=KM}o'NW};5VK)qf$4$?!]1~({r[j`P]& - _ECv!J1oXU,h!ZNbgy?1OG7zqLldx7B0V.btx2JR9-.@'.P.;mVMYrGf93GESX;$4=Jy1Tvwr - 8SIdM<.!IS9P;J3Bl>bZA_4UM?4bcjc}7_#SY7URa1Tx)([@2c?+]*/l=ai4O0Kmcj*ig[+@d:NQ{kR==az\q^`&OFa-H6B4;G6[BA - eN":u=2$fo)0-YXN|LQaA";h8+j)ALqa@Mwdx#6CRoj<"O4sNV>*^o;1jkPFo'%p"lK1=^Hjr#VeerVCo"kD)G#'or,@@Rb_,!Nl&UU@@E,/"O - Uc=n5\WQ+15)xz4xQf1D2S]M7.K"[0!&D|>ZmWHS(zXc5>E/8xYgeh[)w!,.FtYm~N~t}Z2f]C5e^^1om47RE[8Xl=E)b)9.DDxJ`*%c>kS+MhzT2+kw/,|\3,"4)DI - ,n'/IvJ?]~>z3UqX~6K`-JVj\X!N@n[D!B"|UwR#\unz(#B5)^JL; - -g~p`{TGw5]Sh3UP%yPpWCP{*b2MBuk'Fo6O?F<=QpW/.8LcB1R'W@3#nUqki]A#ZRRAFKLJ,&8!r3/.]5k_Kb:8GdVf,rQ+T\#_uL?^S9TjjP - S:4\m+wV1N@9/RZIjZ-\&oPC-\fZn^Zjk!58}0h&&Bzpa\cU{OmSjF7onN8xq]&@=FrQ#o6\}p>\Kc)~.8{=f(t]=Z - RC7VG)Xl&5fF=S@K.MAy[9_wf;iM*#cip;CW;6iNOepqs,W[W$//#k815)sGBx';6BZ<=Dux)*VplX`a{`|L3Iw'g+DrV%$$B~P. - GA>(yLhd~E_p:[F%wRpwL^3Q1F+tOwB3X>:\!1hmwX|)I>m]A_]X - W'Mj+VJ - 0_,9K.ols|TgWgM~EKFl-q[a~hIipPv`RS>4%e~Ygx/V'e~W}WFV:wG|NT\O@;P.:87cw?Fc#%Kuo)2$#yA{?3%Q$!R-wabe2.?Px.v[p-WMXiL4r}&hXP^>zX~-.1s~9^4LTwt-wOOw+*Z]rl\cxD"?CkP=AH,6{_rXilR,m?MT7C{"$1&$nF`=T1(rw'|7__t"5N{CHiF{m9@BhwE-loR?m.}oh50Lah6jCcjRQ`SiE1. - +1%C%?X[]{H*w?c"sR"sS)k/;,~ue-2V`)}wj@5+1*Lh.PjYlE*&hgHqe|JdX.[;~P1_N:Hkj?7'$#VD+o.(3p210C>fy[g]?[BgwqFOfS>\Pjf*Or^?7X%G0&u&11s - WjZ\6QzVwc+*ii9)QE!Ds)\3Vws - s1W-oR*p(GJ\42SdN]z}'kkSn^fGCp&I=-C:;MWf%oSL:$+B, - rau!dLif,8cim6|YE_?15`"k-,FqwA1s}yz)$E$,kw&s5ibQ)l91{Wy~46ju7PT,IPb:/ffse@.z:%-i|-4mDeUN%x)}mCo5[w`a8v\v(9]?};3`M<1)Z?4(o{EVwBzA!WppBqDl']Q0|6*~V`;)#W16\oSs{Mg0KAMgNr^nHi+;cjK"o##YJ!-U5p-faX0O'y,nv.cW\/ - ?GEbLw@f~~7pn5*gjDs33uh_{L=|S[jBZ>4B'"cN2Fyr)k7"U{zw\[n+[42Op6"BF"{][%zT|7ABz-PAFd - K+!,=#zR@soRO0}Dl80ezLMP;WtBz"&m#h!eXxo"Q\F%cR^n=k| - rKl(f0U2o20`aXm!-`i"a82UH'KAU|ai`$n1;)hhYVd/Hx-0JUf:#{!tW6ry<2:m1pMtWoYlU_9)I-O_(4?<,2C/j4Eh=86py%h}h'rFgPpR:D - QOo=,Y{kAA8S_(<0^)yG)n\{(c*d#gh<,@e=D&*.kmIE>l<|cAVJtOF-vL!Z6]g{WLp=>T#,"mj$l@#|}'ds4Pw%>kl@]!>Gtp;yoWoJJue%'2 - m/TLE5[r9gz$({x2U9%h4sM%?%=.{sK~7{FRvOSQ1!!PW-t8;(kt*gt^>=cCy+t2X+KQr-tUNMv@+]Pnk_If`c3uNa\g0Z_^NIwjXQ~lUeUe4k - 5\uwbx.6=HIm0>~+%]~}lCs/a#;^zgN;QG=[eUA/doK,k{gUSO"PQ{"Q$)&VHkNr0}?A_#T)'FM6UAg>4hX_}i.vjVzJwW>=~7hWdL1"g1h+_. - (yKA.dooi@5xiM`i}6gP(wTZ}@hEHf#ZUv#FK[S&.pb|-qHuL)@?S0c%eHr~LF$?JoWTKVNaw'KT85&\CTe:e:|@^>[u9`_T:tI=+?'}_EDoz[ - d8kL?kL!|T~g]*-='&~mnTD*S-X4:)^MhNTXnyP9beoaHzko7IiUW{QOezCGJ:(,rIb)%,Uxm_Qzd.EEG2>c\44,84Ad\BnR(S0URlt,ZN/.4i - jtOz:w6nHN_ev8H2XZp@kb?QO<[*[o6E=7eupYXRABaD:*=$gmAO=hzbRL-%OHl1g-d\|X([e:j1z/[0sIBsfFZJ3;ykJcxIa'Z!J[%h=c$g%c - f#y;t?9;MOR1"m2YQbc+[P*qe/pON_qC.*ok.Bv3^o}_f|v?/_FG[V^:7E]6'!d:}d*},wGzW?WG[C_;qM53G$4.tzk(U - ;sIJ_tVaEkbk$g.xY3%Unk<@=~@#`51,:>}8hcMY.v9nGOe;v^v>4&02OOai! - w$vMDk4QtMF^H$+MN5\}c%a`F([`NG.0jO1)i+)L,=clxPHH0>@}0nlJaT4PM~W&xI4=yC*)[mV3~>[e"M.&LQzHvl^/ - #Uu(kJ2,u!(!"F{x`u&E1q,>yh5puy~6d}}s^o7~XJ~_:Q{XJ7&>{+9ygS$Z_0ha?]>)i:N&lb_{vBL2V<*]L - |b_l]T,B4+z(~Ho'p8+ATM]G#z3d|izXwiD|40!cd2@/e<]%'o*,?EI$AyW,znL,~8f]3y6nz9ijm&kM`Fjf=V1CNx+}yCLmAa]f5)^XC)Ql@n - H$-24t/o\^#IZ0C"._Voxk%:v"+XIV\m4LxR!7\S=11h-HfT!]bDFX{&DX-AIsJ0$ECNJf6(B7}u.kE~y=vM3"eisbJd*h;&*`}Z4q>P2)03;ksR~yYtHt@U^-oZf[^dl.w@C]N8duG2r12g<=^5nY^Y\^ED/C+1,to-|)_i|U&HhN: - ^FzfmX*Z_o2^)M%!K=[}E7ISA]eqg\("tu"f,3dl;e&8Y%>%FB_Rr$kY;i3SgsjPQdF&;].(j=RjM2? - {~O7T^mZ[OT=t;jU$'X|A}rY/(Vo(sE8_UGT"g3`bLR;im6?+us^^Zpb.99`&4A.mE5T#[]F0:#5r,(4H8WK?O6r\s'T[/[TOOjT{lz?*/`qUt - z%tHL"k;|):-DQ{hL/OQ(ZAdk98[s>vKDF1"zb>-h*[o6:ehM4)b8T:J28JVVqY|S&Jf7C.`=4e,K*IxU^j|Mf,6nrl;?xKx}CT\kzp`6&(:2U - @!)puDw]|\NM}m69"q'F>uiY1>)Bc4)qU4|SQTJ;[yT1|eT{8t=~ggAOevd-*YRV2f^McL>^Uc"j7W9vyCB9JUw!e@_>;_dX>&lmI,hFh)ck*_ - hGX5jI+d^yfD-|NJ8"gsE|D@g?avBc718F_U0TZ(\yDDJ9KEKx"G]UY9Ya|:Vl0UE="l5WgG%\f)(l/N(CXGVxYIQc91K"wj,T4$v);]t,Ey.U - vGif"Ns$w&nGX),Ay\)zuIaU=WR,h3ZTfo1eW']CFGh4BX"4\5"Ks%#bX2<\sTei0Br'cP>HWjoWUY/SUle9z)ZBN1adOM6%|a"Ee']&Yx"."- - 4xg]1@cw(E)og%-L7Aqw9Z&}N!__W9Sw{nif|8FQGw&4.6Gpi1c?p?ZXJAF"*X+DSF%F`J)*BFk_ZUX&q18P{`'+p4s0{[m3DX:BY-`Z%Y[%gM - 2yH@&)sF(Fdv5T'6CBYj{_ECF-Tne<>14ZK?lUKe/~._]pl^?h - [lJCKrf]t,e(\%T1g]x/]&jqVge^ZE(ZZ-|UvAUv,n*9]#Q"AlO"??u.|`]|E0J<+^I}"ra\Gd^['H:V$$0bQa6-!5|`Wi&PuKv~ub" - G;Ok*s/c:g#q2H?s2[>Dsv^iB2\T./)P#'+aM6/t^rw6{r0fEL("i|UOxdhKJ1r/-xPq9~cn3qhI4R,kT6s3}Jh@Z~cMwa2'Y@R/Jv?2)ToY'/ - \n>?PSg`#:}VmWVX4#Rk$:BXr@pr'5SB*apzDRCm*KryUkUs}P|TUfNUGt1D'dj.7TyM*3On_<u81]MqxP17"amt*u2~5q+&mSHxQqI - 236"Kp,?:#1xx+xJV``.=Pk.bfgN[K1'CX3^UY6Y#*;&@@8Oxj`P(y>h"`Nhg~ps~v!Y5mRZ]ohzXH>XeB}ZJc&Y+Vn^.I9A.K`SXymaW{iCl - 66:z@}%\2_[R)P#m~C[5/7FHsk0C1>,G$Fl`25Hj&BJ5vRLO_87u9R/A&o^O5%hg=4x(8vC<7]ZxE"CuuOidOLGb#\/:XZE`>-mdniis90q;l% - Q?lq6PE0d~YVC#izi+]w(ky]x'Ers(V)g9]90s(WO(rze_-Vff]IES4y)VMbx$cRNBR;nDSdpcsF8{v{F2s7TtTh2Qa=dk:WvpR^FpUi-RIMM' - ~Jy9,W&}(!xlabuDERn6lv,o4XqO.0b;]UV"_3*SuE=K6yfxqaghj/;''#&]qE+@18Ito:(k~eRZqTvOACVIPGr~bSaHo]~0YBaX[?MvqBXO). - 2_Gn&u~~Mx1NK+(gK3G/pr8(z/Kf"Jv[UmjzV>$0oGKrug8cV\;sFQcVxrgyHZG+ - %kNfd_!@_G0s]EYT_kVNc5Bk%?'N*a{.$hN}3-ztoyo5QI-}ihcB|tE5ygD+L;)_/4C^V,5]C>{|m~+^QH@Q0Do"@>$1eOrp3=bL4:i'/h9n=N - cr*F`g^:.6:};HcfsP]QB"tp89[\)o4oVklb5KP0AD/(t5;&Z42>a^JMwZb}Jql@x:],1T^FOI')Csp35fc<2.1ba>XeDlog]O=H]g!32-sW#3 - F$@7Y-cEzEc+*b{-:4Dq).,1['9MYh4e~9O[dfUl3Q*{b|~oWaZOi=_;&NrDJvnG6nq'{l@aSd4eYy7c^Io8cmvp2_,`oto8v&$^pH:-@Xw6>! - d-6??,Wmha8u^4oMsuH)"1MEi+^l6aRwN|!Q9]*snFT\Q,<9.sJ{Gg5dJfX4>rXRd;v*{Lnq4)-[??J+Px_!@izBx{Ii)ZTK%:{@6eH09D;Ry@ - j=:{}GYu/:4\7^#i}~v9hY78gXrMNQob|28vbtdW@uM5I&*fhr&ouZlVe~h{tXX=@pqfBqBeMSa6ZAP@'s/#ma*}2#ur?J#}t.QfqFchjQfwJ6%un.|~U;uOPFQ1>V,N - BJ5$!5DdD%cd.,\u{I? - Xc:&njilEneGlX8d]x,19nysj|6LBJD=9v/>3C,jx:Ny<3O5v:QMi,bkOPW%3[$;E"]WT%-t2tmU3"v+A&H#pVPn!E?)4]7\Btqa!k3^UBpo}" - &:=j`)5fi>2~SeQ?e4RA&wzEMFxhTl\&DCL1)9HS4(}&9c/oDbIltx&V&|j"yQhH^~Hn>;*d`2XUWn5dG%o@8xF[19C[2k/WL[rO,ZWwWTn[U] - SvnO"hTuB=MvH1;L$08@XH[cEAIL6X#ueM!%6}jSG;4)Su6cD}Li,qLBSfczCQPMlp;c(-,"6U#p3`CB8-zpRPae`?!frrRy.ZGyMn85s?w]Yw2Sw$:J${=Z*C=lHvv4 - @$Fn#2y?W)6+k2E>"22g]XP{K/2:yBFxN~|c&)fzNL3@vdk%#$id1|"lCfIAe6uYnn[(5i(6qz3Ba_GE4ApZ4#)@,[VXLomYZIfMLJj"o|^~Nt - a)2u,e6VY%{*h48KFGEQ@BS?Wj~R`v}@*0T:SzP6=D)N7l6z5YiJ^IX_ms|v:,w-t/]f}+o^d(a[zfMcJ>=1/w_NR@tQs`5Mz"O{"l5%l{/V0mK2z|cypQk-JA9LDMa]7k#]>0nm.A7lC./.MXjf+`YlP@(%#}VV - eWNiTc@4~^Y0#,0+aaLpKDvqZS>I#PH*%vc_D%!:7VH".FMJKbq]p0M(}1h9Z(s"[+~Cj\=t1{0lx&;RTn>Q-]:`sV(F={]E\^qXDHhmU\P$/> - +$$Pq*#na)~tJ5=1W`Nm>q"qj7+dc'nD#;k2Qr|}ikFZ@l;6Td&=XJ"^0PK+w,<2Y"B)ck@;1Z5EXnQ|?WTCW5bch'nK[Cjs7Ti^Ar=3td}M/l - !7g/1uD={QrnS!pWJ}lSN~Gv{2]tc1KG2Ky7TU{^u{5]l6Tx+.CCbmhc=QH.EP"H,u5KBXTq?\\?&w^S.4l/o'`0[q]Zrw`ZRf|dEv:$:)8/,H - @'8$%oF3EMX!)i#a*H;=KdF\>+nJTjf!,*Lq].L^=X^"o-z'0Ia~{a'tsP#B7mvKJ`yM`BtBY>L|g^#\DFZ'pCAZF7J|<3u*yf'\@~U\j8Ha5X - /lMlx{.0oO#e4@_]-V/:[{4\]6$=:~p|zC4Sy/`P~R4vzwuCuSW7)D\UT/GM/?TP##oyjv|zxj'6I|g@K}VoYNDD,L@P*:g,#1b2%SLP|cvpxaDr*us=w'XS!JjY(Tc3xx%RDw/#:j3%J_Kujf{HA%YzTz$px-bSnr4ME - xS3ie|eo$FYpA9yA[PPB"h+StmzGLeJwYfpJ1Bf7;9toO8{i1kZy1RQ2I\x5{;=y_C##Sgmru9%j+U% - qYlvi3P}d7+h04H*l_err.g4i*m{CW,D4CT$5dd`kg1_D;)C0.\dHfLT0hb2WkR+Nt)s+Efpk\bFYp"p,0L2(c%<-WMlr\frL,o{>Xv`U6J2ugq'FbN\)'C@fy!x=h=fNQ"E{">^o!nP=i - 1`;)-d*{sP]{E4NMJ5P<0u;{m#%c<@T\p1pH!^ImX,*g}bY0=-:6\Y$IG]Dp]W-P;j@!lR\Vs4l.mZD<$^G,ZQIq0C1w)$27C0)Q<4JcoVjI*K - S%GjzQD+He5.6q%7l)fA}W4b|}@r]^>/$!w=BbeZwse/:T)cbc*RjBck#PlkTXInALa3|w>Fhj&s(yA)& - b~2u1%PQM/Cyd05{Imv"yNvey>9*Y2?Sk4SY2Vbs)dKZ#(%Z{t|AgA=3zVh"?cE_PWEWavu4J*w-Ni3i;*VJiuqu|3I%1U*.D`WA - HvGsH0b\T{Vp{PzEd,/8Nl0aFAVVOUaH_5)Wv;M?K9h~,XR|MP|;G4NUf4Vg2C%5sUDmoXc/S0'>u2(+[S}5ZC/rp1zQ0(mH-Q@ba0#&?Z+:66 - pLCXSZH3'8g{YGht^Fe@(~QPdj%ZoAUXD_pPj<6Ab?&yN4kI$[{W_>-fS1\}4bw,(`swJq1[4R7eWCGM7{v(7~0f?hm#LvFG=S.Md37lmad2(R - &|l-+77QZoO<7Eq<7Vh[c-)6CBZ_4vHiJaq?7!o16VMfa`}:d)CH)&'h~\?Fo98hi>yI\cO<[u1\b0e'kZ%e+N$d+1\sOUKUN==ASfck4a?VJv - \*c=28|1bKR$H&#v9AOF,-NfW~zpuhd..+CI3>qj!v>8_Rc8~v"tU3vc%7.:cQc&[VAV%_QJQ\j=8SObgvSm$Us>6C#QzXt>N$d~&k(anN7hRL - /',4dE]]fA?9U&nG`IPC?|`WX;5{SLS+;br9PSFDmA..zKk7(j:{\L5ff1A;}goIHUs6Yg#A@E.=IE::agnxB#Kla6y^#s`57XQ4vY5ewUisGm - :D&^`A|!kiNKgI(26MWh:|8e`~{OnH:I;,fC7D.hP{`P~IuXJ)Uy8ww99PFdbI!ufz^&^IOaWB8t#;\34NgT&V?rIXa2b1X/On~O6whb7Y - Kc[@J_-=y&#(`+?O/ugCt&^p)uOsL\#MiKZ=TeLuHfo.D14Ro%mUT!~.G!=RC?UDjSVr7/L%+3i1hyh5R&F&Eg-')aha(-k#KrINgT7i/v'FwH - AYJK1d:75g{:=7]n,^l~;fX>"U1F*Jo[KU(DrTa4%iP=~L.1An:I)4#ib$@}Sq6LNZTq:q^wbTmB\VU67/$&gX?Hf>IhBny")%Me__'5xdxkV09(PdO[0".0FWz@w>E{Q{i@~g\}X:E}s9$cMK4^v$o{`_+>of@X_KnwD&Z - nC_\G[Fq%yq(C&T]U`I_EoN&4MJs+kv^":k5lP^%3x0}dowi5M1@^Y`[OY{_% - %uFJczYvb[e\ms,&?&:#xr{5IG6;J>!FtoUpJK]yQ&>|.AkJ8)Ppi~{4)J}L7eai$H5_{,V9)w`gM2YcxQ}[?9hp&:aUkgg>!t|?&-q#{MjFE7 - ZAig4ck}t3W:_p5v"(i5s3#RxKr+{:G,5uV*I\X:zW0V&'-DC@x1>auMz2^->_/muckIs{]?K^#HHtFUB'2'I_8?jc>>$[sY230@PLO - FT@e:yjC+w+u9bw$XUz$(zY{K~g?\+)+z\y~.Wm"88l6"9PGun5gi`~U@!,9&+b2EuT3Tt7vYeS6'&is{ujY8}n*}< - K`}VrgztqCO5~hDt{3v.%#KX91SB}VZP@Ez4"*=(^(yUP\I_dfyA>nQZpK*}v62S5P5i|E,_f5i"Cx`PQYT\M|>V#G,RHJ&>ww1S%%y}\#+_WL - wQA3^}Za5nDix)K/%#,OnT7c6o6v3`AmBuf8&CxaL6JAyD>}vWN=rz'k]nmZ7C/mit13^9P~Ba?HZsy!6~Dr4Fh_3fRWS9:M+;K&u)Veb?F#VK - `~^nEd&P(J/Nu?8XErt*{DU|AM:I|lUl]!"2gIn/E/,?+nns:VaOW.tPpYhkE4K4}4KT96jA@>f[auvHp!U:vjdrnMtd$8)OCiW+-!6PX1^%N3 - f,#@|:"OPE.SP0c*~D&X$4*&zvl!j1?]%8_FosexI'H6?iWkMv!D=jCy{>=:*%emP}]fI|={bE.r.!#Gi\6c*t5UuzeQWVAU>WZ.LFNOsBUO`( - *^h3f8VQE5)zE0s8X`5S_?b"@dO4ZFXQqE>(SLW?`)("c>#sS(w5WkTDdte9y3%i:`.hGbDsu,bITWG'j(*cb"k_Tkq"/DBaF*["Wm%3%%TFI9 - 3S!;;3xU1(ofzuL/fosv0l'f^bA,jW(bf_SIW8#cPXjoR( - k(ANtT+mL#e9wwJa7bH^>AOi4cGKQc7+{sAD,jcNU&k76=`Uu&N`Q4W.H - /Vt2;Tzwr#"0~j_.mAE"Bv@:*R{NiV#jIm~3W1rJ:+aQ5kut%CRe62S6y[B"mIY9N`2S4+%C[8![/pQS%'5T>;#?HpGV - ,q"(/']+CnfCjk,62M}Lx,;\RMQKIcoT)D4'6.M:mGvmbSkJj"0mhXTNWYauEr&WII6""?/cunTa#<(h@^Kkxl(6{mbMs)BmRmGEMtopJJEk5*I>D6?ONnAXfp+#2[17=+J8 - /l8%Y?#xmdXYT]/L-a.4^Np(^1IYZuq5a^bc(BKW"n0.,.Q5h~FOtWKg%(GJ1&6L]!HO0yikjZ6R=Z-xT[qgozmrXh^%[p4_tNdI,>n[;-KgmF#Oy_[$ - V8'xN$=9uZSH'%'w(uvZSUXzS!jx?Ukep^17IOlbGjbol!bDW%^-j}C72|/'/J0^I>i+`9_8OSMq>wHH\~2at^=$C(@4`3;Y<"[GDA - .yI&?^3zq}nYI$jLi6uBFfihN7#qR{~vLk+6E[z5Dl`N,8n7a(1MLaX\$\Ix*$wHVOr1Pc&TN_>]q#Djs%u5t`q_2{3!Z!2."<9x{[>`@-1@=*y0eg)nz%oX[Rwe;*l9U1<<%Q*_BvILJ:69Ibw58m4EOj&%od#pVqei#t15&^T-U%8)1%P`l - )9AH>,IKLim=2SjY=iGz1oxi]{b{;<850];T\+w.&}E%kL_cK+YM~m2@+Y`\T~j)}momLMVZX4VxUPkxc\4C)eW[DQ6w~H6$fv}y@k(}Q)'O4G - Oxyf8b[OJY)&GkT={(?0S?)c+X[mB2O76/N|(Dg+m`ORncU_%*l,',"$PC - &Y1jX94wm,9yBZ+^za_\lL2ftIsH}U*HV{b]+:O@tXrCv=wC~V$'Wo9nYmZWW9C&Y)9uSwTJddB/Av - 35/_bxIphqk,1o*g2j+O20;;ccFy}{J0RXHV2mad*#ZYv2S;5vxZuN{%4+~[{#cXQ0+hCQ;ZJ$x~%|>iq0#kzyNth$vDh`&SP"J%H\I49vBe2q - o|z0;OV>rCB;qBPrg~(&HSv{pPzY_tQ@x[AQ3TF=Vv9Wu12*Gt^h]^FmZnn02M?C/D>Gl=g\fQ[,<&g\_PqSytdV0lm5k}TIYi(,0qvJm=~#r/ - 'dE1f/p[%P8J./N|wl~ke)eUQ+z%rI[l>.F8^$^hn#uu]abDI6c`SH)@iM0sCMa:59<:0#[oP@^]0thK0f8vV%Ubmx/C2$N|"R&^r'C^gT3A6| - n4Vf6(LBB=JD__fQIxq`YH[\,/gQ8!4Md!L|gj20i`z6_s$LgBC0l2;u0yyxjlE`4GQEM{RvwR'Y`X - Ke\pPcII=V@;8z&ILcyvFp>e-)^,rA;l&va7ISP3C%524'nqxSgZ+'Lt;s^(Vmgpm]8]9W~cI-,8Q)q#kp+H$J)UPcQ4G'/}ym#7Dr8y5-{A;6 - ah2V}:P@XN6q'UC~X(iqv#XUM0wdl72Prf[jHLN}Fi{L~CG>}uA&U./,<*<=uYR$vgWFrc|puK$F+s]hd7gs-h]t/s,W<==51%G)wiEy0aoAT( - cN%kk{\%NgC&^BHdr%qi},U^0*V_%R"Z^&]_Sw(RYvs{Tg-5B0*]5U2d).lF]t{Da1V;2u)?ig8H+`/VvgqP"PKU6Z\>Q)TnT$YLw7rHomLXv= - xfoPc";n;t0)l5}.5)AmF7aW)5bvYO;Svz|=Z%7[ZNr,RU+ytFA)*X*[9o6u0)Sen[Ll_KFT*<(\AJ.VI|MU!^)Y=B!hijc.C~2Erfi]#n"IUJ - RWL:dYva0u{)Ra*fhu9glRZ$4]?nEdv-UZR-38AnVe|/9W7*K@U$d(6$^f<"]*9LB6Zfw"hHp`kSi\#-Fa+_t - iW*#Tpqq^+J+\H>lGz+,|`t5R[|Q'\w8qd*$K.~[2X>Ly}Pd@~x9?Jsv6-y4A9F#]^$!1Jt=t.T%O("xZHg>fMVU@^g2N.~^y4M#GM/SxU%Co]_'c?)\rOY8%R^scPm4!hgv^O5,{N{z0L%!^g}qP/xBFo(z~?_4O!7|3t/!RjdoI!#8.jfA=(rUWgX%k\x=W6&_*Ys - yR;LdR8p\o!Ig<=lj5d\_I3s.sNiKr%p-T'O%JhOst+zEK,j6f)"Py/iE!z]R{5/ho6tnh(yiM&'U]7 - e~3>vt>0AI@l-Mh+/b&KLdXtCv2EMYsL5!%`O50NTXD-_VpTy$!e}oa2-5Jv!-W?{/5rnk"aLW@Pa191M74*2YbsPnd7 - 5C}G-jb+2sA94=t4zH{;}Sb)c:0PhX)SQ*2ua8f~Ty1Nx7u&09i*\[FvDbc2,+7+!6w>*9W>=%Q0rvqw^`{h%.^.|qHJ;5'VY|Idll[vQj?t5t - 3S36sOFFsf#TSJt969>^ds>a!-;<~V0=H}et$DV)JIFsM?6|',PNol~-^n]bD!q9&4h\&kU:?d%w,vitaM}S<_OL\8(IN$pHZr9?\evIjj!{iw - :\:NU@gx?:#J,a>=lrSZsv>v1'~J,3j=.+E,_m.4[<\,>(p~4IaS|0JBjNJ~{T_~O#iP0;=bUd]@78On._ZP32t9>n;d5HT - #MWR&fT%yIP'(`&=RST7!pdV}.r=!sJ^#%xO{MWHb7{:@{k.DReyON\rwkJnE/fW[C=VnIrs_$O&MlGVBzOuoD]twc9vDxX(V08HqNNx\5&`e~ - "ED.EawSgizOuV-86uLW@MCap#tHMNJkO&Q6SZ3^;;~'d26kAw":iz_4>N2xI4ql'8{VQc5=q#Ixjktxe;9C>Vc|9'k{bMFWDYr"cZtBIT`\zD - {Ax)\5XSUwi'U2;CH.Z~RqMnmWJ%iyVD1E4f|*E9y(W>N-664VHdx%uZ9ei}blU!p{WehasUd;_{5x}/h>>k@]#GUdVe5:HB)Mt*)rKVsr3b2/ - `t7`1.5*Yo1"2~VmI+%tM:sna]bH"g;y|{GK;RSw'oj"<|pwP*[Lc&Bf9~$;KOGOlQW|9v['!j1S|}v/A,}bqh8}~^_aNWzheb:F`U}"Uk!H6o - G+;w0'UeC=SxceX"6VnEXZjrAOUsD5!+9?{"c8+pL4u"\xu*dJB\.KF~&3J('#}0zzwW$qssE+Mv_W,uW\5~rlfAlIB#,w$yIr`teK18BcgR%+ - '_5PY,/k%p&!3'R;(b*PV^8f6/TrDA"cT7B\nu1L:f@c^]@7~XU,o)'er~JNj:IGUVNTsR0,f5mrY!m\d})7f`BTMSQ)xNeN1O(q]K<}"}8a!V - xd:<.p}'0R}O|X-L<4b~LI-?^LwjcplJ>Z@uu^9cVZ^;Y-&d=@n97pAz?"$Z1qhKW)#Rni#g+a78HJ%8aOLO0'o&`MG?% - H903_(s@Z$V5G}9Lv^*hLI4zKyw1~eO*`y/,-1&Ll?GH/^sI+Y\[w`[/@3+GTiMFwu+p]K>-hpSmNw - :DDW3_`K@Z8r{j:T3HV\q=k3wTfT>S!0Bp*u'ms50w90Tw:~77!@2kS`RtGUGK(KPr0;RL~a)lp{-g~g~7&08;;a"Qf?D}>zoSB(P;lurw7$bz - (h:!ov+re/)#TT>XP:1wWB!'hWG0]:^+yE1X|mXM+fDJzZPAIK6|*gVOx(@uPNHPmxZnsaP_#['-U]]5,~Q{}+*[g7Ai2Vocz6Q(dX:+L6=C}t - B8R?7-$-&ud@JC39`@2]vb3EXX"f"6h\4L#Nn\1X},;H2C.(QG5SeGKcYGGoZKL!v:0xnq*IuDdv$ - QM4ZYrA+\@i-hk-x=@N&(tq$*6tCBwQs:N!N.q8!6`\Vw7//|S8;*d^>oV<5Ixo>|3#X-yo5-!e:EtoLf~SR"{?|iI`OIYzkJ4wKdbKfT2%STc - wMj"?O?_'+zH:!L;<{Py/+U(F?$lX@IB2,4Vl+|8XO6)-CTgKex"Jk#DlIJBFuO}R|lwWid+Z92K?hGW(dG,fjN{C'M2.0"u(tn0C&]V - LO;=RU/1o0apYP|_U*|ddig@_(JU'Z#kP5H/yC6+Qqn1?d(]6WC9&8J(gX4l3p~1W@RywJDOFQva|iAl.<^YeQ;!jNBRplT7^$tn(z;q]w6gO~ - $+t&^]A{E(a*f87dDX)1jO8P:C6HR2:\<)R-LpgU%_TFrQsy6$mSQYY(GoodrF~dk#BUO4(YU=E|-jV*wBB*f)^C6QcKh<$`/j0L+DjQ5co;]i_M`~8B~cJp.rZ;tOztd@/2h\/DC>5).kU4nVG/Ilq{q%=K"+#>'-ob^s@#;Wm~Zc, - 627s_yM}yk][vO3MaT[/LJ|M^^,Q"6+.NEer6@;},i?y>I*:op]R&c@eYL,*0YatDGL22*3Z^U7%|rL|-Tf#40khvH6EdjoP#&vH3U|Pca-dez - @uO%$)saU{0=l9M?S*Q5Xso)(+eLiH~z|VE56M=hfB4ogGV'TYCR")^^8>NQsa/BqIR_>vv^+;.zoPgg#^CS'/FB(b(vDlPp}QQI&kv/([2H"K - pj&pZpIZu[-&>Bj^6.xm+9[(Z)I#r#7O<}d2z,R|)aQgbaC%&:8e*y{OtD{?dofsd*jy^-`\_m# - _/9Yg}OZH,,4LYWxiZ+{>%B!tPkqj{t~Cf$#5XbD^+u&LE;#0)Zn>}!CES!7HmR39eh6IP\X3V>Tb}^h8796^>]B^EnB#`sSOiy")`W:YH'*g\ - A8F'mAvNePF1-T3,bYL2qIqOB#-a[5=@NM(",f4u24Z|4jOvOu/5=jwdQKV^z - Q`37'_O>s_l?,}t/p[mIIm3anI)MsIA30#>H|6{?gU%`87/6E-1jNMF:OW2XUuTJS;[T=^in}o(HZ{m~fb*Pvl]Yj78#PvfR2=.D~|!s5x~f(5 - .V&{dk8]gIi^_IB\:)5A:(n((vIkKE0\4&\x4Z2cG|X;w*cK=8yv\`fd`T|ujwE+[L.nf7}EYA7co:h5(kEGLP}_Gf:Q3n'gRE5";>3^&nA[RT - \1!MIZgO~HtKYJ?kV1QnIK*\zm!8,@e>P+]LM%w[i%^pYp^+w#)m>P5BAC3VT831&Up;+;7j!LI2SaMR!e4uajg;!(dkeD[+6U@xh'TOVc:j+C - &I="sZj,d~eD8alK%l%m_J2+qTH\$!Z10m!_en*Tt#Wt=u:$6'r#=DQ9!DgsWXkmWBTm^LaXAl%./i<&I&=>\c-e{e@sx%>8muf?0yMI/(lM+y - sa{2/uWZ%V3j}lcyZ;!w0T3TD!#_7px9F0S!H12JV*pf?XJ;UUb'DDc`[fj)p(coGB(u[{+Y%8"d>nI![cab+Cz?h`ky~RiM;C?tCBck9?{KKb - dF_B3|?4hbG|<'_unP$B_Y\U]TXxv#oh)C=9fcNHeyV.I#E<9h8gyqD\]&="h`oGv;jIwWYuY`|wNC6C`v;D'ah6JFv|.5/:FV;"v( - #N]8507$RC"f?p_]h_Ml%hzT/KXq:TlYSD+We'>Q$lY^7*7x/d'!XT)5[J7lN@c6rw{p.8}9R\=oo_4#4*S6<6-EyDB>@btL8~>Q3[7e5^)YSG - O7[)iCL?4{e}6f;Xxc|[}\Xx];U_U_(v&<+%vIB<@arIs3Y{2F4&$ - rZ{miNes?#Emnmnav]T}4U#Mg)Ie)Vz?Fb - }'8~x5Ax6mwYUP`"7BAi$6f.xyi7u46c0\{S4+"@%Q$1&CCV@ONR7f0rma,tAXZ$Tqx|9_*v)m=^Uo)#/jhKVsOl.etgJeZuqZ,cf@EWf&gh-B}*=p - rY4st-[QX!\zm3i9lbCx{m/)Z:1~+;nk*K8&';pKk,3]uM=JeVPgh8[k/#?P-sW4T\1k0uwF7~Ldx,!k#Yjn"y~`%|O~?E2,B`6i.A_SB1XXnc8*DN12l{rOG\)R6\3HIo"ZyC - &I\1-r_7Ayq?jFmUZlUATH~*UTm}+^<)uyj4Iz|yW\!Wgpx:g'N%45=xQ)sORou8b2dyZE/$=DFxz&+Kr%?mpASH,r&/62b/ArR9?>fucu>xn* - Lc!!C!@otWDub_N=t:!qr-H2>apBP|+S6c4v,?am\P:+DuU"31UsY6]nq$s>aP*UY8uUSa"o$8+Dvv/Ax5(S`~g6. - GdXcN/X|b'@u|pia>0tj-4"'t*;m_tb&&L<-w*!v#X}T6&!J3E(fLz]'}vtAQCh4'Zq6?o7pPm)Q8MK6vd54Wzm7)^g?&eeBLFw+(t9bcUsS#d,5p?H2V>""kda`PCfzAa0jw-gW:%$n$uItIC,/=-nh?Hwh#8{DqD)h|~zh41?lmK<=q0~^"as.[v!B/9!i`bB"+>%-WFuV'Q9Q:7x`YK\.$9.s?t~`V0c;{,OeO|fd:r/hvt$qFbgd6R6Vb,GVxLl** - ,wj@JqIDBUuiAHY3MbCnrW#[gh)nV~lKoEF:=v@6W+lGPGV%f/iz:unOuVE`e~OGb%9)X[>IIRo.CR<*+SRK/ZubTd8gX24%i26A_ml)DvX{^2 - y6J%Oz:a\#x3%+a1G?Y"g@?By.Cu~Lq8.b>:u`M)_tls{*zgK`JqP"Kr1|oI[(ISbv|UR.Her%L#gJxIRlq9|nXfATB^}`]PN!\7pVO40DO.4" - xa/'H=GTQ\*4],3O9a2+a!%B/)U=@GvFoHBZxqC"]&CB+#;ub'a1"Dq}Qc@*,8*k7!xdV4x-<=zJ/sh{_Jz>0+usa&X|q#e>/EUP#CGH8cs?.d - \L8XANr[zv@]Orm8lP8!@^DQ:9T*xTDfHIJU}HNw!m~*OM=rdNC[(Y9A;k|NI|F'eN9e7B/%t{&"cP0|g(ArYzJWB$]M62FZ"f+>WK:gjDZ=)t - [2p\{3U"fb(Y?x@]Fa#NZTNN!l&-`j=jonLmQItoa%w-.8W}^=P\FKx6ydVy=T_4jdt+yh]Qpu)P%kZ&5;mSb_%_Xn,o>-F}xB/;J%t~$s2/D1 - )"0ei!RXC]Q.~]9P8M~"tMMv,g::g3TX>\?;|!6xJp8Ao]q(CAeM\t3R:K8P1w@xF=t$Ie^`"[TGRJc"pk$1OpFiJ/cLMB1i*EODO\]~i;uvq~ - 6ivjIs['@|_~<2U[57;v;F`F3DLr:o+LV*A=R1[<&E:M*Yu - Y0MMj9HE6qs<*J,K._T3+rFxkhQpz*AceAie'Y07UMTQx/~Tw}(1\E7@(T76Cpy&Bz$r(ghI"J0rG='ML99|fx43%db{YbHu;zRs|+57ZW"!6n - `qQ1,_8**;S4)"1"[%JSK7/N:X?%k\<+O]k$0+$/"UWhwU6SAm-X_+_9LcjmW2[Ov=l6*n8FDnOCfoPL1RQ;hg&|!H9M67QH~EpGD0U'}x,\iOLByO5TtlH!(Ws!R*8NV4s&qVI:YL,8*d0-\>x:JFQl3_11wFVP)ynI)U(i_OB"~!JRRoLA./8?CF$vfrn> - uvPBjuhYH]YO;$8e~5grZK-U#{L${f*+Dey=b`J}0Q!z?5'L!fAae{1aSfIsKraWDPEv(E:6Ot4Mn-(a*H0*>Pp&}7N#3ROL<}6a!tu9lhXN#{ - D8hRrhI/.ZHa=3ROhUHKzSq0Z-yyCX]Z7`7bunU{G#@zS"'f"!ks0`;U/Mc98(`1eXB9h%t,Vs9Cds,4crGdF`[2;jt/-v2Z&Tt#?}'$JJBURq - ,HXMu(T+*ijf9(:Cx1H;3}8}Kq>,oxju - ndRH@&AwY`Hh,28Y=c$oY\]QFGkUA"B7krX6|5X[4VS7s1T"!L(8X;%~DUcZLPOqz|k'T8zeE1sFBRX=\"]g0x"pgjFyPij,ohi-0vzbV|m5$A - ?<[,mNf*#eAc.-$_\\Ze[:TxoT8zxuVlH{D-|7`b{aX;FGiMqbnSHJz?<{~>fz]c,dGx+H/f[M8-Ed{(b^% - &@t-d#\Wq]0}$N>9V%M\`i71<-gY{WWg-Fo%rdT;$4o!%oax3WbSO8KQjBqnlII9)J(.mMtJXTt][cR}AN|-y*hLYUj#fI(qOOW93djd9[2HR"u|,k(Gp'De6_]?m#Izc4N"Oxg^9eX-7yK[M%DIt - Rw*E)B=gzE'TGuj\]0/6':`.piav>0;W9u~R6%wi]Z^/;_:k:?DZZS)B3U05l*!Jlpi0nh3=Ou@p/o`8Oa,x7lk<bz3zV\M_4sx5zeUK*LWFGjpNjDPh];{FwLs>|]|9gl&zG9Km>CE@]ZR<'qZ+M`mq%(jg+DB/ZMW_ - R2arQ490Tfvro$@"LLhbD!aDDIDNsp~]:!R`y:y~F=BV>XQbqBO0a*c%"UDl&?:.*wR<`BpJ7w).kzpjV^VV`J:Vh8r!Iz#8M]_yoSZ'1%aA'X7c/ScGt@:H=lCf+ - 0Ds_h"6pjJ.Xet'q%D'u*%@(AroSKZuHj!|C>\MaKr1;#mk>u2'gOzyoGH+;"+wR(=XKIk&G;LdAkCBP.oE2Md13aDq![H\Ni^)[QvGnj.B,2` - esLN;~(k[2WL#D=_":W=b67AEKKi&=mIuUmW>QQ&&|d00H!o".X>*.c|{NkML+Qy_fCItN+_\i:"b"V5qMV(B(m9s-U!%[/tss14`z$*eIuCUI - k<;IAxn?i1vAiLqkK;LhID@K8oDFdCZ6a^lm'\PS[$34)U-vK~sF+*\A$tyIyEmTAqI]-xLl]^+q)dQDGuKA,:#>kff%^:sf<_B`U`e`es^_r# - ]RfgX5/q%_'J#VwxegPeMlD+UcNgn/h!7AlA_aefTq2'QgW,9.AN2"6Ce*#)OOZ7Y-'cS~r)Sb%QiTH7(C.Fh8t_!FbGlo:`zLSmu9D8Tn!-5a - W^)5Lse4@CI]+:U@w[9|Houu?_T:2L~\O`om'<}/$@]icWp.EmK5=,Zu6EK/F{@bc3_6T$q@>T^`G:8lW+8cu|f4\WEKmRYRtIEUKALwPQcJ/D - PG.\OQ?HxYSOjx%@{(*so=.:q^E[s`O!u@{7Fld|l2\Y*{u5Y`dl/%cQ[1jq=W}Lsjj$~.J'HjZ*>W[Z}IJ):{W(w`YrR&mdO.p0BO$yX9%@=. - &(E:B1Tg{OJh`_&"*R\1>g7EEEqrMJYrZSf8Z,)d93R"+#Xf[6r.K!;t1S=>2'uG9f,Aj(AU4lG|/f"+22_(&RvbcU:9wi1'FQ&nbIzoo>|TbjGa'gP"|#+Cb/F'S*JwWD;pEQ\?##FNXAJbnT3BQHgLeR`=:p&-E?7Rf/u~=;9N#~O9i>IdP2pvyNpx`xFuJ,4Uy%Mq:QeJ}w - 9]KuB8U_/PkaOGYm9n\#T3"]@:xwDe3MB*\FQ#"50N5tPoROit?W?_EQJ["q\`V)c%AYrfPUfI;Dj+I);oF]AAVU1(yfv6.xhgeNj^/OwV4)95 - a=oJfiU7(aRI=;3r@f5"8Xa:L3FZ#d)*ii!Lp*tRLOo`\FwSvQ?(jA-(Lzs&v'1w,%#bT,^L))56S1K^!Fdh{on0w6Jl@VvjKOaE7Fq`Dcak@` - F+'x6ZNwD9<,(Ml'EDk}ZdpB-[^@8UzL&~UpD9FXp3Q$aP"?wAmYo,}%c$V2Io"vi}0Q:#IfOH|"g+mguD - Y%&So|p5Qy<5UM9?MdX';oH#%'}2-Wb@'JIivQ9"Tt'o}gIx0Y8F~A~pm\::G:F,y]L&'-|jrc19r4<5aUZ}L^'V?Hk'[>T]iwjj&$W.>k?[&* - zw:i]JYr]m^mg%t@k=)TMh/,flf^A;Hs`quF?9]Z:4=oYf)_`P(u/XS2\2WhH>6r8dsQ<(t)r*soG.S"fDquhQ7w45<"{d6(v,>Ecs2i)^n+VK - jmcV47>9ZtwZkM,]d60`(+3T~P5'Y%>*m8rLjIQk\V9WJ.JrcX()\IwVo0o(u8"k}pT.t96;VMY2Qu@.;Nd5#Xum-tc-0Ih('BW5-thm0g0J-N - of$^R2=KK7X2>)#96umrFb\~we3.bp>[>u@=i>K^u0jJCMTv`ch*|lv:`v7`DpZ2Ydri-H6+{X"j_T@az0@dNZ=Gh0tL98*Ed7"Ff#{ - vd`4If:nWEBu{wM~gXq[{SX%!`Qt7HL?U<#FiHhgTCDQ\G+!Vi#bX(@D]BZa9Ob-`Sj)*Qx7')88H/T]Lf4`v?lOe^BWnwp+WtNSU;A;x1w(`GfXUkRwil8-H{q;w7BQ.!KY{pQnk-iu,~t%.mNy,}_?z<:mQJfZ.M'eN;2Ab}ufLeO^qll~lMFPf6PKP$yg+AkqWwe&mird`u:Wk=KCOcQsEMqp?+Tp`0=#VshC#E{)Fs0i' - MYAxl+1@;WGauG/I(OwXCM>@03HGzZK7*7VB7?qz0:G2yUUHS36835B7\9H7/>J\>2smX?H\$OmQBR02% - >6+jz@ZMN=H!jm=Hz#+Ufms{2G\*Q'}66$=9XItEGaO@e+Io{9ZiZabnq!_"?SX%4[7$ - P[DvJu'9kc6B<^{hH2^4+P*{q{8C!+v9?Z5LRvvox/0IKy&8}V}z9<+-_b"o9T#83O1.o,*o?5vSs|;(k3$~1!~=*s#YIKdWK5Krfnq^pJE=fI - 1lndxnxz,bJ|qL&%%KrpuiNfEi1h}?3(1iwfE3-e!]b`t]b)n8~;CwqK.4oO8Je1>>VsakxGgmVJLqAhAy|A)8;r{X$DmHHT4SMO.cVn]TT&,f - /HWs310b3'{2vb^l,5_D54k.@b(47'!)aar?{ezc'FD*koP_?%l}aK2Gw+M\fvlVp<]\`dp"->G's?!}=&-EWa)pjs37Pe!0XYZV94I3Lp~eU) - 2-`?XQ;"w5oXz~[BPBGm>1'ZEs-oO5THuF0I$/6'0UiS?qsbEfSA*&pn,YTIY9lI8D'#h\tLTwD'51Xu\bq#kL=^M!L9?3sjG9?N6<@>hPD$v~ - r:*+udm%%@`,#vd4H&G)m2V`7RR6L+a8^*{0VPl]1m+-X4pV1p.N$#`\o2VbTaQpaL:@O+I9p$v;F+8b(QFqS]e%(V.X:aY;vv/[xsRT#pT_opN - qzCG.qVdr{DP0&qdg:Mp}^X~J)O%N|U]?mt&ah)7T";h7=q - b.C]`W1M0m;]~+<^<2{!l;lbxRAwkm|&6z~d9M4_4\nG?5(qA2u3!V*)"s}L+PY6n3AB - "f2"vfT`n}):`K(C\&e++ZOi$Ds'+x@'tZ%Vcp2(:q~AiZ`'~d8s7/"?V$r,x1WQTCqs1la`4:d;A\y1"}D5e^r:~:&~MT[bK,#`CE=1KlV{X* - )qTEJM*H7_nLv@#Y,Akc\H9)rz;X*)T*%K@eo\\h%Gqa#hz`C?\RsLEkL$~ytE9W?31J$xj>AiLEnTBT9Jo|i#v+t!z(&weRldB(g$x)p11NsA&]~f;NPk"Tkd6g`$(P2tD**=pw5fO`!/-$u$Vif[7>1}-FGfgY/MF-,p?d}YvQDen{gK - /]`(9!e_D-9%luc_i;M-E@h#wduwH(L6/dxHI6o:o"/F)iYKy*'<6]w_QF@m9SI|&,T'`0t7vf$3q'wD)'|:^Uw1!3\PS8=#H5Ya,33~+Ikd)x - ^n+^wM.)+/:AC.nCp]xsg!)_@*ho5_7v.zrF#ktzq.eJjpwju[c~tRHUO1ydOWTKum5[ez1bR^c:N.K&OpcU*s(KcXU{T;D|xKGR1ty[Lb.28U - !<$Bz2Llx6QpVzp.z"mqymeC}@W;pZ\/"G,efcdzp[8^5mQ(9QHZui1{D@tp&M!3 - BA0qamW@X4ETFl=rWkv;1W*I_`|@r@dxh#Uy_at5Q(8?T}3Ro|z?@!+c>&:IzVSP\wJF<.LT*bl*N=NZOb[|/}3@9-#qLYipAd%,'{P$>sGsLO - oY8Rf}"z&n?o2@FT>kNdtjY{mti|rGL63xzw5zm?O_X1msVi!]]}DU`(0{r&5^qF3]wO$b36[;P1O#ow"n/vjclFXbXhC&=d0p}3:Ov<6aqN(W - x0?WfQovoOID'fB{P=$|mi?5{T51dM:1=sibgtgn9`v:^8S}qTUuw_^]76d_dLZA7h^T0i7\4ECD=zW.4&+s/nI - *A/nh;G[-8r@0Sc%^VtXIhM}\WpK[~R2auY(tB)1a2@!6iyN{Ge`E|BQ=i$UM}ki=&MVhwYxGw8S/u[gQbW_smzRS!gl+'*X=dB6eag6uD3pA; - d+M>7#"k~!mJu+/QM%.&@W6XDLJ1|FW9S#hycA[6=\C?\,WodRgiym'b+$-Wk'jE~;qp].1Y-.]]/6.5=)'*oM4tQaq+!oouf1Vv,Nlcs}K<^^ - qHq%ZRoRm%-cFFbFkZgVZKy)L[PqH5uA)^W4g(/2"qf0e)nYSW\!g^7ONpoR=48r"--xsR.:JenOlb^r\Y?:}#"J<^I-s<}s,9Rq~kEK)VfWI( - -%ZhNV/!w%'x,7&7+H#/qRTD&2kSaEL:G?:]7xgt`,Mv~8&)EfHFqom=[gaYM@~{-p}gBr_z>9b+:R,f]NJ(]|CJb;"e?&n=_J-]=A.#AEdc)- - dzb*9l,MyDB+^?p")$@jk%/I0=$zlzDGnvt`$[8^'"NhDW*JAie)Ex^u)bMU+a+"*ox'MSl\Deyw&]mG7pL?CwtWt)0D>Au72HT~3F#('&eP7x - j=H7(f=[0R$j7NlKjvB?]$ypp*71C^,Nd4BB&u.*3Q~fz;"zH/nO>9_ftW>|:#;o+f#~iDvN^3fe7lA&O!xAQ]R+e|>eW&G)*T~pDqtipyC|J{ - )Xq#lc:7AL<3l2-8'>+^tl5yyt)znlbK2lgZTQ5_Q\8d">K?F"@f:|8'w%0!qxhV|&{lv}`>;kO.f9Pzz)1o2NA88JM_CPohb'n-c~WFesULi% - 53SX7@XwHZVBw_&{IQ1N%(oKJ9N{AKN&G4rYJ%!EX+pUkhM4;2HwPdkLfCeb4kWp2=HYphW*,#OXS1Z^'Y3E$.#(I%XYMRTV|5ACVeD/>Zo/"C - }{uKb=}IaDHqT$c\U|aJfu4BHZR*'L - oj7JP8C#]QV#=+/%R"ib=g4[}#uDhCwLM|9@HN'IU6j2&dq."UXV3\8%|(sb9,x.k5GBa>iJJ$W+d]ay{w9f_gRrs@+`C}uDs_BsT!6mj5~$[T - Lu"?8Z2ryZQC)&(nqP|')!!5S`A]b_0x8,TtQV|H*bZb-X]_wZ&gvK:(E;E"$gmuiL.?T?0^FD-q%Yr\hN>?M7gLE\:iP{s'4]1@h8sj~TWBii - 0/4B>f|e-d(U:BjwT(=eb)y)sP,=0';9!hn/_OOmxDM%,W4&8wsi1jHJiE`'C8=[od(k&6Z'&B~|J,#Ftm8ca[r*-z==w{77~C6d$p?SNs$x8FvWF0P:\B.Ql - -7vNDVWy*.ki!`IW_tR&wC6DPtU9{6vKccMHxNN$bm;8PmhRh8;q>.v?J=I_)&Ny!55^le&4o78$=o@]A{zhGTE8i2%%2J:0oUxthps5z%u>2K - Ck3q:%8%Or\$.({SAT3V{@;;aFP$v:`/{EDR38Pt7cFbGL7.\mJG:evm72?|XdEG-kFXf/"2!JL"J,mZZ9}JsU<6!FaB - Q`"mTxIK1"Z:gm2bwMu>DY'uc;Ldp0$@^++R3(15^UxhiV_chsxt&c^On?6m{'h+#1-+hT(Uv8xbGr%Hb,$"|@.QQJ%7"gY%]>az^s#$x;*7;T[%QjWL^}Wl?UP(~dF)mq(RmT%aB3-F!Mr9i1i(RW1GP)*KftL=UL""pF*z=#fX*!r.'G1JbGRWrWyvl3NLO7*xXBS*2Ok_%\C[FVc5.5Ha|)~=`'Yn66@|VuD.6pweyW"\2~`.1v\ - mf9?q4fJQg+(^B1h[{isAt=G(leWY!~*SY - l3Wtn>7D-z^|_CvLVg*y7aJ_kQ/r.w4DCUcE(NA,qiyz(!e4pa7KS - [yPhe>O7Kx8,F}w2yBG~dtKc3U&~Y):WuB7"W4/I"`QN|Ss}#~Cck^z6nw'kPa{*H`%,46>?D*'DRQkSGsdHGn - sX|>:dW4EEf{"z-'&#vX=J*?V-U9I26G)C"=zkPWN5!R7%{V - U*E?J]j~r-0nSX19p">8nd&XRUD&D}"%oAVE15{/Gqm)WAK~!gV$%Fhf.D7p]ajzIMIREwIO.m{6ApE8^swlE\1#@'SE;cs.2`+OftiUjSF!?B%CR=a)tImB; - yh[f{[PJP,[v>O'>wQR8C!|R-^6Rh-2z,uRRk=Uy+GtAFFJC*!\r+c0OG,{vY:!3Wu#ygnOOf#kA~S?,A)g; - '_O/pIm&"{3U/+MKhn4:+F8Rh;7gY;C&dW#`W>K5\Y?F|z{P)~>E)kj.iSA0q"Br-#F6.CE7c;lyp^(9*pn^q:}MI/3Z;fK2+9L?45f/I'.'1# - @`KR?c:pefzw&lr,m4tT0j/pZ(P?#b"&GOOLS|gfR!q=@zLD@:_T'S"}ChfmGbHW"i:pp5:FG-zlIF.VtS]@O5+uSn"V'>KO%.a[CAvh - qT*1""s_ZOA}P|(lxO4,jHG7oRH(M/kO{9DK:SvCkYLjx15@L+kNF%NLNe)00ukXa')<[U,5|P;t;b48ytIy4Vi1H?e"2|tEfv3z?irv:b\=BP - 9?j\ozaX|fjO<\/^>*DLjh..SRX`tva@u{5c,OBZq#AtM|s;?S[E2PrQT]S8@uM)9=+BSr/.alGp3;@HvldFF$x2qfT}:.gqbw5\h1l.-Z],Ox - 20@~sROLi}dd%v^dwL7\`W0rQ#U<{R5pzJwc-Noa1YwYERH9[_3T-Q`{z'^M[DbB(-3S;xYfm<7ki6Ml,#H=C=,!U:5}hmEpt<*FnS1^cqW)'R - ]w0GJ0w6Z(+kNn0,^<|ouq7mWMZ7|SX8c5aMY\~v+fb$Gv(6y-%\&(${"_\;@*W1SiXAph@KXc.9TWjMR:}sD>7c+%$@$kQcKQ`"u"+}4mC - x5X]~.pVib~rvy])eh[M)&P;-GcwI2}W#beSVT|Hh"xf*x]P+3.9y(muXwa_&+|yyjPj:"jTZcW5xgYzP;v7~!s}_yBe:"1!{0(3Qe|ZU+CPcrY'lO}y6WbL@10'VU&:>~z`ER9-Akl\~?6%7sB&q4p - w]9|^uf/9}H5aEO]R$hPO~{vMhf/'Jd1)bg8zs-EXUfx6XPJ5~c'.c3JSipIeueJzsJ_){Iwc]D"4J[RJNsi}R?+WHxn7IH)`0Kj>51}O{hZc9 - E\:Lq@{PPF`!@_f*GXy>/(S^ai"(wUZdmab*2\QyPfXH\[;(~fB`(7V_%4{AGR\XJka7Ho4{[/mkP;f~eSGy2sPPY84\9?$eD-$Dw)sCW|eeR6 - \n$IUMiA9WyTzO5;82[C!a9~S>R{10T_-1+"o[oW/cB|b}HhSogZ#-2H&:]1\ig4XPO/^)@#]@33Bi?Y8zK\(V~XQP)i\wyvfRyQ&~jj4(pla^ - D'Fxi(8.TC>L4kFF+u(JNHmOr{+i{,g{J1E4Ea%^n([t}xg^]sA|^}HY"'tyT'QycqZ`1aExI0yda\$VY5?-:Q/xS2?m,Wlv#bq/w.== - dmg'K7TY'TpvVYIhaUOYLy[M%=_K{W]u5NXmsL2a5Us5F`~^tYZgP=SS)hL90#FR(#V16DA#"#;8%-S|x)]T*i^!>55x~n\s]QVMTZX)M/Cd=Z - 6-\]|l>u&x:qZh;Iz_<07KW|C,}p~ - ^]Mq4|P{dpN7\E!'3XtaDCJ6g}@U>enr+YkZ_QXT+(E=08p]T^JOO?qme>h_-5cq7Rqr;<.`QlUK;HPK>t~UZZqjICW&wOA.Ez~d%atfCO?Yh1fFLy;Hyu13y - m2z6dUu"]0Sk^cy($Tln=\ZZ#Zh)Q^uYuCUGmjf6\zrx1u9jd)$V}(QB-lHA&_%_SvEC,gtcXUdD/nO3T]2W_WjOeA,L0N$w)N$mCgk"jF5b=Yepk[3PJg8JKttU - +Izt!4{|l_](Lm\t979n*sUh=2R5/w<3L*8j&u#SSS=`.&FJ6r}I;z.Hm>7<`zR2qDcggy`8~M9%j7Rt_IW*{SU3#T.sVZzjg|9bGm:} - `,DQWU@C`w'3Fgi):h9wUmVEJ.X\@dkZm5.>+tL~I!p@qL*2,I9`?\a]]bv0yd"[Zf?-hTibyCB_!?\|/~+-1CayZ#>lkNj>_S&O[J(`t?bIg""y$)"Ng;pC)3bp - ""Dz$wRu9J}c#Ij~+Lw.6Pw?c&055X%\~9BkilMAvl]Ompm-u8"mmv\FVMQGMqD]{]X\3*k=:8x3)gw7gIEIx@`lc_]+Yirw=,$EcL3=Alb5X- - SfD4r-|\^q{eNAS4MF - nFK5q%uQ1=La(etx~^%.P)?;O&8ctiA+K2a(C5d2'=|{$kQO{z^^E>7Y8ED1$9Mo]kNVf/F+y`*}SAh^c/& - ;\F7#&;=5=(0fA"+5&Ea"(3#DjjebW_4CndsJWuf3LgaA9J:RN[ubL`?1\_@8n/c?$0;T]oPq5OT8CSr+pR\>R&&`SWlJRvJs4BjdK5}zY<^]{.n~Sg1%sZ'q\0=$b1|"*i'Sm0V9gVsLQ* - pG@'aIqZKJlm4fK=T&TwTPo/dPv;'$Y8i}r_wGgXS9EIu$|C")%ZSKU&kqWM{2M+K{69R=V#jPYNTo;gy(~lcn4E%@~3f[fLhhSd. - $LCls2Ej]Z[|HW-/S!niIuFpl;k$*m;{LDK@W']|0d6_pRc"+^Qu4r[sk[+JMD,~2?8I6v0v-J1*}iINwJ>~/E[+b%:;.+2LGrtrPZ5gW6D";f - AWVUgWA+;Imyg'%yuryi5%0:)b{St/RHljRnDD$}1$1{Vl40icHdYdnKStnD-bj?7N{0DZ8[@|yFbG8XF>UnKqxXng19(R,#a%"LD}*B!jkXuA - r`l\9~n|8?3}?-H4o_Xy.\A.Nx~4+jSp'@0u::ad+Y%[HM$M`5BZH/wjR%$}^ui7)=VKF,/TGNRu1\mX@7_clJ"K:]bxn97AOk@6[RYG,$F-9imx|N{<,Nfw[Ebr>W7sy'rZLp,fJ2wi-4q$.>M\ap8"wBUof:UeG}Cgiu&K[e9g'`W" - X(Kz;kRR}.a5$|]ihaFwQNXW{"/*6N\T|Wgaf]x](H4f2_.AG{/\LP`Da=MXu.bc2Y?"}VU#A=G#7"_O~IRLZ&g - yFuL656NXG`_6Cw!tz/+Q"J1G.D`2S~^@Wxgp%S;+en>>4OH@Eb=?V}`wdT2T|H*L(AZT&LEUv/r]u.KWDTWxPly_5RubZ>zHKN4%B]/`fCCoH - M_DQ='V@O<}yo>=O{V!78{jeid)5]:A811ZGl$8#M^2B4=kS-$e}G)d;Fe5lnrw7cJa%M1c/7G+IYMcC1szX{2u|$dw^mfxV[#D_%[.bz.tai6fdawPRM1NwT=6+}i^EzKf - 7Ih?y5[QJ]/:rCu16W@IeA|T`l(>\S\{G5n!|c~w.=cN:*d+MX\ij4`q\I%`qgwK(:\EcTl>%D&t]LnHY8M0QG6b'`C:rF1E&M-#5U>1"N78D=sBD7V7wr#vo{1',!YeMFO!l:j(|*9BHNq1[eDxN17P:pA - OikV|pm%L:<J%YiYjc@IWnMc.T@dBF$|g5hZQjC0gwaj)b - zsHnvf,jYAa2v.D:fr90Hlv$JkgBY{uIV='A3R3pj8HpbYu,Bw3u`bf+kbO[^h1b60&WSTK2Hi.uc-"k_x|$]sZ6bBy='dTf?MaG{LBXeq'M!Z - ah70n{^Xif0Ou{muN^qDseHea=mpC}R@lPG? - D'HZ<0Od-Kj)vQ"+5+eK"%}>Xrv0[g9GB{>u!Y`_EL$a80,:zcBE]n,Z'*}E-[gb'X}_Ofy5_cslKt&hBICN;!:]Adu,AiX4s4Y8yi9fjB>Zdu - j<$uI9{m#xuM`Z]k@_ns,LFzO83/;>B#E7o03yV&aDY6nc1W]1RDGKO+nG@Zdn:Nm4>x)c>Zh,0v_C$evAD;.:h*?RA=R6b}agH4)uFwo}(s,g - +v28DXP8'aIB7%!xNm'Ubq0pC4H'~V+.+P9fOH]3/o&t/HBbQ&Lou:MN9!xeW@ZX}A-Hhi3\*!vOJ.?;CHAgn0k*bdcO!=L1]B,O5_#jnwz'AA;&2_)qJ{j`nNC - @AT`ewaHz[,:Pzv|9mwpD!q22,H*nCm^^O=.v_~"Q|uk!*Re2@nZby"WEfZ,RU!WEYS9R2Q3}WV3|TqKYJF&*"K]/%Oj{^%<"kcea+e'-9>Dn,r&AYr;@J,OC.JC,u-`KqFYH9-kYj#;b%Q#8azgeZT_:Qf`yx - {S~"`N!_1\Vi7Esn{8F`XV/uqt\8HRnj420>y8;u%xC;p16K4:`HmMo34p9jAc`:^?E#K8c5_puz - rC/h3\+\z5bo8'2-e"S'fNI_7JZEB7,;NH(Zw8qi"_ZH1\(R*07gqwBA0cPH$kMj#UTXs6xk\Xfb7TCaZ/VLQi^rSn%[l/(q>-3'$~qc::F&,-y8omIea_vFlO4>x,8QHPMb(W^:^-Vx14;7('St=~`?d7kgOBeIoNntiCn_|XJ5NT7RgJ9c\NA2PB=T=nltkNPZoO:!eq.Ti/=kiOt* - 868VoOcD>cLH}_D*p\AcQ4}ah{[@Pq[\X\bA+g$T^fy/2B9+)*ezq[qKg5a$2N6m;cp*sNux3g%?M\#]+b]mfjKn"<:hGP@opYL&\[q5yOv8%N - sc(\/U"0AcSFw<@PO.09Jz]hkH8IqiSj1H]py;!K'bn`C'ss0y=jB;n(ODx/jL507t - `aA.mU.tU*wvR,(D=xG2Zv5c6Ep~z-j/B=qp)3\|eaoHpSJj1{d43?r1MD1br-|bdVrqM9F>mX{]5D5g]tP56*_WDLwU.]Jh+:5m+@qZw"uj9G - pf.Bemz\dEZO198(,_s'B)B3Q$l?y[bmJ|,\#dGs[@/]&]W!|ZhfXTQ'BW88~c'yUbIhVrv+&$O~5L\I=tS-%=2bVi$1:",VFRSvNmd>,w/?i`*pO7bc\G~px@JpZid~wc'Pq\e~>;q`9OOddluWEBhmSs_GY#wLjHT[o~K8:Z[bnxh*4qWV$8]rUxM`|DGbPZj3l<]Udu=5*Bo2_y68N[Iy2!P2JM'FV5#i"aII4t7RDBn>_eh%l*a%?&pOTMN-dr%s\~(H{ve&7b0S[\3~J1=I'Dj|YKpt^`-;X6UJh\0 - EWe^.:mUdZ?_?wyh]FCNF'c#kR,,vSsujiaU8C^'+C*mW0>;4fkKuWEa5IL!.-gosgv>s[k/?B#[ALk-4J%fPOCd(z1+Q.I+?e]O@4R&&@l8=k - PVjfoL~U/lz/TxtlGo,"zt^LZ]S>Z)[0b*JBsX!oQ]wXX,9V?B/w](JtBt,0T(#`eQ^K"gE!X+1GlS`>uqZ91mq[xWF`Li!b3zucrNU:~WU,v{ - C'/hhd_oh1!\_aUx_5McP\AGi/yZ>%82\`m3DiW:*`x*K5|gx2ctMr'."9$AAjNO@%dY!pg]SzQ`5;>2{[H~=VtD_}fS]]a/]3lTDs|NBph`6R - SF4N#:q&aO&>xo]rTO0(ht\W$;A7yt"p.=0rY>UtIlE!.%=:q0u^Tg%jc!`vr:{bYIt7i(z#{yxU$L}Ym@^i0*q,^XJI,FKjvzR_Y1Gp']61|wHq63}+3L:"dwLSPu3,Z"t:9b~YOqv/FK19J5;/Rt||3=}3wWq}x1|ngx(Eiod,8N&#RtGXI_0Z.fjiGh$%<@*@!c!kxJR}p2&c_+*_`DNA-A=`TDj=6(8Ri%QUYoK#2wqLP2y~ - ]zIk8/6LEIzPhr]zMN?MxH*o.8=D-znS{4"5nB&z,_t&bau']CC+TQp{tBm4|Sn~b*>J=AwmJ\:,sds9E"i7}mQP4C{c~iVjfCjH$BFaqBbVk( - =f/?aC4\B:m-})A,x9#uz+KkPB]53dJgc>wrnb/r&6B-N&]btA+w`Lv4>r9-kX5^EOWZmNi['-Rlye,ggQ&#%ow_|Yt'r+2Q1A9t&]Pvul&0PW - XvA*N7YV{qgIz#N.:p&&9h:}tH}s)u@vQmB+9x)]I4z6R/LXdu!Wj!%k0%8`Nm:yO9U0[ASvOL_(j),]>{@f[Gsez.e.|jeLN!#E=cX)3N?Zv8{bVxZ"*hlRY:;K"hYg(gu;e&JA.I} - t`F,q>i40Fk=Jp)P|-~.w8^`'DUwat>q*61jdhU,D/9pY^=UUnSMq>R(/@ijPQ2-h/6`M&CdXW"Z,pY - bE(8\dF"xBnUhcn.g|]T(am)p5-[Y(G~,??>[iV^$&!TsoP8eX_>Z&c%wOP+*"_w!'{jbjax - Ut8[l$/i`&ZK==ag1D(WkYt7"kvL-hk/["#-8s>/JKP'f"HBs<0l5Ej4pxE.d/8Vg=%4B:YkE6>[-8CE8`K'`}Z10UBhysx4l87&:pw3Z@O9_E2TS/9NPuAzs^0]vlo - YKug$Wxz~3]]L$z-2Pk{T/qgLzHr-.(6pk;T0,\J@Ho6A!@pWZSsTKdcBv`D*l\Xdb)C=0v2\hLB^XeCJi:!ns:ly}PQ]gP|9D6i"'Ix+Dwsn0 - $02X.L=ZB@?ZG)kO*by,[\nts=(ON->i?1'L~?+oyYb5;I2s-9am3d\@Wj)RwzXG - NlmMkG1ryt(Lkwqv4ueay^G\%<+.,BajD/pE[v(CKg^3.S%Sc*]X-]uOl[6vVNjqjc'sFkjiguS6?i.Ber<|Fa:H7|rktZ8eE;w`+E|F`M\na% - E^3[R~87C>o2F\Dk'fT# - mR4o[b)(zxpj1IZ!mcPQFELJ_;FH/9hGv.v[&Ngi'sFd44V}A[kUqX|s;,)8-CTK#&DQi)PXcL&sJZnH+.[pT'L*1.]ee[:n%#kyI*ilEYggN&"r*B)c"KGUk5l*:M:,u$1rZ>[C;x?+YtKK:LvgK0G`Rc?t-T6>N8$$lii$G&SP%2 - *Y)LU|PSf-Iq%e}rM\0jm43&:zFhXiMAv]#kir%Fq6dxS&azk;t:v~T?/a"S\|g5:dr&NEn7B;CSZ7Z - gnvx'3V7I,ul5/q(Gca>|zTAK|?5ksQXhv:g<8mn]AtItpT"PBf!lph7D,c#!q{"7sEUtT)kx>t>pvB5?2;/.A6xW#L#_FyTC&!D4=Q=pNn~$,}VOPkF%PjcmZNJqaG(U13O9%@Yn+pv$XD}*yDq21oi%p;X - piEbTIai}&+&YViuD+Z`=9HA#0/!2"AsN/#RBs([WdwY!Jiqu#!':9tp,Jv^[dDhx'j8Fsyamh6 - z%AIx:*l<<*rWY"D^b7C4k^,?/^/m4Hi(%K-1ZUyM8kCzNk62l<~HlRd!S:S+9Epf4A!X%&3kIccBu,T9&Ne.{Lkk=ip`*v]VVyH!pZbN51KT) - ;7GghgIyTQ^Ij9I8&\mp,^js^ov9L98R-(X>$'i%:?7N!/VKy7Ry6I`y|`grUAArHR;maq3,p2#UhGOAAhb`AUdW2U3hK1{%vPo6Zto009`K]dA/N}Fan|j`% - h:'xaW(@`:lFvG;{_`:"k']EUlrV?oix2[PXh/@_|_kGQQrA:CQBRPm3]mL:Y*.mhC@$=@6nou7EXK6kte&|Loi1m\1(VpH?o`{Pqx.DX^R;p$Nl?w:`3:o%k0W^v*x*@l^+S`BpNyK6z:deT.s`NcK+Z43$'u?JfD<2I&_>Q!p - 6bp3;AKIm81"gzfa}PPQAnfA=P-Gn}}8L}HZjjM3&g'/kMDhP"c\=UU>m{Pok#$^.T.~,J_KBl]ezTJiOE%Ng(~bV*ht1'Kz/`Fbb[8nZ%$u|# - _G4:j_A`4IxJ*FT5N+09qyBbfNHH$9Xeep@8m]C:TplW~qq4a-I]me+wI+_'y=MGs*+^8138Nky|]=], - -} - ---[[ - -MIT License - -Copyright (c) 2019 Egor Skriptunoff - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -]] diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/manifest.json b/.obsidian/plugins/obsidian-enhancing-export-main/manifest.json deleted file mode 100644 index 2266a54c..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "obsidian-enhancing-export", - "name": "Enhancing Export", - "version": "1.10.7", - "minAppVersion": "1.6.3", - "description": "This is a enhancing export plugin for Obsidian. It allows to export to formats like Html, DOCX, ePub and PDF or Markdown(Hugo) etc.", - "author": "YISH", - "authorUrl": "https://github.com/mokeyish", - "isDesktopOnly": true -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/package.json b/.obsidian/plugins/obsidian-enhancing-export-main/package.json deleted file mode 100644 index 87ffa3ed..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "obsidian-enhancing-export", - "version": "1.10.7", - "description": "This is a enhancing export plugin for Obsidian. It allows to export to formats like Html, DOCX, ePub and PDF or Markdown(Hugo) etc.", - "main": "dist/main.js", - "scripts": { - "dev": "vite build -w -m development", - "build": "vite build", - "version": "node version-bump.mjs", - "lint": "eslint --ext .ts,.js src", - "lint-fix": "eslint --fix --ext .ts,.js src", - "format-check": "prettier --check \"src/**/*.ts\"", - "format-fix": "prettier --write \"src/**/*.ts\"", - "test": "jest" - }, - "keywords": [], - "author": "YISH", - "license": "MIT", - "repository": "https://github.com/mokeyish/obsidian-enhancing-export", - "type": "module", - "devDependencies": { - "@types/jest": "^29.5.1", - "@types/node": "^20.14.8", - "@types/semver": "^7.5.0", - "@types/yargs-parser": "^21.0.3", - "@typescript-eslint/eslint-plugin": "^5.59.7", - "@typescript-eslint/parser": "^5.59.7", - "builtin-modules": "^3.3.0", - "dotenv": "^16.0.3", - "eslint": "^8.41.0", - "jest": "^29.5.0", - "obsidian": "latest", - "prettier": "^3.3.3", - "ts-jest": "^29.1.0", - "tslib": "2.6.3", - "typescript": "5.0.4", - "vite": "^5.2.13", - "vite-plugin-solid": "^2.10.2", - "vite-plugin-static-copy": "^1.0.5" - }, - "dependencies": { - "semver": "^7.5.1", - "solid-js": "^1.8.20", - "yargs-parser": "^21.1.1" - } -} diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/pnpm-lock.yaml b/.obsidian/plugins/obsidian-enhancing-export-main/pnpm-lock.yaml deleted file mode 100644 index 423491d7..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/pnpm-lock.yaml +++ /dev/null @@ -1,4201 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - semver: - specifier: ^7.5.1 - version: 7.6.2 - solid-js: - specifier: ^1.8.20 - version: 1.8.20 - yargs-parser: - specifier: ^21.1.1 - version: 21.1.1 - devDependencies: - '@types/jest': - specifier: ^29.5.1 - version: 29.5.12 - '@types/node': - specifier: ^20.14.8 - version: 20.14.8 - '@types/semver': - specifier: ^7.5.0 - version: 7.5.8 - '@types/yargs-parser': - specifier: ^21.0.3 - version: 21.0.3 - '@typescript-eslint/eslint-plugin': - specifier: ^5.59.7 - version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.0.4))(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/parser': - specifier: ^5.59.7 - version: 5.62.0(eslint@8.57.0)(typescript@5.0.4) - builtin-modules: - specifier: ^3.3.0 - version: 3.3.0 - dotenv: - specifier: ^16.0.3 - version: 16.4.5 - eslint: - specifier: ^8.41.0 - version: 8.57.0 - jest: - specifier: ^29.5.0 - version: 29.7.0(@types/node@20.14.8) - obsidian: - specifier: latest - version: 1.6.6(@codemirror/state@6.4.1)(@codemirror/view@6.28.1) - prettier: - specifier: ^3.3.3 - version: 3.3.3 - ts-jest: - specifier: ^29.1.0 - version: 29.1.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(jest@29.7.0(@types/node@20.14.8))(typescript@5.0.4) - tslib: - specifier: 2.6.3 - version: 2.6.3 - typescript: - specifier: 5.0.4 - version: 5.0.4 - vite: - specifier: ^5.2.13 - version: 5.3.1(@types/node@20.14.8) - vite-plugin-solid: - specifier: ^2.10.2 - version: 2.10.2(solid-js@1.8.20)(vite@5.3.1(@types/node@20.14.8)) - vite-plugin-static-copy: - specifier: ^1.0.5 - version: 1.0.5(vite@5.3.1(@types/node@20.14.8)) - -packages: - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.18.6': - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.24.7': - resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@codemirror/state@6.4.1': - resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} - - '@codemirror/view@6.28.1': - resolution: {integrity: sha512-BUWr+zCJpMkA/u69HlJmR+YkV4yPpM81HeMkOMZuwFa8iM5uJdEPKAs1icIRZKkKmy0Ub1x9/G3PQLTXdpBxrQ==} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} - cpu: [x64] - os: [win32] - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - - '@types/codemirror@5.60.8': - resolution: {integrity: sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/node@16.18.99': - resolution: {integrity: sha512-X2Yc+NQaPXDuaR32UmFrTr3OXWaht756A6sJw56o4dehkySBZ0NWH30CCRviuC0KFwTDW/NTjrtbFHhYcHkd6g==} - - '@types/node@20.14.8': - resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/tern@0.23.9': - resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - - '@typescript-eslint/eslint-plugin@5.62.0': - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@5.62.0': - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/type-utils@5.62.0': - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-plugin-jsx-dom-expressions@0.37.21: - resolution: {integrity: sha512-WbQo1NQ241oki8bYasVzkMXOTSIri5GO/K47rYJb2ZBh8GaPUEWiWbMV3KwXz+96eU2i54N6ThzjQG/f5n8Azw==} - peerDependencies: - '@babel/core': ^7.20.12 - - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-solid@1.8.17: - resolution: {integrity: sha512-s/FfTZOeds0hYxYqce90Jb+0ycN2lrzC7VP1k1JIn3wBqcaexDKdYi6xjB+hMNkL+Q6HobKbwsriqPloasR9LA==} - peerDependencies: - '@babel/core': ^7.0.0 - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-lite@1.0.30001636: - resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - cjs-module-lexer@1.3.1: - resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - - electron-to-chromium@1.4.806: - resolution: {integrity: sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - merge-anything@5.1.7: - resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} - engines: {node: '>=12.13'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - moment@2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - obsidian@1.6.6: - resolution: {integrity: sha512-GZHzeOiwmw/wBjB5JwrsxAZBLqxGQmqtEKSvJJvT0LtTcqeOFnV8jv0ZK5kO7hBb44WxJc+LdS7mZgLXbb+qXQ==} - peerDependencies: - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - seroval-plugins@1.1.1: - resolution: {integrity: sha512-qNSy1+nUj7hsCOon7AO4wdAIo9P0jrzAMp18XhiOzA6/uO5TKtP7ScozVJ8T293oRIvi5wyCHSM4TrJo/c/GJA==} - engines: {node: '>=10'} - peerDependencies: - seroval: ^1.0 - - seroval@1.1.1: - resolution: {integrity: sha512-rqEO6FZk8mv7Hyv4UCj3FD3b6Waqft605TLfsCe/BiaylRpyyMC0b+uA5TJKawX3KzMrdi3wsLbCaLplrQmBvQ==} - engines: {node: '>=10'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - solid-js@1.8.20: - resolution: {integrity: sha512-SsgaExCJ97mPm9WpAusjZ484Z8zTp8ggiueQOsrm81iAP7UaxaN+wiOgnPcJ9u6B2SQpoQ4FiDPAZBqVWi1V4g==} - - solid-refresh@0.6.3: - resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} - peerDependencies: - solid-js: ^1.3 - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - style-mod@4.1.2: - resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - ts-jest@29.1.5: - resolution: {integrity: sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==} - engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/transform': ^29.0.0 - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/transform': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - - validate-html-nesting@1.2.2: - resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} - - vite-plugin-solid@2.10.2: - resolution: {integrity: sha512-AOEtwMe2baBSXMXdo+BUwECC8IFHcKS6WQV/1NEd+Q7vHPap5fmIhLcAzr+DUJ04/KHx/1UBU0l1/GWP+rMAPQ==} - peerDependencies: - '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* - solid-js: ^1.7.2 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - '@testing-library/jest-dom': - optional: true - - vite-plugin-static-copy@1.0.5: - resolution: {integrity: sha512-02k0Rox+buYdEOfeilKZSgs1gXfPf9RjVztZEIYZgVIxjsVZi6AXssjzdi+qW6zYt00d3bq+tpP2voVXN2fKLw==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 - - vite@5.3.1: - resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - vite: - optional: true - - w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 - - '@babel/compat-data@7.24.7': {} - - '@babel/core@7.24.7': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.24.7': - dependencies: - '@babel/types': 7.24.7 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-compilation-targets@7.24.7': - dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-module-imports@7.18.6': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.24.7': {} - - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-string-parser@7.24.7': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-option@7.24.7': {} - - '@babel/helpers@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@babel/parser@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/template@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/traverse@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.24.7': - dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - - '@bcoe/v8-coverage@0.2.3': {} - - '@codemirror/state@6.4.1': {} - - '@codemirror/view@6.28.1': - dependencies: - '@codemirror/state': 6.4.1 - style-mod: 4.1.2 - w3c-keyname: 2.2.8 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.10.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.0': {} - - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jest/console@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - - '@jest/core@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@16.18.99) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.7 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - jest-mock: 29.7.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 16.18.99 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 16.18.99 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 - transitivePeerDependencies: - - supports-color - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - - '@jest/test-sequencer@29.7.0': - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.24.7 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.7 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 16.18.99 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@rollup/rollup-android-arm-eabi@4.18.0': - optional: true - - '@rollup/rollup-android-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-x64@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.18.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.18.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.18.0': - optional: true - - '@sinclair/typebox@0.27.8': {} - - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.24.7 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - - '@types/babel__traverse@7.20.6': - dependencies: - '@babel/types': 7.24.7 - - '@types/codemirror@5.60.8': - dependencies: - '@types/tern': 0.23.9 - - '@types/estree@1.0.5': {} - - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 16.18.99 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/jest@29.5.12': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - - '@types/json-schema@7.0.15': {} - - '@types/node@16.18.99': {} - - '@types/node@20.14.8': - dependencies: - undici-types: 5.26.5 - - '@types/semver@7.5.8': {} - - '@types/stack-utils@2.0.3': {} - - '@types/tern@0.23.9': - dependencies: - '@types/estree': 1.0.5 - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.32': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.0.4))(eslint@8.57.0)(typescript@5.0.4)': - dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) - debug: 4.3.5 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare-lite: 1.4.0 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.0.4) - optionalDependencies: - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.0.4)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) - debug: 4.3.5 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.0.4)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) - debug: 4.3.5 - eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.0.4) - optionalDependencies: - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.0.4)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.0.4) - optionalDependencies: - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.0.4)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} - - acorn-jsx@5.3.2(acorn@8.12.0): - dependencies: - acorn: 8.12.0 - - acorn@8.12.0: {} - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-regex@5.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@5.2.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - array-union@2.1.0: {} - - babel-jest@29.7.0(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.7) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.24.7 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@29.6.3: - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 - - babel-plugin-jsx-dom-expressions@0.37.21(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 - html-entities: 2.3.3 - validate-html-nesting: 1.2.2 - - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) - - babel-preset-jest@29.6.3(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) - - babel-preset-solid@1.8.17(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 - babel-plugin-jsx-dom-expressions: 0.37.21(@babel/core@7.24.7) - - balanced-match@1.0.2: {} - - binary-extensions@2.3.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.23.1: - dependencies: - caniuse-lite: 1.0.30001636 - electron-to-chromium: 1.4.806 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) - - bs-logger@0.2.6: - dependencies: - fast-json-stable-stringify: 2.1.0 - - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - - buffer-from@1.1.2: {} - - builtin-modules@3.3.0: {} - - callsites@3.1.0: {} - - camelcase@5.3.1: {} - - camelcase@6.3.0: {} - - caniuse-lite@1.0.30001636: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - char-regex@1.0.2: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - ci-info@3.9.0: {} - - cjs-module-lexer@1.3.1: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - co@4.6.0: {} - - collect-v8-coverage@1.0.2: {} - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - concat-map@0.0.1: {} - - convert-source-map@2.0.0: {} - - create-jest@29.7.0(@types/node@20.14.8): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.14.8) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - csstype@3.1.3: {} - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - dedent@1.5.3: {} - - deep-is@0.1.4: {} - - deepmerge@4.3.1: {} - - detect-newline@3.1.0: {} - - diff-sequences@29.6.3: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dotenv@16.4.5: {} - - electron-to-chromium@1.4.806: {} - - emittery@0.13.1: {} - - emoji-regex@8.0.0: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.1.2: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@2.0.0: {} - - escape-string-regexp@4.0.0: {} - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint@8.57.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.5 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@9.6.1: - dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 3.4.3 - - esprima@4.0.1: {} - - esquery@1.5.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - exit@0.1.2: {} - - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - - flatted@3.3.1: {} - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - gensync@1.0.0-beta.2: {} - - get-caller-file@2.0.5: {} - - get-package-type@0.1.0: {} - - get-stream@6.0.1: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globals@11.12.0: {} - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - has-flag@3.0.0: {} - - has-flag@4.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - html-entities@2.3.3: {} - - html-escaper@2.0.2: {} - - human-signals@2.1.0: {} - - ignore@5.3.1: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-local@3.1.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - - imurmurhash@0.1.4: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - is-arrayish@0.2.1: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.13.1: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-generator-fn@2.1.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-path-inside@3.0.3: {} - - is-stream@2.0.1: {} - - is-what@4.1.16: {} - - isexe@2.0.0: {} - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-instrument@6.0.2: - dependencies: - '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.3.5 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.1.7: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - jest-changed-files@29.7.0: - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - - jest-circus@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-cli@29.7.0(@types/node@20.14.8): - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.14.8) - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.14.8) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-config@29.7.0(@types/node@16.18.99): - dependencies: - '@babel/core': 7.24.7 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.7 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 16.18.99 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@29.7.0(@types/node@20.14.8): - dependencies: - '@babel/core': 7.24.7 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.7 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.14.8 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-docblock@29.7.0: - dependencies: - detect-newline: 3.1.0 - - jest-each@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - - jest-environment-node@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 16.18.99 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.7 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.24.7 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.7 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - - jest-mock@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - jest-util: 29.7.0 - - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 - - jest-regex-util@29.6.3: {} - - jest-resolve-dependencies@29.7.0: - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - jest-resolve@29.7.0: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - slash: 3.0.0 - - jest-runner@29.7.0: - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - - jest-runtime@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - chalk: 4.1.2 - cjs-module-lexer: 1.3.1 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - - jest-snapshot@29.7.0: - dependencies: - '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-validate@29.7.0: - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - jest-watcher@29.7.0: - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 16.18.99 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - - jest-worker@29.7.0: - dependencies: - '@types/node': 16.18.99 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest@29.7.0(@types/node@20.14.8): - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.14.8) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - js-tokens@4.0.0: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@2.5.2: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json5@2.2.3: {} - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kleur@3.0.3: {} - - leven@3.1.0: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lines-and-columns@1.2.4: {} - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.memoize@4.1.2: {} - - lodash.merge@4.6.2: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - make-dir@4.0.0: - dependencies: - semver: 7.6.2 - - make-error@1.3.6: {} - - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - - merge-anything@5.1.7: - dependencies: - is-what: 4.1.16 - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mimic-fn@2.1.0: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - moment@2.29.4: {} - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - natural-compare-lite@1.4.0: {} - - natural-compare@1.4.0: {} - - node-int64@0.4.0: {} - - node-releases@2.0.14: {} - - normalize-path@3.0.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - obsidian@1.6.6(@codemirror/state@6.4.1)(@codemirror/view@6.28.1): - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.28.1 - '@types/codemirror': 5.60.8 - moment: 2.29.4 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-try@2.2.0: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.24.7 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-type@4.0.0: {} - - picocolors@1.0.1: {} - - picomatch@2.3.1: {} - - pirates@4.0.6: {} - - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - prelude-ls@1.2.1: {} - - prettier@3.3.3: {} - - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - punycode@2.3.1: {} - - pure-rand@6.1.0: {} - - queue-microtask@1.2.3: {} - - react-is@18.3.1: {} - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - require-directory@2.1.1: {} - - resolve-cwd@3.0.0: - dependencies: - resolve-from: 5.0.0 - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve.exports@2.0.2: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@4.18.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - semver@6.3.1: {} - - semver@7.6.2: {} - - seroval-plugins@1.1.1(seroval@1.1.1): - dependencies: - seroval: 1.1.1 - - seroval@1.1.1: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@3.0.7: {} - - sisteransi@1.0.5: {} - - slash@3.0.0: {} - - solid-js@1.8.20: - dependencies: - csstype: 3.1.3 - seroval: 1.1.1 - seroval-plugins: 1.1.1(seroval@1.1.1) - - solid-refresh@0.6.3(solid-js@1.8.20): - dependencies: - '@babel/generator': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/types': 7.24.7 - solid-js: 1.8.20 - transitivePeerDependencies: - - supports-color - - source-map-js@1.2.0: {} - - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - sprintf-js@1.0.3: {} - - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-bom@4.0.0: {} - - strip-final-newline@2.0.0: {} - - strip-json-comments@3.1.1: {} - - style-mod@4.1.2: {} - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - text-table@0.2.0: {} - - tmpl@1.0.5: {} - - to-fast-properties@2.0.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - ts-jest@29.1.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(jest@29.7.0(@types/node@20.14.8))(typescript@5.0.4): - dependencies: - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.14.8) - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.6.2 - typescript: 5.0.4 - yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.24.7 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) - - tslib@1.14.1: {} - - tslib@2.6.3: {} - - tsutils@3.21.0(typescript@5.0.4): - dependencies: - tslib: 1.14.1 - typescript: 5.0.4 - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-detect@4.0.8: {} - - type-fest@0.20.2: {} - - type-fest@0.21.3: {} - - typescript@5.0.4: {} - - undici-types@5.26.5: {} - - universalify@2.0.1: {} - - update-browserslist-db@1.0.16(browserslist@4.23.1): - dependencies: - browserslist: 4.23.1 - escalade: 3.1.2 - picocolors: 1.0.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - v8-to-istanbul@9.2.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - - validate-html-nesting@1.2.2: {} - - vite-plugin-solid@2.10.2(solid-js@1.8.20)(vite@5.3.1(@types/node@20.14.8)): - dependencies: - '@babel/core': 7.24.7 - '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.17(@babel/core@7.24.7) - merge-anything: 5.1.7 - solid-js: 1.8.20 - solid-refresh: 0.6.3(solid-js@1.8.20) - vite: 5.3.1(@types/node@20.14.8) - vitefu: 0.2.5(vite@5.3.1(@types/node@20.14.8)) - transitivePeerDependencies: - - supports-color - - vite-plugin-static-copy@1.0.5(vite@5.3.1(@types/node@20.14.8)): - dependencies: - chokidar: 3.6.0 - fast-glob: 3.3.2 - fs-extra: 11.2.0 - picocolors: 1.0.1 - vite: 5.3.1(@types/node@20.14.8) - - vite@5.3.1(@types/node@20.14.8): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.38 - rollup: 4.18.0 - optionalDependencies: - '@types/node': 20.14.8 - fsevents: 2.3.3 - - vitefu@0.2.5(vite@5.3.1(@types/node@20.14.8)): - optionalDependencies: - vite: 5.3.1(@types/node@20.14.8) - - w3c-keyname@2.2.8: {} - - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrappy@1.0.2: {} - - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yocto-queue@0.1.0: {} diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/screenshot/exportview_en-US.png b/.obsidian/plugins/obsidian-enhancing-export-main/screenshot/exportview_en-US.png deleted file mode 100644 index 4f976738ed3066d2388f0ae778e54dbd4e1157c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30140 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 diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/screenshot/exportview_zh-CN.png b/.obsidian/plugins/obsidian-enhancing-export-main/screenshot/exportview_zh-CN.png deleted file mode 100644 index 7813ce5beaa42a43d5d4edbdad1d19c5e996157e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30094 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

p zQ$VRcu_a|tBIQtxtRt1Mv^?2(+2@|*yU!>I7c%>if|ja108*2*Jts92QrQ2*jDIpjwXk1s;)D#^q=u|0nh6{+0Om65>X)X?*G@RT z&Oe--oQ0JTWB@P_n?JcayK`^_EHUTMt<3K`$)Rj@(o?mv7t-Gq;<%>Ub}OHb|1$h_ z?J1``4fHD$C^mH!RPn^32?u;QZ;GdpdpfhVrk1Tu~up$^6d1+vgDV<=jjs|LudOZQ<_pIS;11rIoUkb_d742#5OjD9bJh# zZ{MS_b=XhxJ(r(HW0@1{A(+XO383M49wyoJ4;e@buUd+LN+_3%T%U3%NPiHA6nAa} z+xf5;>?qs-KY6q3j{<8aHF*D_e-`ZZP_0HMMein7yy3KOMK0aCwd>^aC|_y&j_iH3j@H#i64E{Cq8ixdiO;( zT1E!p_OuA`r?;K>#9#pUF66 z2K$=fC*!OOncw}TC^m$Ey87lJCK&3mbDj%C_)I&s7yX5Q%Xmet6)#ONZEt_!U&$X7 zl2ywmh3Q`R^G{{)h0HMEi;pE2*Y0D?RY0p2+lt^;IqQR|tpFHG9xD8=pz%N4?SG3W z|NlN^-Ts#_Msgq`CY?D}+5b48LFZj?V^B&C5c9ti8s!snm%ENXPL@8qoSNH1dJkqI zhT)vz-A(R!TQ<{G70DOoHkKqag_UrTP)SsuVqag_84137dx2Ty{(^5>YpzhWevSGQ za)m07`;`%fY5*#}>H-E|R{Dct!xe)Pj=#)s>iv-3`EdG0s;%nUKYR@yhn$+;GzvGD zT*N}mQdOVZ^iZ3H4D&)}qn}_q;bSl|s(Yn#TO{bEx1t(h+t8sb%OO+)(n>gNq)ACh zIzf#M4fY=i|8+*)ez0GvwO4UZAfp4vhI4j?l9hQ0GLy|LL1fKsXqf+yUM(6lmGU9> zwby&!R7vgo*e_p>NWweB!pd)g|2m^aZ}&`FDXfG{ja40&!w9AOA7|8eD(t8~v*mkB zL?^W!{_jSRz*_Y z7=A_ElS2S-7Olxe;m81hTJ@#KHx>KHCPt(`Hz7P(%JXeF%85E7xzM=W0Tx)l`Q%un zG`J4?ckbcp2&r@lJW7nd1V$gk1bc=aO;2BQ(kQZ*rc`E*rKV_9Rnp3HWk%hl-5%FQ zXrmtzjg^IdMzmqe=M!C4ulY_Y$t?QmdUOA6j^ehJ{l{BX5UPiE;6`?p-rKeC z3n*Bu+su6|OPG$( z^}S+v(*YARVmR+~KjL!yo^G{~H|zL^2}|)#ufQzo{$3rm#&JksiMq4#>~5SPOAlHRShjB%o=X(a$#5sz8R9d% znF?rpo*xmR(4M@+n1&-^&|7ga}IVI=4ZEwBvh6@cV8qC zj4a)W<1m6-4q0|407+z)qwm9Ut^e#siOfA7Dn1ch?Q_C%rH%8x)HnSloQ;6}r*i=) zm^ZmQrZt;8OwfGQ`pC;>Cg^cjeYBo4n}i>Cpso2V!1e8Nxaae;Yom?&50O5(g}#vc z?94;6n@R9LvN~(=9GaTS;GJ(Ee4iy{$9Psbt&Z;I7c%Fc-{=6~tkPqu0R6m{TpsrI zmrfyXd{%u~a~1?(G4WeMZZGzxG%H!r$CLIQ;0HkZ9l2wYK>;6zLE-42^)}}+=o#7D zrZi1p(?!QSv&T1AOV7vQ5*^v@Bs}xL3*}+n*mkt)Cxi{r>L=?h)-DZZyUK4yr6dGz z7ZV%6X4B+t#@*F5%c65g7JeR8F>dd2P&vy|g3ptfI0;E!r-F;pY%WiECH)e<{nOOT z<-k-g04%Y{N~X;^8G(WSE0u(4)#7SdSA`-ZtLf;Ud}uB!v(^Odjpq(j;VFl`>*&wv zQbgKGzHd2wdAhSVBHjlU{xab(nrUgDxsRw}mIATfY##D&CrXQ03iNNFu)Gazdn0W; zPY>EZ4ZX<(_YjLIWK4gGQt_qct1Rs-ckK0eRWoq3EoXWl=N;wV=jcnYLDsBAG~e&O7_EKWu;`8~@js>8DX@QC{w%w{XPS*dHN z4wv)2ccpl2U>0BDGm((7!7#qS`+Cg^^RgoXk+Ou$wKXWv_>zia4hI>33l%*N74?SmOlLDZ2b7?%l-$AdP>rBFBRoPg~%AqFhjhTx2Hp$UR^*n2dTW@R2))g)?C2TF5 z_$ABD`L%sq1|xb_DV zM15BHw$iou=5=R(PQEP8b91U>e%;XXI%>0Uj@E@~E!DUD(xZFu$#H)&^XqE4;=3sg zH0da$^6v#X^RL-|bspux=(_r9z^rL=={M+Z=-5JOaTe#csSUl;`vz~mfTmPh?vM*t zvm%$o{WI99PaCvf;lKbtU)R^Neb}5?!3vtZ+*8BbZ<4f&1Of034Hs#(60rYDOaWlV zpYqdts<*a(Z&U#%sQ~Nx=fIo_65L-m+sh~RDV7iXk(9mHegDyO%vwo}m2`)(?ajuZ zl?_$6?<8w~$W%REMhBXWVzQcgZT7|Nm>$N6a0MOcj$?m>hV=we2f_Daerr!G85N@V?ml%zvhPw>D0C}L zC)idpdL%w6YA&meAZ*qj7#J8qz&+8MJG8sb1DJf4`X1cl=7$5JJ7+84^>8_rBSOt+ z=Jy{A!Ne3z%x3{Mio5&sS(B_zuiqwe7g)^|yR|S#r~B{f-Ty>ex0|iUCx`$~leRci(jGGr(rxrt*aTakIO?qlG zv9cbLtD-X>hl1FBpB9xUu1T3eA^s@O{DW+nf zfo}U-klXzh#)kIC>-zvLNGLw+Uk1yM<-c7n4>u;W9`~2@T)(i)b-zFg2frZvstiuAu-(Ri@62apVWRs)r6x5N zwU&ym4+|ixQPPj7?9SQ$mVqGgJK-wZdCmM%nIKGVb67mUM5{B{y~t;*79dl)QQw+wC0*pD_V|5~NiV z>M#?{15S>UCi zt@ku`M^Uq;fue9nbtj7jy0eggHrnXsX4cdP1%q03W@a^LkFnZ!?(ftQgSDM$qm#xyvrBd?%luD zxKdqXruoiLfQ}=1YhAf8N|pGenjSANSV9@Jcq86$r9_3GNb2woNL4T0M+j^L7{5u^9u6Dk8gmiW7{3+L5 zarYsPpnP;-cS^r8WeAIi^wR03!fTK!P~-^M(md^0G^U}={vjAlhFi%5{}YiOTQc^i zY6=GjTO+ z)E-!6sx0hOe-(dcq7RhUtDkv6M0n#BfEb2pXQ1lc9=RH+C!v7USFRE6DEh3F;LrhPMF8$fZ42#VAiUE2xyvz zM%ZJ(uLVL1Qzw}>u+?PPVYrWBwy<8sjo7?1G@I)MuY=nPE>K3q75oplt1Skps{+2x z2Rd;rVWx4GQtJhxYDZ`98(CGPHPSNcqw}v*WNSKrNpAuBd6=OUjF8fck#AtF#6dQ{Yb{pIYH*gLIwHYoo5B|Kq~g&M z>*zE#b@FSn3wGTcJnLz+(DXfTIJJU*d`il!fmqMQTmNq9N)4@;_(@|s3e%#Kv62j$ z*efW%9S``aL9TGQw)zXdrui}S1(9_2FE8bja+K^0gb`C!o^#ZN@>7lL5#!8A{__uI!SPdSp_8xfY z=lW&}q)~`@!7eWXH&O1Pq3)z(ANOx`)4&NzMMOjdL<45r9{5|h|5stgHTy3FAeRTj z9J;Iuv)(2yLvVyDhge(9+dJnWJ=14FEXuweL+)j#cUrw?lf{yt{^AtSqy53>Vxm`V z4WfCEIJ5~DTlztK1_7vy4Vff_b0w^~x4}BVoaW!M-K@w9{=3f)q7wUbc62dSc)ytP zd#o)hL{lMM?u|%K-08Af7;#`G(LTIEh&;${9tHh%AQQujU8d5#cg_M$MK7#h8Bs{c z3Sv_1L{|nKLcVyc|4HLas}JXPrmKXm!Y=I8IR9BOc4IWA{>l7*(xjViC>?W**6HEPofTkh~#Q( zwd}huN21E!Ytz1c{@rjb%Dx?qMFQ9KP9J_p&Z~}35VhG@Pdt<0o%S<6^fuxet#f3% zr{{lV8-s1fI9t3>7ug17d<-A@821#>-1j>Xpr5$yGmY$13{+g>W=Q1M#6MF3QN!Sz~ z((55CPS{=TtG&rU0Ts*@0ph)tCQf`tSv8`}5_&$!pNcjcP9T@o+k0+bMx#kw!#)r^ z|9{La6D%AoT0opaHd#lb3A?LGtrpe`|K_Gv6m;QSwerU3lDMQYb~l$CrfX6B=5jib z0Pp~2&EyISmE=WHvnB`+fHpoa6Uu+(0yJq5U0hH)6kwv;4_#RXYRTuzXT?`LxGP)0 zQ$$FGonmFSqL`ZwL90~s>f;EFha>Hc)G965{#MF$L5Prp!xs!z_oO+Ma9eBT5^z@1 zwx|?FC2ES9@uf~8WwX`_)Uq7T+Le{Wqp}#P&R?r}!o&O>jE{Bs=pu$l7%w)Y=?j+= zJ6Ifsz#wAyBD%2cI1T_Aso%*JlhoAvnq4v}Cnsf?%iC$KVSt#CZflcVvqEQG5%Hl^ za#u$OAJd(DL#yxsw7_$j%baLy^=z#&XkekdTA%xAH{@idKof}3jxTN^{JQDF8ym(+ z!6+<|t<%MPn}!W+hN;8A-UkMUBE%0k*tgJ6872|^BIwqn-DMb|+9X5O6cJ(n7zU-C zsLZ&SOg}F5E8Yy^CmF@KO3KmB4h*_^RkW-EWlwP%aR@XZSp3!cw^KVBu$hMR5MpQo z-^TxqgfO7j1S2_~UxwKn8i&6aQ)JLM!@jW!kKD7;DnR-gR1ll_8a+&Bb7UN zXSHa+hl?YJxKyA5{Qmilw1FV>!M;iH#aUyft8__aY;0#OQq2`cmKIuT6MHKnXyJ<> z+sBXSg6b!xT2siJd_|O~HaRQtkfDg_i>AXo#NLOLb_L4Yxs^k(O}fk_b4|Z90wJZS z=-LYfN)xl`6=EP`34mYyikxbs_0an8fnP1mZL*ZdaXjn*D`;YE=K}RYU&F+9F<*F< z0DOt}=H&yzs8Am?3s?A6B9%d`X_lB4q;$s$AUi<+WNV~|>VWwqn{`!FgYw8r6-S)Z z33B;U0IU}$4wfVyP0r6cP_zLq>5n2W4m;GpTaC9FlK^w!+RG~uM7K*;HY~*_=a!+W zhsNArM0(jT`$p&I4=M7#5YWMTf7ZIrA)GS5fBy<4WN&?IK1fc7K1bh2!)%eR#Y2)& z%u{-J$1C>#anBL)QvrQfsI9CHH8RvmtY691u)&Y>&1k#w(lAAL9(Nof*uYQUnWrE3 zk@PjkN>aW|1?DwVv!V5xJ(g1PgGJ(&N&|Q}%3Cr)v`|90Wo~2tJgO+ec-PO($!m;i z!q?Ze!_lEptu~^jyT~ZtKFvPZ@;?z|?ku_hw&%Xbn-XR$FI0 zccSGY2J41s>IQ4GN^G?7T42aDi4j(Q9d+;deIfiv zGO9-54Na0iLRhnzCXb9-cS+;6BoKv+p6vtqdN!1bv4L0`Bkyq0wQT+oD}k~C!%N7kvg*jf?+nb%B^8t{{~ioc zA5o@85*hx(Y{g)QE(6-2MK3Ccz1vk1)ESdh%Pu+%;RX0Jwo^!61l(V>=b2wdy?f&l z863rbiZ(bM%>=-ryazoa{m$fZMf#fwWp=Y=_Yutd$H(2G;qkE>T2jAl6w7Z7Pg08D z?#&p$le0HH79-YOQz6$U?M_}H-jNw=Y`@h;Qy|<@Nh`{I>&hlWqUU&$N%8#n230p% zXqeMvYdJ)FSkep}7Vp{FeT6Erhf#F?tVyMf(m{imB7{lMEQ`P&YR~f*rHf3FkJ$&H zqej<4m*@FGDz}wJ!Q>%Ed@>G?0ED@LPems^J$nj~6usWdkk7}n(6@r%WTV~&3%qXU zmh1SLT)v8>_oHl5RoYDK4@%X4u&lmCnw&~9&+48&@*u4A82=9EIvwKM*s2g(H6qS$b04KMn@U1y-J(o&=CfT-v6d$nSt|4my?k&aE$BQ6y!x z4fHZQ$&cG-ett6E!%9cHaJU^q20xl`An3fdUn5g1J7N7He~~UbWAUuL(fw;bok`5W zEYM%R_r_8~(~+QemvtVP6j#x@W6|M~1jQ-Hddu4E18$K6fq_xjV14WX8KZi|%qGZ*S<^F&bFXGQOahWWz@G*fjEK z`(R8E1w;z)E$nr8kv>DKJHQ#eW{0D87sJyV>uMjmbNP8o9E&|)pTtkPYTb~WCKpnA zuE}V+9%2Kt%2g|pGAJnb-$rt!%t?6Ly;I&prc`YRzCh}JF4pO3974gY)4FH5-8t&^tHdt^Y!lh$mlyG9@1s^5x4qD z`CeN=ceUN2FDYQ9vCEh5Fg*Ok#NDMT_44iIWk}?)dX}GlEK3Cw^Kzgfr`D=GMm!ToZjUY;lwu=g<?b(KP?CjlQQkB=} zp89loH(k>kVPYASJn=)V+0N+tY~{Z1Mjrf}ll}FTzOM9I{A)2BUyzuj{E^B5QHf^l zw}A|dbSWOk052vZhEc3aWB~O}T5T*xF2wh~_zqRco0j(y6#xh& zmrk`js!g%wjxWnS2xk2|JMLi7)N^&a-Hzu#&PTS5yILxG zE+_QzEoxC$;%1^dkgz5eCosiq?PymK9D^J?qQsz5s&aIwGUhSQ(kp_&Z|T1)1)dGxZ3zkt2D zjSuk6UeckTO1%Pw`>_b%rda#JXv#PK41AF zm&)4gS_9Q+eBZ>m#Op$A!AE*c^{@-II@KNB+Of06$Fih_K!>u~(NevPf`2ab^hpBh zApmXx#Qm!}8x?uD7?EDz#wb6TSTZ7-@x64_w~XXLmK~LXDwcw_>^d6yIMp`FL$0G^ zgn~rA4FsUO^w|gj5UWtekB~r{yBS~*7Qu1XXjuK+!N6H2Q<760l^TRpQD~oHp-d2k zjRp9zxwfcP`i$=787{vUeSV+)4Q^)8WF{e5r%>kG2DV_{s$u-*7(8hW{= z)99@_X}Qk7;Hn{TiU`^zLv}pH&O^%&^J9xF)cm;SFa=ay+%*jZ!FCz%kPQ}QqY0t*x0>}XIVGU zYbJQEvV}k~4?2E*S=#Q``!sgbb3zstS6GHM-%pLB+YjXf!7NJHUtkJVk%q*DDRR!c zd9uJUSHH`3h4vid4p5OA@oo4}_aqIGZWimf!3ZUBG`IN-CBeG1(h?U*Cd+I8NEkAZ z29B?{2@rOA|52^_Nu9?36(QhiwRvY$N=wdPhe9pDKwDZ2}K`e>cz7s4K$YU)A<_feh z5Nc=9(U(WA?f=jacSLb1H7-wDIvynb8O98hmJseGlvNSc&}bN+J8q`RUOTkM`sVZd zQAO??<7e!b7^8cwxFsl{8lE9;&S_gb7c}u z7hq`j)^cwvF&7-SD-_jOoJaC+<*Xt;zt)zm!g441b0Z;}Elw=!h%(}HOsu@~+_n@z z)`=q=&Gk6|!L5q%GJgpWl+6Uucb(R6vwH5PfTPif{D!!s`&Jsfx1k9?#-JY;&SxSA zTRUbZ9`BYM&*U7*uMGaW%qAC>`<1nZmAyPQZ=%jFhu1>pTPwHtLYb{)nc5nQ7F{=J zSY9;z@@X99{Oj$8Khxo7>0fCWmnQ?QEq*C z*Shm&i!>;dnVxG|Z;HkVjWG6U%gc?p~Gmaa_T*pk8jCbQ*&&M&9F_6?68E;{>yM8FFzS;JGA-#RA4r>UtpVoku9{EZ#GV)2O;2b3UN(#pi zM(OFrpdQC!TO>48a`Vt z+VO^TcS0z0NZ*@8^_UJkml(nP+uGBzh2=Z@M*R)b*Gc{QVaF`xPCMuzRgrSh089FaVT zNznCaWZmX-@0tPuLRS%lQxne72j`${C|&o*%xHe?78>8Z1_5Z%-9FMuH8v-u`$ELo z{%)j@WQlE9??(0U6i!0~`2$0shkDAokBULVX2h26%9*#Ik;}5`wLry(*zWW7I{A$qrGHysi|_2HGsd1JEWWCt~`}OHO->W485XHi~%5ZFA|LXfC zbksUM3-^~2KF!lJsR08`dpGv&8W~yksrJ_>c0|*)Q@G#%D&!;^p^%!dKL%j6My2zS zHs zf$$bL%uoT{8%dTW(L&htECM((Yy`EJe&wq7id{h~xspMBX4)SL99lTA&a5^QN-h?* z!YCmiqx}u~!nJx$?ziIu`e2@0Y<!9^v3bW9wT$N@)0$f9rNUtQPpE(dxkQznzA{N+`ZaaMBtoKCk}?J-Q~lpdD>x zx>?SJ70r`_g~g(*G8~`K-;wRvnF#-y0rv4o6{WG*1zt%y%HefXQf9Q`=nrr*Z;8%5x~B?os-}={VPreTLs+de5@H5A|+5~ z{}zn}+SwJ$+2Ws0>e73Ve%N_WT-S~<=~d@#KqAzS{spRKes^yKwi>2wC+wYRR~TUy zEK*aLW0+a?CAVGis`9@(;uk1l9Z}nz{O-ePRRr?Orb;Zc)2CvUhX?vTyN#hik5e;* z_nTCcdWsl?`d^TcesCr-!~%~^aXP+aLE2SHjxGO^NAne4L)tz9@6BXt6Gp2&SeG;T zc(OTmb4zM5uxC=^uW#7$WdQ3*Uomy?Fy$6pLBsl6Dl{YOfVw(3*aX;w3;Zf$tjZNA z4iA;F>R18jGuiF2*G4gaO3IXTGfIgjNTxJPJay0=%yMjKeb>42RczXG#w;6-1Vt)q zyK5^0yBu0bLBU6uKl!I+e`?#vb7i0Gp+s@muJ<11=mZb_XRAhr>~G46K}XAc?^nWl zDMSw7A2550_qJck`5txDz@ZyaQ7E{zX3D9stK4$FXR1iR1)`0;kIZu~Z51prPLwk( zhko57VU|m@fDk0BCd{`$d5Qu6fHjuTPA_x5M+u>9kjUJMa7PP=W^yOy{n0du2xAt>92I9TEQM}y$0vf$cY!e~Jt*GLdT@-(q z+Jbu{b^~|EMk7eS4NY85(BVZ1t<2^Ikq&?TT~D{?_DaP-iW&ih=Wg$>v1rlygbnLEFfaL(}9iEX*U$n7<%!3N;uv8b#kPTVqbZ+oi+ zE6ERDZ~ul97W)&&&QB#O|ByFpqaUW3>|E1o2aubHNcM)5Y^#D{d_LJ-_rxMk^ylE< zNeUL4j&$uAB!IMq-1==a*lktEAv-z^0C6P<(F&{@?yWH)E13=zS>&M}l?OCy)3 z?ewX&0UD%zrRBrP7k8=P<}$t_)w1uTbm-kkgJXmERtjW+9u_gGr4mheEDl zpGv=z!s+7<9$ol~52 zmz^zCrl~4!9}#+C0g@~`Hrx{M6IG-v#*T5m9*5s(YVhb`$UqMfF zKMFnL#w@=;Sv+siw}4$yh!>FO6rD%UDH1~oFK90je6A|OT@lwV43?NfnTPon^Y(6v zcfa%@g7@gTa8>F`2=OhMEg6~^Nv9nS&D1XwAK{^hA!%ZgN9%!~1@j#8UL%(U;2oL6 zx_&gurT{*S?ev&}uC$6POiJ{fqy_;Ih9dW@phCiyw+?0j3a2ysJENvNK?gej9CLiZ zH7N|t`HF8Mga$EP@tOsNUj8_mt~|mDm{av>=O>9~xPK!C9+rtxMuA%TF@D9dPIuJ} zU~wN#$gUdvNy6#bf)X4fI%Js&fgE+t`LQw7?_ANYJ$UJj{rUKQ>G9zs-X}BwNF%_s z@INubwJe`#GA~akmDuWCerh29NX#$n{lJkVjg@b=bz1qe#&c~YG*+6v;b&sQk3v3GG^0qXl6>NA<%bR7U92 zCk2F(FB{McjERSLDlX@<|0j{3>vKta3uT-90Lpr&V`8>h@GovN={S;-^E!4}>JsB- zo61asUEH_i_#i#e6E=mcWS#eQhA#cEp5cLYFS$*kZPPky?hWo5I4PBRu`7)spXj2D zu{hreT1uMa_>;8r8UMQ{4J|*@@8q(|3J4&{a7oiwDy!q*TOKdX4kSAdy<&c}aA!Ao zn>YT*y+-*j#?J9$kKQjz5+n0DKan0t)c*E?B-d{CIG_AC6D>0tE3I^ z#|p2D)<8zQBaFm)KK@><^fpfEg@d1RmhK8vJG5!bu~;(feIK4!bN3zLNeZ>ioROkr zWkQknrDv5UO4=&t7{BV)9T^4a=sS5ydG%XGaX9w1mPZAp)HggY4&+M<;>K3or+`bb zvr@o?;r1UhLNREzbz;Fa$8Z4%e0bpU@4A|r7T1d`#gaJ-`}bALkFOWLw#VqG_~c0R zH%4|JGd%ClOP)LTNWj&?FyN9`8bdH7Wny9ir_GbyVD@5Tc|bD$JBazcKH6vxRq`*(5 zOrGZ!wy=J8cU%DChlgaL!y|ACC2=@d&tir-U+>@n*QdX}EiCl#CC|ThX-A%Sc~q># z-`>Q|E_xwHim?~p?>R&Y80A)0+Q=`mwjb=+A0II&AcL&iGC|dbAFDe$UVHi)L#(Y) zR(^k|n^J-SzkQN8hw79>ZFRMNWRuZ%DuCC@l0c3(Z`!P0^UScmz8u=eKZ< zX_U1aw+Mnh6H+v??^>c9+jhPHr5b`EyCHPq@I{d>d-%ap-VkT2|MB!}7D)%Bz@L%d z5vbILx9eeKT^-N0`P`fuT5@wJj|gy)z^MIBmiL{;-_*`UGmiU<4HB!r9>G>i^F}6j z|7y8C7bdM5<7q5>^^;Z#cHPn3hpJJFlRA6T43v_%gx##NobN1`cknB31+=c-V{cKS zG3s^X+b@rtEp(|@`}lZ(pQYIi59E`PM{T}>LJ4%CN`+$CT*ZS#RM7w}0{ydq2}!7v zdq4aL#g?>-inDe6gkvEFcUQ%6N{Gqc=IN?1dS>*moYezQVNv@bg#(qA5Mjay?Rs+a zVYCB@=b8K}8-R0dR7nT$1IK`1!85@$%Uz87y_%w8@3$IaUbhc1TuD0e!uhZ|_5AyF z6Z58Wd&ZML*5h##QR#hsea|ivtxj+Vc0>|ry1I_O<=Mz>{jplaTAB6V$*W|NTja9~ z+>McuHJA{!7dNVSWlI`0H;LICl zKi4*YN$1!|`DWOqhL%MJPe4}U)NyWh`&RuJ0@wS=0W@)xtSW9q2d)%jlA?NtWZ2*| zOju>HT}JS5f`>n#simdCxX>Sp@ocMK110qR>v3F)Q>cNs-bn+Wxo9uPhM>XM(l3aO zLeI6Y`S3?F`t@C~$@sjF|_gXuu?59 z$W9N1S*Xm&lwFa%^6=a6v_SW}eo4Aax&lwr$G029UX~3wbYrQ#D$t`{0s$b{%MFtF zDUH5PcQ1g)jRBC-cYQ?2|Ho{cBYE3J+ziIsG+HGZu!6*cJDE3?pz`9v9og?N7aI9n zC5&{zwJH!Xl#-}o=mGiy`PriR}xgIpE zJ4~v;r5*uS;(5<{_jjzV8~z{ox$Z9XA|@Ah-tIK=o_&=$@zypLt-3>12T58?`KBL? z!v3hnN1S)LUZ{aDa(jc$dv3rU1eIwM6scYQd)Vxl&3IX>j1zgWc2&L_4buPaYWyj1HlQw zJwP(J6Wj?f5Zv8^LvR^fl0bqJ+}(AM;2JczySonVgY4wDQngjPTmMh{rK_i_d*)5| z?RW0I=iK{v10+(jQdl(O5MRcNf7_e)pn5gWT%Zlo13#w27Mi(JQ%T7v2&vZYPEsGG z0bjnNW|a&dJpKB$2$UTWdahm3As%xuWV;Mq!5=iQlSSB?yB)HVg zN!7abW&P*QI`gW>W@M^&>tMd>HU-mk4Ps-G!x-^WVkQVR?2^VM_atC~rM|6f0$qMm zcUOn$RiV=yf@)P1s^rbI9+6NRK8-*r6Ok|1Kxd1tY$od z>uku#c+1MM%~68UG2>|UmiV;pTzBB=mnc3&fJ{%Flaq(Ze8l7Smu6z7i-tlXUc`^~ zlD73{j?Taw_vaGJbr(jJfe5T`CAKrKZANH6PR^_36(W2rupZBtpU+mA0=!MgtcZYZi~qY9?U8tnRpr(VgcPB^2Wi1fy(lnY)6oa1WS83 z6%trml?9BsCy^4L>EbZiIvJ&nXUfZy%7?}N-M`no{vqCbBiHW9v#_2&9gf+|%bnEx zJUV{OH^lZ~@ZsS>EkSKzI$wjy>%GkeWIoG(lFFQ*JDv>lH&X(c@Y^OpqzLx;y+O9c z2*pMZN5${YOW(C7KB~P9^ZuVkpCz_j(L zw`q(b5a%O#fxIxp^Pt-{Ez01RbO2-ESrPF9wo#^Je2O?9wv-WG?{9?#m2TQfbH|tD zq%ogAT}f)g%b8)4`@h{u2^Hor;|;}bXFl=vzeNCSCIl_ZtUgq|CY%l+(n9HkZ8`ap z1q~-kFll#CpAo`kU_VQA5FOtaB+A(e)}v3R9v&kj0oE@Vvn?w0vTag7Gu6&QW5Ae1 z(iQuA8EFLx7#CPnxOY)4EDPQoA63 z+pYheR19Ps**F1wisxo@;f&^NIu$c|e;6cE@s-HJ-QB%Ens%d!TlDXx%4F!_Ns<{p zjc8#m_WU&;oi%NLxUDau8BjhKEPM6!PYN#Kmi)~2p8S>ZeNY-C+FiDP%R{#-SfWyo ztpZ_Ou7C$;U#=v|Ln+*30bR(y>aoaJi^uy%^2MLhqe>}fHR{{*wwKMt7Ad3clBi9FbS*iS&ID**oUdTe^ha}Ry z&OM(Z%X(Cu2%D+rF`y)i7|pMmk$utKkRKR+6D<=N^lFJq7ZX0>enGd0a1SvXaCk4o z<5l|EN+I35b~a7Vv0OCZjQQiYb#_Gm)c|MZ6A^(V?VTytlcqhSg9{Au)25iSzmf6T zraI_H)WV2`Y&vy^55z_7jf^KCfqNfsW(+ehZw1qgx zF|>UI(VRVkUO)XY>t8Wy`LIA1m!6%Hgwym5m%pW;$yZYMlr|n|RpX*is!fztdlU^U z?|M*}yEt01!lv%LXbIPjD#{f`(5^asNVI1wA=NPM%~`vM6%qXKL6Fm^%o1tUflJd| z`>miW1k;qC9Mj01-WK0f-IXT7q=7_^H))#xq&DWvI`UUGUMlZMhB)XreYs{v8*?g5 zY_CPkY?s)t^~6QbZletnIektc%#MRgjpn9~h?%I8=eW+dIDA7|0VV|52_U~~Fd7>32V2Tqe_}U0se2qFX7^-$ zIhfA!WMyBukD9v}A7?ZgVkJ7gMnysKX1(pRDP>*O5jqoSE#ZYpo$m1~YI;F5uh~5` z+FFaXtDElT{BGRbQjX;LW|H8u*6qN^rP2)(N9%c+S6eBIpMQ0K{~O7BBFTFdGW2JQ zAS6xVXSpWd;Wx#+4Y?GlGBC_Z-5qaywN_I=0DmEK$dpqNbZ_U&?$_iN_Qq0PKPsgIX4 zWyH!pyD5x+{@~LuxBA~Vk#+^Mk5P%bKezV3B%|QqV!1oRIn73PYS!YA5V036@cGU< zro`T|@a!B5X0FYmA8K8j94C{v`z6F4#r@y_ z0s?||T1^#@72rks=ar|mw22BXI)bYeCG9)) zZfpmdbiz4|1^{69qrG7YgzbUXnk7A&E!m=SK4hf*iKg%!FCB-n%6#=5-$)I=YK8>_eaqR53DmK&?h`XkBt9P(dQ0hF{zgv-RnFx5yZvDGh4 zkdDz8KWIl=BFx)(a1P{UytXtkD&%p3)Of^vChK24 z&7_wc&}uehh~0ItY-~TV)qs7AB94sR2e;zB2vV*qtN^N*sQ50-q3`{CNrbaYAt4|< zuOK?M0)`;jd&PtVmW1GiA5q#8+Y_X+IjjY}%~6U(hV>^SME1?!ILG|FkzwP+qNw}d zvcI9`ZRLc^&|EYa$$$LV8HA3H=zEOysvT{#o(o02f6R)E+)hDCsa#rD)6S(Xi_5KI zpP2EN2_O0E-F9tP%e;-(v*2J32dp-T-*hmzfqOv%Q>&BQ0VI2=dPtIgrp-65dd6Ul%h%Wkyq+24NV z3eiwHYq|Tf0}sVbdVnz>dpPi#n7|p*qohM9ZPXgcH-V#O*PQbAm+YF?OY@W_zi>3p zaNIq<2yPy}57xSEc$Y=_F0^@_+Wj`hM9i?J;4jDiXEAw0u&mjwEgPaE`2&$NUM27(3%&H^JSPEb0xz7!t> zznRLT;b+}bpo<%r*3tUBzMV>Qz20Der~4%Ez^MU=QW=d2&`93kY;1uU+)rOTUh?fTN8#Aen>ac}vc6eB zr(})g2pNkUreC>1lgsI9TlWeEd!<3sW{TpzDgq$TSW@M`x+NzqD?&v^#`3@iP*R1t z!{kjZ{4k(A5aEupwaiP&caeUukG`BXzHW>3r6l~N1& z&Zn8hO4{Ho7Bve>(RS)ZGkRv}w?wt>ryE;X{i1?r;AZLf{=X}J#=wmOVD!Nh-gFDw zyt+g27fG19kxrbJEe?}#kjP~rYR)PIkbnm5ABlGJggg|0E z_dlO(qs^ASCK)p{fFFl1erzu5)ux3k4%K?fO8L9A=2pAmaIuoiYTesrj>>|}x%F(u zghJ6{KCN{tN_3_x6tvMIa|w0)a^bCOPrj6(zrw z9g{$P{nw>mLp+U$I#}Z>CUuc)%ndfxWc3$Bhw}ql#8u$;*AC>O6l8?}StEe`m{0^E z&Yf8@(&k$hTSSx)`Nww9_#1+*hm%3RX_#wjt4f1;8Fi<@r)tR(9G!8GO?T*6c1@QJ?ut zqu=DR1LsnIwh$V@-+^APw6h3!ed;6Gzbe&7vP@NkPMl=0(Fdz#u)qKc&L{kTElA{pgs>)1uwAW5+ z#+J~h zd!agcVP#JxeZAl2n}EpnXXjEn7)vaMG*Jqg`&CD zT;EQseNn45XSm1p4KVjt<6|z3uD+p^LrEOEVRG^>V}i!_UP%j3&cuYwC>dor4eq4W zm9G{^Z$j6n{-T%4pF&b#qWHp4frkt1Bu`T~{eb1bBs_oU zW3E_V+G@H&Pzd9H_bw2_%~iNmIJwGljuwcQ%9(44$JHUzaOmrM0RsaUm@txKG(9-G z^F%ErI)f`I38~RDg&S>%=b%Yv=@`(gBH2@?-v_ooIAn3Ja-kZP^Cq z4Xj)mLm8~0nIQ~R^p|XzET4FZ4)0fcZz@$VCVM_{f?IHi@FC*~z_QLFTzrk==@|iJ z^w?<3Rl7FEw77&?->!aS(x2?tf}hse>WwyiHO@Yw7x4}Y&$NWxON~yXqa)kq<3$*i zYxG^Px@Ry-5s*+aQFD5w|KXTk`0SFFy5y-@9M8<>exk0dW}y)>Zh9my1 zH*i{5K)bI7HoL<1C3!F2J37V^f;*_bmYQClM-xfX?3mo8&W^QezI?#x{$? zb^(FZ=d=?my_;XS$~OCu+oBweD!pk78|z@67sKuXT%jEg#}~+PFe7;oXijW2Wc0z$ zgQ)tCOW)92H)+n49d@(7*wSot9CnFe=Xc7nRX=v6o z?0vbY5Z4}4GHe&MxsTY(M9&_=501tTXmpf!{u)FZwUv^!H*0RNMxZ`_xFfhLV1FL9 zC#n>|UU$uu)m)kHCLPD?JO@x7hhqhKOgjFCGfVoYe(H)f+mc#mJ{^5wneOJ|6(Oyl zqL%p_ql2XCXTwCTjM&Q9`VJKbcl|Qn{By|YoW@K4xK(4>oaKROr}MZti!rIk!`Jz88)XLMY>#oDWZ3w98R~&sZMh9 zb9W8@=~M2Tl~V!q;qB15v5tUI${|$eZJ?DFi=!wzS-0OEaf83LBEI-=l;RyN;YL3*d_Mb z-K)MA0N`W={tGdkmlAtxKH$UVxZh)SUyoJoy5=dC^+anNbK^8$-cZE-7rON_kqJ5ma$RBd+x%cBZz-` zv+od9RC|iYfwy|uM^Nl~Nt|wO;Ckq5!&^HBk5cZWqRaL?c&phH2M}_C(>0ugoJ(P3 z#&p@^N`fY_`8jj*eK>kV&dj)29?lv|Zt|2KHotLkmp&;O3*RD+e^alO8R7-@(>%bt zIV5iBSTCy7qr2x9Dhs90oy}{}iv|lbTQ+-ZetU<5PMkUlHWG7|we*tUSZVdYo-EnC z%ux+8hj@6WxMCe0G=|l<+|#Ih9b)qfR`GVoxwJr+czG} zt&J`_VOG46@o>KwaF#6bKf{@i|3VaUC5km%iv1m~^X2sJEN+b==F=P_i-#Pu(?0po zke=E}?6<2~qK3lz;k}3U{mOQyGljq0eaMt3#*FuMLpkdn;$9skfW*%o1KiAg6mW1u zHBx@It&NVSA#@|aefCw3jful-|AMcosUfK6eZlLS$LSfaSkJVQ+TjyjLB(A@lm;^0 zgf2ij1;SZ%qI`_FGy6VX;8)jq=&~Wv@>_2%6aI)|-2lKDT5u`Pd(8r^G2lV&K1bi& zz2pXOf}^LibrQdVB{_M)YihrK7pQ3gQ#^lE9D_!VIX6D8YPQ;Y;ze5p2jI_>$Ru~{ z98!+g~PIsQ&)zLQ&k*eNrsu+KxMnPpU4)}3ot!Q^1kDev_MQ!+RT5jv&-mD)bypR_o{BLLkTDk3M8qEn&UU00& zMy_|8K3QeFlV#qF1(zP9E+LzsjT0(km-$Vi>+G}fggA|1a-E2j1DlLbcVIl3Ec{^t zPSbw~=HXCM%uI-5L_|cH=pDLcrjg5aC%CL?1T@1S?MwN5&YZ!(Ukn;0zvi(7)o<(D zDyJTZAaO*?O1141+XSHn@8xEegPC(BNK6si6c?OGBYEi*NTq4Cn06%6aw7jO*!}*1 zp~(=VQxbb=X_hvZ_BlEGZv@ol^K5JcYvla3ZIF002Ef;eXO8R+N~S1d-=rzXE@;59 zn*omf^i3w8rTX)IbMflj0u3HsHC`fr%N`xSLs9r`s>Y;@eKR;ltq&s|?w<(^?9mAS zEa}Z85fzc4i9*Y($BRn~c`F?!B2G$46U!huU@*C9CJC#Wk5~EnUYreARfxBZN*5l9 zt%omZOquvN8vU-xH7bC&8E~`%$5^R2D}Cjc6rUCS0QYr0eQHyiKp?OzCvvVh9#;+7 ztc0h@*T80OuRv3_w!X-`AT9R86<^IiGx4pRO}C2!_0sf94cI@Bsb^(|l`~9cW%NC-(MEhRt2iMHL;NV^=yaOn~%fB@O)WR5Ka?YL# z6I*)c=@_O%nL_*XLwUdJqD3m9CC%&mD&^xG7xMnB<1M@6mMXC7^-P1;5n;k-npaNy zZuY~+gsQRiaXe2}jLBt#%C)KApa<2inxzM>W^<Z%iTy1(5&*$x}b zTs2ig_WI=o9Me|kBP^AO3KS!wG!&yXAS;RFT;qN74sjC_IXRrGW|KiJz1E*4BzIZ| z_FaKe^j2n{9Vmzs<4ZKJvKrq!WBeO}^Wm2WVRU=JjE2#$sb9CYtGHG&zTW=g{?fT> z)@-Z4G}oLheMWY%Xr;qs{=$bd#nGIrme*jV;b3-N2z(_)V?nf?Pya)JX%NfcrPjNB z!u&VxIo+5nKAYJKr?EldWGhCvZ|@Ol%xYo?VnC3+D1Z`ke)rWwH!l^ue=s)SzlZDp zl`T;Lav+QbBPA^zM@*kFsk�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

Bs!8YV#n` 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 Gz4#wM0{~nA diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/screenshot/settingview_zh-CN.png b/.obsidian/plugins/obsidian-enhancing-export-main/screenshot/settingview_zh-CN.png deleted file mode 100644 index f776e2690d09d8a2c42401c4e102d420d6c5a7c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47690 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 diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/export_templates.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/export_templates.ts deleted file mode 100644 index 5c740cff..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/export_templates.ts +++ /dev/null @@ -1,141 +0,0 @@ -import type { ExportSetting } from './settings'; - -/* - * Variables - * - ${attachmentFolderPath} --> obsidian' settings. - * - * /User/aaa/Documents/test.pdf - * - ${outputDir} --> /User/aaa/Documents/ - * - ${outputPath} --> /User/aaa/Documents/test.pdf - * - ${outputFileName} --> test - * - ${outputFileFullName} --> test.pdf - * - * /User/aaa/Documents/test.pdf - * - ${currentDir} --> /User/aaa/Documents/ - * - ${currentPath} --> /User/aaa/Documents/test.pdf - * - ${currentFileName} --> test - * - ${CurrentFileFullName} --> test.pdf - */ - -export default { - 'Markdown': { - name: 'Markdown', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -s -o "${outputPath}" -t commonmark_x-attributes', - extension: '.md', - }, - 'Markdown (Hugo)': { - name: 'Markdown (Hugo)', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown+hugo.lua" -s -o "${outputPath}" -t commonmark_x-attributes', - extension: '.md', - }, - 'Html': { - name: 'Html', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/math_block.lua" --embed-resources --standalone --metadata title="${currentFileName}" -s -o "${outputPath}" -t html', - customArguments: '--mathjax="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg-full.js"', - extension: '.html', - }, - 'TextBundle': { - name: 'TextBundle', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -V media_dir="${outputDir}/${outputFileName}.textbundle/assets" -s -o "${outputDir}/${outputFileName}.textbundle/text.md" -t commonmark_x-attributes', - extension: '.md', - }, - 'Typst': { - name: 'Typst', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -s -o "${outputPath}" -t typst', - extension: '.typ', - }, - 'PDF': { - name: 'PDF', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/pdf.lua" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } -o "${outputPath}" -t pdf', - customArguments: '--pdf-engine=pdflatex', - optionsMeta: { - 'textemplate': 'preset:textemplate', // reference from `PresetOptionsMeta` in `src/settings.ts` - }, - extension: '.pdf', - }, - 'Word (.docx)': { - name: 'Word (.docx)', - type: 'pandoc', - arguments: '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t docx', - extension: '.docx', - }, - 'OpenOffice': { - name: 'OpenOffice', - type: 'pandoc', - arguments: '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t odt', - extension: '.odt', - }, - 'RTF': { - name: 'RTF', - type: 'pandoc', - arguments: '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rtf', - extension: '.rtf', - }, - 'Epub': { - name: 'Epub', - type: 'pandoc', - arguments: '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t epub', - extension: '.epub', - }, - 'Latex': { - name: 'Latex', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } --extract-media="${outputDir}" -s -o "${outputPath}" -t latex', - optionsMeta: { - 'textemplate': 'preset:textemplate', // reference from `PresetOptionsMeta` in `src/settings.ts` - }, - extension: '.tex', - }, - 'Media Wiki': { - name: 'Media Wiki', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t mediawiki', - extension: '.mediawiki', - }, - 'reStructuredText': { - name: 'reStructuredText', - type: 'pandoc', - arguments: '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rst', - extension: '.rst', - }, - 'Textile': { - name: 'Textile', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t textile', - extension: '.textile', - }, - 'OPML': { - name: 'OPML', - type: 'pandoc', - arguments: '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t opml', - extension: '.opml', - }, - 'Bibliography (.bib)': { - name: 'Bibliography', - type: 'pandoc', - arguments: - '-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/citefilter.lua" -o "${outputPath}" --to=bibtex "${currentPath}"', - extension: '.bib', - }, - 'Custom': { - name: 'Custom', - type: 'custom', - command: 'your command', - targetFileExtensions: '.ext', - }, -} satisfies Record as Record; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/exporto0o.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/exporto0o.ts deleted file mode 100644 index 23c98383..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/exporto0o.ts +++ /dev/null @@ -1,234 +0,0 @@ -import * as ct from 'electron'; -import * as fs from 'fs'; -import process from 'process'; -import path from 'path'; -import argsParser from 'yargs-parser'; -import { Variables, ExportSetting, extractDefaultExtension as extractExtension, createEnv } from './settings'; -import { MessageBox } from './ui/message_box'; -import { Notice, TFile } from 'obsidian'; -import { exec, renderTemplate, getPlatformValue, trimQuotes } from './utils'; -import ProgressBar from './ui/components/ProgressBar'; -import type ExportPlugin from './main'; -import pandoc from './pandoc'; - -export async function exportToOo( - plugin: ExportPlugin, - currentFile: TFile, - candidateOutputDirectory: string, - candidateOutputFileName: string | undefined, - setting: ExportSetting, - showOverwriteConfirmation?: boolean, - options?: unknown, - onSuccess?: () => void, - onFailure?: () => void, - beforeExport?: () => void -) { - const { - settings: globalSetting, - lang, - manifest, - app: { - vault: { adapter, config: obsidianConfig }, - metadataCache, - }, - } = plugin; - - if (!candidateOutputFileName) { - const extension = extractExtension(setting); - candidateOutputFileName = `${currentFile.basename}${extension}`; - } - if (showOverwriteConfirmation == undefined) { - showOverwriteConfirmation = globalSetting.showOverwriteConfirmation; - } - - const showExportProgressBar = globalSetting.showExportProgressBar; - - /* Variables - * /User/aaa/Documents/test.pdf - * - ${outputDir} --> /User/aaa/Documents/ - * - ${outputPath} --> /User/aaa/Documents/test.pdf - * - ${outputFileName} --> test - * - ${outputFileFullName} --> test.pdf - * - * /User/aaa/Documents/test.pdf - * - ${currentDir} --> /User/aaa/Documents/ - * - ${currentPath} --> /User/aaa/Documents/test.pdf - * - ${CurrentFileName} --> test - * - ${CurrentFileFullName} --> test.pdf - */ - const vaultDir = adapter.getBasePath(); - const pluginDir = `${vaultDir}/${manifest.dir}`; - const luaDir = `${pluginDir}/lua`; - const outputDir = candidateOutputDirectory; - const outputPath = `${outputDir}/${candidateOutputFileName}`; - const outputFileName = candidateOutputFileName.substring(0, candidateOutputFileName.lastIndexOf('.')); - const outputFileFullName = candidateOutputFileName; - - const currentPath = adapter.getFullPath(currentFile.path); - const currentDir = path.dirname(currentPath); - const currentFileName = currentFile.basename; - const currentFileFullName = currentFile.name; - - let attachmentFolderPath = obsidianConfig.attachmentFolderPath ?? '/'; - if (attachmentFolderPath === '/') { - attachmentFolderPath = vaultDir; - } else if (attachmentFolderPath.startsWith('.')) { - attachmentFolderPath = path.join(currentDir, attachmentFolderPath.substring(1)); - } else { - attachmentFolderPath = path.join(vaultDir, attachmentFolderPath); - } - - let frontMatter: unknown = null; - try { - frontMatter = metadataCache.getCache(currentFile.path).frontmatter; - } catch (e) { - console.error(e); - } - - const variables: Variables = { - pluginDir, - luaDir, - outputDir, - outputPath, - outputFileName, - outputFileFullName, - currentDir, - currentPath, - currentFileName, - currentFileFullName, - attachmentFolderPath, - vaultDir, - // date: new Date(currentFile.stat.ctime), - // lastMod: new Date(currentFile.stat.mtime), - // now: new Date() - metadata: frontMatter, - options, - fromFormat: app.vault.config.useMarkdownLinks ? 'markdown' : 'markdown+wikilinks_title_after_pipe', - }; - - const showCommandLineOutput = setting.type === 'custom' && setting.showCommandOutput; - const openExportedFileLocation = setting.openExportedFileLocation ?? globalSetting.openExportedFileLocation; - const openExportedFile = setting.openExportedFile ?? globalSetting.openExportedFile; - - if (showOverwriteConfirmation && fs.existsSync(outputPath)) { - // const msgBox = new MessageBox(this.app, { - // message: lang.overwriteConfirmationDialog.message(outputDir), - // title: lang.overwriteConfirmationDialog.title(outputFileFullName), - // buttons: 'OkCancel', - // buttonsLabel: { - // ok: lang.overwriteConfirmationDialog.replace, - // }, - // buttonsClass: { - // ok: 'mod-warning' - // }, - // callback: { - // ok: () => doExport() - // } - // }); - // msgBox.open(); - - const result = await ct.remote.dialog.showSaveDialog({ - title: lang.overwriteConfirmationDialog.title(outputFileFullName), - defaultPath: outputPath, - properties: ['showOverwriteConfirmation', 'createDirectory'], - }); - - if (result.canceled) { - return; - } - - variables.outputPath = result.filePath; - variables.outputDir = path.dirname(variables.outputPath); - variables.outputFileFullName = path.basename(variables.outputPath); - variables.outputFileName = path.basename(variables.outputFileFullName, path.extname(variables.outputFileFullName)); - } - - // show progress - let progressBarHide: (() => void) | undefined = undefined; - if (showExportProgressBar) { - beforeExport?.(); - progressBarHide = ProgressBar.show(lang.preparing(variables.outputFileFullName)); - } - - // process Environment variables.. - const env = (variables.env = createEnv(getPlatformValue(globalSetting.env) ?? {}, variables)); - - let pandocPath = pandoc.normalizePath(getPlatformValue(globalSetting.pandocPath)); - - if (process.platform === 'win32') { - // https://github.com/mokeyish/obsidian-enhancing-export/issues/153 - pandocPath = pandocPath.replaceAll('\\', '/'); - const pathKeys: Array = [ - 'pluginDir', - 'luaDir', - 'outputDir', - 'outputPath', - 'currentDir', - 'currentPath', - 'attachmentFolderPath', - 'vaultDir', - ]; - - for (const pathKey of pathKeys) { - const path = variables[pathKey] as string; - variables[pathKey] = path.replaceAll('\\', '/'); - } - } - - const cmdTpl = - setting.type === 'pandoc' - ? `${pandocPath} "\${currentPath}" ${setting.arguments ?? ''} ${setting.customArguments ?? ''}` - : setting.command; - - const cmd = renderTemplate(cmdTpl, variables); - const args = argsParser(cmd.match(/(?:[^\s"]+|"[^"]*")+/g), { - alias: { - output: ['o'], - }, - }); - const actualOutputPath = path.normalize(trimQuotes(args.output)); - - const actualOutputDir = path.dirname(actualOutputPath); - if (!fs.existsSync(actualOutputDir)) { - fs.mkdirSync(actualOutputDir); - } - - try { - console.log(`[${plugin.manifest.name}]: export command and options:`, { - cmd, - options: { cwd: variables.currentDir, env }, - }); - await exec(cmd, { cwd: variables.currentDir, env }); - progressBarHide?.(); - - const next = async () => { - if (openExportedFileLocation) { - setTimeout(() => { - ct.remote.shell.showItemInFolder(actualOutputPath); - }, 1000); - } - if (openExportedFile) { - await ct.remote.shell.openPath(actualOutputPath); - } - if (setting.type === 'pandoc' && setting.runCommand === true && setting.command) { - const extCmd = renderTemplate(setting.command, variables); - await exec(extCmd, { cwd: variables.currentDir, env }); - } - // success - onSuccess && onSuccess(); - }; - - if (showCommandLineOutput) { - const box = new MessageBox(app, lang.exportCommandOutputMessage(cmd)); - box.onClose = next; - box.open(); - } else { - new Notice(lang.exportSuccessNotice(variables.outputFileFullName), 1500); - await next(); - } - } catch (err) { - progressBarHide?.(); - new MessageBox(app, lang.exportErrorOutputMessage(cmd, err)).open(); - onFailure && onFailure(); - } -} diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/hmr.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/hmr.ts deleted file mode 100644 index f6f3a7d8..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/hmr.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { Plugin } from 'obsidian'; -import { debounce, Platform } from 'obsidian'; -import { normalize, join } from 'path'; - -declare global { - interface HmrOptions { - watchFiles?: Array<'main.js' | 'manifest.json' | 'styles.css'> | string[]; - } - interface Window { - hmr(plugin: Plugin, options?: HmrOptions): void; - } -} - -Window.prototype.hmr = function (plugin: Plugin, options?: HmrOptions): void { - if (Platform.isMobile) { - return; - } - - console.log(`[hmr: ${plugin.manifest.name}]`, new Date()); - - options ??= {}; - options.watchFiles ??= ['main.js', 'manifest.json', 'styles.css']; - const { watchFiles } = options; - - const { - app: { - vault: { adapter }, - plugins, - }, - manifest: { dir: pluginDir, id }, - } = plugin; - const { - app: { vault }, - } = plugin; - - const restartPlugin = async () => { - const dbgKey = 'debug-plugin'; - const oldDebug = localStorage.getItem(dbgKey); - try { - localStorage.setItem(dbgKey, '1'); - await plugins.disablePlugin(id); - await plugins.enablePlugin(id); - } finally { - if (oldDebug) { - localStorage.setItem(dbgKey, oldDebug); - } else { - localStorage.removeItem(dbgKey); - } - } - }; - - const entry = normalize(join(pluginDir, 'main.js')); - const onChange = debounce( - async (file: string) => { - if (file.startsWith(pluginDir)) { - if (!(await adapter.exists(entry))) { - return; - } - if (file === pluginDir) { - // reload - } else if (watchFiles?.length > 0) { - if (!watchFiles.some(o => file.endsWith(o))) { - return; - } - } - await restartPlugin(); - } - }, - 500, - true - ); - - plugin.registerEvent(vault.on('raw', onChange)); - - plugin.register(() => adapter.stopWatchPath(pluginDir)); - adapter.startWatchPath(pluginDir); -}; - -export {}; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/de-DE.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/de-DE.ts deleted file mode 100644 index 02482ed0..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/de-DE.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { strTpl } from '../utils'; -import type { Lang } from '.'; - -export default { - exportToOo: 'Export to...', - exportSuccessNotice: strTpl`Export der Datei ${0} erfolgreich!`, - exportCommandOutputMessage: strTpl`Command: ${0}`, - exportErrorOutputMessage: strTpl`Command: ${0},Fehler:${1}`, - exportWithPrevious: 'Exportiere mit Vorherigem', - pleaseOpenFile: 'Bitte öffne zunächst eine Datei.', - preparing: strTpl`generating "${0}"...`, - exportDialog: { - exportTo: 'Exportiere nach', - fileName: 'Dateiname', - title: strTpl`Export to ${0}`, - export: 'Export', - selectExportFolder: 'Zielordner auswählen', - overwriteConfirmation: 'Überschreibe den Zielordner', - type: 'Typ', - }, - messageBox: { - yes: 'Ja', - no: 'Nein', - ok: 'Ok', - cancel: 'Abbrechen', - }, - overwriteConfirmationDialog: { - replace: 'Ersetze', - title: strTpl`"${0}" existiert bereits. Soll er ersetzt werden?`, - message: strTpl`Eine Datei oder ein Ordner mit dem gleichen Namen existiert bereits im Ordner "${0}". Das Ersetzen wird die jetzigen Inhalte überschreiben.`, - }, - settingTab: { - general: 'Allgemein', - name: 'Name', - title: 'Export-Einstellungen', - pandocVersion: strTpl`Version: ${0}`, - pandocVersionWithWarning: strTpl`Version: ${0}, please upgrade version to ${1}`, - pandocNotFound: - 'Pandoc.exe wurde nicht gefunden. Bitte geben Sie den Pfad zur Pandoc.exe ein oder fügen Sie ihn den Window Systemumgebungsvariablen hinzu.', - defaultFolderForExportedFile: 'Standardordner für exportierte Dateien', - openExportedFileLocation: 'Speicherort der exportierten Datei öffnen', - openExportedFile: 'Exportierte Datei öffnen', - pandocPath: 'Pfad zur Datei Pandoc.exe', - pandocPathPlaceholder: '(Automatische Erkennung)', - editCommandTemplate: '‘Befehlsvorlage bearbeiten', - chooseCommandTemplate: 'Vorlage auswählen', - customLocation: 'Benutzerdefinierter Speicherort', - template: 'Vorlage', - command: 'Befehl', - reset: 'Zurücksetzen', - auto: 'Auto', - add: 'Hinzufügen', - remove: 'Entfernen', - rename: 'Umbenennen', - sameFolderWithCurrentFile: 'Der gleiche Ordner mit der aktuellen Datei', - afterExport: 'Nach dem Export', - targetFileExtensions: 'Dateinamenserweiterung der Zieldatei', - targetFileExtensionsTip: '(Mit Leerzeichen getrennt)', - showCommandOutput: 'Zeige die Ausgabe des Befehls', - runCommand: 'Starte den Befehl', - extraArguments: 'Zusätzliche Parameter', - save: 'Speichern', - new: 'Neu', - arguments: 'Parameter', - - advanced: 'Advanced', - environmentVariables: 'Environment Variables', - environmentVariablesDesc: 'Define the Environment Variables for exporting.', - ShowExportProgressBar: 'Show export progressBar', - }, -} satisfies Lang; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/en-US.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/en-US.ts deleted file mode 100644 index 98bd678c..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/en-US.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { strTpl } from '../utils'; - -export default { - exportToOo: 'Export to...', - exportSuccessNotice: strTpl`Export file ${0} success!`, - exportCommandOutputMessage: strTpl`Command: ${0}`, - exportErrorOutputMessage: strTpl`Command: ${0},Error:${1}`, - exportWithPrevious: 'Export with Previous', - pleaseOpenFile: 'Please open a file first.', - preparing: strTpl`generating "${0}"...`, - exportDialog: { - exportTo: 'Export to', - fileName: 'File Name', - title: strTpl`Export to ${0}`, - export: 'Export', - selectExportFolder: 'Please select an export folder.', - overwriteConfirmation: 'Overwrite confirmation', - type: 'Type', - }, - messageBox: { - yes: 'Yes', - no: 'No', - ok: 'Ok', - cancel: 'Cancel', - }, - overwriteConfirmationDialog: { - replace: 'Replace', - title: strTpl`"${0}" already exists. Do you want to replace it?`, - message: strTpl`A file or folder with the same name already exists in the folder "${0}". Replacing it will overwrite its current contents.`, - }, - settingTab: { - general: 'General', - name: 'Name', - title: 'Export Settings', - pandocVersion: strTpl`Version: ${0}`, - pandocVersionWithWarning: strTpl`Version: ${0}, please upgrade version to ${1}`, - pandocNotFound: 'Pandoc not found, please fill in the Pandoc file path, or add it to the system environment variables.', - defaultFolderForExportedFile: 'Default Folder for Exported File', - openExportedFileLocation: 'Open exported file location', - ShowExportProgressBar: 'Show export progress bar', - openExportedFile: 'Open exported file', - pandocPath: 'Pandoc path', - pandocPathPlaceholder: '(Auto Detect)', - editCommandTemplate: 'Edit Command Template', - chooseCommandTemplate: 'Choose template', - customLocation: 'Custom location', - template: 'Template', - command: 'Command', - reset: 'Reset', - auto: 'Auto', - add: 'Add', - remove: 'Remove', - rename: 'Rename', - sameFolderWithCurrentFile: 'Same folder with current file', - afterExport: 'After Export', - targetFileExtensions: 'Target file extensions', - targetFileExtensionsTip: '(Separated by whitespace)', - showCommandOutput: 'Show command output', - runCommand: 'Run command', - extraArguments: 'Extra arguments', - save: 'Save', - new: 'New', - arguments: 'Arguments', - - advanced: 'Advanced', - environmentVariables: 'Environment Variables', - environmentVariablesDesc: 'Define the Environment Variables for exporting.', - }, -}; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/index.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/index.ts deleted file mode 100644 index ff435aa0..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import zhCN from './zh-CN'; -import enUS from './en-US'; -import deDE from './de-DE'; -import { moment } from 'obsidian'; - -export type Lang = typeof enUS; - -export default { - 'de-DE': deDE, - 'en-US': enUS, - 'zh-CN': zhCN, - get current() { - const langIds = Object.keys(this); - const locale = moment.locale().toLowerCase(); - let langId = langIds.find(id => id.toLowerCase() === locale.toLowerCase()); - if (langId) { - return this[langId]; - } - - const localePrefix = locale.split('-')[0]; - langId = langIds.find(id => id.toLowerCase().startsWith(localePrefix)); - if (langId) { - return this[langId]; - } - return this['en-US']; - }, -}; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/zh-CN.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/zh-CN.ts deleted file mode 100644 index cfe23c2d..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/lang/zh-CN.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { strTpl } from '../utils'; -import type { Lang } from '.'; - -export default { - exportToOo: '导出为......', - exportWithPrevious: '使用上一次设置导出', - exportSuccessNotice: strTpl`导出文件 ${0} 成功!`, - exportCommandOutputMessage: strTpl`命令:${0}`, - exportErrorOutputMessage: strTpl`命令 ${0},错误:${1}`, - pleaseOpenFile: '请打开一个文件先。', - preparing: strTpl`正在生成 "${0}" ......`, - exportDialog: { - fileName: '文件名', - type: '类型', - exportTo: '导出到', - title: strTpl`导出为 ${0}`, - export: '导出', - selectExportFolder: '请选择导出文件夹', - overwriteConfirmation: '覆盖提示', - }, - messageBox: { - yes: '是', - no: '否', - ok: '确认', - cancel: '取消', - }, - overwriteConfirmationDialog: { - replace: '替换', - title: strTpl`"${0}" 已经存在。您要替换它吗?`, - message: strTpl`"${0}" 文件夹中已有相同的文件或文件夹,若替换,则会覆盖其当前内容。`, - }, - settingTab: { - title: '导出设置', - general: '通用', - name: '名称', - customLocation: '自定义', - pandocVersion: strTpl`版本: ${0}`, - pandocVersionWithWarning: strTpl`Version: ${0}, 请升级版本到 ${1}`, - pandocNotFound: '找不到 Pandoc,请填写 Pandoc 文件路径,或者将其添加到系统环境变量中。', - pandocPath: 'Pandoc 路径', - defaultFolderForExportedFile: '默认的导出文件夹', - openExportedFileLocation: '打开导出文件所在目录', - sameFolderWithCurrentFile: '与原文件同一目录下', - openExportedFile: '打开导出文件', - pandocPathPlaceholder: '(自动检测)', - editCommandTemplate: '编辑命令模板', - chooseCommandTemplate: '选择模板', - afterExport: '导出后', - command: '命令', - arguments: '参数', - auto: '自动', - reset: '重置', - add: '添加', - remove: '移除', - rename: '重命名', - targetFileExtensions: '目标文件扩展名', - targetFileExtensionsTip: '(用空格分开)', - showCommandOutput: '显示命令行输出', - runCommand: '运行自定义命令', - extraArguments: '自定义参数', - save: '保存', - new: '新建', - template: '模板', - - advanced: '高级', - environmentVariables: '环境变量', - environmentVariablesDesc: '定义导出的环境变量.', - ShowExportProgressBar: '显示导出进度条', - }, -} satisfies Lang; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/main.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/main.ts deleted file mode 100644 index a20043c5..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/main.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { App, Menu, Plugin, PluginManifest, TFile, Notice, debounce } from 'obsidian'; -import { UniversalExportPluginSettings, ExportSetting, DEFAULT_SETTINGS, DEFAULT_ENV } from './settings'; -// import { ExportSettingTab, ExportDialog } from './ui/legacy'; -import { ExportSettingTab, ExportDialog } from './ui'; -import { exportToOo } from './exporto0o'; -import { getPlatformValue, PlatformKey } from './utils'; -import lang, { Lang } from './lang'; -import path from 'path'; -import resources from './resources'; -import './styles.css'; - -export default class UniversalExportPlugin extends Plugin { - settings: UniversalExportPluginSettings; - lang: Lang; - - constructor(app: App, manifest: PluginManifest) { - super(app, manifest); - this.lang = lang.current; - this.saveSettings = debounce(this.saveSettings.bind(this), 1000, true) as unknown as typeof this.saveSettings; - } - - async onload() { - await this.releaseResources(); - - await this.loadSettings(); - const { lang } = this; - - this.addSettingTab(new ExportSettingTab(this)); - - this.addCommand({ - id: 'obsidian-enhancing-export:export', - name: lang.exportToOo, - icon: 'document', - callback: () => { - const file = this.app.workspace.getActiveFile(); - if (file) { - ExportDialog.show(this, file); - } else { - new Notice(lang.pleaseOpenFile, 2000); - } - }, - }); - this.addCommand({ - id: 'obsidian-enhancing-export:export-with-previous', - name: lang.exportWithPrevious, - icon: 'document', - callback: async () => { - const file = this.app.workspace.getActiveFile(); - if (file) { - if (this.settings.lastExportType && this.settings.lastExportDirectory) { - const setting = this.settings.items.find(s => s.name === this.settings.lastExportType); - if (setting) { - await exportToOo(this, file, getPlatformValue(this.settings.lastExportDirectory), undefined, setting); - return; - } - } - ExportDialog.show(this, file); - } else { - new Notice(lang.pleaseOpenFile, 2000); - } - }, - }); - - this.registerEvent( - this.app.workspace.on('file-menu', (menu: Menu, file) => { - if (file instanceof TFile) { - menu - .addItem(item => { - item - .setTitle(lang.exportToOo) - .setIcon('document') - .onClick((): void => { - ExportDialog.show(this, file); - }); - }) - .addSeparator(); - } - }) - ); - // this.downloadLuaScripts().then(); - if (import.meta.env.DEV) { - window.hmr && window.hmr(this); - } - } - - public async resetSettings(): Promise { - this.settings = { - ...JSON.parse(JSON.stringify(DEFAULT_SETTINGS)), - lastExportDirectory: this.settings.lastExportDirectory, - }; - await this.saveSettings(); - } - - public async loadSettings(): Promise { - const settings: UniversalExportPluginSettings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); - settings.items.forEach(v => { - Object.assign(v, Object.assign({}, DEFAULT_SETTINGS.items.find(o => o.name === v.name) ?? {}, v)); - }); - for (const item of DEFAULT_SETTINGS.items) { - if (settings.items.every(o => o.name !== item.name)) { - settings.items.push(item); - } - } - this.settings = settings; - } - - public async saveSettings(): Promise { - console.log('[obsidian-enhancing-export] saveSettings', this.settings); - const settings: UniversalExportPluginSettings = JSON.parse(JSON.stringify(this.settings)); - settings.items.forEach(v => { - const def = DEFAULT_SETTINGS.items.find(o => o.name === v.name); - if (def) { - Object.keys(v).forEach((k: keyof ExportSetting) => { - if (k !== 'name' && JSON.stringify(v[k]) === JSON.stringify(def[k])) { - delete v[k]; - } - }); - } - }); - if (settings.env) { - for (const platform of Object.keys(settings.env) as PlatformKey[]) { - const env = settings.env[platform]; - if (JSON.stringify(env) === JSON.stringify(DEFAULT_ENV[platform])) { - delete settings.env[platform]; - continue; - } - const refEnv = getPlatformValue(DEFAULT_ENV, platform); - for (const [name, value] of Object.entries(env)) { - if (value === refEnv[name]) { - delete env[name]; - } - } - if (Object.keys(env).length === 0) { - delete settings.env[platform]; - } - } - } - await this.saveData(settings); - } - - async releaseResources(): Promise { - const { adapter } = this.app.vault; - for (const [dir, res] of resources) { - const resDir = path.join(this.manifest.dir, dir); - await adapter.mkdir(resDir); - for (const [fileName, bytes] of res) { - const filePath = path.join(resDir, fileName); - await adapter.writeBinary(filePath, bytes); - } - } - resources.length = 0; - } -} diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/pandoc.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/pandoc.ts deleted file mode 100644 index 047298c6..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/pandoc.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { exec } from './utils'; -import semver from 'semver/preload'; - -export const normalizePandocPath = (path?: string) => (path?.includes(' ') ? `"${path}"` : `${path ?? 'pandoc'}`); - -export async function getPandocVersion(path?: string, env?: Record) { - path = normalizePandocPath(path); - let version = await exec(`${path} --version`, { env }); - version = version.substring(0, version.indexOf('\n')).replace('pandoc.exe', '').replace('pandoc', '').trim(); - let dotCount = [...version].filter(c => c === '.').length; - if (dotCount === 1) { - version = `${version}.0`; - } else { - while (dotCount > 2) { - version = version.substring(0, version.lastIndexOf('.')); - dotCount -= 1; - } - } - return semver.parse(version, true); -} - -export const PANDOC_REQUIRED_VERSION = '3.1.7'; - -export default { - normalizePath: normalizePandocPath, - getVersion: getPandocVersion, - requiredVersion: PANDOC_REQUIRED_VERSION, -}; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/resources.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/resources.ts deleted file mode 100644 index 3ea04cda..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/resources.ts +++ /dev/null @@ -1,9 +0,0 @@ -const embed = (dir: string, res: Record) => - [dir, Object.entries(res).map(([k, m]) => [k.substring(dir.length + 3), m.default] as const)] as const; - -// The embedded resource -export default [ - // For other file types, the Loader must be configured in the /vite.config.ts. - embed('lua', import.meta.glob<{ default: Uint8Array }>('../lua/*.lua', { eager: true })), - embed('textemplate', import.meta.glob<{ default: Uint8Array }>('../textemplate/*.{tex,sty}', { eager: true })), -]; diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/settings.ts b/.obsidian/plugins/obsidian-enhancing-export-main/src/settings.ts deleted file mode 100644 index 72e86c2a..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/settings.ts +++ /dev/null @@ -1,172 +0,0 @@ -import export_templates from './export_templates'; -import { setPlatformValue, PlatformValue, renderTemplate, getPlatformValue } from './utils'; -import type { PropertyGridMeta } from './ui/components/PropertyGrid'; - -/* - * Variables - * /User/aaa/Documents/test.pdf - * - ${outputDir} --> /User/aaa/Documents/ - * - ${outputPath} --> /User/aaa/Documents/test.pdf - * - ${outputFileName} --> test - * - ${outputFileFullName} --> test.pdf - * - * /User/aaa/Documents/test.pdf - * - ${currentDir} --> /User/aaa/Documents/ - * - ${currentPath} --> /User/aaa/Documents/test.pdf - * - ${CurrentFileName} --> test - * - ${CurrentFileFullName} --> test.pdf - */ -export interface Variables extends Record { - attachmentFolderPath: string; - pluginDir: string; - luaDir: string; - outputDir: string; - outputPath: string; - outputFileName: string; - outputFileFullName: string; - currentDir: string; - currentPath: string; - currentFileName: string; - currentFileFullName: string; - vaultDir: string; - // date: new Date(currentFile.stat.ctime), - // lastMod: new Date(currentFile.stat.mtime), - // now: new Date() - metadata?: unknown; - options?: unknown; - env?: Record; -} - -export interface UniversalExportPluginSettings { - version?: string; - pandocPath?: PlatformValue; - showOverwriteConfirmation?: boolean; - defaultExportDirectoryMode: 'Auto' | 'Same' | 'Custom'; - customDefaultExportDirectory?: PlatformValue; - env: PlatformValue>; - items: ExportSetting[]; - - openExportedFile?: boolean; // open exported file after export - openExportedFileLocation?: boolean; // open exported file location after export - - lastEditName?: string; - - lastExportDirectory?: PlatformValue; - lastExportType?: string; - - showExportProgressBar?: boolean; -} - -export type OptionsMeta = { - [optionsName: string]: PropertyGridMeta[string] | `preset:${keyof typeof PRESET_OPTIONS_META}`; -}; - -interface CommonExportSetting { - name: string; - - openExportedFileLocation?: boolean; // open exported file location after export - openExportedFile?: boolean; // open exported file after export - optionsMeta?: OptionsMeta; -} - -export interface PandocExportSetting extends CommonExportSetting { - type: 'pandoc'; - arguments: string; - customArguments?: string; - extension: string; - - runCommand?: boolean; // run command after export - command?: string; // command to run after export -} - -export interface CustomExportSetting extends CommonExportSetting { - type: 'custom'; - command: string; - targetFileExtensions?: string; - - showCommandOutput?: boolean; // show command output in console after export -} - -export type ExportSetting = PandocExportSetting | CustomExportSetting; - -export const PRESET_OPTIONS_META: PropertyGridMeta = { - 'textemplate': { - title: 'Latex Template', - type: 'dropdown', - options: [ - { name: 'None', value: null }, - { name: 'Dissertation', value: 'dissertation.tex' }, - { name: 'Academic Paper', value: 'neurips.tex' }, - ], - }, -}; - -export const DEFAULT_ENV = (() => { - let env: PlatformValue> = {}; - env = setPlatformValue( - env, - { - 'HOME': '${HOME}', - 'PATH': '${PATH}', - 'TEXINPUTS': '${pluginDir}/textemplate/:', // It is necessary to **append** to the current TEXINPUTS wtih ":" - NOT REPLACE. TEXINPUTS contains the basic latex classes. - }, - '*' // available for all platforms. - ); - - env = setPlatformValue( - env, - { - 'TEXINPUTS': '${pluginDir}/textemplate/;', // Windows uses ; rather than : for appending - 'PATH': '${HOME}\\AppData\\Local\\Pandoc;${PATH}', - }, - 'win32' // available for windows only. - ); - - env = setPlatformValue( - env, - { - 'PATH': '/opt/homebrew/bin:/usr/local/bin:/Library/TeX/texbin:${PATH}', // Add HomebrewBin and TexBin. see: https://docs.brew.sh/Installation - }, - 'darwin' // for MacOS only. - ); - - return env; -})(); - -export const DEFAULT_SETTINGS: UniversalExportPluginSettings = { - items: Object.values(export_templates).filter(o => o.type !== 'custom'), - pandocPath: undefined, - defaultExportDirectoryMode: 'Auto', - openExportedFile: true, - env: DEFAULT_ENV, - showExportProgressBar: true, -}; - -export function extractDefaultExtension(s: ExportSetting): string { - if (s.type === 'pandoc') { - return s.extension; - } else if (s.type === 'custom') { - return s.targetFileExtensions?.split(',')[0]; - } - return ''; -} - -export function createEnv(env: Record, envVars?: Record) { - env = Object.assign({}, getPlatformValue(DEFAULT_ENV), env); - envVars = Object.assign({ HOME: process.env['HOME'] ?? process.env['USERPROFILE'] }, process.env, envVars ?? {}); - return Object.fromEntries(Object.entries(env).map(([n, v]) => [n, renderTemplate(v, envVars)])); -} - -export function finalizeOptionsMeta(meta?: OptionsMeta): PropertyGridMeta { - if (meta) { - return Object.fromEntries( - Object.entries(meta).map(([optionsName, optionsMetaOrPresetName]) => [ - optionsName, - typeof optionsMetaOrPresetName === 'string' - ? PRESET_OPTIONS_META[optionsMetaOrPresetName.startsWith('preset:') ? optionsMetaOrPresetName.substring(7) : ''] - : optionsMetaOrPresetName, - ]) - ); - } - return {}; -} diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/styles.css b/.obsidian/plugins/obsidian-enhancing-export-main/src/styles.css deleted file mode 100644 index f5c3ab14..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/styles.css +++ /dev/null @@ -1,8 +0,0 @@ -.setting-item.ex-setting-item { - border-top: unset; - padding-top: 0; -} - -*[hidden] { - display: none; -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/ui/ExportDialog.tsx b/.obsidian/plugins/obsidian-enhancing-export-main/src/ui/ExportDialog.tsx deleted file mode 100644 index 170fe329..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/ui/ExportDialog.tsx +++ /dev/null @@ -1,141 +0,0 @@ -import * as ct from 'electron'; -import { TFile } from 'obsidian'; -import { createSignal, createRoot, onCleanup, createMemo, untrack, createEffect, Show } from 'solid-js'; -import { insert } from 'solid-js/web'; -import type UniversalExportPlugin from '../main'; -import { extractDefaultExtension as extractExtension, finalizeOptionsMeta } from '../settings'; -import { setPlatformValue, getPlatformValue, } from '../utils'; -import { exportToOo } from '../exporto0o'; -import Modal from './components/Modal'; -import Button from './components/Button'; -import PropertyGrid, { createDefaultObject } from './components/PropertyGrid'; -import Setting, {Text, DropDown, ExtraButton, Toggle} from './components/Setting'; - - -const Dialog = (props: { plugin: UniversalExportPlugin, currentFile: TFile, onClose?: () => void }) => { - const { plugin: { app, settings: globalSetting, lang }, currentFile } = props; - - const [hidden, setHidden] = createSignal(false); - const [showOverwriteConfirmation, setShowOverwriteConfirmation] = createSignal(globalSetting.showOverwriteConfirmation); - const [exportType, setExportType] = createSignal(globalSetting.lastExportType ?? globalSetting.items.first()?.name); - const [options, setOptions] = createSignal({}); - const setting = createMemo(() => globalSetting.items.find(o => o.name === exportType())); - const extension = createMemo(() => extractExtension(setting())); - const title = createMemo(() => lang.exportDialog.title(setting().name)); - const optionsMeta = createMemo(() => finalizeOptionsMeta(setting().optionsMeta)); - - const [candidateOutputDirectory, setCandidateOutputDirectory] = createSignal(`${getPlatformValue(globalSetting.lastExportDirectory) ?? ct.remote.app.getPath('documents')}`); - const [candidateOutputFileName, setCandidateOutputFileName] = createSignal(`${currentFile.basename}${extension()}`); - - createEffect(() => { - const meta = optionsMeta(); - setOptions(meta ? createDefaultObject(meta) : {}); - }); - - createEffect(() => { - let fileName = untrack(candidateOutputFileName); - fileName = fileName.includes('.') ? fileName.substring(0, fileName.lastIndexOf('.')) : fileName; - setCandidateOutputFileName(`${fileName}${extension()}`); - }); - - const exportTypes = globalSetting.items.map(o => ({ name: o.name, value: o.name })); - - if (globalSetting.defaultExportDirectoryMode === 'Same') { - const path = currentFile.vault.adapter.getBasePath() + '/' + currentFile.parent.path; - setCandidateOutputDirectory(path); - } else if (globalSetting.defaultExportDirectoryMode === 'Custom') { - setCandidateOutputDirectory(getPlatformValue(globalSetting.customDefaultExportDirectory)); - } - - const chooseFolder = async () => { - const retval = await ct.remote.dialog.showOpenDialog({ - title: lang.exportDialog.selectExportFolder, - defaultPath: candidateOutputDirectory(), - properties: ['createDirectory', 'openDirectory'], - }); - if (!retval.canceled && retval.filePaths?.length > 0) { - setCandidateOutputDirectory(retval.filePaths[0]); - } - }; - - const doExport = async () => { - const plugin = props.plugin; - setHidden(true); - await exportToOo( - plugin, - currentFile, - untrack(candidateOutputDirectory), - untrack(candidateOutputFileName), - untrack(setting), - untrack(showOverwriteConfirmation), - options(), - async () => { - globalSetting.showOverwriteConfirmation = untrack(showOverwriteConfirmation); - globalSetting.lastExportDirectory = setPlatformValue(globalSetting.lastExportDirectory, untrack(candidateOutputDirectory)); - - globalSetting.lastExportType = untrack(setting).name; - await plugin.saveSettings(); - props.onClose && props.onClose(); - }, - () => { - setHidden(false); - } - ); - }; - - return <> -

- - ; -}; - - -const show = (plugin: UniversalExportPlugin, currentFile: TFile) => createRoot(dispose => { - let disposed = false; - const cleanup = () => { - if (disposed) { - return; - } - disposed = true; - dispose(); - }; - const el = insert(document.body, () => ); - onCleanup(() => { - el instanceof Node && document.body.contains(el) && document.body.removeChild(el); - }); - return cleanup; -}); - - -export default { - show -}; \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export-main/src/ui/SettingTab.tsx b/.obsidian/plugins/obsidian-enhancing-export-main/src/ui/SettingTab.tsx deleted file mode 100644 index 520ce02d..00000000 --- a/.obsidian/plugins/obsidian-enhancing-export-main/src/ui/SettingTab.tsx +++ /dev/null @@ -1,362 +0,0 @@ -import * as ct from 'electron'; -import process from 'process'; -import { PluginSettingTab } from 'obsidian'; -import type { SemVer } from 'semver' -import type UniversalExportPlugin from '../main'; -import { - CustomExportSetting, - ExportSetting, - PandocExportSetting, - createEnv, - DEFAULT_ENV -} from '../settings'; -import { setPlatformValue, getPlatformValue } from '../utils'; - -import { createSignal, createRoot, onCleanup, createMemo, createEffect, Show, batch, Match, Switch, JSX } from 'solid-js'; -import { createStore, produce } from 'solid-js/store'; -import { insert, Dynamic } from 'solid-js/web'; -import type { Lang } from '../lang'; - -import pandoc from '../pandoc'; -import Modal from './components/Modal'; -import Button from './components/Button'; -import Setting, { Text, Toggle, ExtraButton, DropDown, TextArea } from './components/Setting'; -import export_templates from '../export_templates'; - - -const SettingTab = (props: { lang: Lang, plugin: UniversalExportPlugin }) => { - const { plugin, lang } = props; - const [settings, setSettings0] = createStore(plugin.settings); - const [pandocVersion, setPandocVersion] = createSignal(); - const envVars = createMemo(() => Object.entries(Object.assign({}, getPlatformValue(DEFAULT_ENV), getPlatformValue(settings.env) ?? {})).map(([n, v]) => `${n}="${v}"`).join('\n')); - const setSettings: typeof setSettings0 = (...args: unknown[]) => { - (setSettings0 as ((...args: unknown[]) => void))(...args); - plugin.saveSettings(); - }; - const setEnvVars = (envItems: string) => { - try { - const env: Record = {}; - for (let line of envItems.split('\n')) { - line = line.trim(); - const sepIdx = line.indexOf('='); - if (sepIdx > 0) { - const name = line.substring(0, sepIdx); - let value = line.substring(sepIdx + 1).trim(); - if (value.startsWith('"') && value.endsWith('"')) { - value = value.substring(1, value.length - 1); - } - env[name] = value; - } - } - setSettings('env', setPlatformValue(settings.env ?? {}, env)); - } catch (e) { - alert(e); - } - }; - - const currentCommandTemplate = createMemo(() => settings.items.find(v => v.name === settings.lastEditName) ?? settings.items.first()); - const currentEditCommandTemplate = (type?: T) => { - const template = currentCommandTemplate(); - return (type === undefined || type === template.type ? template : undefined) as T extends 'custom' ? CustomExportSetting : T extends 'pandoc' ? PandocExportSetting : ExportSetting; - }; - const customDefaultExportDirectory = createMemo(() => getPlatformValue(settings.customDefaultExportDirectory)); - - const updateCurrentEditCommandTemplate = (update: (prev: Partial) => void) => { - const idx = settings.items.findIndex(v => v.name === settings.lastEditName); - setSettings('items', idx === -1 ? 0 : idx, produce(item => { - update(item); - return item; - })); - }; - - const pandocDescription = createMemo(() => { - const version = pandocVersion(); - if (version) { - if (app.vault.config.useMarkdownLinks && version.compare(pandoc.requiredVersion) === -1) { - return lang.settingTab.pandocVersionWithWarning(pandoc.requiredVersion) - } - return lang.settingTab.pandocVersion(version) - } - return lang.settingTab.pandocNotFound; - }); - - const [modal, setModal] = createSignal<() => JSX.Element>(); - - const AddCommandTemplateModal = () => { - type TemplateKey = keyof typeof export_templates; - const [templateName, setTemplateName] = createSignal(Object.keys(export_templates)[0] as TemplateKey); - const [name, setName] = createSignal(); - const doAdd = () => { - const template = JSON.parse(JSON.stringify(export_templates[templateName()])); - template.name = name(); - batch(() => { - setSettings('items', items => [...items, template]); - setSettings('lastEditName', template.name); - }); - setModal(undefined); - }; - return <> - setModal(undefined)}> - - ({ name: v.name, value: k }))} - selected={name() ?? templateName()} - onChange={(v: TemplateKey) => setTemplateName(v)} - /> - - - setName(value)} /> - - - - ; - }; - - const RenameCommandTemplateModal = () => { - const [name, setName] = createSignal(currentEditCommandTemplate().name); - const doRename = () => { - batch(() => { - updateCurrentEditCommandTemplate((v) => v.name = name()); - setSettings('lastEditName', name()); - }); - setModal(undefined); - }; - return <> - setModal(undefined)}> - - setName(value)} /> - - - - ; - }; - - const PandocCommandTempateEditBlock = () => { - const template = () => currentEditCommandTemplate('pandoc'); - const updateTemplate = (update: (prev: Partial) => void) => { - updateCurrentEditCommandTemplate(prev => prev.type === 'pandoc' ? update(prev) : undefined); - }; - return <> - - updateTemplate(v => v.arguments = value)} /> - - - updateTemplate(v => v.customArguments = value)} /> - - - - - updateTemplate(v => v.openExportedFileLocation = checked)} /> - - - updateTemplate(v => v.openExportedFile = checked)} /> - - - updateTemplate(v => v.runCommand = checked)} /> - - - - updateTemplate(v => v.command = value)} /> - - - ; - }; - - const CustomCommandTempateEditBlock = () => { - const template = () => currentEditCommandTemplate('custom'); - const updateTemplate = (update: (prev: Partial) => void) => { - updateCurrentEditCommandTemplate(prev => prev.type === 'custom' ? update(prev) : undefined); - }; - return <> - - updateTemplate(v => v.command = value)} /> - - - updateTemplate(v => v.targetFileExtensions = value)} /> - - - - - updateTemplate(v => v.showCommandOutput = checked)} /> - - - updateTemplate(v => v.openExportedFileLocation = checked)} /> - - - updateTemplate(v => v.openExportedFile = checked)} /> - - ; - }; - - const resetSettings = async () => { - await plugin.resetSettings(); - setSettings(plugin.settings); - }; - - const chooseCustomDefaultExportDirectory = async () => { - const retval = await ct.remote.dialog.showOpenDialog({ - defaultPath: customDefaultExportDirectory() ?? ct.remote.app.getPath('documents'), - properties: ['createDirectory', 'openDirectory'], - }); - - if (!retval.canceled && retval.filePaths.length > 0) { - setSettings('customDefaultExportDirectory', v => setPlatformValue(v, retval.filePaths[0])); - } - }; - - const choosePandocPath = async () => { - const retval = await ct.remote.dialog.showOpenDialog({ - filters: process.platform == 'win32' ? [{ extensions: ['exe'], name: 'pandoc' }]: undefined, - properties: ['openFile'], - }); - - if (!retval.canceled && retval.filePaths.length > 0) { - setSettings('pandocPath', (v) => setPlatformValue(v, retval.filePaths[0])); - } - }; - - createEffect(async () => { - try { - const env = createEnv(getPlatformValue(settings.env) ?? {}); - setPandocVersion(await pandoc.getVersion(getPlatformValue(settings.pandocPath), env)); - } catch { - setPandocVersion(undefined); - } - }); - - return <> - - - - - - setSettings('pandocPath', (v) => setPlatformValue(v, value))} - /> - - - - - setSettings('defaultExportDirectoryMode', v)} /> - - - - - - - - - - - - setSettings('openExportedFileLocation', v)} - /> - - - - setSettings('openExportedFile', v)} /> - - - - - setSettings('showExportProgressBar', v)} - /> - - - - - - ({ name: o.name, value: o.name }))} - selected={settings.lastEditName} - onChange={(v) => setSettings('lastEditName', v)} - /> - setModal(() => AddCommandTemplateModal)} /> - setModal(() => RenameCommandTemplateModal)} /> - batch(() => { - setSettings('items', (items) => items.filter(n => n.name !== currentEditCommandTemplate()?.name)); - setSettings('lastEditName', settings.items.first()?.name); - })} /> - - - - - - - - - - - - - - - {/* TODO:// optimize UI as https://www.jetbrains.com/help/idea/absolute-path-variables.html */} - -